編按:本文為QuarkChain創始人兼CEO周期博士撰寫的技術文章,并以此文章為基礎,在DAppLearning進行了技術分享講座。
背景
DeFi、GameFi等去中心化應用的蓬勃發展,極大地增加了對低交易費用的高性能區塊鏈的需求。然而,構建高性能區塊鏈的一個關鍵挑戰是存儲爆炸。下圖是取自Etherscan的圖表,它說明了一個以太坊全節點的區塊鏈數據大小。
從圖中我們可以看出,節點的鏈數據規模穩步增長,現在已經達到~9TB。由于去中心化區塊鏈的一個目標是允許普通配置的計算機運行節點,因此在普通配置的計算機上強制要求9TB+存儲會難以達到。
分解存儲開銷
如果我們進一步分析存儲使用情況,我們可以發現區塊數據只占了約300GB的數據,這一數字遠小于9TB。那么剩下的8.7TB數據從何而來呢?
實際上,存檔節點執行所有塊并保留所有歷史數據,包括:
數據:以太坊網絡總交易數量超過17億筆:金色財經消息,據Etherscan數據,以太坊網絡歷史總交易數量超過17億筆,截至目前為1,700,283,076筆。[2022/9/5 13:10:08]
區塊
狀態
交易收據
這其中,狀態是這8.7TB的主要組成部分。所以有時,我們將存儲爆炸稱為“狀態爆炸”。但是為什狀態會如此之大?
什么是以太坊狀態?
以太坊狀態是一個MerklePatrica樹,其中
葉子節點是地址(0x...)=>帳戶的映射,其中帳戶存儲與地址關聯的余額、nonce等
內部節點維護樹結構,以便可以快速計算整個樹的哈希根
由于存檔節點將保留所有區塊的所有歷史狀態,這意味著MPT中的任何更新都將創建O(log(N))個內部節點,并且不會刪除舊的內部節點。
Bitfinex宣布推出衍生資產CSTs,以應對以太坊合并的所有潛在可能:8月23日消息,加密貨幣交易所Bitfinex官方宣布,將針對以太坊潛在的分叉可能性推出一種衍生資產——拆分代幣(CSTs),CSTs分為ETHW(PoW)和ETHS(PoS),兩種代幣將在衍生品市場上成對交易。Bitfinex首席技術官Paolo Ardoino表示,推出CSTs是為了就以太坊合并的所有可能性做好準備。
具體來說,Bitfinex假定了三種潛在的場景:
1. 如果以太坊共識未能切換為PoS,ETHS將在CSTs到期日(12月31日)歸零,每個ETHW將均可兌換一個ETH。
2. 如果以太坊共識成功切換為PoS,ETHW將在CSTs到期日歸零,每個ETHS將均可兌換一個ETH。
3. 如果以太坊共識成功切換為PoS,但分叉的PoW鏈也能夠成功繼續運行,用戶將同時獲得各自鏈上的ETHS和ETHW代幣。[2022/8/23 12:43:38]
Geth的全節點
為了解決存檔節點狀態爆炸的問題,Geth的天才工程師們創建了一種稱為“修剪”模式的新模式,該模式僅定期存儲MPT。這里我們舉一個簡化的例子,其中節點只保存每3個區塊的MPT。。
NEAR Protocol原生代幣已作為ERC-20部署在以太坊網絡上:據官方消息,開放性網絡平臺NEAR Protocol宣布NEAR代幣已作為ERC-20代幣部署在以太坊網絡上。NEAR Protocol聯合創始人Illia Polosukhin稱,通過共享的NEAR代幣可將NEAR和以太坊兩個生態系統連接起來。另外,NEAR Protocol與DeFi借貸平臺Ruler Protocol建立初步合作伙伴關系,允許加密抵押品的存款人獲得穩定幣貸款。從6月借貸周期開始,NEAR將作為受支持的抵押資產添加到Ruler,平臺上持有LP代幣的借貸者將在RULER和NEAR中獲得雙重獎勵。[2021/5/28 22:53:48]
通過定期存儲MPT,狀態的存儲大小顯著減少。據Etherscan數據,目前Geth全節點的區塊鏈數據大小約為1TB。
Geth的可快速同步的全節點
通過從創世區塊開始重放所有交易來運行節點的一個問題是,重放所有交易會占用很長時間。一般來說,建立這樣一個節點需要數周時間才能從創世區塊趕上網絡的最新狀態。為了加速節點的啟動過程,Geth進一步提供了一種快速同步模式,可以下載最新的穩定區塊的MPT,而無需重放和維護區塊之前的歷史MPT。下載完MPT后,它會像全節點一樣重放新區塊。
加密投行Galaxy Digital將在2月份啟動以太坊基金:億萬富翁Mike Novogratz創辦的加密貨幣投資銀行銀河數碼(Galaxy Digital)將在2月份啟動以太坊基金。據悉,該基金是面向合格機構投資者開放的一只私募基金,機構直接以ETH進行投資,最低投資額度為2.5萬美元,每日可投資,以季度贖回,基金價格基于Bloomberg提供的Bloomberg Galaxy Ethereum Index,由Gemini幫助進行托管,審計方為德勤。據悉,銀河數碼旗下的資產管理分支GDCM根據各種數字資產戰略投資客戶資產,資管規模達到8.15億美元。[2021/1/26 13:36:18]
在不存儲歷史MPT的情況下,一個Geth節點的存儲大小可以進一步減少到447G。通過減去300GB的區塊數據,我們推斷狀態大小約為150GB。
問題
以目前以太坊447GB的存儲大小和15TPS,我們預計具有1TBSSD的普通配置計算機應該能夠運行以太坊節點相當長的一段時間。那么存儲爆炸或狀態爆炸真的存在嗎?或許未來幾年以太坊并不會,但假如我們可以將以太坊的虛擬機(EVM)擴展到數百或數千TPS呢?
分析 | 灰度以太坊持倉量持續下滑 主流交易所相關交易量保持穩定:據 TokenGazer 數據分析顯示,截止至 11 月 20日 11 時,以太坊價格為$176.39,總市值為$19,157.84M,主流交易所24H交易量約為$72.57M,保持穩定;以太坊對比特幣匯率輕微下滑;基本面方面,以太坊鏈上交易量保持穩定,鏈上DApp交易量有明顯增長,新增地址增速有所加快,算力有明顯下滑;以太坊 30 天開發者指數約為 2.24;以太坊與 BTC 180 天關聯度保持穩定,30 天 ROI 持續下滑;據TokenGazer官網六道數據顯示,灰度以太坊信托溢價、持倉量持續下滑;情緒指數移動平均線有一定抬頭。[2019/11/20]
讓我們將目光轉向另一個基于EVM的鏈,幣安智能鏈。截至2021年12月8日,BSC已有:
約984GB鏈上數據,其中區塊約占550GB,狀態約占400GB。
20.6623億筆交易,100TPS
如果我們進一步用交易數量來預測數據大小,我們可以得到:
如果TPS為100,即~3,153MTPY
1年后,總TX~5,219M,區塊~1.375TB,狀態~1.085TB
3年后,總TX~11,525M,區塊~3.025TB,狀態~2.387TB
如果TPS為150,即~4,730MTPY
1年后,總TX~6,796M,區塊~1.809TB,狀態~1.427TB
3年后,總TX~16,256M,區塊~4.327TB,狀態~3.414TB
綜上所述,對于BSC來說,如果保持目前的速度甚至更高,則很快就會達到以太坊存檔節點相同的存儲大小,這是普通計算機幾乎無法運行的。
具有極高TPS區塊鏈的存儲爆炸問題
如果我們對一個極高TPS的區塊鏈做一個更大膽的假設,這個數字會變成多少?我們來考慮一個具有1000TPS的區塊鏈并分析其區塊和狀態大小,將是:
假設tx大小約為100字節,每年區塊所需的存儲量為1000(TPS)*100*365*24*3600=2.86TB
假設MPT有100億賬戶,我們預計狀態大小將為150G/0.18B*10B=8.3TB
將這些數字放在一起,我們很容易得出一個結論,這是大多數普通配置計算機將無法承受的要求!
優化
為了優化存儲成本,我們必須將限制放寬為兼容EVM而不是兼容以太坊。即,我們必須構建/運行另一個支持EVM的鏈,而不是高度優化的以太坊客戶端。
狀態存儲優化
我們提出的第一個優化是使用普通的KV而不是MPT。當MPT很大時,MPT中的所有內部節點可能非常昂貴。而我們的優化將去掉MPT中的所有內部節點。假設每個賬戶的數據大約是50字節,我們可以節省下100億賬戶的數據為:
~10B*50+100GB=600GB,大約是MPT版本的1/10!
雖然使用普通KV會帶來巨大的好處,但一個主要問題是我們無法在如此短的區塊間隔內計算每個區塊的狀態后哈希,這意味著我們將失去以太坊的以下好處:
快速同步:下載任何區塊的狀態并通過重放剩余的區塊來快速同步網絡
分叉檢測:來自對等方新創建的區塊是否會導致與本地執行區塊的狀態不同。
為了啟用快速同步,我們有一個周期性的快照區塊。一個快照區塊包含前狀態哈希這一附加信息,即前一個快照區塊的后狀態哈希:
非快照區塊不維護狀態哈希,而是具有增量哈希,其中包含該區塊的所有交易事務的原始數據庫操作的哈希。這使得分叉檢測成為可能!
我們使用交易前狀態哈希來代替以太坊中區塊的交易后狀態哈希。原因是節點不能立即計算狀交易后的狀態哈希,但是通過使用交易前狀態哈希,節點可以使用整個epoch間隔來計算哈希。例如,假設狀態哈希計算每秒處理10M的狀態數據,那么計算600GB的整個狀態將需要600GB/10M~16.67小時
計算狀態前哈希的流程如下:
1.當一個快照區塊被接收并最終確定時,它的KV狀態被快照,并創建一個后臺線程來迭代所有KV條目并計算哈希。
2.當下一個快照區塊被創建時,計算出的狀態前哈希值將存儲在該區塊中。同樣,節點將創建KV的另一個快照并在后臺計算其哈希。
3.當下一個快照區塊被創建時,節點除了存儲狀態前哈希之外,節點現在可以釋放快照區塊的KV快照,這意味著來自快照區塊以來所有被刪除/更新的數據將被自動垃圾回收
其結果意味著,要存儲狀態,節點只需要最多兩個KV快照。
區塊存儲優化
使用快照區塊,我們可以通過僅存儲以下數據來進一步減少節點中所需的區塊數據:
最新的快照區塊的交易執行前狀態快照,即快照區塊的交易執行后狀態
快照區塊之后的完整區塊
我們可以對存儲成本進行簡單的數學計算:假設epoch持續時間為2周,則區塊重放大小為
2*14*24*3600*100*1000=224GB!
而且,這里的數字不會隨著時間的推移而增長!
總結
我們分析了以太坊當前的存儲使用情況:
不僅是區塊,狀態存儲消耗了很多的空間
當TPS>1000時,存儲空間用量高得令人望而卻步
我們提出對區塊和狀態進行優化:
區塊大小從每年2.86TB減少到224GB
狀態大小從8.3TB減少到600GB
一臺2TB的普通配置計算機應該能滿足長時間運行節點的條件
缺點:輕節點無法驗證狀態中的一個數據
致謝
感謝dapp-learning主辦此次活動。
密碼安全是電子安全的一種特殊情況,不構成中央登記安全。與加密貨幣和證券代幣等數字資產相比,其保管需要獲得加密貨幣保管業務的許可.
1900/1/1 0:00:00撰文:Footprint分析師Sabrina 日期:2021年11月 數據來源:FootprintAnalytics備受期待的比特幣升級Taproot于2021年11月14日在第709.
1900/1/1 0:00:00吳說作者|談叔 本期編輯|ColinWu1.薩爾瓦多發行基于比特幣的“火山債券”當地時間11月20日晚,薩爾瓦多總統NayibBukele在比特幣大會LABITCONF上宣布.
1900/1/1 0:00:00作者|五火球教主出品|白話區塊鏈在《多鏈宇宙大拆解·上篇》中,我們講了BTC、ETH,以及ETH的一眾Layer2們,隨后在《多鏈宇宙大拆解·中篇》中,我們說了這兩年最火的幾大公鏈.
1900/1/1 0:00:00“潮”,年輕世代最in的時尚街頭涂鴉、嘻哈朋克、亞文化、流行波普、ACGN 伴隨數字科技與互動媒體 讓街頭藝術與新興的數字藝術成為流行文化的先鋒代言人Chronicle獲北美玩具品牌Feisty.
1900/1/1 0:00:00在美國的加密貨幣行業內,有一句流行語——“如果你的財務顧問還沒有推薦比特幣,那就解雇他們。”這種激進的說法自然引發了不小的爭議.
1900/1/1 0:00:00