作者:菠菜菠菜,web3caff
來源:@wzxznl,web3caff
原文標題:
《以太坊新分片方案Danksharding及EIP-4844萬字研報:全新公鏈敘事已來?白話解讀「區塊鏈不可能三角」的變革性解決方案》
擴容一直是以太坊繞不開的話題之一,以太坊要想成為真正的“世界計算機”需要同時具備可擴展性、安全性、去中心化,但同時具備這三個條件在行業中被稱為“區塊鏈不可能三角”,在整個行業中是一直沒有被解決的一個大難題。
但隨著2021年末以太坊研究員&開發者DankradFeist提出以太坊新分片方案Danksharding后,似乎給解決“區塊鏈不可能三角”帶來了一種變革性方案,甚至有可能改寫整個行業的游戲規則。
本份研報將嘗試用白話形式講清楚什么是以太坊的新分片方案Danksharding以及來龍去脈。關于為什么寫這份研報是因為關于Danksharding的中文文章十分少并且大多都需要較高的知識門檻,因此菠菜將嘗試為你掰開揉碎背后的復雜原理,通過用簡單的大白話去讓一個Web3初學者也可以看懂以太坊新分片方案Danksharding及其前置方案EIP-4844。
目錄
一、以太坊為什么需要擴容?
以太坊創始人VitalikButerin在2014年發表以太坊的白皮書“下一代智能合約和去中心化應用平臺”后,區塊鏈迎來了一個新的時代。智能合約的誕生使得人們可以在以太坊上創建去中心化的應用,也為區塊鏈的生態帶來了一系列創新如NFT、DeFi、GameFi等。
以太坊擴容背景
隨著以太坊鏈上生態日漸壯大,越來越多的人開始使用以太坊,以太坊的性能問題開始暴露出來。當許多人同時在以太坊上進行交互時,區塊鏈就會發生“擁堵”,就像一條馬路上的紅綠燈時間是固定的,在一定數量內的車輛不會導致堵車,但突然在高峰期的時候許多車都往這條馬路上開,綠燈時駛出馬路車輛的數量遠遠沒有新駛入這條馬路等待紅綠燈車輛的數量多,就會導致大擁堵,所有車輛通過這條馬路的時間就會被一直拉長,那么在區塊鏈中也是如此,所有人的交互請求確認時間都會被拉長。
但在區塊鏈中,被拉長的不只是時間,還會導致高昂的Gas費,因為礦工會優先處理出價最高的交易,這就會導致大家都去抬高Gas費去爭取更快的交互請求確認引發一場“GasWar”。比較有名的一次事件是2017年的一個NFT項目——CryptoKitties加密貓的爆紅將Gas費推至幾百美金一次交互,在以太坊上進行一次交互需要消耗幾十甚至上百刀的Gas費是多么昂貴的一個成本。
而導致如此昂貴Gas費的主要原因便是以太坊的性能已經無法滿足現有用戶的交互需求。在性能的計算上,以太坊與比特幣不同,比特幣由于只是單純的賬本處理轉賬信息,所以TPS是固定的每秒可以處理7筆交易,但在以太坊中不同。
以太坊由于智能合約的存在,每個交易的內容各不相同,所以每個區塊可以處理多少筆交易取決于一個區塊中包含的交易的數據量大小,每個交易的數據量大小都是根據實時需求決定的,關于以太坊性能的機制我們可以了解到:
→以太坊是按照Gas費來規定一個區塊的數據量上限的,一個區塊最高可以承載3000萬GAS的數據量
→以太坊不希望每個區塊的數據量都太大,所以每個區塊都有一個GasTarget為1500萬Gas的數據量
→以太坊有一套Gas的數據消耗標準,不同類型的數據消耗的Gas都是不一樣的,但根據菠菜的估算,每個區塊大概有5kb~160kb左右的大小,平均一個區塊是60~70kb左右的數據大小
→一個區塊的Gas消耗一旦超過了GasTarget也就是1500萬Gas,那么下一個區塊的基礎費用就會貴12.5%,如果低于的話就會降低基礎費用,這個機制是一個自動化的動態調節機制,可以在交易高峰時一直增加成本去緩解擁堵,同時在交易低迷時降低成本來吸引更多交易
Cardano提議進行硬分叉以增強擴展性:金色財經報道,Cardano的母公司IOHK表示,它正處于準備2月份代碼發布的最后階段,這是2022年升級核心網絡的三個主要代碼投放中的第一個。其他兩個主要的代碼投放預計將在6月和10月的硬分叉組合事件中進行。該公司表示,它打算在整個2022年推出一系列的擴展增強功能,這將集中在6月和10月的硬分叉組合器(HFC)事件。 在Cardano的背景下,硬分叉組合器的目的是允許多個協議的組合,而不需要重大改變。(U.today)[2022/3/1 13:30:32]
那么通過了解了以上機制我們可以得知,以太坊的TPS是浮動的。我們可以通過區塊鏈瀏覽器看到每個區塊的交易數量來算出大概的TPS,根據下圖可以看到,平均一個區塊按照剛好達到GasTarget來計算有160筆交易左右,最高的可以達到300筆交易以上。
按照每個區塊12秒的出塊時間TPS大概為13~30筆交易左右,但根據目前已知以太坊的TPS最高可以達到每秒45筆交易。
圖源:Mainnet|BeaconChainExplorer(Phase0)forEthereum2.0–BeaconScan
如果拿世界著名的交易系統VISA每秒可以處理幾萬筆交易的性能來說,想要成為“世界計算機”的以太坊每秒最多處理45筆交易的性能實在是太弱了。所以以太坊迫切需要擴容來解決性能問題,這關乎到以太坊的未來,但擴容并非一件易事,因為在區塊鏈行業中存在一個“不可能三角”。
什么是區塊鏈不可能三角?
“區塊鏈不可能三角”指的是一個公共區塊鏈無法同時滿足三個特性:去中心化、安全性、可擴展性。
去中心化:指的是節點的去中心化程度,節點越多越分散越去中心化
安全性:指的是整個區塊鏈網絡的安全,攻擊成本越高越安全
可擴展性:指的是區塊鏈的處理交易性能,每秒可處理交易越多越具備可擴展性
如果我們從這三點的重要性來看的話,我們會發現去中心化和安全性是權重最高的,去中心化是以太坊的基石,正是去中心化賦予了以太坊中立、抗審查、開放性、數據所有權和近乎牢不可破的安全性。而安全性的重要性自然不必解釋,但以太坊的愿景是在去中心化并且安全的前提下實現可擴展性,實現難度可想而知,所以這也被稱為“區塊鏈不可能三角”。
圖源:以太坊愿景|ethereum.org
目前以太坊的擴容解決方案有哪些?
我們知道了“區塊鏈不可能三角”中,以太坊要想實現擴容的前提必須是保證去中心化和安全性,要做到確保去中心化和安全性的話就必須在實現擴容中不能過多提高對節點的能力要求。
因為節點是維護整個以太坊網絡中必不可少的角色,高要求的節點會阻礙更多人成為節點越來越中心化,節點當然是門檻越低越好,低門檻節點會讓更多人參與進入讓以太坊更加去中心化和安全。
那么目前針對以太坊的擴容方案有兩種:Layer2和分片,Layer2是針對底層區塊鏈擴容的一種鏈下解決方案,原理是將區塊鏈上的請求放在鏈下執行。Layer2的方案有好幾種,本份研報只重點介紹一種Layer2方案那就是Rollup:Rollup原理是將數百筆交易在鏈下像攤煎餅一樣打包成一筆交易發送給以太坊來實現擴容,這樣每個人平攤下來上傳以太坊的費用就會很便宜,同時還可以繼承以太坊的安全性。
Rollup目前分為兩種類型:OptimismRollup和ZKRollup,這兩個Rollup的區別簡單來說OptimismRollup就是假設所有交易都是誠實可信的,把許多筆交易壓縮成一筆交易提交給以太坊,在提交后會有一段時間窗口,任何人都可以質疑發起挑戰來驗證交易的真實性,但用戶如果要將OPRollup上的ETH轉到以太坊上則需要等待挑戰期結束后才可以得到最終確認。
阿聯酋匯款平臺Al Fardan Exchange與Ripple Net建立合作伙伴關系:1月28日消息,阿拉伯聯合酋長國(UAE)的匯款平臺AlFardan Exchange已與Ripple達成合作,將使用Ripple基于區塊鏈的支付網絡RippleNet實時跨境匯款。同時AlFardan將加入區塊鏈全球金融云網絡Ripple Net Cloud。[2022/1/28 9:20:07]
ZKRollup則是通過生成一個零知識證明來證明所有交易都是有效的,并將所有交易執行后的最終狀態變化上傳至以太坊。相比OptimismRollup來說ZKRollup更有前景,ZKRollup不需要像OptimismRollup那樣上傳壓縮后的所有交易細節,只需要上傳一個零知識證明和最終的狀態變化的數據即可,意味著在可擴展性上可以比OPRollup壓縮更多的數據,并且也不需要像OPRollup那樣等待長達一周的挑戰期,但ZKRollup最大的缺點就是開發難度極大,所以短期來看OptimismRollup會占據L2大量的市場。
除了Layer2之外呢,還有一種擴容解決方案就是我們本文的主角分片,我們知道了Layer2是將以太坊上的交易放到鏈下去處理。但不管Layer2怎么去處理數據,以太坊本身的性能還是沒有變,那么Layer2能實現的擴容效果其實是沒有那么顯著的。
分片就是在以太坊這條Layer1的層面上去實現擴容,但我們知道在以太坊上實現擴容的前提是確保以太坊的去中心化和安全性,那么就不能去增加太多對節點的負擔。
關于分片的具體實現方案也一直是以太坊社區不斷討論的一個話題,目前最新的方案便是本文的主題Danksharding,那么也提到了Danksharding是最新的分片方案,在講Danksharding之前呢菠菜也會簡單介紹一下老的分片方案是什么樣的以及為什么不采納。
二、以太坊初始分片方案Sharding1.0
在講分片1.0方案之前,菠菜需要先介紹一下以太坊目前的POS共識機制是如何運行的,因為這是理解分片1.0方案和Danksharding的必備前置知識,在講分片1.0方案上會簡短概括。
以太坊的POS共識機制是如何運作的?
共識機制是使區塊鏈中所有維護網絡的節點達成一致的一套體系,其重要性不言而喻。以太坊在2022年9月15日完成了以太坊2.0升級階段中的“TheMerge”,即POW工作量證明的以太坊主網與POS權益證明機制的信標鏈進行了合并,POS權益證明機制正式取代了POW工作量證明機制成為了以太坊的共識機制。
我們知道在POW工作量證明機制中,礦工們是通過算力的堆疊來競爭出塊權,那么在POS權益證明機制中,礦工們則是通過質押32個ETH成為以太坊的驗證節點來競爭出塊權。
除了共識機制的變化,以太坊的出塊時間也由之前浮動的出塊時間變為了固定時間,分為插槽和周期兩個單位:Slot為12秒,Epoch為6.4分鐘。一個Epoch中包含了32個Slot,簡單來說就是12秒出一個塊,6.4分鐘出32個區塊為一個周期。
當礦工質押32個ETH成為驗證節點后,信標鏈就會通過隨機算法來選擇驗證節點作為出塊節點來打包區塊,每一個區塊都會隨機選擇一次出塊節點。同時在每一個周期Epoch中,信標鏈還會將所有的驗證節點平均并隨機分配給每個區塊一組由至少128個驗證節點組成的“委員會”。
也就是說每個區塊會被分配所有節點數量32分之1數量的驗證節點,這些驗證節點組成的“委員會”需要對每個區塊出塊節點打包的區塊進行驗證投票。當出塊節點打包區塊后,超過三分之二以上的驗證節點投票通過即可成功出塊。
初始分片方案Sharding1.0是什么樣的?
SingularityNET通過向Cardano遷移第二階段投票 將推出新代幣AGI-ADA:2月10日消息,區塊鏈人工智能(AI)平臺SingularityNET官方宣布已通過向Cardano遷移的第二階段治理投票。至此,SingularityNET將全力專注于向Cardano遷移的第二階段。具體內容有:1.從以太坊到轉向Cardano,以實現新的網絡功能;2.推出SingularityNET第2層網絡,推動代幣廣泛應用;3.推出新的AGI-ADA代幣。待遷移完成后,用戶將能夠在AGI ERC-20和AGI-ADA代幣之間來回交換。兩種代幣等值且可以一對一交換。(AMBCrypto)[2021/2/10 19:28:31]
在初始的分片方案Sharding1.0的設計理念中,以太坊從原本的一條主鏈被設計為了最多64條分片鏈,通過增加多條新鏈的方式來實現擴容。在這個方案中,每條分片鏈負責處理以太坊的數據并交給信標鏈,信標鏈則負責整個以太坊的協調,每一條分片鏈的出塊節點和委員會都是由信標鏈來隨機分配。
信標鏈和分片鏈之間通過交聯(crosslinks)來進行實現鏈接,信標鏈的區塊會給同區塊的分片區塊一個哈希值,然后這個分片區塊帶著這個哈希值給到下一個信標區塊就可以實現交聯(crosslinks)了,如果錯過了的話則給到下一個信標區塊即可。
初始分片方案Sharding1.0方案存在哪些弊端?
簡單來說分片1.0的方案就是把以太坊切割成很多條分片鏈來一起處理數據然后將數據交給信標鏈來達到擴容,但這個方案存在許多弊端:
開發困難:把以太坊分割成64條分片鏈的同時還要確保可以正常運行,在技術上要實現十分困難,并且越是復雜的系統越容易出現一些不可預料的漏洞,一旦出現問題要進行修復的話也會帶來許多麻煩。
數據同步問題:信標鏈每一個周期Epoch就會重新打亂一次負責驗證的“委員會(committees)”,那么每次重新分配驗證節點就是一次大規模網絡的數據同步,因為如果被節點分配到了一條新的分片鏈就需要同步這條分片鏈的數據,由于節點的性能帶寬各不相同,很難能保證在規定時間內完成同步。但如果讓節點直接同步所有分片鏈的數據的話,就會大大的增加對節點的負擔,這就會使得以太坊越來越中心化。
數據量增長問題:雖然以太坊的處理速度提高了許多,但多條分片鏈同時處理數據也帶來了存儲數據量的大量增長,以太坊數據量的膨脹速度將會是之前的許多倍,對于節點的存儲性能要求也會持續增加,從而導致更加中心化。
無法解決MEV問題:最大可提取價值(MEV)是指通過在區塊中添加和排除交易并更改區塊中的交易順序,可以從區塊生產中提取的超過標準區塊獎勵和燃料費用的最大值。在以太坊中一個交易發起后,這筆交易會被放在mempool中等待被礦工打包,那么礦工就可以看到mempool中的所有交易,而礦工的權利是很大的,礦工掌握了交易的包含、排除和順序。
如果有人通過支付更多的Gas費賄賂礦工調整了交易池中的交易順序而獲利,這就屬于一種最大可提取價值MEV。
舉個例子:
→有一種MEV手段叫「三明治攻擊」或「夾子攻擊」,這種提取MEV的手段是通過在鏈上監控大額的DEX交易,比如有人想在Uniswap上購買價值100萬美金的山寨幣,而這一筆交易會將這個山寨幣的價格拉高很多,在這筆交易被放入mempool的時候,監控機器人就可以檢測到這一筆交易,這時機器人就賄賂打包這個區塊的礦工將一筆買入這個山寨幣的操作插隊在這個人前面,隨后在這個人的購買操作之后進行一個賣出的操作,就像一個三明治一樣把這個進行大額DEX交易的人夾在中間,這樣發動「三明治攻擊」的人就從中獲取了山寨幣因為這個人大額交易拉盤的利潤,而大額交易的這個人則造成了損失。
聲音 | Dan Held:比特幣獲得主流認可將導致更全面監管:Kraken業務開發總監Dan Held在采訪中表示,比特幣獲得了更多主流認可,隨著用戶基數的不斷增長,監管機構也將考慮到加密貨幣的普及程度。在這種情況下,更多的采用會導致更全面的監管和合規基礎設施,從而消除阻礙和不確定性。(AMBCrypto)[2020/2/27]
MEV的存在也一直給以太坊帶來一些負面的影響,比如「三明治攻擊」給用戶帶來的損失和更差的用戶體驗、搶跑者競爭導致的網絡擁堵、高Gas費甚至是節點中心化問題,因為通過獲取MEV價值越多的節點可以通過收益不斷在網絡中占據更多的份額,因為更多收益=更多的ETH=更多的質押權益,再加上MEV帶來的高昂成本會使得以太坊的用戶不斷流失,甚至如果MEV價值大幅超過了區塊獎勵還會造成整個以太坊的共識不穩定和安全性,而分片1.0方案無法解決MEV帶來的一系列問題。
隨著2021年末以太坊研究員&開發者DankradFeist提出以太坊新分片方案Danksharding后,Danksharding被以太坊社區一致認為是實現分片擴容的最佳方案,甚至可能會給以太坊帶來一場全新的革命。
三、什么是以太坊新分片方案Danksharding?
Danksharding使用了一套新的分片思路去解決以太坊的擴容問題,即圍繞著Layer2的Rollup進行擴容的分片方案,這套新的分片方案可以在不大量增加節點負擔且保證去中心化和安全性的同時解決可擴展性問題,同時也解決了MEV帶來的負面影響。
我們可以從下圖看到接下來的以太坊升級階段”TheSurge“和”TheScourge“的目標分別為:在Rollup中實現10萬+的TPS和避免MEV帶來的中心化以及其他協議上的風險。
圖/來源:vitalik.eth翻譯:ethereum.cn
那么Danksharding到底是如何去解決以太坊的擴容問題的呢?讓我們先從Danksharding的前置方案EIP-4844:Proto-Danksharding開始講起。
前置方案EIP-4844:Proto-Danksharding—新的交易類型Blob
EIP-4844給以太坊引入了一種新的交易類型—BlobTranscation,這種新的交易類型Blob可以為以太坊提供了一個額外的外掛數據庫:
一個Blob的大小約為128KB
一個交易可以最多攜帶兩個Blob-256KB
每一個區塊的TargetBlob為8個-1MB,最大可承載16個Blob-2MB
Blob的數據是臨時存儲的,一段時間后會被清除
目前以太坊每個區塊平均大小只有85KB左右,Blob給以太坊帶來的額外存儲空間是巨大的,要知道以太坊所有賬本的總數據量大小從以太坊誕生至今也只有大約1TB左右,而Blob每年可以為以太坊帶來2.5TB~5TB的額外數據量,是整個以太坊賬本數據量的好幾倍。
EIP-4844引入的Blob交易可以說是為Rollup量身定制的,Rollup的數據以Blob的形式上傳至以太坊,額外的數據空間可以使Rollup實現更高的TPS和更低的成本,同時也將原本Rollup占據的區塊空間釋放給了更多用戶。
由于Blob的數據是臨時存儲的,數據量的暴增并不會對節點的存儲性能造成越來越重的負擔,如果只是臨時存儲一個月的Blob數據量的話,從同步的數據量來看每一個區塊節點需要多下載1MB~2MB的數據量,對于節點的帶寬要求來說似乎不是什么負擔。那么從數據的存儲量來看,對于節點來說只需要多下載并保存固定的200~400GB左右的數據量,在保證去中心化和安全性的同時只付出了增加一點點節點負擔的代價的情況下,換來的TPS的提高和成本的降低則是以數十甚至上百倍來計算的,這對于解決以太坊的可擴展性問題來說簡直是絕佳的方案。
動態 | Cardano推出兩個版本的Jormungandr節點 對相關問題進行修復:Cardano Shelley激勵測試網產品經理近日談及Cardano生態系統進展時透露,本周已推出Jormungandr節點的0.8.8和0.8.9兩個版本。0.8.8版本專注于對日志記錄自舉進行較小的改進,并為CPU /鎖定問題提供了一些臨時的安全修復程序;0.8.9版本則對0.8.8版本于測試期間發現的問題進行修復。[2020/2/2]
如果數據被清除了用戶想訪問以前的數據怎么辦?
首先以太坊共識協議的目的不是為了保證所有歷史數據的永遠存儲。相反,其目的是提供一個高度安全的實時公告板,并為其他去中心化協議留出長期存儲空間。而公告板的存在是為了確保在公告板上發布的數據有足夠長的時間停留,任何想要這些數據的用戶或者協議,都有足夠的時間來抓取數據這些數據并進行保存,所以保存這些Blob數據的職責就交給了其他角色比如Layer2的項目方、去中心化存儲協議等。
Danksharding—完整擴容方案
EIP-4844實現了以太坊圍繞Rollup進行擴容的第一步,但對于以太坊來說EIP-4844達到的擴容效果是遠遠不夠的。完整的Danksharding方案將Blob可以承載的數據量從每個區塊1~2MB進一步擴充至16MB~32MB,并且提出了新的機制出塊者-打包者分離去解決MEV帶來的問題。
那么我們需要知道要在EIP-4844的基礎上繼續進行擴容會存在哪些難題:
節點負擔過大:我們知道EIP-4844中只有1~2MB大小的Blob對節點增加的負擔是完全可以接受的,但如果將Blob的數據量擴大16倍至16~32MB的話,不管是在數據同步還是數據存儲上的負擔都會使得節點的負擔過大從而以太坊的去中心化程度降低。
數據可用性問題:如果節點不去下載全部的Blob數據,就會面臨數據可用性問題,因為數據不在鏈上開放且隨時可訪問,比如以太坊節點對OptimismRollup上的某筆交易存疑想發起挑戰,但OptimismRollup不交出這段數據,那么拿不到原始數據就無法證明這個交易是有問題的,所以要解決數據可用性問題就必須確保數據是隨時開放且可訪問。
那么Danksharding是如何解決這些問題的呢?
數據可用性采樣
Danksharding提出了一個方案—數據可用性采樣來實現降低節點負擔的同時也保證了數據可用性。
數據可用性采樣的思想是將Blob中的數據切割成數據碎片,并且讓節點由下載Blob數據轉變為隨機抽查Blob數據碎片,讓Blob的數據碎片分散在以太坊的每個節點中,但是完整的Blob數據卻保存在整個以太坊賬本中,前提是節點需要足夠多且去中心化。
舉個例子:比如Blob的數據被切割成了10個碎片,全網有100個節點,每個節點都會隨機抽查下載一個數據碎片并且將抽查的碎片編號提交到區塊中,只要一個區塊中可以湊齊所有編號的碎片,那么以太坊就會默認這個Blob的數據是可用的,只要將碎片拼湊起來就可以還原出原始數據。但也會有極低的概率出現100個節點都沒有抽到某一個編號的碎片的情況,這樣數據就會缺失,在一定程度上降低了安全性,但在概率上是可以接受的。
Danksharding為了實現數據可用性采樣采用了兩個技術:糾刪碼和KZG多項式承諾
糾刪碼
糾刪碼是一種編碼容錯技術,使用糾刪碼切割數據可以使得所有以太坊節點在只擁有50%以上數據碎片的情況下就可以還原出原始數據,這樣就大大減少了數據缺失的概率,具體的實現原理會比較復雜,這里用一個數學公式來舉例子大概解釋一下原理:
→首先構造一個函數f(x)=ax+b,隨便取4個x值
→設m=f(0)=b、n=f(1)=a+b,可以得出a=n–b、b=m
→再設p=f(2)、q=f(3),可以得出?p=2a+b=2n–m,q=3a+b=3n–2m
→然后m、n、p、q四個碎片分散在全網的節點中
→根據數學公式,我們只需要找到其中兩個碎片就可以算出另外兩個碎片是什么
→如果找到n和m,直接可以算出q=3n-2m和p=2n-m
→如果找到q和p,可以將-得出2p-q=n然后就可以直接算出m了
簡單來說就是糾刪碼利用數學原理將Blob數據切割成很多個數據碎片,以太坊的節點不需要收集所有的數據碎片,只需要收集50%以上的碎片就可以還原出Blob的原始數據,這樣極大的降低了碎片收集不夠的概率,其概率可以忽略不計。
KZG多項式承諾
KZG多項式承諾是一種密碼學技術,用來解決糾刪碼的數據完整性問題。由于節點只抽查被糾刪碼進行切割后的數據碎片,節點并不知道這個數據碎片是不是真的來源于Blob的原始數據,所以負責編碼的角色還需要生成一個KZG多項式承諾來證明這個糾刪碼的數據碎片確實是原始數據中的一部分,KZG的作用有點類似于默克爾樹但形狀不同,KZG所有的證明都在同一個多項式上。
Danksharding通過糾刪碼和KZG多項式承諾實現了數據可用性采樣使得在Blob額外攜帶數據量擴充至16MB~32MB的情況下大幅的降低了節點的負擔,目前以太坊社區還提出了一種叫2DKZGscheme的方案去進一步切割數據碎片降低帶寬和計算量的要求,但最終具體使用的算法社區仍在熱烈討論中,包括DAS的設計上也在不斷地優化完善。
對于以太坊來說數據可用性采樣解決了實現Blob數據量16MB~32MB擴容的同時降低了節點的負擔,但似乎還存在一個問題:誰來對原始數據進行編碼?
如果要對Blob原始數據進行編碼的話前提是進行編碼的節點手里必須有完整的原始數據,要做到這一點的話就會對節點有較高的要求。那么菠菜之前提到,Danksharding提出了一個新的機制**出塊者-打包者分離**去解決MEV帶來的問題,那么其實這個方案在解決MEV問題的同時,其實也解決了編碼的問題。
提議者-打包者分離
首先我們知道數據可用性采樣降低了節點驗證Blob的負擔,實現了低配置和去中心化的驗證,但創建這個區塊的話就需要去擁有完整的Blob數據并進行編碼處理,這提高了許多對以太坊全節點的要求,提議者-打包者分離則提出將節點分為打包者和提議者兩個角色,性能高的節點可以成為打包者,而性能低的節點則成為提議者。
目前以太坊的節點分為兩種:全節點和輕節點。全節點需要同步以太坊上所有的數據比如交易列表和區塊Body等,全節點擔任著區塊打包和驗證出塊兩個角色。由于全節點可以看見區塊內所有的信息,所以全節點可以對區塊的交易進行重新順序或添加刪除來獲取MEV價值。輕節點則不需要同步所有的數據,只需要同步區塊頭負責驗證出塊即可。
在實現提議者-打包者分離之后:
→性能配置高的節點可以成為打包者,打包者只需要負責下載Blob數據進行編碼并創建區塊,然后廣播給其他的節點來進行抽查,對于打包者來說,因為同步數據量和帶寬要求較高,所以會相對中心化。
→性能配置較低的節點可以成為提議者,提議者只需要驗證數據的有效性并創建和廣播區塊頭,但對于提議者來說,同步數據量和帶寬要求較低,所以會去中心化。
PBS通過將打包和驗證的角色進行分離實現了節點的工作分工,讓性能配置高的節點負責下載全部數據進行編碼分發,讓性能配置低的節點來負責抽查驗證,那么MEV問題是如何解決的呢?
抗審查清單
由于PBS分離了打包和驗證的工作,所以對于打包者來說其實是擁有了更大的審查交易的能力,打包者可以故意忽略掉某些交易并且隨意排序并插入自己想插入的交易去獲取MEV,但抗審查清單解決了這些問題。
抗審查清單的機制:
→在打包者打包區塊交易之前,提議者會先公布一個抗審查清單,這個crList中包含著mempool中的所有交易
→打包者只能選擇打包并對crList里的交易進行排序,這意味著打包者不能插入自己的私有交易去獲取MEV,也不能去故意拒絕某個交易
→打包者打包好之后將最終版本的交易列表Hash廣播給提議者,提議者選擇其中一個交易列表生成區塊頭并廣播
→節點同步數據時會從提議者那獲取區塊頭,然后從打包者那獲取區塊Body,確保區塊Body是最終選擇的版本
通過抗審查清單解決了像「三明治攻擊」這種MEV帶來的負面影響,節點無法再通過插入私有交易來獲取類似的MEV。
以太坊關于PBS具體的實現方案仍在探討中,目前可能初步實現的方案為雙槽PBS。
雙槽PBS
雙槽PBS采用競標的模式來決定出塊:
1、打包者拿到crList后創建交易列表的區塊頭并出價
2、提議者選擇最終競標成功的區塊頭和打包者,提議者無條件獲得中標費
3、驗證委員會確認中標的區塊頭
4、打包者披露中標的區塊Body
5、驗證委員會確認中標的區塊Body并進行驗證投票
雖然打包者仍然可以通過調整交易順序來獲取MEV,但雙槽PBS的競標機制使得這些打包者之間開始“內卷”。在大家都要出價競爭出塊的情況下,中心化的打包者們通過MEV獲取的利潤就會被不斷擠壓,最終的利潤則會分配給去中心化的提議者們,這解決了中心化的打包者通過獲取MEV越來越中心化的問題。
但雙槽PBS有一個設計缺陷:我們看這個設計的名字中有“雙槽”,就是有兩個插槽slot,這意味著在這個方案中進行一次有效的出塊時間被延長至了24秒,如何解決這個問題以太坊社區也一直在熱烈討論中。
總結
Danksharding為以太坊解決“區塊鏈不可能三角”提供了一種變革性的解決方案,即在確保以太坊去中心化和安全性的同時實現可擴展性:
通過前置方案EIP-4844:Proto-Danksharding引入了新的交易類型Blob,Blob攜帶的1MB~2MB額外數據量可以幫助以太坊在Rollup上實現更高的TPS和更低的成本
通過糾刪碼和KZG多項式承諾實現了數據可用性采樣,讓節點只需要抽查部分數據碎片即可驗證數據的可用性并降低了節點的負擔
通過實現了數據可用性采樣,Blob的額外數據量擴充至16MB~32MB,讓擴容效果更上一層樓
通過提議者-打包者分離將驗證-打包區塊的工作分離為兩個節點角色,實現了打包節點偏去中心化、驗證節點去中心化
通過抗審查清單和雙槽PBS極大降低了MEV帶來的負面影響問題,打包者無法插入私有交易或審查某一筆交易
如果不出意外的話Danksharding的前置方案EIP-4844將會在以太坊上海升級之后的坎昆升級中正式落地,在EIP-4844方案落地實現后最直接的利好便是Layer2中的Rollup以及Rollup上的生態。更高的TPS和更低的成本十分適合鏈上的高頻應用,我們不妨想象可能會誕生出一些“殺手級應用”。
Danksharding實現的中心化出塊+去中心化驗證+抗審查將會給以太坊帶來一輪全新的公鏈敘事,除了Layer2之外,模塊化區塊鏈與Danksharding后的以太坊又會碰撞出什么樣的化學反應呢?
菠菜相信Danksharding的落地將會改寫整個游戲規則,以太坊將會引領區塊鏈行業走向一個新的時代!
參考文獻
DataAvailability,區塊鏈的存儲擴容
一文讀懂以太坊新升級方案Danksharding
Proto-DankshardingFAQ–HackMD
V神科普的「Danksharding」到底是什么?
V神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠
BuidlerDAO文章:如何在錢包被盜后從黑客手里搶救NFT?
歷史重演?詳解以太坊2.0與硬分叉
文:蘇子華 “Web3和區塊鏈不是等號。”DraperDragon合伙人王岳華對36氪表示。DraperDragon成立于2006年,是一家活躍于中美的風險投資基金,投資領域涵蓋智能制造、生物醫.
1900/1/1 0:00:00本文是@Jesse_meta基于李國權教授在新躍社科大學DBAC論壇主題演講的文字實錄。 互聯網的演變促進了新的平臺創造,每個平臺都有自己的特征.
1900/1/1 0:00:00摘要:本文分類并詳細介紹了zeeprime投資組合中的web3中間件們,其分類包括:存儲/數據,數據模型和有效性,索引器,訪問控制,和集成平臺.
1900/1/1 0:00:00撰寫:Minty 別人FOMO,我不追,在低洼地尋找寶藏項目。當Crypto中的所有東西都暴漲時,我們很難判斷應該關注哪些低市值代幣.
1900/1/1 0:00:00原文作者:GuyWuollet,a16zCrypto原文編譯:angelilu,ForesightNewsa16z的Web3初創者加速器計劃「CryptoStartupSchool」將于2023.
1900/1/1 0:00:00在“第三屆元宇宙教育前沿峰會”上,元宇宙教育實驗室學術委員會主任、著名經濟學家、橫琴數鏈數字金融研究院學術與技術委員會主席朱嘉明以《科技狂飆突進時代和教育元宇宙——基于2022年的實證性觀察和思.
1900/1/1 0:00:00