比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

ETH:給以太坊做個大手術:MPT十六叉樹轉二叉樹需要這三步_以太坊

Author:

Time:1900/1/1 0:00:00

寫在前面:

想象一下,你正在翻譯一本5000頁的書籍,作者一直打電話告訴你他對故事做了調整,這會影響到你已經翻譯過的頁面……而這可能會一直持續下去,這就是以太坊從當前使用的MPT十六叉樹轉變為二叉樹結構中遇到的一個類似困境。對此,以太坊核心開發者GuillaumeBallet提出了一種方案,可以在大約幾天的時間內,通過3個步驟完成這一轉換手術。

(圖片來自:tuchong.com)

以下是譯文:

影響以太坊的眾多問題之一是賬戶和合約數據的存儲方式,以太坊目前選擇的結構稱為默克爾帕特里夏樹(MerklePatriciaTree,或簡稱MPT)。盡管從理論上講,它是很有意義的,但在實踐中,它帶來的問題要比其解決的問題要更多。多年來,核心開發人員一直在討論向二叉樹的轉換,在本文中,我將介紹我對這一問題的看法,然后給出一個解決它的方法。

Celsius將19.8萬枚ETH轉入其質押池,將19.7萬枚ETH通過Figment質押:6月2日消息,據 21 Shares 母公司 21.Co 鏈上數據研析師 Tom Wan 監測,Celsius 昨日將 22.2 萬枚 ETH 從他們的 stETH 提款地址發送到了自己的以太坊質押池,如果 Celsius 通過質押池質押所有 42.8 萬枚 ETH,將成為以太坊上第七大質押實體(58.6 萬枚 ETH)。根據最新數據顯示,Celsius 從其 stETH 提款地址收到 42.8 萬枚 ETH,后將 19.8 萬枚 ETH 存入其質押池,又將 19.7 萬枚 ETH 通過 Figment 存入到一個此前質押 ETH 的地址,并且保留了 3.2 萬枚 ETH。[2023/6/2 11:53:52]

提議的過程引入了一個過渡期,在此期間,兩種樹結構都會存在。這樣做的好處是,在轉換樹結構時,主鏈可以保持運行,并且還可以確保將所有帳戶轉換為二叉樹格式。

幣安:已完成STG在以太坊、Arbitrum One和Polygon等區塊鏈的合約Swap:金色財經報道,根據幣安最新公告顯示,幣安已完成AVAX C Chain、Arbitrum One、BNB 智能鏈 (BEP20)、以太坊 (ERC20)、Fantom和Polygon 區塊鏈的新STG代幣與原始STG代幣互換,原STG代幣將重新采用STG作為幣安平臺上的交易代碼,STG的存款和取款現已開放;被撤銷的STG代幣將采用STGOLD作為交易代碼,STGOLD充值現已開放,將不再支持STGOLD代幣提現。幣安提醒,在初始交換完成后提取STGOLD的用戶在Deposit Crypto頁面重新存入STGOLD,因為STGOLD沒有價值,然后可以繼續通過轉換功能(convert function)將STGOLD代幣兌換為STG 。[2023/3/18 13:12:02]

背景

目前,以太坊的賬戶是被存儲到一棵十六叉樹當中的。所謂十六叉,就表示一個節點有16個子節點,理論上這是很好的,因為這意味著你需要更少的"階段"來存儲你所有的數據。

做市商巨頭Citadel或將幫助Silvergate擺脫流動性危機:金色財經報道,有傳言稱全球做市商巨頭Citadel Securities將介入Silvergate以挽救局面,而且可能會向處于資金短缺的Silvergate注入更多資金以幫助其擺脫流動性危機。Citadel Securities主要為全球客戶(包括銀行、經紀商和系統交易公司)提供市場影響力較低和定價一致的可定制流動性方案,目前持有Silvergate Bank約5.5%的股份。本周五美股收盤時,Silvergate Capital Corp股價達到5.77美元,較前一日上漲0.87%。(coinpedia)[2023/3/4 12:42:08]

例如,這就是以十六叉樹的形式表示鍵與值對的過程。在十六進制中,170表示為0xaa,因此你只需要兩層:其中之一用于第一個a,另一層則用于第二個a。

華爾街分析師:Coinbase第三季度的疲軟可能不是底部:金色財經報道,華爾街分析師對Coinbase的盈利路線提出質疑。其中摩根大通分析師Kenneth Worthington認為,該公司第三季度的疲軟可能不是底部,他說:“隨著交易量的下降,似乎需要更長的時間才能達到EBITDA正數,因為Coinbase繼續投資于構建新產品和服務,部分支持加密生態系統的發展”,摩根大通對該股的評級為中性,目標價為66美元。Canaccord分析師JoeVafi認為,Coinbase的快速增長期已經過去,需要管理成本結構,他寫道,“穩定的成本通道可能是實現具有競爭力但有效增長的穩定目標的正確平衡點。”

此前報道,Coinbase在其三季度財報中表示“正在以保守的偏見進行準備,并假設當前的宏觀經濟逆風將持續存在并可能加劇。”(CoinDesk)[2022/11/5 12:19:12]

圖1:這是一棵十六叉trie樹示例,顯示了值“v”如何存儲在鍵0xaa處。此樹只有2字節長的鍵,并且只沿0xaa鍵的子樹被展開。為了簡潔起見,不相關的子樹被替換為“…”。

“獨角獸”加密交易平臺CoinSwitch Kuber三位高管離職:金色財經報道,根據加密交易平臺CoinSwitch Kuber發布的一份最新聲明顯示,該平臺三位高管已宣布離職,分別是首席財務官 Sarmad Nazki、首席商務官 Sharan Nair 和新項目計劃負責人 Krishna Hegde,聲明稱三人將于8月5日離開公司,后續可能會聯合創立一家新的Web3公司。CoinSwitch Kuber此前曾以19億美元估值從美國風險投資公司 Andreesen Horowitz (a16z) 和 Coinbase Ventures 籌集了 2.6 億美元,是一家加密獨角獸公司。(livemint)[2022/7/8 1:59:21]

注意,這棵樹很淺,也很寬。然后將其與以下相同鍵與值對的二叉樹表示法進行比較。在二進制中,

170表示為

10101010。

圖2:和圖1中相同的鍵值對,以二叉樹形式進行存儲。為了簡潔起見,不相關的子樹被表示為“…”。

你可以看到,這棵樹要深得多,也窄得多。

在以太坊中,每個區塊都包含一個stateRoot字段,它是MPT根的哈希值。總而言之,這個哈希,是通過對根的16個子項的哈希列表進行哈希運算而獲得的。這些子哈希列中的每一個,又依次是其子哈希列表的哈希,依此類推。

每次生成一個新區塊時,礦工都會更新帳戶樹并重新計算其根哈希值。哈希存儲在新區塊的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:ETHSTG以太坊COINethereal昵稱含義STGZ以太坊官網公告kucoin交易所法人被抓

火必交易所
區塊鏈:歐盟委員會發布招標書呼吁“區塊鏈+國防”解決方案 涉2.54億元撥款預算_數字資產

來源:Cointelegraph中文,原題《歐洲委員會呼吁區塊鏈開發以國防為重點的解決方案》作者:MARIEHUILLET3月24日,歐盟委員會發布了一份歐洲國防工業發展計劃招標書.

1900/1/1 0:00:00
比特幣:“礦業崩潰論”盛行,囚徒困境下,70%礦機面臨最后一搏?_加密貨幣

礦業要崩潰了嗎? 面對比特幣挖礦算力從115E下跌至最低85E,我們眼前浮現了這樣的景象:曾為全網提供70%算力的螞蟻S9,正被礦工從貨架上一臺臺取下,連灰塵都還沒來得及吹干凈就被扔進了垃圾堆.

1900/1/1 0:00:00
FOR:Forbes區塊鏈50強產品數據深度探究:哪兩個領域最受關注?_100xCoin

作者:BlockdataResearch 翻譯:子銘?? 編者注:原標題為《Forbes區塊鏈50強產品數據深度探究》從正在建設和投入使用的產品中可以清楚地看到.

1900/1/1 0:00:00
EVO:引入700萬用戶,估值55億美元的數字銀行Revolut宣布提前向用戶提供比特幣交易服務_BEVO價格

Revolut是英國的一家線上金融平臺,提供傳統的銀行服務和加密貨幣交易。因為其方便注冊、換匯和線下提款無手續費等特性在全球迅速普及.

1900/1/1 0:00:00
比特幣:比特幣挖礦收入6年增長20倍,減半后礦工還能繼續盈利嗎?_CRYPTO幣

據Decrpyt4月1日報道,比特幣挖礦收入從2013年的2.6億美元增長到了去年的50億美元,增長近20倍.

1900/1/1 0:00:00
比特幣:超30%的已挖出BTC處于非活躍狀態,交易所成最大HODLer_HODL

眾所周知,比特幣的總供應上限為2100萬枚。其區塊獎勵每四年進行一次減半,意味著每年的供應量減半,從而達到控制通脹和避免人為操縱的效果.

1900/1/1 0:00:00
ads