MerkleTree是一種二叉樹,其最底層葉子節點存儲數據以及數據的哈希,而每上一層節點則存儲兩個子節點的哈希,最后由根節點的哈希保證這個MerkleTree的任何節點數據的完整性。因為修改任何一個葉子節點的數據都會導致根節點的哈希變化,因此,比特幣使用MerkleTree保證一個區塊內的所有交易均不可修改:
這樣就可以把樹的高度從160層壓縮到40層。
40層的高度對于從根開始遍歷還是太長了,我們可以參考MPT,把相同前綴的節點合并,一個節點可以直接跨越幾個層級掛在上層節點上,這樣可以大大縮短節點路徑。
例如,對于空樹,我們插入第一個葉子節點0x215A1C45...,它應該直接掛在根節點表示的子樹索引為2的位置上:
如果插入第二個葉子節點0x215AB162...,因為有共同的前綴215A,所以需要創建一個中間節點215A,再把兩個葉子節點分別掛在索引為1和11的位置:
這樣對于葉子節點來說,只需要很少幾次查找就能定位。
完整的SMT實現參考源碼可以從GitHub下載:
https://github.com/michaelliao/eth-smt
責任編輯:Kate
Tags:ERKTREELETETRTERK價格trees幣在哪買Multi Wallet SuiteRetromoon
注:本文對原文第一部分進行了刪減,若有需要,可參見原文 *免責聲明:本文非財務建議,除ETH之外,作者對提到的任何東西都未投資。對于文章的第一部分,讀者可以選擇跳過,但它有助于形成敘事.
1900/1/1 0:00:00當涉及到通過rollups擴展以太坊時,零知識rollups,特別是兼容EVM的ZK-rollups的出現,通常被認為是圣杯.
1900/1/1 0:00:00著名創投機構a16z曾舉辦了「加密創業學校」的在線視頻課程,目的是幫助創業者快速學習加密技術基礎知識,了解建立Web3公司需要注意的事項。本次課程是開學第一課.
1900/1/1 0:00:00不要再花時間去尋找新的空投了。本文整理了一個線程列表,解釋了如何獲得幾乎所有項目空投的資格。這30個項目可能會在不久的將來空投代幣.
1900/1/1 0:00:00作者:潤升,ChainCatcher繼周杰倫、伊能靜之后,Web3迎來新的明星入場者——周星馳.
1900/1/1 0:00:00OPStack這想法我真的喜歡(NFA)。最近比較忙,拖到今天才開始寫thread。如今鏈的路線早已明朗,只有A/B兩路線.
1900/1/1 0:00:00