寫在前面:
想象一下,你正在翻譯一本5000頁的書籍,作者一直打電話告訴你他對故事做了調整,這會影響到你已經翻譯過的頁面……而這可能會一直持續下去,這就是以太坊從當前使用的MPT十六叉樹轉變為二叉樹結構中遇到的一個類似困境。對此,以太坊核心開發者GuillaumeBallet提出了一種方案,可以在大約幾天的時間內,通過3個步驟完成這一轉換手術。
(圖片來自:tuchong.com)
以下是譯文:
影響以太坊的眾多問題之一是賬戶和合約數據的存儲方式,以太坊目前選擇的結構稱為默克爾帕特里夏樹(MerklePatriciaTree,或簡稱MPT)。盡管從理論上講,它是很有意義的,但在實踐中,它帶來的問題要比其解決的問題要更多。多年來,核心開發人員一直在討論向二叉樹的轉換,在本文中,我將介紹我對這一問題的看法,然后給出一個解決它的方法。
Reddit在Polygon區塊鏈上部署其NFT系列第3代合約:金色財經報道,Reddit在Polygon區塊鏈上部署了其NFT系列“Reddit Collectible Avatar”的第3代合約。
Dune Analytics最新數據顯示,Reddit Collectible Avatar市值截至目前為74,528,925美元。此外,當前Reddit Collectible Avatar發行總量達到10,615,730個,Avatar NFT持有地址總量為7,309,124個。(Cointelegraph)[2023/4/6 13:48:04]
提議的過程引入了一個過渡期,在此期間,兩種樹結構都會存在。這樣做的好處是,在轉換樹結構時,主鏈可以保持運行,并且還可以確保將所有帳戶轉換為二叉樹格式。
背景
目前,以太坊的賬戶是被存儲到一棵十六叉樹當中的。所謂十六叉,就表示一個節點有16個子節點,理論上這是很好的,因為這意味著你需要更少的"階段"來存儲你所有的數據。
數據:以太坊巨鯨一周內增持4.22億美元SHIB:1月23日消息,WhaleStats數據顯示,自1月17日以來,排名前1,000的ETH巨鯨已經囤積價值4.22億美元的SHIB資產。
截至1月20日,SHIB的增持狂潮使其成為前1,000名ETH巨鯨持有量排名前列的數字資產,總計持有超過5.84億美元的SHIB。(The Daily Hodl)[2023/1/23 11:26:52]
例如,這就是以十六叉樹的形式表示鍵與值對的過程。在十六進制中,170表示為0xaa,因此你只需要兩層:其中之一用于第一個a,另一層則用于第二個a。
圖1:這是一棵十六叉trie樹示例,顯示了值“v”如何存儲在鍵0xaa處。此樹只有2字節長的鍵,并且只沿0xaa鍵的子樹被展開。為了簡潔起見,不相關的子樹被替換為“…”。
Arbitrum公布把Arbitrum One升級至Nitro堆棧的測試網升級計劃:7月25日消息,以太坊Layer2網絡Arbitrum開發者稱,即將把Arbitrum One升級至Nitro堆棧,并公布了測試網升級計劃,會在測試網遷移成功后的幾周內升級至主網。具體為:
1、7月25日發布一個Nitro節點新版本,該版本將需要在升級后運行Rinkeby(發生在28日);
2、7月26日會關閉Goerli Nitro Devnet,7月27日將更新Goerli Nitro Testnet共識(所有Nitro節點都將更新到beta.3或更高版本);
3、7月28日,Rinkeby測試網將暫時下線(大約2-4小時),Offchain Labs將通過一系列步驟將現有的classic數據庫轉換為Nitro數據庫;
4、當Rinkeby遷移發生時,鏈上合約將升級到Nitro,測試完成后鏈將恢復;
5、另外,Offchain Labs將保持對Rinkeby測試網(升級到Nitro)的公開支持,直到Arbitrum One主網升級到Nitro。[2022/7/25 2:36:42]
注意,這棵樹很淺,也很寬。然后將其與以下相同鍵與值對的二叉樹表示法進行比較。在二進制中,
汽車制造商DMC已提交元宇宙和NFT相關商標申請:6月4日消息,NFT和元宇宙商標律師Mike Kondoudis發推稱,汽車制造商德勞瑞恩汽車公司(DeLorean Motor Company,簡稱DMC)計劃進軍元宇宙領域。DMC已提交DMC和DELOREAN商標標申請,將涵蓋虛擬汽車、NFT支持的媒體、虛擬汽車銷售商店等。[2022/6/4 4:02:24]
170表示為
10101010。
圖2:和圖1中相同的鍵值對,以二叉樹形式進行存儲。為了簡潔起見,不相關的子樹被表示為“…”。
你可以看到,這棵樹要深得多,也窄得多。
在以太坊中,每個區塊都包含一個stateRoot字段,它是MPT根的哈希值。總而言之,這個哈希,是通過對根的16個子項的哈希列表進行哈希運算而獲得的。這些子哈希列中的每一個,又依次是其子哈希列表的哈希,依此類推。
薩爾瓦多財長:將繼續持有比特幣,目前仍未準備好發行比特幣債券:6月3日消息,薩爾瓦多財政部長Alejandro Zelaya在近日的國家電視新聞節目中表示,該國領導人仍不認為現在是推出比特幣債券的合適時機,并提到了受到俄烏沖突影響的市場狀況。最初,10億美元的債券計劃在3月15日至3月20日之間發行。但在3月22日,Zelaya解釋說,由于包括戰爭在內的各種條件影響,該國仍在等待合適的時機推出該債券。當時,政府仍未敲定規范數字資產框架的立法。Zelaya在接受采訪時還表示,薩爾瓦多和國際貨幣基金組織(IMF)之間的談判正在進行中,未來幾周將有最新消息。
薩爾瓦多的比特幣交易機制還不完全清楚。當被問及該國是否出售比特幣時,Zelaya表示,該國的“一部分”比特幣被出售,用于資助Chivo Pets寵物醫院。Bukele表示,根據比特幣價格的波動,該項目獲得了400萬美元的“盈余”。Zelaya提到了該國比特幣信托基金的作用,該基金允許薩爾瓦多同時持有美元和比特幣。Zelaya隨后堅稱,該國將繼續持有比特幣,我們不會出售目前購買的比特幣。(The Block)[2022/6/3 3:59:40]
每次生成一個新區塊時,礦工都會更新帳戶樹并重新計算其根哈希值。哈希存儲在新區塊的stateRoot字段中,然后新區塊被密封。
圖3區塊頭的stateroot字段指向十六叉樹的根。
問題就出現在這里了:通過對所有節點進行哈希運算來重新計算哈希根花費的時間太長,因此,為了計算根節點,礦工將從數據庫中檢索同級哈希。盡管從數據庫中獲取所有子葉并對整棵樹進行哈希運算所需的時間不多,但此操作仍然需要大量時間。這是因為必須要從數據庫中獲取每個哈希。
在十六叉樹中,通常每個階段要獲取15個同級哈希。在上面的示例中,這就是30個哈希。
即使更深入,二叉樹每個階段也只需要一個同級哈希。在上面的示例中,就只有8個哈希!這就是為什么在實踐當中,二叉樹實際上要更好的原因。
覆蓋轉化法
不幸的是,要將以太坊從十六叉樹切換到二叉樹,并不是一件容易的事。有很多數據需要轉換,并且執行更改需要花費超過15秒的區塊時間。
除此之外,想象一下,你正在翻譯一本5000頁的書籍,作者一直打電話告訴你他對故事做了調整,這會影響到你已經翻譯過的頁面……而這可能會一直持續下去。
這就是目前以太坊遇到的問題,因為用戶可以更新已轉換的地址,這意味著你必須重新開始轉換過程。
解決此問題的建議是設一個過渡期,在此期間,在十六叉樹的頂部放置一棵覆蓋二叉樹,它的作用是保存狀態發生的所有更改,直到基樹轉換為二叉樹。
這種過渡會分成三步進行:
第1步-轉換
在這種方法中,確定在區塊高度
H1處,區塊具有兩個
stateRoots:一個用于“基礎”十六叉樹,一個用于“覆蓋”二叉樹。
圖4:在轉換過程中,區塊具有2個狀態根:一個是傳統十六叉樹的只讀根,第二個是“覆蓋”二叉樹的根。
十六叉樹被認為是只讀的,因此對狀態的任何更新都將是對覆蓋樹的更新。
當一筆交易讀取或更新一個帳戶時,系統首先搜索覆蓋樹。如果在那里找不到帳戶,系統將在舊的十六叉樹中搜索該值。
而在同時,十六叉樹正在后臺轉換。現在可以不用擔心插入,因為所有更改都存儲在頂部樹中。
第2步-基轉換
后臺轉換過程完成后,礦工將通過轉換結果替換只讀的十六叉樹基礎根來宣布他們已準備好進行切換。對狀態的讀寫操作與步驟1相同。
圖5:轉換的第二個階段,區塊頭將十六叉樹基礎根替換為其二叉樹轉換基礎根,以向網絡發送信號,告知它們已準備就緒。
當一個足夠大的序列區塊對轉換后的基礎根具有相同的值時,這意味著大多數礦工都完成了轉換,并對轉換后的樹的外觀達成了共識。接下開,就進入到合并過程。
第3步-合并兩顆樹
合并過程會逐漸進行:每次生成新區塊時,都會從疊加層中刪除n個鍵,然后將其重新插入到基礎樹中。該過程將持續進行,直到從疊加層中刪除所有鍵為止。在此階段,覆蓋狀態根將從區塊頭中刪除。
除此之外,如果交易執行寫入覆蓋樹中找到的鍵,則該鍵將從覆蓋樹中刪除,并直接寫入到基礎樹。
下一步
我們已經創建了一個初步的原型,以便估計完成轉換所需的時間。我們相信,整個過程可以在合理的時間內完成。隨著算法的改進,我將發布更多的細節。
致謝
這項提議得益于AlexeyAkhunov,VitalikButerin,AnnaGeorge,SinaMahmoodi,TomaszStanczak以及MartinH.Swende提供的寶貴意見。
相關討論:https://ethresear.ch/t/overlay-method-for-hex-bin-tree-conversion/7104
Tags:比特幣NitroTRO以太坊什么是比特幣工廠Nitro NetworkTronLink官方下載蘋果以太坊幣今日價格行情實時
據Decrypt3月30日報道,為了讓人們方便查看自己是否與任何感染了新冠病COVID-19的人有過接觸.
1900/1/1 0:00:00EOS區塊鏈協議的開發商Block.one宣布向其去年6月公布的社交媒體平臺Voice投入了1.5億美元.
1900/1/1 0:00:00作者:羅滔 編者注:原標題為《區塊鏈政策利好:22省將區塊鏈寫入2020政府工作報告》自2008年中本聰發表《比特幣:一種點對點的電子現金系統》以來,比特幣所采用的區塊鏈底層技術已經發展十多年.
1900/1/1 0:00:00雖然沒人知道中本聰這個名字的背后是誰,但一份研究文件顯示,這位比特幣的創造者可能還開發了另一種加密貨幣——門羅幣.
1900/1/1 0:00:00本文來源:區塊鏈商業觀察,有刪減 于細微處開辟新戰場。 互聯網的下半場已經驗證了很多的偽命題,小到一個行業的修正,如無人貨架,大到整個行業的發展趨勢,如消費升級.
1900/1/1 0:00:00來源:國家治理周刊 編者注:原標題為《區塊鏈技術在突發性公共安全事件中的應用前景》3月29日至4月1日.
1900/1/1 0:00:00