本文主要介紹了默克爾樹的基礎數據結構,以及默克爾樹相關的應用延伸的起點。
默克爾樹簡介
本文主要介紹了默克爾樹的基礎數據結構,以及默克爾樹相關的應用延伸的起點。
在Coursera平臺的比特幣和加密貨幣技術課程中,作者學習了如何使用基于哈希的數據結構來驗證P2P網絡系統中數據完整性的基礎知識。該課程中提到的核心數據結構之一是默克爾樹,它存在于比特幣區塊鏈中,以一種非常有效地節省空間和時間的方式,來幫助驗證交易的存在(本文后面會詳細介紹!)。作者深入研究了默克爾樹,意識到這個數據結構實際上是多么豐富的,所以決定寫一篇默克爾樹學習筆記。
火幣推出《一分鐘讀懂DeFi》系列科普視頻:據官方消息,8月24日,火幣推出《一分鐘讀懂DeFi》系列科普視頻,并與微博財經合作冠名播出,布道DeFi認知,助力行業發展《一分鐘讀懂DeFi》是由火幣成長學院打造的業內首個系統全面講解DeFi的系列科普動畫,繼推出《區塊鏈100問》后的再續佳作。《一分鐘讀懂DeFi》系列動畫對DeFi的發展進行系統梳理,適合想要由淺入深、全面系統了解區塊鏈DeFi的人們輕松了解DeFi。目前視頻已由火幣網官方微博發布。[2020/8/24]
默克爾樹解說
默克爾樹構建完成后,看起來是這樣:
動態 | 鏈客社區聯合北京交通廣播推出區塊鏈技術科普節目:12月11日15:15—16:00,區塊鏈技術社區——鏈客區塊鏈技術社區將聯合北京交通廣播FM103.9從零開始為大眾科普解碼區塊鏈技術,蜻蜓FM及北京廣播網同期進行全球直播。首期做客嘉賓為鏈客區塊鏈技術社區創始人郄建軍和百度區塊鏈產品負責人于雅楠。[2019/12/11]
和H,如果沒有縮寫的話,根哈希也可以為H+H)+H+H)))
a、b、c、d是一些數據元素,H是哈希函數。如果你不是很了解哈希函數,可以把它理解為數據塊的“數據指紋”,Hash是一個把任意長度的數據映射成固定長度數據的函數,而根據Hash值反推原始輸入數據的特征是幾乎不可能的。每個節點都是通過哈希運算父節點得到的,默克爾樹的常見結構是二叉樹,但也有非二叉樹結構的,比如以太坊平上默克爾樹。本文只討論這種最常見的二叉樹結構。
聲音 | 浪潮集團云南分公司總經理:云南區塊鏈產業發展需從“科普”到“專精”不斷深化:據昆明日報消息,浪潮集團云南分公司總經理鄭昕表示,云南區塊鏈產業發展需從“科普”到“專精”不斷深化。下一步,浪潮將繼續加大云南農業產業高質量發展體系建設力度,重點以普洱茶等云南優勢產業為切入點,打造云南“綠色、有機農產品高地”的品牌形象,并在此基礎上,開展基于區塊鏈的供應鏈金融服務,解決中小企業貸款難、貸款貴問題。[2019/11/11]
自下而上通過哈希運算相同高度的節點,直至生成默克爾樹根節點。在生成默克爾樹的時候,如果存在單個葉子節點無法匹配成對,就需要特殊處理這個情況,除此之外,樹的構造非常簡單。
默克爾樹構建完成后,就可以在O(logn)時間內使用根哈希對葉子進行驗證,驗證工作是通過重新創建包含從根到被驗證的數據段進行的。在上面的例子中,如果想要驗證c,那么就需要得到H和H+H)。數據c哈希后得到H,再將H與H進行哈希運算,然后將H與H在進行哈希運算,得到一個最后的哈希值,如果這個哈希值與根哈希相同,則說明c確實是默克爾樹中數據的一部分。
動態 | 美國演說家Anthony Robbins開始科普什么是比特幣:美國演說家安東尼·羅賓(Anthony Robbins)在自己的網站上發布了一篇比特幣的科普文章,并在推特上向自己的粉絲介紹什么是比特幣,目前他的推特賬戶共有粉絲304萬人。[2019/1/1]
在BT下載等情況下,是由另一方提供數據c,H和H+H)的,如果你擔心這種方法的安全性,請記住在一個哈希函數上不可能找到e值使得H=H。這意味著只要根哈希是正確的,其他人很難作假他們提供的數據。
輸出某些數據的驗證路徑和重新創建通向默克爾樹根的分支一樣簡單。在數字簽名方案中使用默克爾樹時,驗證整個默克爾樹及其各個葉子節點自身的數據就很重要,并且這實際上是可以在O(logn)時間內完成。有一些更高級的算法是可以完成這一輸出過程的。
聲音 | 火星人朋友圈科普RAM:火星人在朋友圈發文稱,“什么是RAM?簡單來說就是EOS這個國家的土地,所有的經濟行為都離不開土地。只要EOS的BP們能投票形成一個穩定的供給預期,并且不改變目前的Bancor算法,那么RAM后續的價格有可能會像北上廣深的房價走勢。房價下跌不行,房價過快上漲也不行,EOS的生態越來越像某國了,真有意思。”[2018/7/6]
默克爾樹的執行方法
下圖是完整版本的代碼,作者將會在這里解釋創建和驗證默克爾樹的方法。注意build_tree和_audit方法都是來自較大類的實例方法。
構建樹的方法是將葉子添加到堆棧中,并檢查堆棧中的前兩個節點是否具有相同的高度。當高度相同時,節點有一個“子值”(兩個節點哈希值相連后的再次哈希值),當高度不同時,一個新節點會追加到堆棧中。當最后兩個節點高度不同時,需要處理這種邊緣情況。
上面的方法在單節點情況下會失敗,因為不滿足任何條件,所以有一個小方法來處理完整性。
上圖是本文要解釋的驗證過程。公開驗證方法會檢查一些先決條件,這就是為什么大部分邏輯放在這個私人版本中的原因。
默克爾樹的應用
默克爾樹在區塊鏈中應用,近年來引起了人們的廣泛關注。在許多P2P網絡系統中(不僅僅是區塊鏈),個人需要能夠從不受信任的一方獲取數據,并證明對方發送給他們的內容是他們想要的真實內容。BT文件(種子文件)就是一個例子:當你下載一個BT文件時,你會收到別人在網上“播種”的BT文件,但是你怎么能確定這些文件真的,是你要下載的內容,而不是垃圾或惡意軟件呢?默克爾樹可以對從對方接收到的數據進行身份驗證,以解決這個信任問題。
類似的問題也適用于像比特幣和以太坊這樣的加密貨幣:如果有人聲稱另一個同行在交易中向他們支付了費用,那么網絡上的一個節點如何驗證交易是否真的發生了呢?一種方法是,節點可以存儲曾經發生過的完整交易歷史記錄,但是,就節點的時間和空間成本而言,這是不現實的。默克爾樹提供了一種解決方案,可以為網絡上的節點節省時間和空間。通過每個區塊中的交易數據創建默克爾樹,可以在O(logn)時間內審計交易。此外,它為一些比特幣客戶端提供了新的解決方案,可以節省空間,只存儲默克爾樹根,不需要存儲歷史每一筆交易,這創造了巨大的價值!
除了區塊鏈和BT下載,默克爾樹還能在任何需要有效檢測不一致性的系統中被應用:
證書頒發機構(CAs)使用默克爾樹作為證書透明性的一種方法。在這里,公鑰私鑰對被視為默克爾樹的葉子。這是CAs用來防止某個CA可能耍無賴并試圖在某個領域的所有者不知道證書的情況下對該領域的證書進行認證的一種機制。
高度可伸縮的數據庫,如ApacheCassandra和DynamoDB,處理網絡上復制數據庫的故障。這個過程被稱為“反熵”,ApacheCassandra博客和AmazonDynamoDB論文對其進行了較為深入的描述。
RSA的數字簽名替代品,在這種情況下,默克爾樹的根充當公鑰,單個節點用作一次性簽名。最近,人們做了更多的工作來推進這種技術,因為理論上它可以抵抗量子計算攻擊(和RSA不一樣,默克爾樹為當今大多數公鑰密碼術提供了支持)。
默克爾樹的應用確實很多,在任何特定領域的默克爾樹應用都是需要長篇大論來論述的,在這里我們只做簡單的介紹。
原文:https://hackernoon.com/merkle-tree-introduction-4c44250e2da7
稿源:https://first.vip/shareNews?id=2130&uid=1
比特幣投資基金AdamantCapital的聯合創始人MichielLescrauwaet最近在參與某活動時闡述了該公司的投資策略,以及五種可以超越比特幣回報率的投資方式.
1900/1/1 0:00:00人生復利的東西很多,讀書,金錢,能力,健康。有人認為人生就是一場馬拉松,一路上不斷有人因為各種原因掉隊,因為很多人沒有準備這么長的時間,這么長的距離.
1900/1/1 0:00:00超跌反彈的中軍EOS延續調整,BTC采用了逐級下臺階的走勢,只有BNB再度選擇向下運行,市場走的很糾結,還是沒能選擇方向,不過有一個不太好的現象就是EOS在下跌的過程中出現了一定程度的放量.
1900/1/1 0:00:00全球大型加密貨幣交易所,總部位于舊金山的Coinbase很可能會發行一種專屬的交易所代幣,Coinbase亞洲機構銷售主管KayvonPirestani如是說.
1900/1/1 0:00:00一直以來,軟件和互聯網對金融服務業的變革性影響相對較低。當然,消費者的期望已經發生了變化,銀行正在盡其所能,以適應人們已經習慣的高度定制化、按需選擇互聯網服務的線上體驗,但其傳統商業模式依然繼續.
1900/1/1 0:00:00你想成為比特幣”巨鯨”嗎?你想在加密貨幣市場里呼風喚雨嗎?別急,雖然現在你手頭上的比特幣不足以讓你成為比特幣”巨鯨”,但未來能夠影響市場的比特幣數量可能要比今天少得多.
1900/1/1 0:00:00