以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

科普 | 使用覆蓋層改變以太坊狀態樹的格式_區塊鏈:DEF

Author:

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

作者:?GuillaumeBallet

翻譯&校對:?裴奇?&阿劍

來源:以太坊愛好者

賬戶和合約存儲數據的方式是影響以太坊的眾多問題之一。以太坊協議選用了MerklePatriciaTree來組織賬戶及合約數據。盡管這種數據結構在理論上效果很好,但在實際應用中,它帶來的問題卻比它能夠解決的問題多。核心開發者們已經討論多年,想要把這種數據結構換為二叉樹,我將在這篇文章中闡述我對這個問題的看法以及如何實現這種轉變。

我所提議的處理方法包括一段時間的過渡期,在這段時間內,網絡要同時維護兩種樹結構。這樣做的好處是,轉換樹結構的過程不會影響鏈的運行,并且可以確保所有的賬戶都被轉換成了二進制格式。

背景

目前,以太坊的狀態樹是十六叉制的。十六叉制表示每個節點有16個孩子節點。理論上講,這種方式挺好的,因為孩子節點多意味著只需要更少的“層”便可存儲所有數據。

火幣推出《一分鐘讀懂DeFi》系列科普視頻:據官方消息,8月24日,火幣推出《一分鐘讀懂DeFi》系列科普視頻,并與微博財經合作冠名播出,布道DeFi認知,助力行業發展《一分鐘讀懂DeFi》是由火幣成長學院打造的業內首個系統全面講解DeFi的系列科普動畫,繼推出《區塊鏈100問》后的再續佳作。《一分鐘讀懂DeFi》系列動畫對DeFi的發展進行系統梳理,適合想要由淺入深、全面系統了解區塊鏈DeFi的人們輕松了解DeFi。目前視頻已由火幣網官方微博發布。[2020/8/24]

例如,下圖是用十六叉樹表示的鍵值對?(170,v)。十六進制中,170?記作?0xaa,因此你只需要兩層:第一層記錄第一個?a,第二層記錄第二個?a。

聲音 | 上海股交所總經理:區塊鏈想要大規模發展要做好社會科普工作:金色財經報道,上海股交所總經理張云峰表示,區塊鏈當前還處于一個“概念”的階段,距離成熟應用,影響到百姓的日常生活還有很長的路要走。對于“區塊鏈”和其會帶來的社會和經濟效果,沈陽應當持審慎的態度。區塊鏈想要大規模發展,一方面要做好這項復雜技術的社會科普工作,加快社會大眾對區塊鏈的了解。另一方面,要充分發揮市場的作用,讓企業用實實在在的技術創新,賦能實體經濟的發展。[2019/11/17]

-圖1.十六叉樹的例子,展示了值v是如何在在對應鍵0xaa處是存儲的。這棵樹的鍵長度只有2個字節,只有沿著0xaa的子樹被表現出來了。為了簡潔,不相關的子樹替換為“...”-

可以看出,上圖的樹很矮,而且很寬。給定相同的鍵值對,下圖展示了二叉樹存儲的情形。170?在二叉樹中被表示為?10101010。

聲音 | CNBC主持人:加密貨幣最大的缺點之一就是難以向外行快速科普:CNBC主持人Ran NeuNer近期發推稱,加密貨幣最大的缺點之一就是很難向外行快速解釋。當人們要求我向他們解釋比特幣時,我知道他們至少需要一個小時才能真正理解。[2019/9/10]

-圖2.與圖1相同的鍵值對,存儲在二叉樹中。為了簡潔,不相關的子樹被表示為“...”-

從圖中可見,二叉樹要深得多,也窄得多。

以太坊中,每個區塊包含一個?stateRoot?字段,這是該塊處理完成后表示以太坊全局狀態的MPT的樹根哈希值。總的來說,這個哈希值是對根節點的16個孩子節點的哈希值所組成的列表作哈希運算得到的。這些孩子節點的哈希值又是孩子的16個孩子節點的哈希值所組成的列表做哈希運算得到的,以此類推。

聲音 | 火星人朋友圈科普RAM:火星人在朋友圈發文稱,“什么是RAM?簡單來說就是EOS這個國家的土地,所有的經濟行為都離不開土地。只要EOS的BP們能投票形成一個穩定的供給預期,并且不改變目前的Bancor算法,那么RAM后續的價格有可能會像北上廣深的房價走勢。房價下跌不行,房價過快上漲也不行,EOS的生態越來越像某國了,真有意思。”[2018/7/6]

每次打包交易生成新區塊時,礦工都會更新賬戶樹,重新計算根哈希。根哈希存儲在新區塊的?stateRoot?字段,然后新區塊被共識。

-圖3.區塊頭中的狀態根字段,指向十六叉樹的樹根-

問題在于:如果要對所有節點做哈希,重新計算根哈希的時間就太長了,因此,為了計算根節點的哈希,礦工將從數據庫中檢索?同層節點的兄弟哈希值。雖然后者花費的時間沒有前者那么多,這個操作還是很耗時。因為每個哈希都必須從數據庫中取出。

金色財經獨家分析 監管機構、媒體、業界提示詐騙風險 區塊鏈科普道阻且長:新華社今日發文表示,近來“區塊鏈”類詐騙案件頻發,不法分子以“投資虛擬貨幣周期短、收益高、風險低”為借口,騙取用戶信任并誘使其轉賬進行投資。無獨有偶,同日消息,騰訊手機管家安全專家也提醒此類風險,并從技術上提出防騙建議。在美國,監管機構警示加密貨幣欺詐現象普遍承諾高收益而不披露潛在風險。金色財經獨家分析,不法分子假借新技術之名進行詐騙,一方面是抓住民眾趨利的心理,一方面反映出區塊鏈科普的欠缺。區塊鏈是新興科技和底層技術并有改變社會生產關系的潛力,應該進行系統性的科普教育,當前,部分大學已經開始設置了區塊鏈課程,但對于普通民眾仍然有科普的需求,人們應該了解到系統和正確的知識,不僅要了解區塊鏈的好,也要明確局限和弊端,以在高收益的誘惑下,保持清醒客觀。[2018/4/11]

在十六叉樹中,通常每一層你都需要取出15個兄弟哈希值。在上面那個我構造的例子中,就需要30個哈希值。

盡管二叉樹層次更深一點,但在每一層只需要一個兄弟哈希值。在上述例子中,僅僅需要8個哈希值!這就是為什么在實際中二叉樹更優。

覆蓋層轉變方法

不幸的是,轉換為二叉樹并不簡單。需要轉換的數據?太多了,執行轉換花費的時間將多于15秒的區塊生成時間。

除此以外,設想你要翻譯一本5000頁的書,作者還在不停地告訴你他們對故事做了些修改,并且這些修改會影響你已經翻譯過的頁……那這個過程就沒完沒了。轉換狀態樹的格式也是一樣的問題:可能你剛完成某個地址的格式轉換,用戶就使用了該地址,那你又得從頭轉換一遍。

解決這個問題的辦法是增加一個過渡期,過渡期間,在十六叉樹基層上建立一棵覆蓋樹。這棵覆蓋樹是二叉樹格式的,它的作用是保存狀態上發生的所有變化,直到基層十六叉樹完全轉換為二叉樹。轉換分為3步進行。

第1步——轉換

在這種方法下,區塊高度為?

H1?時肯定會有?

兩個?狀態根:一個是“基層”十六叉樹狀態根,一個是“覆蓋層”二叉樹狀態根。

-圖4.轉換過程中,區塊擁有兩個狀態根:一個是傳統十六叉樹的只讀根,一個是覆蓋二叉樹的可讀寫根-

十六叉樹被設置為只讀,因此對狀態的任何更新都將在覆蓋樹上進行。

當一筆交易讀取或者更新一個賬戶時,系統首先會搜索覆蓋樹。如果在覆蓋樹中找不到賬戶,接著將會在舊的十六叉樹中搜索值。

與此同時,十六叉樹在后臺進行轉換。此時不需要擔心值插入的問題,因為所有的改變都會存儲在上層的覆蓋樹中。

第2步——基層樹切換

當后臺轉換過程完成,礦工對外宣告,他們已經準備好用轉換結果來替換只讀的十六進制基層樹根。對狀態的讀寫與步驟1階段是一樣的。

-圖5.轉換的第二個階段,礦工在區塊頭使用轉換所得二叉樹的樹根替換十六叉樹根,向網絡示意他們已經準備好了-

當足夠多的一系列區塊對轉換所得的二叉基層樹根給出了相同的值,意味著大多數礦工都完成了轉換,并且認可轉換后的樹。合并過程則開始。

第3步——合并兩棵樹

合并過程不斷推進:每產生一個新的區塊,就從覆蓋樹上刪除n個鍵,把它們重新插入二叉基層樹。此過程一直持續,直到所有的鍵都從覆蓋樹上移除。到達這步時,區塊頭就不再保留覆蓋狀態樹的樹根。

整個步驟的核心只有一個:如果交易執行時要寫的鍵存在于覆蓋樹上,這個鍵就會從覆蓋樹上刪除,寫操作直接在二叉基層樹上進行。

下一步

為了估計完成轉換所需要的時間,我已經做了一個低轉換率的原型系統。我們確信,整個過程花費的時間不會太離譜,也就是說幾天時間就夠了。我們會隨著算法的改進而公布更多細節。

致謝

此提議得益于AlexeyAkhunov、VitalikButerin、AnnaGeorge、SinaMahmoodi、TomaszStanczak以及MartinH.Swende的寶貴意見。

原文鏈接:https://medium.com/@gballet/ethereum-state-tree-format-change-using-an-overlay-e0862d1bf201

Tags:區塊鏈EFIDEFIDEF區塊鏈dapp游戲Defina Financepinetworkdefi幣最新消息PeakDeFi

比特幣價格今日行情
工商銀行發布銀行業首個區塊鏈金融白皮書_IND:區塊鏈專業是冷門專業嗎

來源:中鈔區塊鏈技術研究院 2020年4月,中國工商銀行金融科技研究院與可信區塊鏈推進計劃聯合編制的《區塊鏈金融應用發展白皮書》正式發布.

1900/1/1 0:00:00
QKL123行情分析 | 比特幣快速拉升10%,血洗空頭過后...再爆多頭?(0424)_比特幣:ARKE

摘要:比特幣空頭慘遭圍剿,全網爆倉2億多美元,爆倉量創近一個月新高。周五“交割日效應”往往會帶來一定下行風險,市場有借此反殺多頭的可能.

1900/1/1 0:00:00
科普 | ETH 2.0 需要 ETH 1.0 什么,EIP-2537又是什么?_DEFI:ETH2

編者注:原標題為《eth2需要eth1什么?》前言:本文的主要目的是支持EIP-2537。它希望在eth1成為eth2分片之前,可以將eth2上使用的新加密原語集成到EVM中,從可以讓eth1利.

1900/1/1 0:00:00
區塊鏈行業周報 | 黑天鵝來襲,DeFi安全性的反思_DEFI:DefiBay

導讀 4月19日,dForce的去中心化借貸協議Lendf.Me受到黑客攻擊,價值2524萬美金的加密資產被盜。 摘要 專題: 黑天鵝來襲,DeFi安全性的反思.

1900/1/1 0:00:00
比特幣區塊獎勵減半后價格可能不漲反跌,為什么?_INM:METRIC

作者:LiangChe 來源:比推bitpush.news現在距離五月的比特幣區塊獎勵減半只有不到一個月的時間,雖然根據供需模型,比特幣的價格可能會出現上漲.

1900/1/1 0:00:00
區塊鏈周報 | 央行DC/EP多點內測中,Libra白皮書2.0發布_區塊鏈:數字貨幣

文|澄子 審?|照生 出品|01區塊鏈 行業速覽 政策導向 1.央行:堅定不移推動金融領域密碼應用2.全國區塊鏈和分布式記賬技術標準化技術委員會組建公示3.渝中出臺“區塊鏈”16條.

1900/1/1 0:00:00
ads