加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > KuCoin > Info

區塊鏈存儲爆炸:問題、分析與優化_區塊鏈:tps幣圈

Author:

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

(編按:本文為QuarkChain創始人兼CEO周期博士撰寫的技術文章,并以此文章問依據,在DApp Learning進行了技術分享講座,中文講座視頻請點擊文章第二篇推送?)

背景

DeFi、GameFi等去中心化應用的蓬勃發展,極大地增加了對低交易費用的高性能區塊鏈的需求。然而,構建高性能區塊鏈的一個關鍵挑戰是存儲爆炸。下圖是取自 Etherscan 的圖表,它說明了一個以太坊全節點(存檔)的區塊鏈數據大小。

從圖中我們可以看出,節點的鏈數據規模穩步增長,現在已經達到~9TB。由于去中心化區塊鏈的一個目標是允許普通配置的計算機運行節點,因此在普通配置的計算機上強制要求 9TB+ 存儲會難以達到。

如果我們進一步分析存儲使用情況,我們可以發現區塊數據只占了約300GB的數據(從區塊高度0到13.6M),這一數字遠小于9TB。那么剩下的8.7TB數據從何而來呢?

實際上,存檔節點執行所有塊并保留所有歷史數據,包括:

狀態

交易收據

這其中,狀態是這 8.7TB 的主要組成部分。所以有時,我們將存儲爆炸稱為“狀態爆炸”。但是為什狀態會如此之大?

什么是以太坊狀態?

蘇州市區塊鏈技術和產業協會已正式成立:金色財經報道,4月21日下午,蘇州市區塊鏈技術和產業協會成立大會暨區塊鏈企業家沙龍活動在相城區舉行。蘇州市政協主席周偉強和相城區委書記顧海東共同為“蘇州市區塊鏈技術和產業協會”揭牌。

蘇州市區塊鏈技術和產業協會由蘇州同濟區塊鏈研究院有限公司、蘇州銀行股份有限公司、蘇州市軟件行業協會等9家公司共同發起,現共有會員單位50家。[2020/4/22]

以太坊狀態是一個Merkle Patrica樹(MPT),其中

葉子節點是地址 (0x...) => 帳戶的映射,其中帳戶存儲與地址關聯的余額、nonce等

內部節點維護樹結構,以便可以快速計算整個樹的哈希根

由于存檔節點將保留所有區塊的所有歷史狀態,這意味著 MPT 中的任何更新都將創建 O(log(N)) 個內部節點,并且不會刪除舊的內部節點。

Geth 的全節點

為了解決存檔節點狀態爆炸的問題,Geth 的天才工程師們創建了一種稱為“修剪”模式的新模式,該模式僅定期存儲 MPT。這里我們舉一個簡化的例子,其中節點只保存每 3 個區塊的MPT。(注意,為了獲得一個不包含任何狀態區塊的狀態,節點必須獲得該區塊之前最近的狀態,并重放接下來的交易)。

聲音 | 人民日報:釋放區塊鏈賦能制造業的潛力,長遠看應當打通“數據孤島”:12月11日,人民日報刊文《制造業如何植入區塊鏈(產經觀察)》。文章表示,在與制造業的融合上,不少企業先行先試,區塊鏈技術的應用場景已初現,成為企業提升數字經營能力、加快轉型升級的一股新動力。一批致力于區塊鏈技術研發和應用探索的產業園區正如雨后春筍,拔地而起。根據《中國區塊鏈產業園區發展圖譜》研究報告,目前全國已有超過20個區塊鏈產業園區,其中物聯網、智能制造等領域成為主要發展方向,這些園區通過與地方政策、產業基金結合,為企業成長賦能。如何才能抓住發展機遇,讓區塊鏈這個“孩子”更快成長,充分釋放區塊鏈賦能制造業的潛力?短期看,應當以政策引導支持企業加快數字化轉型步伐。此外,區塊鏈作為一項新技術,在推廣應用過程中還面臨認知不足的問題。長遠看,應當鼓勵跨產業的數據共享,打通“數據孤島”。[2019/12/11]

通過定期存儲 MPT,狀態的存儲大小顯著減少。據 Etherscan 數據,目前 Geth 全節點的區塊鏈數據大小約為 1TB。

Geth 的可快速同步的全節點

聲音 | 清華大學朱巖:中國是區塊鏈生長的最好土壤:據鏈得得消息,清華經濟管理學院教授、清華大學互聯網產業研究院院長朱巖在接受采訪時表示,中國是區塊鏈生長的最好土壤。他稱,單獨將區塊鏈看作是一種技術,或者過分強調加密貨幣,都是對于“區塊鏈”概念的不充分理解。區塊鏈是一種新的經濟模型以及社會治理模式,而且就其特點而言,與中國目前的社會結構以及社會理想極為吻合。[2019/5/1]

通過從創世區塊開始重放所有交易來運行節點的一個問題是,重放所有交易會占用很長時間。一般來說,建立這樣一個節點需要數周時間才能從創世區塊趕上網絡的最新狀態。為了加速節點的啟動過程,Geth 進一步提供了一種快速同步模式,可以下載最新的穩定區塊的 MPT,而無需重放和維護區塊之前的歷史 MPT。下載完 MPT 后,它會像全節點一樣重放新區塊(帶有定期狀態存儲)。

在不存儲歷史 MPT(有時甚至是歷史區塊主體)的情況下,一個 Geth 節點的存儲大小可以進一步減少到 447G(截至 2021/12/06)。通過減去 300GB 的區塊數據,我們推斷狀態大小約為 150GB。

以目前以太坊 447GB 的存儲大小和 15 TPS,我們預計具有 1TB SSD 的普通配置計算機應該能夠運行以太坊節點相當長的一段時間(比如數年)。那么存儲爆炸或狀態爆炸真的存在嗎?或許未來幾年以太坊并不會,但假如我們可以將以太坊的虛擬機 (EVM) 擴展到數百或數千 TPS 呢?

動態 | 雄安新區垃圾處理過渡設施項目通過區塊鏈資金管理平臺管理資金:據河北新聞網消息,近日,省公共資源交易中心發布《雄安新區垃圾處理過渡設施項目設計施工總承包招標公告》,項目已具備招標條件,現對該項目設計施工總承包進行公開招標。項目內容需充分考慮數字化、智能化的要求,以大數據和區塊鏈為基礎。全過程中產生的建筑信息模型(BIM)數據,需統一接入新區城市信息模型(CIM)管理平臺。通過區塊鏈資金管理平臺進行本項目的全過程資金管理,執行建設者工資保障金相關要求。[2019/3/22]

讓我們將目光轉向另一個基于 EVM 的鏈,幣安智能鏈(BSC)。截至 2021 年 12 月 8 日,BSC 已有:

約 984 GB 鏈上數據,其中區塊約占 550 GB,狀態約占 400 GB。

20.6623 億筆交易,100 TPS

如果我們進一步用交易數量來預測數據大小,我們可以得到:

如果 TPS 為 100,即 ~3,153 M TPY

1 年后,總 TX ~5,219M,區塊 ~ 1.375 TB,狀態 ~ 1.085TB

3 年后,總 TX ~11,525M,區塊 ~3.025TB,狀態 ~2.387 TB

如果 TPS 為 150(觀察到的峰值 TPS),即 ~4,730 M TPY

1 年后,總 TX ~6,796M,區塊 ~1.809 TB,狀態 ~1.427 TB

動態 | 奧地利新政府債券拍賣將首次引入區塊鏈技術:據Kleine Zeitung消息,奧地利新政府將于下周二進行11.5億歐元新債的拍賣,此次拍賣由OeKB銀行負責,首次使用基于以太坊區塊鏈的解決方案。[2018/9/27]

3 年后,總 TX ~16,256M,區塊 ~4.327 TB,狀態 ~3.414TB

綜上所述,對于BSC來說,如果保持目前的速度甚至更高,則很快就會達到以太坊存檔節點相同的存儲大小,這是普通計算機幾乎無法運行的。

具有極高 TPS 區塊鏈的存儲爆炸問題

如果我們對一個極高 TPS 的區塊鏈(比如像 QuarkChain 能夠做到的那樣)做一個更大膽的假設,這個數字會變成多少?我們來考慮一個具有 1000 TPS 的區塊鏈并分析其區塊和狀態大小,將是:

假設 tx 大小約為 100 字節,每年區塊所需的存儲量為 1000 (TPS) * 100(每 tx 字節數)* 365 * 24 * 3600 = 2.86 TB

假設 MPT 有 100 億賬戶(超過世界人口!),我們預計狀態大小將為 150G(以太坊狀態大小)/0.18B(以太坊唯一地址)* 10B = 8.3 TB

將這些數字放在一起,我們很容易得出一個結論,這是大多數普通配置計算機將 無法承受的要求!

為了優化存儲成本,我們必須將限制放寬為兼容 EVM 而不是兼容以太坊。即,我們必須構建/運行另一個支持 EVM 的鏈,而不是高度優化的以太坊客戶端。

狀態存儲優化

我們提出的第一個優化是使用普通的 KV 而不是 MPT。當 MPT 很大時,MPT 中的所有內部節點可能非常昂貴。而我們的優化將去掉 MPT 中的所有內部節點。假設每個賬戶的數據大約是 50 字節(20 個地址 + 2 個nonce + 12 個賬戶 + 其他),我們可以節省下100億賬戶的數據為:

~ 10B * 50 + 100GB(代碼)= 600 GB,大約是MPT版本的1/10!

雖然使用普通 KV 會帶來巨大的好處,但一個主要問題是我們無法在如此短的區塊間隔內計算每個區塊的狀態后哈希,這意味著我們將失去以太坊的以下好處:

快速同步:下載任何區塊的狀態并通過重放剩余的區塊來快速同步網絡

分叉檢測(或拜占庭檢測):來自對等方新創建的區塊是否會導致與本地執行區塊的狀態不同。

為了啟用快速同步,我們有一個周期性的快照區塊(快照間隔 = epoch = 例如,14 周)。一個快照區塊包含前狀態哈希這一附加信息,即前一個快照區塊的后狀態哈希(執行交易之后的狀態哈希):

非快照區塊不維護狀態哈希,而是具有增量哈希,其中包含該區塊的所有交易事務的原始數據庫操作(刪除、更新)的哈希。這使得分叉檢測成為可能!

我們使用交易前狀態哈希來代替以太坊中區塊的交易后狀態哈希。原因是節點不能立即計算狀交易后的狀態哈希,但是通過使用交易前狀態哈希,節點可以使用整個epoch間隔來計算哈希。例如,假設狀態哈希計算每秒處理 10M 的狀態數據,那么計算 600 GB 的整個狀態將需要 600 GB / 10 M ~ 16.67 小時(vs. epoch = 14 周)

計算狀態前哈希的流程如下:

1. 當一個快照區塊被接收并最終確定時,它的 KV 狀態被快照,并創建一個后臺線程來迭代所有 KV 條目(地址 => 帳戶)并計算哈希。

2. 當下一個快照區塊被創建時,計算出的狀態前哈希值將存儲在該區塊中。同樣,節點將創建 KV 的另一個快照并在后臺計算其哈希。

3.當下一個快照區塊被創建時,節點除了存儲狀態前哈希之外,節點現在可以釋放快照區塊的KV快照,這意味著來自快照區塊以來所有被刪除/更新的數據將被自動垃圾回收(例如,在 levelDB 中壓縮)

其結果意味著,要存儲狀態,節點只需要最多兩個 KV 快照(很可能是一個帶增量和一個 KV 快照)。

使用快照區塊,我們可以通過僅存儲以下數據來進一步減少節點中所需的區塊數據:

最新的快照區塊的交易執行前狀態快照,即(最新 —? 1)快照區塊的交易執行后狀態

(最新 — 1)快照區塊之后的完整區塊?

我們可以對存儲成本進行簡單的數學計算:假設 epoch 持續時間為 2 周,則區塊重放大小為

2 * 14(天)* 24(小時)* 3600(秒)* 100 * 1000(TPS)= 224 GB!

而且,這里的數字不會隨著時間的推移而增長!

我們分析了以太坊當前的存儲使用情況:

不僅是區塊,狀態存儲消耗了很多的空間

當 TPS > 1000 時,存儲空間用量高得令人望而卻步

我們提出對區塊和狀態進行優化:

區塊大小從每年 2.86 TB 減少到 224 GB

狀態大小(~10B 帳戶)從 8.3 TB 減少到 600 GB

一臺 2TB 的普通配置計算機應該能滿足長時間運行節點的條件

缺點:輕節點無法驗證狀態中的一個數據(必須是全節點)

感謝 dapp-learning 主辦此次活動。教學全程視頻可點擊公眾號第二條推送觀看。

Tags:區塊鏈以太坊MPTTPS區塊鏈證據保全怎么操作以太坊最新價格行情mpt幣發行量tps幣圈

KuCoin
蔡維德:新型監管科技_區塊鏈:RAMP幣

黨中央高度重視區塊鏈技術的創新應用與發展。區塊鏈技術正在成為我國發展數字經濟,實現國家治理體系和治理能力現代化的重要支撐。全球范圍內區塊鏈應用探索進一步走深向實.

1900/1/1 0:00:00
Hasu 對話 Su Zhu:以太坊VS新公鏈 屠龍者正變成巨龍_以太坊:ROL

Su Zhu (現推特名 Zhu Su) ,三箭資本創始人,加密世界中最有權勢的男人之一,現在多了一個身份標簽,被Cryptobriefing評選為2021加密世界十大“惡棍”之首.

1900/1/1 0:00:00
一文揭秘2021年區塊鏈黑客攻擊頻發的原因_USD:DEFI

區塊鏈是一片鼓勵創新的熱土,在某種角度上因其安全風險也成為了滋生犯罪的溫床。當年眾籌超過1.5億美金的The DAO被黑客盜幣后,進行了硬分叉操作,由此產生了如今的以太坊.

1900/1/1 0:00:00
Web 3.0:一場危險的社會實驗_WEB:SDAO

一個集齊了區塊鏈、比特幣、NFT、元宇宙的大一統體系。你知道什么是Constitution DAO嗎?你聽說過Axie Infinity、ChainRoblox嗎?或許你對這些英文單詞還比較陌生.

1900/1/1 0:00:00
項目周刊|印尼央行考慮禁止比特幣支付_比特幣:元宇宙nft怎么賺錢

金色周刊是金色財經推出的一檔每周區塊鏈行業總結欄目,內容涵蓋一周重點新聞、行情與合約數據、礦業信息、項目動態、技術進展等行業動態。本文是項目周刊,帶您一覽本周主流項目以及明星項目的進展.

1900/1/1 0:00:00
分形式擴容:從 L2 到 L3_STA:ARK

摘要 遞歸證明為新穎的、令人驚喜的設計帶來了許多可能性引入 L3 概念,即在 L2 上遞歸構建的應用專用層 (application-specific layer)L3 為應用程序提供特定的服務.

1900/1/1 0:00:00
ads