編者按:本文來自以太坊愛好者,作者:GuillaumeBallet,翻譯&校對:裴奇&阿劍,Odaily星球日報經授權轉載。賬戶和合約存儲數據的方式是影響以太坊的眾多問題之一。以太坊協議選用了MerklePatriciaTree來組織賬戶及合約數據。盡管這種數據結構在理論上效果很好,但在實際應用中,它帶來的問題卻比它能夠解決的問題多。核心開發者們已經討論多年,想要把這種數據結構換為二叉樹,我將在這篇文章中闡述我對這個問題的看法以及如何實現這種轉變。我所提議的處理方法包括一段時間的過渡期,在這段時間內,網絡要同時維護兩種樹結構。這樣做的好處是,轉換樹結構的過程不會影響鏈的運行,并且可以確保所有的賬戶都被轉換成了二進制格式。背景
目前,以太坊的狀態樹是十六叉制的。十六叉制表示每個節點有16個孩子節點。理論上講,這種方式挺好的,因為孩子節點多意味著只需要更少的“層”便可存儲所有數據。例如,下圖是用十六叉樹表示的鍵值對(170,v)。十六進制中,170記作0xaa,因此你只需要兩層:第一層記錄第一個a,第二層記錄第二個a。
ApeCoin配對質押機制將使用戶在出售NFT后損失質押的代幣:金色財經報道,12月5日上線的ApeCoin質押系統支持用戶直接質押ApeCoin代幣,或將代幣與Bored Ape或Mutant Ape NFT配對質押。當配對質押時,只有代幣被鎖定在智能合約中,NFT仍然可以在OpenSea或任何其他市場上出售。當NFT售出時,持有者將失去質押的ApeCoin給NFT的買家,因為配對的NFT充當訪問密鑰。
PeckShield已報道了兩起該漏洞的受害者,一交易員使用來自dydx的82ETH(103000美元)快速貸款購買了BAYC#6762并認領了質押的6400枚APE(26240美元),然后交易員以88ETH的價格出售了NFT和ApeCoin,獲利6ETH。另一名交易員通過購買BAYC#1633獲利了近8個ETH。[2022/12/7 21:27:33]
彭博社:Robinhood數字錢包擬支持直接使用加密貨幣存款和取款:金色財經報道,此前有消息稱零售交易平臺 Robinhood 正在測試一款數字錢包功能,旨在讓用戶能夠發送和接收比特幣 (BTC) 等加密資產。不過彭博社9月21日最新報道稱,根據Robinhood流出的iOS應用程序錢包功能測試版截圖顯示,其中已經加入了加密貨幣提款界面,但其他細節仍然很少。現階段,Robinhood 用戶只能用美元購買加密貨幣并在平臺上交易數字資產,因為該應用程序不支持直接使用加密貨幣存款和取款,但隨著其平臺交易用戶(尤其是狗狗幣用戶)的數字貨幣存取款需求逐漸增加,近期這一呼聲越來越高。[2021/9/21 23:40:37]
-圖1.十六叉樹的例子,展示了值v是如何在在對應鍵0xaa處是存儲的。這棵樹的鍵長度只有2個字節,只有沿著0xaa的子樹被表現出來了。為了簡潔,不相關的子樹替換為“...”-可以看出,上圖的樹很矮,而且很寬。給定相同的鍵值對,下圖展示了二叉樹存儲的情形。170在二叉樹中被表示為10101010。
紐約州議員提出法案以研究在加密挖礦中使用可再生能源:金色財經報道,紐約州參議員Kevin Parker近日提出了參議院法案S6584。該法案呼吁紐約州的能源部門“進行一項研究,關于使用可再生能源為加密貨幣挖礦設施供電。”該法案指出,加密貨幣挖礦中心是紐約州的一個新興產業,由于工作量證明區塊鏈(如比特幣)的能源需求以及公眾對網絡碳足跡的認識,這一趨勢已引起爭議。上周,該議員推出了配套的立法,要求暫停該州的加密貨幣挖礦,直到可以評估其環境影響為止。該法案目前正在等待環境保護委員會的審查,而S6584法案正在被能源和電信委員會審議。[2021/5/10 21:45:47]
歷史上的今天丨委內瑞拉總統馬杜羅呼吁南美十國使用“石油幣”:1.2018年1月14日,在玻利瓦爾美洲人民聯盟民族商業協議大會(Alba – TCP) 上,委內瑞拉總統馬杜羅總統要求南美十國一起使用數字貨幣,并且希望“石油幣”能夠成為該地區的一體化貨幣。
2.2018年1月14日,印度尼西亞央行日前發出警告稱,不要購買、銷售和交易加密貨幣。印度尼西亞央行認為加密貨幣不是有效的支付工具,并且禁止其在印度尼西亞境內作為支付手段。
3.2018年1月14日,巴西證券交易委員會宣布,禁止本地投資基金直接投資數字貨幣,因為數字貨幣“不是金融資產”。[2019/1/14]
-圖2.與圖1相同的鍵值對,存儲在二叉樹中。為了簡潔,不相關的子樹被表示為“...”-從圖中可見,二叉樹要深得多,也窄得多。以太坊中,每個區塊包含一個stateRoot字段,這是該塊處理完成后表示以太坊全局狀態的MPT的樹根哈希值。總的來說,這個哈希值是對根節點的16個孩子節點的哈希值所組成的列表作哈希運算得到的。這些孩子節點的哈希值又是孩子的16個孩子節點的哈希值所組成的列表做哈希運算得到的,以此類推。每次打包交易生成新區塊時,礦工都會更新賬戶樹,重新計算根哈希。根哈希存儲在新區塊的stateRoot字段,然后新區塊被共識。
聲音 | BM:非關鍵節點可以使用WAVM編譯器:據IMEOS報道,電報群討論節點編譯合同WAVM會更快,但是如果合同變化大的話編譯時間就成問題,反之Binaryen會更穩定。BM回應稱,只有非關鍵節點才能使用WAVM編譯。[2018/7/19]
-圖3.區塊頭中的狀態根字段,指向十六叉樹的樹根-問題在于:如果要對所有節點做哈希,重新計算根哈希的時間就太長了,因此,為了計算根節點的哈希,礦工將從數據庫中檢索同層節點的兄弟哈希值。雖然后者花費的時間沒有前者那么多,這個操作還是很耗時。因為每個哈希都必須從數據庫中取出。在十六叉樹中,通常每一層你都需要取出15個兄弟哈希值。在上面那個我構造的例子中,就需要30個哈希值。盡管二叉樹層次更深一點,但在每一層只需要一個兄弟哈希值。在上述例子中,僅僅需要8個哈希值!這就是為什么在實際中二叉樹更優。覆蓋層轉變方法
不幸的是,轉換為二叉樹并不簡單。需要轉換的數據太多了,執行轉換花費的時間將多于15秒的區塊生成時間。除此以外,設想你要翻譯一本5000頁的書,作者還在不停地告訴你他們對故事做了些修改,并且這些修改會影響你已經翻譯過的頁……那這個過程就沒完沒了。轉換狀態樹的格式也是一樣的問題:可能你剛完成某個地址的格式轉換,用戶就使用了該地址,那你又得從頭轉換一遍。解決這個問題的辦法是增加一個過渡期,過渡期間,在十六叉樹基層上建立一棵覆蓋樹。這棵覆蓋樹是二叉樹格式的,它的作用是保存狀態上發生的所有變化,直到基層十六叉樹完全轉換為二叉樹。轉換分為3步進行。第1步——轉換
在這種方法下,區塊高度為H1時肯定會有兩個狀態根:一個是“基層”十六叉樹狀態根,一個是“覆蓋層”二叉樹狀態根。
-圖4.轉換過程中,區塊擁有兩個狀態根:一個是傳統十六叉樹的只讀根,一個是覆蓋二叉樹的可讀寫根-十六叉樹被設置為只讀,因此對狀態的任何更新都將在覆蓋樹上進行。當一筆交易讀取或者更新一個賬戶時,系統首先會搜索覆蓋樹。如果在覆蓋樹中找不到賬戶,接著將會在舊的十六叉樹中搜索值。與此同時,十六叉樹在后臺進行轉換。此時不需要擔心值插入的問題,因為所有的改變都會存儲在上層的覆蓋樹中。
第2步——基層樹切換
當后臺轉換過程完成,礦工對外宣告,他們已經準備好用轉換結果來替換只讀的十六進制基層樹根。對狀態的讀寫與步驟1階段是一樣的。
-圖5.轉換的第二個階段,礦工在區塊頭使用轉換所得二叉樹的樹根替換十六叉樹根,向網絡示意他們已經準備好了-當足夠多的一系列區塊對轉換所得的二叉基層樹根給出了相同的值,意味著大多數礦工都完成了轉換,并且認可轉換后的樹。合并過程則開始。第3步——合并兩棵樹
合并過程不斷推進:每產生一個新的區塊,就從覆蓋樹上刪除n個鍵,把它們重新插入二叉基層樹。此過程一直持續,直到所有的鍵都從覆蓋樹上移除。到達這步時,區塊頭就不再保留覆蓋狀態樹的樹根。整個步驟的核心只有一個:如果交易執行時要寫的鍵存在于覆蓋樹上,這個鍵就會從覆蓋樹上刪除,寫操作直接在二叉基層樹上進行。下一步
為了估計完成轉換所需要的時間,我已經做了一個低轉換率的原型系統。我們確信,整個過程花費的時間不會太離譜,也就是說幾天時間就夠了。我們會隨著算法的改進而公布更多細節。致謝此提議得益于AlexeyAkhunov、VitalikButerin、AnnaGeorge、SinaMahmoodi、TomaszStanczak以及MartinH.Swende的寶貴意見。
幾個月前,嘉楠歡慶上市的盛景仿佛還在眼前,然而看到嘉楠剛剛發布的財報,只有感嘆“礦業維艱”。目前嘉楠股價為3.2美金,距離9美金的發行價跌去近60%.
1900/1/1 0:00:00編者按:本文來自PeckShield,Odaily星球日報經授權轉載。04月18日上午08:58開始,一DeFi平臺Uniswap被黑客利用重入漏洞實施了攻擊.
1900/1/1 0:00:002020.4.13第16期本期關鍵字:比特幣減半、幣安集體訴訟、公鏈降格化、穩定幣簡史、N號房搜查令、分叉、防偽溯源國家標準、區塊鏈證照落地、工信部、DeFi、BCH減半、BSV減半.
1900/1/1 0:00:00經過一周的震蕩,本周末比特幣和以太坊在幣價上都有了小的突破,回顧近幾天的加密貨幣市場和金融市場,有不少利好消息傳來.
1900/1/1 0:00:00編者按:本文來自慢霧科技,Odaily星球日報授權轉載。 前言 據鏈聞消息,4月18日,Tokenlon宣布暫停imBTC轉賬,因其發現有攻擊者通過ERC777在Uniswap流動性合約中的重入.
1900/1/1 0:00:00頭條 接近監管人士:央行數字貨幣相關工作一直在做此前有媒體報道稱,央行數字貨幣在農行內測,深圳、雄安、成都、蘇州為試點城市。4月15日開盤后,數字貨幣概念股走強.
1900/1/1 0:00:00