主要觀點
以太坊是唯一一個旨在建立可擴展、并將結算和數據可用性層統一的主要協議。
Rollups在利用以太坊安全性的同時擴展了計算能力。
所有的道路最終都通向中心化生成區塊、去中心化和無需信任的區塊驗證以及抗審查。
諸如出塊者-區塊打包者分離和弱無狀態等創新,形成了權力分離,以實現在不犧牲安全性或去中心化情況下的可擴展性。
MEV現在處于核心重要位置——許多設計都是為了減輕其危害和防止其中心化傾向。
Danksharding結合了多種前沿研究途徑,為以太坊以rollup為中心的路線圖提供所需的可擴展基礎層。
我確實期待Danksharding在我們的有生之年得以實現。
引言
自從Vitalik說今天出生的人有50-75%的機會活到3000年,而他希望能長生不老,我就對合并的時機持懷疑態度。但管他呢,讓我們找點樂子,向前看看以太坊雄心勃勃的路線圖吧。
這不是一篇速成文。如果你想對以太坊雄心勃勃的路線圖有一個廣泛而細微的了解,請給我一個小時的時間,我將為你節省幾個月的工作量。
以太坊的研究有很多值得關注的地方,但所有的一切最終都會編織成一個總目標——不犧牲去中心化驗證的可擴展計算。
盡管在區塊鏈中字母"C"是可怕的,但Vitalik仍在其著名的《Endgame》一文中承認,需要一些中心化來進行擴展。我們只是需要通過去中心化和無需信任的驗證來控制這種中心化的權力,沒有任何妥協可言。
特定的行為主體將為L1和基于L1的東西構建區塊。以太坊通過簡單的去中心化驗證保持了令人難以置信的安全性,而rollups則從L1繼承其安全性。以太坊同時提供了結算和數據可用性,以允許rollup擴展。這篇文章中的所有研究最終都是為了優化結算和數據可用性這兩個角色,同時使得完全驗證一條區塊鏈比以往更容易。
第一部分:通往Danksharding之路
希望你聽說過以太坊已經轉向以rollup為中心的路線圖,它不再有執行分片,而是將為需要大量數據的rollup進行優化。這將通過以太坊計劃的數據分片或Celestia計劃的大區塊來實現。
共識層不解釋分片數據,它只有一個任務,即確保數據可用性。
接下來我將假設你熟悉一些基本概念,如rollup、欺詐證明、零知識證明,以及假設你明白為什么數據可用性這么重要。
Lemon Cash將允許用戶使用巴西雷亞爾交易比特幣和以太坊:3月16日消息,阿根廷加密交易所LemonCash周一推出測試版,計劃將業務拓展至巴西,它將允許1萬名用戶通過巴西央行推出的實時零售支付系統Pix,使用巴西通用貨幣(法幣)雷亞爾購買和出售比特幣和以太坊。(CoinDesk)[2022/3/16 14:00:50]
最初的數據分片設計——獨立的出塊者
該部分描述的設計已經不復存在,但仍是有價值的內容。為了簡單起見,將其稱為"分片1.0"。
64個分片區塊中的每一個都有各自獨立的出塊者和委員會,它們在驗證者集中被輪換分配到每個分片區塊,他們各自驗證自己的分片數據是可用的,所以最初這依賴于每個分片驗證者集中的誠實多數完整地下載數據,并不是現在使用的數據可用性抽樣。
最初的設計帶來了不必要的復雜性、更糟糕的用戶體驗和攻擊方法,且在分片之間重排驗證者是非常麻煩的。
如果不引入非常緊密的同步假設,就很難保證投票將在單個時間槽內完成。信標區塊的出塊者需要收集所有獨立委員會的投票,而這可能會有延遲。
有別于分片1.0,Danksharding則完全不同。驗證者進行數據可用性抽樣以確認所有的數據都是可用的——一個專用的創建者用信標區塊創建一個大區塊,并將所有分片數據一起確認。因此,出塊者-區塊打包者分離是Danksharding保持去中心化的必要條件。
數據可用性采樣
Rollups會發布大量的數據,但我們不希望它給節點帶來下載所有數據的負擔。高資源需求會損害去中心化。
然而,數據可用性采樣允許節點在無需要下載所有這些數據的情況下,輕松、安全地驗證它們都是可用的。
樸素的解決方案:從區塊中檢查出一堆隨機的數據塊。如果這些塊都沒有什么問題,就可以簽出。但是,如果你錯過了將你所有的ETH交給Sifu的那筆交易呢?如此資金就不再是安全的了。
聰明的解決方案:先對數據進行糾刪編碼,使用Reed-Solomon代碼擴展數據,即數據被插值為多項式,然后在其它的一些位置求值。這很拗口,所以讓我們來解讀一下。
首先上一堂簡單的數學課:
多項式是任何有限數量的
以太坊Layer 2上總鎖倉量超10億美元:9月6日消息,據L2Beat數據顯示,以太坊Layer2上總鎖倉量超10億美元,當前鎖倉量為10.02億美元。其中,dYdX鎖倉量為2.85億美元,Nahmii1.0鎖倉量為1.59億美元,Optimism鎖倉量為1.57億美元。此外,基于ZK-rollup的協議總鎖倉量為5.4756億美元,占Layer2總鎖倉量的54.5%。[2021/9/6 23:04:42]
形式的項的求和表達式,其階是最高的指數,例如
。是一個三階的多項式。你可以基于任意包含d+1個坐標的多項式來重構任意的d階多項式。
舉個具體的例子:我們有四個數據塊(
到
),這些數據塊可以被映射到多項式f(X)在給定點的值上,例如f(0)=
,現在你找到了貫穿這些值的最小階多項式,也就是說基于這四個塊我們可以得到三階多項式。然后,我們可以通過再增加位于同一個多項式上的另外四個值(
到
)來擴展該數據。
多項式的關鍵屬性是我們可以通過任意四個點重構它,但不局限于我們最初使用的四個數據塊。
現在讓我們回到數據可用性抽樣——我們只需要確定被糾刪編碼的數據有任意的50%是可用的,如此即可重構整個區塊。
正因如此,攻擊者必須隱藏超過50%的區塊才能成功地欺騙數據可用性抽樣節點,使其認為數據是可用的,但實際上并不是。
以太坊未確認交易為176,936筆:金色財經消息,據OKLink數據顯示,以太坊未確認交易176,936筆,當前全網算力為610.50TH/s,全網難度為8.16P,當前持幣地址為61,542,515個,同比增加109,130個,24h鏈上交易量為1,713,892.44ETH,當前平均出塊時間為13s。[2021/8/28 22:43:37]
在多次成功的隨機采樣之后,數據可用性<50%的概率是非常小的。如果我們成功采樣被糾刪編碼的數據30次,可用性<50%的概率是
KZG承諾
現在我們已經做了一堆數據可用性隨機采樣,且這些數據都是可用的。但還有一個問題——數據是否被正確的糾刪編碼?不然有可能區塊生成者在擴展區塊時只是添加了50%的無用數據,那我們的采樣就是毫無意義的。在這種情況下,我們無法重構數據。
通常,我們只是通過使用Merkle根來承諾大量的數據,這對于證明在一個集合內包含一些數據來說是非常高效的。
但我們還需要知道的是,所有的原始數據和擴展數據都位于同一個低階多項式上,而Merkle根不能證明這一點。所以如果使用Merkle根方案,就還需要欺詐證明,以防出現錯誤的驗證。
開發人員正從兩個方向來處理這個問題:
Celestia走的是欺詐證明路線。該路線需要有人觀察,如果區塊被錯誤地糾刪編碼,這些人會提交一個欺詐證明來提醒大家。這需要標準的誠實少數假設和同步假設。
以太坊和PolygonAvail正在走一條新路線——KZG承諾,它移除了欺詐證明安全性對誠實少數和同步假設的需要。
當然也存在其它的解決方案,但它們并沒有被積極的使用。例如,可以使用零知識證明,但目前在計算上零知識證明是不切實際的,然而它有望在未來幾年內取得極大的改善,所以以太坊很可能會在未來轉向STARKs,因為KZG承諾不具備抗量子計算攻擊的能力。
回到KZG承諾,它們是一種多項式承諾方案。
承諾方案只是一種可證明承諾某些值的加密方式。最好的比喻是把一封信放在一個上了鎖的盒子里,然后把它遞給別人。這封信一旦放進去就不會發生改變,但可以用鑰匙打開并證明確實有這樣的一封信。你對這封信作出承諾,而鑰匙就是證明。
在我們的案例中,我們將所有的原始數據和擴展數據映射到一個X,Y網格上,然后找到貫穿它們的最小階多項式。該多項式即是證明者要承諾的:
以太坊重回2000美元/枚上方:加密貨幣以太坊重回2000美元/枚上方,日內跌幅收窄至10.3%。[2021/6/22 23:54:57]
以下是主要要點:
我們有一個"多項式"?f(X)
證明者對該多項式做出"承諾"?C(f)?
這依賴于具有可信設置的橢圓曲線密碼學
對于這個多項式的任意"值"?y=f(z),證明者可以計算出一個"證明"?π(f,z)
給出承諾C(f),證明π(f,z),任意位置z,以及多項式在z處的值y,驗證者可以證實的確f(z)=y
也就是說,證明者將這些零散的信息交給任意驗證者,該驗證者可以證實某個點的值正確地位于被承諾的多項式上
這就證明了原始數據被正確地擴展了,因為所有的值都位于同一個多項式上
注意,驗證者不需要多項式f(X)
重要屬性——有O(1)的承諾大小,O(1)的證明大小,以及O(1)的驗證時間。即使對證明者來說,承諾和證明生成也只是O(d)的。
也就是說,即使n增加,承諾和證明的大小也保持不變,驗證需要的工作量也是恒定的
承諾C(f)和證明π(f,z)都只是配對友好曲線上的一個橢圓曲線元素。在這種情況下,它們各自只有48字節
因此,證明者承諾的大量原始和擴展數據仍然只有48字節,而證明也將只有48字節
總而言之,是高度可擴展
KZG根將類似于Merkle根:
原始數據是多項式f(X)在f(0)到f(3)位置的值,然后我們通過在f(4)到f(7)位置計算出多項式的值以擴展它。所有的點f(0)到f(7)都保證是在同一個多項式上。
總之,數據可用性抽樣允許我們檢查被糾刪編碼的數據是可用的。KZG承諾向我們證明了原始數據被正確地擴展,并承諾所有多項式上的數據。
好了,今天的代數就講到這里。
KZG承諾vs.欺詐證明
我們已經了解了KZG的工作原理,現在來比較一下這兩種方法。
分析 | 以太坊市值進入偏低區間:據 TokenGazer 官網量化模型顯示,當前以太坊市值為 $27,914.8 M,低于 TokenGazer 對于以太坊$29,870.8M ~ $111,230.6M 的估值間。[2019/6/3]
KZG的缺點是它不是抗量子的,且需要一個可信設置。這些并不令人擔憂,因為STARKs提供了一個抗量子的替代方案,而可信設置只需要一個誠實的參與者。
KZG相較欺詐證明場景的優勢是其延遲更低,而且它在沒有引入欺詐證明中固有的同步假設和誠實少數假設的情況下,確保了可以適當的進行糾刪編碼。
然而,考慮到以太坊仍然會在區塊重構中再次引入這些假設,所以實際上并沒有消除這些假設帶來的影響。數據可用性層,總是需要為區塊最初可用但隨后因節點需要相互通信而將區塊重新構建起來的情況進行規劃。這種重構需要兩個假設:
有足夠多的節點對數據進行采樣,以至于它們共同擁有足夠多的數據可以拼湊起來。這是一個相當弱的、不可避免的誠實少數假設,所以不是什么大問題。?
重新引入同步假設,使節點能在一定時間內進行通信,以便將這些數據重新組合起來。
以太坊驗證者在原始的Danksharding方案中需要完整地下載分片二進制數據塊,而在Danksharding中它們只會進行數據可用性抽樣,Celestia則要求驗證者下載整個區塊。
需要注意的是,在任何一種情況下重構都需要同步假設。如果區塊僅部分可用,則全節點必須與其它節點進行通信以將區塊拼湊出來。
如果Celestia想從要求驗證者下載全部的數據轉變為只執行數據可用性抽樣,那么KZG的延遲優勢就會顯現出來。然后他們也需要實現KZG承諾,因為等待欺詐證明意味著將顯著增加區塊間隔,并且意味著驗證者投票給編碼錯誤區塊的危險性將特別高。
為深入探討KZG承諾的工作原理,我推薦下以下閱讀內容:
橢圓曲線密碼學入門
探索橢圓曲線配對——Vitalik?
KZG多項式承諾——Dankrad?
可信設置是如何工作的——Vitalik?
協議內出塊者-區塊打包者分離
出塊者-區塊打包者分離(PBS:Proposer-BuilderSeparation)
今天的共識節點和合并后的共識節點擔任兩個角色:他們構建區塊,然后將區塊提交給將驗證區塊的共識節點。礦工在前一個區塊上構建以進行"投票",合并之后,驗證者將直接投票決定區塊是否有效。
PBS將這個過程拆分,它明確地創建了一個新的協議內區塊打包者角色。特定的區塊打包者把區塊放在一起,并投標出塊者選擇他們的區塊。這對抗了MEV的中心化力量。
回顧Vitalik的《Endgame》——所有的道路都通向基于無需信任和去中心化驗證的中心化區塊生成。PBS對此進行了編碼。我們需要一個誠實的區塊打包者來為網絡的活性和抗審查服務,驗證者集需要誠實多數假設。PBS使出塊者的角色盡可能簡單,以支持驗證者的去中心化。
區塊打包者獲得優先的費用小費,并且可以提取任何MEV。在一個有效的市場中,有競爭力的區塊打包者會出價到他們能從區塊中提取的全部價值。所有的這些價值都會滲透到去中心化的驗證者集——這正是我們想要的。
確切的PBS實現仍在討論中,但雙槽PBS可能看起來像這樣:
區塊打包者對區塊頭和他的出價一起進行承諾
信標區塊出塊者選擇獲勝的區塊頭和投標,并將無條件得到中標費,即使區塊打包者未能生成區塊體。
證人委員會確認獲勝的區塊頭
區塊打包者披露獲勝的區塊體
不同的認證人委員會選出獲勝的區塊體(如果中標的區塊打包者不出示區塊體,則投票證明該區塊體不存在)
使用標準RANDAO機制從驗證人集中選出出塊者,然后使用一個可以確保在區塊頭被委員會確認之前不會披露完整區塊體的承諾-披露方案。
承諾-披露方案效率更高,且還可以防止MEV盜取。如果區塊打包者提交它們的完整區塊,則另一個區塊打包者可以觀察到并找出策略與之合并,進而迅速發布一個更好的區塊。此外復雜的出塊者可以檢查并復制使用的MEV策略,而無需補償對區塊打包者。如果這種MEV盜取行為成為一種均衡,那么它將激勵區塊打包者和出塊者合并。這就是為什么我們要用承諾-披露方案來避免這種情況。
在出塊者選擇了獲勝的區塊頭后,委員會對其進行確認,并將其固定在在分岔選擇規則中。然后獲勝的區塊打包者會公布它們獲勝了的完整的"區塊打包者區塊"體。如若公布即及時,下一屆委員會將會對該"區塊打包者區塊"體進行認證;如若公布不及時,區塊打包者仍需向出塊者支付全額標價。這種無條件的支付不再需要出塊者信任區塊打包者。
延時是這種"雙槽"設計的缺點。合并后的區塊將有一個固定的12秒,所以如果我們在這里不想引入任何新的假設,那么我就需要一個24秒的完整區塊時間。每槽8秒似乎是一個安全的妥協,不過研究正在進行中。
抗審查清單
不幸的是,PBS增強了區塊打包者審查交易的能力。也許區塊打包者只是不喜歡你,所以他們忽略你的交易;也許他們的工作能力很強,以至于其它打包者都放棄工作了;也可能他們會對區塊漫天要價,只是因為真的很不喜歡你。
抗審查清單對以上這些權力進行檢查。具體的實現方式仍然是一個開放的設計空間,不過"混合PBS"似乎是最受歡迎的,即出塊者指定一個它們在存儲池中看到的所有符合條件的交易列表,區塊打包者將強制包含它們:
出塊者發布一個抗審查清單和包含所有符合條件的交易的抗審查清單摘要
區塊打包者創建一個被提議了的區塊體,然后提交投標,其中包括抗審查清單摘要的哈希,以證明他們已看到該提議區塊體
出塊者接受獲勝區塊打包者的出價和區塊頭
區塊打包者發布他們的區塊和一個可以證明他們已經包含了抗審查清單中所有交易或區塊已經滿了的證明,否則該區塊不會被分岔選擇規則接受
認證者檢查所發布的區塊體的有效性
這里仍然有一些重要的問題需要理清楚,例如基于這種情況的主流經濟策略是出塊者提交一個空名單,這樣一來,只要誰出價最高誰就能獲勝,即使是審查創建者也能贏得競標。有一些想法可以解決這個問題和其它一些問題,但在這里只是強調設計并不是一成不變的。
二維KZG方案
我們已經知道了KZG承諾是如何讓我們承諾數據并證明它是被正確地擴展的,然而我簡化了以太坊實際要做的事情:一個區塊將使用許多KZG承諾,因為無法在一個單一的KZG承諾中承諾所有數據。
我們已經有專用的區塊打包者,那么為什么不能直接讓它們創建一個巨大的KZG承諾呢?因為這需要一個強大的超級節點來進行重構。我們可以接受初始構建階段的超級節點需求,但我們需要避免重構時的假設。我們需要更低的資源實體處理重構,而將這些重構拆分成許多KZG承諾是使之可行的。重構甚至可能是相當常見的,或者說在該給定數據量的設計中,重構就是該設計中的基本情況假設。
為了使重構更容易,每個區塊將包括編碼到m個KZG承諾中的m個分片blob。雖然這樣做會導致大量的采樣,即你會在每個分片blob上執行數據可用性采樣,以知道它都是可用的。
但以太坊將使用二維KZG方案,即再次使用Reed-Solomon編碼將m個承諾擴展到2m個承諾:
我們通過在和0-255同樣的多項式之上再添加額外的KZG承諾來使其成為一個二維方案。現在我們只需在上面的表格上中執行數據可用性抽樣,以確保所有跨分片數據可用。
二維抽樣要求≥75%的數據是可用的,這意味著需要更多的固定抽樣。在前文中有提到,在一個簡單的一維方案中需要30個數據可用性抽樣的樣本,但在二維方案中將需要75個樣本才能確保重構一個可用區塊的概率相同。
分片1.0只需要30個樣本,但如果你想檢查所有1920個樣本的全部數據可用性,你需要對64個分片進行采樣,每個樣本是512B,所以這就需要。
(512Bx64個分片x30個樣本)/16秒=60KB/s帶寬
在現實中,驗證者是被輪換的,不會逐一檢查所有的分片。現在,與二維KZG承諾方案相結合的區塊使檢查全部數據可用性變得輕而易舉,只需要一個統一區塊的75個采樣樣本:
(512Bx1個區塊x75個樣本)/16秒=2.5KB/s寬帶
Web3不會殺死Web2。在本文中,我將使用Web3來泛指支持通過區塊鏈技術來實現去中心化所有權的社區和項目,以及使用Web2來泛指互聯網「常態」部分特有的社區和項目,比如Tumblr、Redd.
1900/1/1 0:00:00編者按:近日,SIG宣布領投總部位于新加坡的Web3信息應用的基礎軟件平臺ByteTrade新一輪4000萬美元,出人意料的是,SIG中國創始合伙人TimGong直接出任該公司董事長.
1900/1/1 0:00:00從Compound在2020年6月推出“借貸即挖礦”開始帶火了DeFi,“流動性挖礦”已經流行將近兩年時間。由于DeFi帶動鏈上活動量的上漲,導致gas費長期居于高位.
1900/1/1 0:00:00數字支付公司BlockInc.的一項調查發現,受訪者對自己的加密貨幣知識水平評價越高,他們對比特幣的未來就越樂觀.
1900/1/1 0:00:00多元化到其他加密資產,無論是穩定的還是非穩定的,正迅速成為DAO資金管理議程的核心,但如何做到這一點仍有待討論.
1900/1/1 0:00:00Web3真正闖入大眾視野還是因為頂級VC和科技巨頭的激進押注和口水戰,就像先前在社交媒體上爆火的元宇宙.
1900/1/1 0:00:00