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

無狀態以太坊:二進制狀態樹實驗_以太坊

Author:

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

編者按:本文來自:以太坊愛好者,作者:IgorMandrigin,翻譯:阿劍,Odaily星球日報經授權轉載。本文所用的數據和腳本都放在這個github代碼庫中:https://github.com/什么是“無狀態以太坊”?

如果您已經了解什么是“無狀態以太坊”以及“區塊見證數據”,可以跳過這一段。為執行交易及驗證區塊,以太坊網絡的節點需要了解整條區塊鏈的當前狀態——也就是所有賬戶和合約的余額和存儲數據。這些數據一般來說是存儲在DB里面的,在需要用于驗證時才會加載到一棵默克爾樹中。無狀態以太坊客戶端的工作思路則稍有區別。顧名思義,無狀態客戶端就是不使用硬盤DB來執行區塊。相反,無狀態客戶端依賴于“區塊見證數據”——就是一段特殊的數據,它會跟相應的區塊一起傳播;擁有了這段數據,客戶端就可以重建出一個默克爾子樹,該分支足可用于執行該區塊中的所有交易。你可以在這篇文章中讀到關于無狀態客戶端的更深入的描述:https://blog.ethereum.org/當然咯,需要傳播區塊見證數據就意味著無狀態客戶端的網絡要求要比普通節點更高。

-見證數據大小折線圖-現在人們已經提出了很多降低見證數據規模的思路:使用有效性/計算完整性證明、加入更多的壓縮手段,等等。其中一種辦法是將以太坊的默克爾樹從十六進制轉為二進制。這就是本文想要探討的問題。為什么要使用二進制樹

消息人士:精簡版美國債務上限協議已初步成形:金色財經報道,據知情人士透露,美國總統拜登和眾議院議長麥卡錫接近就美國債務上限達成協議,雙方在可自由支配開支方面的分歧僅為700億美元。這名消息人士和另一名了解談判情況的人士稱,最終可能達成的不會是一份長達數百頁、可能需要立法者花幾天時間撰寫、閱讀和投票的法案,而是一份包含幾個關鍵數字的精簡協議。另一位消息人士稱,預計談判代表將敲定可自由支配開支的最高限額,包括軍費開支,但讓議員們在未來幾個月通過正常的撥款程序敲定住房和教育等類別的細節。根據美國聯邦數據,2022年,美國的可自由支配支出達到1.7萬億美元,占6.27萬億美元支出總額的27%。其中大約一半用于國防,一些議員表示不應該削減這一領域的支出。[2023/5/26 10:40:50]

默克爾樹的一大優良特性是,驗證樹根值正確與否并不要求你具有整棵樹所有的數據。只需把所有省略的非空路徑替代為相應的哈希值就可以可。那么使用十六進制默克爾樹有什么不好呢?設想整棵樹都已填滿數據。要驗證一個區塊,我們只需要一小部分默克爾樹節點的數據。那么,我們只需把其他路徑的數據替代為哈希值就可以了。但是,每多加入一條哈希值,區塊見證數據就會大一些。如果我們轉變為二進制默克爾樹,這個問題就可以得到緩解——因為默克爾樹上的每個節點都只有兩個子節點,所以至多只有一個字節點需要被替換為哈希值。這樣做也許能大幅降低見證數據的規模。我們再舉例說明一下。假設執行某個區塊只會影響一個賬戶:3B路徑下的Acc1。整棵樹是全滿的。

韓國通過法案要求立法者和其他政府官員申報其持有的數字資產:金色財經報道,韓國國民議會一致通過了一項法案,該法案將授權立法者和其他高級政府官員申報其持有的數字資產。一院制機構的 268 名成員均一致通過了以韓國代表金南國命名的《金南國預防法》。該法案于周一成功通過了一個關鍵委員會,并在最近進行了修正后獲得通過。該修正案要求現任議會成員必須在 6 月底之前披露從任期開始至 5 月 31 日期間獲得的所有數字資產。

議員 Chun Jae-soo表示,傳統資產,如現金、股票和房地產類型的資產僅在超過 1000 萬韓元時才需要申報。對于加密貨幣,由于不可預測的價值波動,每一枚硬幣都需要報告。[2023/5/26 10:40:40]

-二進制狀態樹與十六進制狀態樹的比較-如果說二進制狀態樹看起來有點嚇人,那只是因為二進制樹我畫全了,但沒有把十六進制樹的所有代之以哈希值的節點都畫出來。來數個數:為創建出一棵二進制狀態樹,見證數據需要包含8個哈希值,7個分支節點和1個賬戶節點。也就是見證數據中有16個元素。為創建出一棵十六進制狀態樹,我們只需1個分支節點,1個賬戶節點,但需要30個哈希值。也就是有32個元素。所以,假設哈希值和分支節點在區塊見證數據中的所占的空間是一樣大的,在我們的例子中,使用二進制樹所需的見證數據大小只有十六進制下的一半。看起來不錯。那么,理論上就是這樣。我們來看看實際情況是如何。我們直接拿以太坊主網的數據來看看吧。開始實驗

穩定幣USDC在過去兩周內市值暴跌100億美元:金色財經報道,隨著穩定幣 USDC 市值跌至約 325 億美元,過去兩周下跌了約 100 億美元,USDC 繼續出現大規模贖回。The Block 研究主管 Steven Zheng 表示,看來 3 月初的事件已經損害了加密貨幣投資者和交易者對穩定幣可靠性的信任,盡管 Circle 為 USDC 提供了沒有延遲的全額贖回。

過去 24 小時內的凈贖回額接近 4.63 億美元,銷毀了 4.87 億美元,鑄造了 2410 萬美元。根據 The Block 的數據,同期 USDC 的市值從 333 億美元左右增至 328 億美元。[2023/3/31 13:37:41]

先說最緊要的:我們怎么知道自己構建出來的區塊見證數據是有用的呢?測試方法如下:我們使用區塊見證數據來生成一棵默克爾子樹,在這棵樹上運行相應區塊中的所有交易,然后校驗結果是否與我們所知的一致。只要交易都能成功執行,等等),我們就可以斷定這個見證是足夠充分的。

-測試方法:1.執行區塊;2.從狀態樹中抽取出見證數據;3.使用見證數據構造出一棵子樹;4.禁用DB訪問、使用子樹來執行區塊。因此,我們也使用500萬到850萬高度的區塊、在十六進制默克爾樹模式下生成了見證數據,并將見證數據大小的統計數據存在一個超級大的csv文件中。我們嘗試的第一步是執行完一個區塊后就組裝出一棵十六進制樹,然后將它轉為二進制樹,再從這棵二進制樹中提取出見證數據。這種方法有幾個好處:易于實現,而且驗證十六進制-二進制的轉換也很簡單。不過,我們遇到了兩個問題,而且其中一個還不小。第一個,正如我們上面證明的那樣,比起二進制樹,十六進制樹包含更多的賬戶節點,如果我們先生成十六進制樹再轉換,得到的結果就跟在二進制樹模式下直接生成所得到的見證數據不一樣。為什么呢?因為十六進制樹數據總是以1/2字節的速度增長,而二進制樹總是以1比特的速度增長,因此鍵的長度可以是奇數位。實際上,見證數據中還包含一些額外的擴展節點,它們還要稍微大一點。不過即便對內容較多的區塊,體現在見證數據大小上的差別也非常之小。關鍵的是性能。隨著樹的規模增長,轉換的速度會越來越慢。用更具體的數字來說明一下:在我們的GoogleComputeEngine虛擬機上,處理速度約為每秒0.16個區塊,也就是每分鐘處理小于10個區塊,處理100萬個區塊要超過3個月!所以,我們決定采取更復雜的辦法,開發出一個原生使用二進制默克爾樹的實驗性分支。也就是說,我們要把turbo-geth代碼庫例地所有十六進制狀態樹全部替換為二進制樹,然后區塊就是基于二進制樹來執行的了。這種辦法的不利之處在于,部分哈希值的校驗只能被忽略掉。但主要的驗證機制還是一樣的:我們需要能夠使用二進制樹來執行區塊、從見證數據中創建出默克爾子樹。再來談談key。為簡化起見,我們對key的編碼方式是非常低效的:1bytepernibble;一個key的每一比特就要占用1字節。這樣做大大簡化了代碼層面的改變,但區塊見證數據中的”key“部分會是我們使用bitset時候的8倍大。因此,在進一步分析中,我會假設key的編碼方式是最優的。Hexvs.Bin:結果

Lido上質押的MATIC達到近7400萬MATIC:2月9日消息,Lido表示,Lido上質押的MATIC達到73,858,080 MATIC,超過所有質押MATIC的2%。自推出以來,已向利益相關者支付了超過4,279,203個MATIC作為獎勵。[2023/2/9 11:57:12]

我的分析分為兩段,總共分析了以太坊主網上的200萬個區塊。區塊高度500萬到650萬

我在這個github庫里面提供了使用python腳本來重復這一實驗的命令行:https://github.com/首先我們來分析一下數據集。

-一個箱型圖,箱體顯示上四分位到下四分位之間的數據,左右延伸出去的線條顯示上1%到下1%之間的數據-

-百分比分析-現在我們可以生成一些很酷的圖表了!

報告:在Uniswap上推出的代幣,有97.7%都是Rug Pull:金色財經報道,根據近期網傳的一份報告,在Uniswap上推出的代幣,有97.7%都是Rug Pull。[2022/11/2 12:07:45]

-XY散點圖(橫軸為Hex下見證數據大小,縱軸為Bin下見證數據大小)-可以看出,二進制見證數據的大小總是優于十六進制樹下的見證數據。我們再加入另一個參數,用二進制見證數據大小除以十六進制見證數據大小,看看我們得到了怎樣的提升。

-二進制見證數據的大小/十六進制見證數據的大小-為更好地理解這張圖標,我們也輸出了平均值和百分位值。平均值=0.51P95=0.58P99=0.61在實際場景中這意味著什么?對于99%的區塊,見證數據的大小可以降低至少39%。對于95%的區塊,見證數據的大小可以降低至少42%。平均來說,見證數據可節省49%。我們也要考慮見證數據大小的絕對值。為使數據變得可讀,我們每1024個區塊取滑動平均值。

-依時間順序繪制的見證數據大小折線圖,縱軸單位為MB-再來看看最新區塊的情況。區塊高度800萬到850萬

-箱型圖,箱表示上下四分位以內的數據,線表示上下1%以內的數據-

-800萬號到850萬號區塊的百分位分析-還有XY散點圖。

還有規模上的節約。pythonsize-improvements-plot.pyhex-witness-raw.csvbin-stats-8m-9m.csv80000008500000adjust

-XY散點圖(橫軸為Hex下見證數據大小,縱軸為Bin下見證數據大小)-平均值=0.53P95=0.61P99=0.66最后,再來看看見證數據的絕對大小。pythonabsolute-values-plot.pyhex-witness-raw.csvbin-stats-8m-9m.csv80000008500000adjust

-依時間順序繪制的見證數據大小折線圖,縱軸單位為MB-結論

在使用以太坊主網數據做過測試以后,我們可以看到,切換為二進制樹模式可以大幅提升生成見證數據的效率。另一個結論是,這種提升并沒有理論上那么顯著。原因可能在于主網區塊的實際數據。也許,通過分析一些例外情況,我們可以知道更多優化見證數據規模的辦法。試著使用別的原始數據來跑跑GitHub中的腳本吧:https://github.com/

Tags:以太坊ATICTICITH以太坊官網中文MATICBULLSTICK價格upbithoa

比特幣價格實時行情
國家信息中心朱幼平:鏈改是唯一出路_區塊鏈

編者按:本文來自星傳媒STARMEDIA,作者:Darcy,Odaily星球日報經授權轉載。星傳媒:2020年您更看好聯盟鏈還是公鏈?朱幼平:2020年所有的技術都要著眼于“用”,先是商業邏輯要.

1900/1/1 0:00:00
10個指標表明BTC為何成功_BTC

編者按:本文來自加密谷Live,作者:SylvainSaurel,Odaily星球日報經授權轉載。中本聰于2009年1月3日正式創建了BTC。就在前不久,BTC慶祝了其11歲生日.

1900/1/1 0:00:00
?OKEX投研:市場交易情緒濃重,持倉總量快速上漲_FEX

撰文:OKEx分析師巖松市場交易情緒濃重,全球比特幣衍生品單日交易量突破250億美元比特幣市值占比下降,但中線看漲格局不變持倉總量迅速上漲,可以通過期權做多中期波動率開年以來.

1900/1/1 0:00:00
租住行業或成為區塊鏈應用的最大市場之一?_區塊鏈

小編:據了解老板是從移動互聯網領域轉戰到區塊鏈領域來的,區塊鏈的什么特質吸引了您呢?焦玉龍:從創業者的角度來看的話,男怕選錯行,賽道是我們創業之初面對的核心問題.

1900/1/1 0:00:00
捐款去向存疑,慈善基金區塊鏈化迫在眉睫_區塊鏈

編者按:本文來自Blocklike,Odaily星球日報經授權轉載。面對新型冠狀病感染的肺炎疫情,「紅+字會接收大量物資但醫院仍短缺」、「湖北紅+字會公開信息不準確」、「武漢紅+字會保安攔央視.

1900/1/1 0:00:00
觀察加密幣價與基礎網絡指標的相關系數_區塊鏈

編者按:本文來自LongHash區塊鏈資訊,作者:CharlieCuster,Odaily星球日報經授權轉載。預測任何加密貨幣的價格都是困難的.

1900/1/1 0:00:00
ads