本文主要介紹了默克爾樹的基礎數據結構,以及默克爾樹相關的應用延伸的起點。
默克爾樹簡介
本文主要介紹了默克爾樹的基礎數據結構,以及默克爾樹相關的應用延伸的起點。
在Coursera平臺的比特幣和加密貨幣技術課程中,作者學習了如何使用基于哈希的數據結構來驗證P2P網絡系統中數據完整性的基礎知識。該課程中提到的核心數據結構之一是默克爾樹,它存在于比特幣區塊鏈中,以一種非常有效地節省空間和時間的方式,來幫助驗證交易的存在(本文后面會詳細介紹!)。作者深入研究了默克爾樹,意識到這個數據結構實際上是多么豐富的,所以決定寫一篇默克爾樹學習筆記。
歐科云鏈集團正式啟動區塊鏈科普行動“星途計劃”:歐科云鏈集團于4月26日,正式宣布啟動了區塊鏈科普行動——“星途計劃”,行動包括將在全國范圍展開系列沙龍,加大力度推進區塊鏈科普進機關、進國企、進校園等,聯合政府部門、行業協會等共同構建起更加完善和有效的區塊鏈科普教育生態,與此同時,直擊區塊鏈科普現存痛點,推出簡單易懂的“秒懂區塊鏈”公益短視頻課。
該計劃旨在全維度推動社會建立對產業更清晰的認知,與“鯤鵬計劃”一道助力數字經濟及區塊鏈產業本身健康發展夯實“人才”和“產業認知”兩大基礎。[2021/4/26 20:59:37]
默克爾樹解說
默克爾樹構建完成后,看起來是這樣:
火幣推出《一分鐘讀懂DeFi》系列科普視頻:據官方消息,8月24日,火幣推出《一分鐘讀懂DeFi》系列科普視頻,并與微博財經合作冠名播出,布道DeFi認知,助力行業發展《一分鐘讀懂DeFi》是由火幣成長學院打造的業內首個系統全面講解DeFi的系列科普動畫,繼推出《區塊鏈100問》后的再續佳作。《一分鐘讀懂DeFi》系列動畫對DeFi的發展進行系統梳理,適合想要由淺入深、全面系統了解區塊鏈DeFi的人們輕松了解DeFi。目前視頻已由火幣網官方微博發布。[2020/8/24]
和H,如果沒有縮寫的話,根哈希也可以為H+H)+H+H)))
a、b、c、d是一些數據元素,H是哈希函數。如果你不是很了解哈希函數,可以把它理解為數據塊的“數據指紋”,Hash是一個把任意長度的數據映射成固定長度數據的函數,而根據Hash值反推原始輸入數據的特征是幾乎不可能的。每個節點都是通過哈希運算父節點得到的,默克爾樹的常見結構是二叉樹,但也有非二叉樹結構的,比如以太坊平上默克爾樹。本文只討論這種最常見的二叉樹結構。
動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]
自下而上通過哈希運算相同高度的節點,直至生成默克爾樹根節點。在生成默克爾樹的時候,如果存在單個葉子節點無法匹配成對,就需要特殊處理這個情況,除此之外,樹的構造非常簡單。
默克爾樹構建完成后,就可以在O(logn)時間內使用根哈希對葉子進行驗證,驗證工作是通過重新創建包含從根到被驗證的數據段進行的。在上面的例子中,如果想要驗證c,那么就需要得到H和H+H)。數據c哈希后得到H,再將H與H進行哈希運算,然后將H與H在進行哈希運算,得到一個最后的哈希值,如果這個哈希值與根哈希相同,則說明c確實是默克爾樹中數據的一部分。
聲音 | 火星人朋友圈科普RAM:火星人在朋友圈發文稱,“什么是RAM?簡單來說就是EOS這個國家的土地,所有的經濟行為都離不開土地。只要EOS的BP們能投票形成一個穩定的供給預期,并且不改變目前的Bancor算法,那么RAM后續的價格有可能會像北上廣深的房價走勢。房價下跌不行,房價過快上漲也不行,EOS的生態越來越像某國了,真有意思。”[2018/7/6]
在BT下載等情況下,是由另一方提供數據c,H和H+H)的,如果你擔心這種方法的安全性,請記住在一個哈希函數上不可能找到e值使得H=H。這意味著只要根哈希是正確的,其他人很難作假他們提供的數據。
輸出某些數據的驗證路徑和重新創建通向默克爾樹根的分支一樣簡單。在數字簽名方案中使用默克爾樹時,驗證整個默克爾樹及其各個葉子節點自身的數據就很重要,并且這實際上是可以在O(logn)時間內完成。有一些更高級的算法是可以完成這一輸出過程的。
財政部副部長朱光耀:數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展:今日,在中國發展高層論壇2018年會上,財政部副部長朱光耀表示:“數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展。也要關注數字經濟的其他影響,包括稅收征管、反洗錢監管措施等要跟上。”[2018/3/25]
默克爾樹的執行方法
下圖是完整版本的代碼,作者將會在這里解釋創建和驗證默克爾樹的方法。注意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
對于幣圈不少人來說,9月25日是被跌醒的,凌晨比特幣等主流幣集體跳水,BTC一度下跌到7700美元。這是自6月中旬以來,比特幣首次跌破8000美元,也是四個月來的最低水平.
1900/1/1 0:00:00比特幣最近幾周一直處于盤整狀態,描述比特幣波動性的關鍵指標今天跌至四個月來的最低點。 據Forbes報道,根據資產管理公司BlockforceCapital的研究,使用來自不同交易所的價格數據計.
1900/1/1 0:00:00在區塊鏈領域,初創公司通常不給員工發現金,而是向那些希望通過該項目賺取幾美元的粉絲提供空投或獎金.
1900/1/1 0:00:00上周,根據柏林路透社的消息,Libra一籃子貨幣中美元占50%,不包含人民幣。Libra從一開始就放棄了常規的玩法,使用美元、日元、英鎊和歐元等現有的記賬單位來表達自己的貨幣價值.
1900/1/1 0:00:00在國際政府間合作機構反洗錢金融行動特別工作組新規發布3個月后,這場監管的“貓鼠游戲”終于有了初步結果.
1900/1/1 0:00:00自今年2月以來,比特幣的價格已經從3,400美元上漲到目前的10,400美元左右(撰寫本文時的價格),六個月來的漲幅約是210%.
1900/1/1 0:00:00