核心要點:
以太坊是唯一一個主要協議,意在建立可擴展的統一的結算和數據可用性層
在利用以太坊的安全性的同時,rollup擴大了計算量
所有的道路都通向中心化區塊生產、去中心化的無需信任區塊驗證和抗審查這一終局。
諸如發起者—建設者分離和弱無狀態等創新,帶來了權力分離,可以在實現可擴展性的同時,不犧牲安全性或去中心化目標
MEV現在是前沿和中心——許多設計都是為了減輕其危害和防止其中心化傾向而計劃的
Danksharding結合了前沿研究的多種途徑,為以太坊以rollup為中心的路線圖提供所需的可擴展基礎層
我確實期待Danksharding在我們的有生之年得到實施
目錄
第1部分通往Danksharding之路
原始的數據分片設計——獨立分片提議
數據可用性抽樣
KZG承諾
KZG承諾vs.欺詐證明
協議內的發起者和建設者分離
審查抵抗列表
2DKZG策略
Danksharding
Danksharding——誠實多數驗證
Danksharding——重建
Danksharding——私人隨機抽樣的惡意多數安全
Danksharding——關鍵總結
Danksharding——在區塊鏈擴展上的制約
原生的danksharding
多維度的EIP-1559
第2部分歷史和狀態管理
Calldatagas成本縮減及calldata總量限制
在執行客戶中限定歷史數據
恢復歷史數據
弱無狀態性
VerkleTries
狀態過期
第3部分一切都是MEV的鍋
如今的MEV供應鏈
MEV-Boost
委員會驅動的MEVSmoothing
單槽拍板
單一秘密領袖選擇
第4部分合并的秘密
合并后的客戶端
總結時刻
簡介
自從Vitalik說今天出生的人有50-75%的機會活到公元3000年,而他希望能長生不老,我就一直對合并的時機持相當懷疑的態度。但是,管他呢,還不許找樂子嗎,借此機會,我們進一步透視一下以太坊雄心勃勃的路線圖。
這篇文章不能速食。如果你想對以太坊雄心勃勃的路線圖有一個廣泛而細致的了解,請給我一個小時,我將為你節省幾個月的工作。
以太坊的研究有很多需要跟蹤的地方,但一切最終都交織成一個總體目標——在不犧牲去中心化驗證的情況下擴大計算量。
Vitalik有一個著名的“終局”說,不知道你有沒有聽過。他承認以太坊擴展需要一些中心化成份。在區塊鏈中,代表中心化的C字母是可怕的,但又是一個現實。我們只是需要用去中心化和無需信任的驗證來控制這種權力。這里并沒有妥協。
專業人士將為L1及其之上添磚加瓦。以太坊通過簡單的去中心化驗證保持了令人難以置信的安全性,而rollup則從L1繼承其安全性。然后,以太坊提供結算和數據的可用性,使rollup的規模得以擴大。這里所有的研究最終都是為了優化這兩個角色,同時,使區塊鏈的完全驗證比以往更加容易。
下面的術語大概會重復出現個七八五十九次:
DA–DataAvailability數據可用性
DAS–DataAvailabilitySampling數據可用性抽樣
PBS–Proposer-builderSeparation發起者和建設者分離
PDS–Proto-danksharding原生的danksharding
DS–Danksharding一個以太坊的分片設計
PoW–ProofofWork工作量證明
PoS–ProofofStake質押證明
第1部分通往Danksharding之路
希望你已經聽說,以太坊已經轉向以rollup為中心的路線圖。不再有更多的執行分片——以太坊將轉而優化對數據要求較高的rollup。這是通過數據分片或更大的區塊實現的。
共識層不解釋分片的數據。它只有一項工作——確保數據是可用的。
我將假設你熟悉一些基本概念,如rollup,欺詐和ZK證明,以及為什么DA很重要。如果你不熟悉或者只是需要復習一下,可以看Can最近的Celestia報告。
原始的數據分片設計——獨立分片提議
這里描述的設計已經被廢止了,但作為背景值得了解一下。為了簡單起見,我把它稱為“分片1.0”。
64個分片區中的每一個都有單獨的提案和委員會從驗證者集合中輪流通過。他們單獨驗證他們的分片的數據是否可用。最初不會是DAS——它依賴于每個分片的驗證者集里誠實的多數來完全下載數據。
這種設計引入了不必要的復雜性、更糟糕的用戶體驗,以及攻擊的載體。在分片之間重組驗證者可能帶來風險。
除非你引入非常嚴格的同步假設,否則也很難保證投票將在單個槽內完成。Beacon區塊提議需要收集所有個別委員會的投票,而這可能會有延遲。
DS則完全不同。驗證者進行DAS,確認所有的數據都是可用的。一個專門的建設者用Beacon區塊和所有分片的數據一起創建一個大區塊,并進行確認。因此,PBS對于DS保持去中心化是必要的。
數據可用性抽樣
Rollups會發布大量的數據,但我們不想增加節點負擔來下載所有的數據。這將意味著高資源配置,從而損害了去中心化。
相反,DAS允許節點輕松、安全地驗證所有的數據是否可用,而不需要下載所有的數據。
天真的解決方案——只是從區塊中檢查隨機的一部分。如果沒問題,就簽字完事。但是,如果你錯過了某一筆交易,而這筆交易將掏空你所有的ETH給某個壞人呢?這能安全嗎。
聰明的解決方案——首先對數據進行擦除編碼。使用Reed-Solomon碼對數據進行擴展。這意味著數據被插值為多項式,然后我們可以在其他地方來對它評估。這有點復雜,我們來分解一下。
別擔心你的數學,這里是速成班。(我保證這里的數學不那么可怕——我不得不看一些可汗學院的視頻來寫這些部分,但現在連我都明白了)。
多項式是由有限數量的?形式的式子相加的表達式。項數代表最高的那個指數。例如,+?+?-4是一個三次的多項式。你可以從位于該多項式上的任何?個坐標來重構任何?次的多項式。
現在來看一個具體的例子。下面我們有四個數據塊。這些數據塊可以被映射到給定點的多項式?的值上。例如,=。然后你找到滿足這些數值的最小次數的多項式。由于這是四個數據塊,我們可以找到三次的多項式。然后,我們可以擴展這個數據,增加四個數值,這些數值位于同一個多項式上。
Delphi Digital:2019年至今CS:GO累計交易額是5大頭部NFT總和的6.6倍:金色財經報道,據加密行業研投機構Delphi Digital在社交媒體披露數據顯示,第一人稱射擊團隊競技游戲CS:GO(《反恐精英:全球攻勢》)自2019年以來靠游戲皮膚和道具銷售已獲得的累計交易額超過了320億美元,是 Axie Infinity、BAYC、CryptoPunks、MAYC和Art Blocks五大頭部NFT系列交易總額的6.6倍。[2023/6/4 21:15:05]
記住那個關鍵的多項式屬性——我們可以從任何四個點重建它,而不僅僅是我們最初的四個數據塊。
回到我們的DAS。現在我們只需要確定任何50%的擦除編碼數據是可用的。由此,我們可以重建整個數據塊。
因此,攻擊者必須隱藏超過50%的數據塊,才能成功地欺騙DAS節點,使其認為數據是可用的。
在多次成功的隨機采樣之后,<50%的數據可用的概率是非常小的。如果我們成功地對擦除編碼的數據進行了30次采樣,那么<50%可用的概率是。
KZG承諾
好的,所以我們做了一堆隨機樣本,而且都是可用的。但是我們還有一個問題——數據擦除的編碼是否正確?否則,也許區塊制作者在擴展區塊時只是添加了50%的垃圾,而我們的采樣是白忙活。在這種情況下,我們實際上將無法重建數據。
通常,我們只是通過使用默克爾根來承諾大量的數據。這對于證明在一個集合內包含一些數據是有效的。
然而,我們還需要知道,所有的原始數據和擴展數據都位于同一個低次多項式上。默克爾根不能證明這一點。因此,如果你采用這個方案,你還需要欺詐證明,以防止可能的紕漏。
開發者可以從兩個方向解決這個問題:
Celestia正在走欺詐證明的路線。這個方案需要有人觀察,如果區塊被錯誤地擦除編碼,他們會提交一個欺詐證明來提醒大家。這需要標準的誠實少數假設和同步假設。
以太坊和PolygonAvail正在走一條新路——KZG承諾。這免去誠實少數假設和同步假設,以保證欺詐證明的安全。
其他方案不是沒有,但較少人追捧。例如,你可以使用ZK-proofs。不幸的是,它們在計算上是不切實際的。然而,它們有望在未來幾年內得到改善,所以以太坊很可能會在未來轉向STARKs,因為KZG承諾不具有量子抗性。
回到KZG承諾——這些是一種多項式承諾方案。
承諾方案只是一種加密方式,可以使對一些數值的承諾可證。最好的比喻是,把一封信放在一個上了鎖的盒子里,然后把它遞給別人。這封信一旦放進去就不能改變,但可以用鑰匙打開并證明。你承諾這封信,而鑰匙就是證明。
在我們的案例中,我們將所有的原始數據和擴展數據映射到一個X,Y網格上,然后找到符合它們的最小次數的多項式。這個多項式就是證明人要承諾的。
幾個關鍵點:
首先有一個多項式
證明人對這個多項式的承諾形成
這有賴于橢圓曲線加密法的可信設置。至于如何起作用,可以參考一個來自Bartek的很棒的串推。
對于這個多項式的任意值?,證明人可以計算一個證據
說人話:證明人將這些片段交給任何驗證者,那么驗證者可以確認某個點的數值正確地位于被提交的多項式上。
這證明我們對原始數據的擴展是正確的,因為所有的數值都位于同一個多項式上
注意:驗證者并不需要用到多項式
重要屬性——符合?的承諾大小,的證明大小,以及?的驗證時間。即使對證明人來說,承諾和證明的生成也只有?的復雜度,其中?是多項式的次數。
說人話:即使增加——承諾和證明的大小保持不變,驗證需要的工作量是恒定的。
承諾?和證明?都只是配對友好曲線上的一個橢圓曲線元素。在這種情況下,它們每個只有48個字節。
因此,證明人對大量原始和擴展數據的承諾仍然只有48個字節,而證明也將只有48個字節
更簡單的說法:擴展性相當好
這里,KZG根就類似于Merkle根。
原始數據是多項式?在?到?位置的值,然后我們通過在?到?評估多項式來擴展它。所有的點?到?都保證是在同一個多項式上。
一句話總結:DAS允許我們檢查擦除編碼的數據是否可用。KZG承諾向我們證明原始數據被正確擴展,并承諾所有的數據。
好了,所有的代數到此為止了。
KZG承諾vs.欺詐證明
了解了KZG的工作原理,讓我們回過頭來比較一下這兩種方法。
KZG的缺點在于,它不會是后量子安全的,而且它需要一個可信的初始化。這并不令人擔憂。STARKs提供了一個后量子替代方案,而可信初始化只需要一個誠實的參與者。
KZG的優勢在于,相比欺詐證明設置,它延遲更低,而且它確保了適當的編碼擦除,而無需引入欺詐證明中固有的同步性和誠實少數假設。
然而,考慮到以太坊仍然會在區塊重建中重新引入這些假設,所以你實際上并沒有移除它們。DA層總是需要假設區塊最初可用,但隨后節點需要相互通信以將其重新組合起來。這種重建需要兩個假設:
你有足夠多的節點對數據進行采樣,這樣他們就有足夠的能力將數據組合起來。這是一個相當弱的、不可避免的誠實少數假設,無需過多擔心。
重新引入了同步性假設——節點需要在一定時間內進行通信,才能把它重新組合起來。
以太坊驗證者在PDS中完全下載分片數據,而對于DS,他們只會進行DAS。Celestia將要求驗證者下載整個區塊。
請注意,在這兩種情況下,我們都需要同步假設來進行重建。在區塊只有部分可用的情況下,完整的節點必須與其他節點進行通信以將其組合起來。
如果Celestia想從要求驗證者下載整個數據轉變為只進行DAS,那么KZG的延遲優勢就會顯現出來。然后,他們也需要實現KZG承諾——等待欺詐證明意味著大大增加區塊間隔,而且驗證者為錯誤編碼的區塊投票的危險性也會很高。
我推薦閱讀以下文章來深入了解KZG承諾的原理:
橢圓曲線密碼學的基礎知識
探索橢圓曲線配對byVitalik
KZG多項式承諾byDankrad
可信初始化的原理byVitalik
協議內的發起者和建設者分離
今天的共識節點和合并后的共識節點分任不同角色。他們建立實際的區塊,然后將其提交給其他共識節點,由其進行驗證。礦工通過在上一個區塊之上進行“投票”,而在合并后驗證者將直接對區塊進行有效或無效的投票。
PBS將這些分割開來——它明確地創建了一個新的協議內建設者角色。專門的建設者將把區塊放在一起,并為發起者選擇他們的區塊而出價。這可以對抗MEV的中心化力量。
回顧Vitalik的“終局”——所有的道路都通向中心化的區塊生產,并進行無需信任和去中心化的驗證。PBS對此發揚光大。我們需要一個誠實的建設者來服務于網絡的有效性和審查阻力,但驗證者組需要誠實多數。PBS使發起者的角色盡可能簡單,以支持驗證者的去中心化。
韓國新韓金融投資就數字資產業務與加密公司Delio達成合作:7月25日消息,韓國新韓金融投資宣布與加密金融科技公司Delio簽署業務協議,加強數字資產業務合作。通過該業務協議,雙方將共同開發基于區塊鏈的產品和服務,開展在NFT等數字資產業務方面的合作,并創建與金融和區塊鏈技術相關的生態系統。
此前7月1日消息,新韓金融投資將設立區塊鏈部門,將專注于數字資產托管等業務。(韓國經濟日報)[2022/7/25 2:36:06]
建設者收到優先費提示,加上他們可以提取的任何MEV。在一個有效的市場中,有競爭力的建造者會出價到他們能從區塊中提取的全部價值。所有的價值都會滲透到去中心化的驗證者組中——這正是我們想要的。
具體的PBS實現仍在討論中,但雙槽PBS可能是這樣的:
建設者在出價的同時對區塊標頭作出承諾
信標區塊發起者選擇獲勝的區塊頭和投標。發起者無條件地得到中標的報酬,即使建設者未能制造區塊主體。
證人委員會確認中標的區塊頭
建設者披露中標的主體
不同的證人委員會選出中標的主體。
使用標準的RANDAO機制從驗證者組中選擇發起者。然后,我們使用一個承諾—披露策略,在區塊頭被委員會確認之前,完整的主體不會被披露。
承諾—披露的方式更有效率,而且它還能防止MEV的竊取。如果建設者提交他們的完整區塊,另一個建設者可以看到它,找出其策略,將其納入,并迅速發布一個更好的區塊。此外,復雜的發起者可以檢測到所使用的MEV策略,在不補償建設者的情況下復制它。如果這種偷竊MEV的行為成為一股均衡力量,就會激勵建設者和發起者的合并,所以我們用承諾—披露策略來避免這種情況。
在發起者選擇了獲勝的區塊頭后,委員會進行確認,并將其固化在分叉選擇規則中。然后,獲勝的建設者公布他們獲勝的完整“建設者區塊”主體。如果及時公布,下一個委員會將對其進行證明。如果他們未能及時公布,他們仍需向發起者支付全額報酬。這種無條件的支付,使得發起者無需對建設者信任。
這種“雙槽”設計的缺點是延遲。合并后的區塊將是固定的12秒,所以在沒有引入任何新的假設時,我們需要24秒作為完整區塊時間。8秒一個槽似乎是一個安全的妥協,不過研究還在進行。
審查抵抗列表
不幸的是,PBS給了建設者很大的審查交易的能力。也許建設者只是不喜歡你,所以他們忽略了你的交易。也許他們的工作能力很強,以至于其他建設者都放棄了,也可能他們會因為真的不喜歡你而為區塊制定高價。
crLists可以防止這種情況。具體的實現方式又是一個開放的設計空間,但“混合PBS”似乎是最受歡迎的。建設者指定一個他們在mempool中看到的所有符合條件的交易的列表,建設者將被迫接受一攬子交易。
發起者公布crList和crList摘要,當中有所有符合條件的交易。
建設者創建一個擬議的區塊主體,然后提交一個投標,其中包括crList摘要的哈希值,以證明他們已經看過。
發起者接受中標者的出價和區塊頭。
建設者發布他們的區塊,包括證明他們已經包括了crList中的所有交易,或者區塊已滿。否則,該區塊將不會被分叉選擇規則所接受。
證人檢查已發布的主體的有效性
這里仍有一些重要的問題需要解決。例如,有一種主導經濟策略是發起者提交一份空名單。這樣一來,只要出價最高,即使是本該被審查的建設者也能贏得拍賣。有一些方法可以解決這個問題,我只是強調這里的設計并不是堅如磐石。
2DKZG策略
我們看到了KZG承諾是如何讓我們承諾數據并證明它被正確擴展的。然而,這是對以太坊實際操作的簡化。它不會在一個KZG承諾中承諾所有的數據——一個區塊將使用許多KZG承諾。
我們已經有了專門的建設者,那么為什么不直接讓他們創建一個巨大的KZG承諾?問題是,這需要一個強大的超級節點來重構。我們可以接受初始建設的超級節點要求,但我們需要避免對重建作出假設。我們需要普通實體能夠處理重建,所以將KZG承諾分成多份就好了。考慮到手頭的數據量,重建甚至可能是相當普遍的,或者說是本設計中的基本假設。
為了使重建更容易,每個區塊將包括編碼進m個KZG承諾中的m個分片數據。如果不聰明點這樣做會導致大量的采樣——你會在每個分片數據塊上進行DAS,才能確保可用。
所以,以太坊將使用一個2DKZG策略。我們再次使用Reed-Solomon代碼,將m個承諾擴展到2m個承諾。
我們通過擴展額外的KZG承諾使其成為一個2D策略,這些承諾位于與0-255相同的多項式上。現在我們只需在上面的表格上進行DAS,以確保所有分片數據的可用性。
2D采樣要求75%的數據是可用的,這意味著我們需要抽取一個更多的固定數量的樣本。前面簡單版的1D策略需要30個樣本,這里將需要75個樣本,以確保重建一個可用區塊的概率一致。
分片1.0只需要30個樣本,但你需要對64個片進行采樣,完整的檢查需要1920個樣本。每個樣本是512B,所以就是:
(512Bx64片區x30樣本)/16秒=60KB/s帶寬
現實中,驗證者會隨機選擇,而不是一個人檢查所有片區。
采用2DKZG策略的合并塊使得完整的DA驗證變得異常輕松。只需要從單一合并后的區塊選出75個樣本:
(512Bx1區塊x75樣本)/16秒=2.5KB/s帶寬
Danksharding
PBSwasinitiallydesignedtobluntthecentralizingforcesofMEVonthevalidatorset.However,Dankradrecentlytookadvantageofthatdesignrealizingthatitunlockedafarbettershardingconstruct–DS.
DSleveragesthespecializedbuildertocreateatighterintegrationoftheBeaconChainexecutionblockandshards.Wenowhaveonebuildercreatingtheentireblocktogether,oneproposer,andonecommitteevotingonitatatime.DSwouldbeinfeasiblewithoutPBS–regularvalidatorscouldn’thandlethemassivebandwidthofablockfullofrollups’datablobs:
PBS最初是設計來對沖MEV在驗證者組的中心化力量。然而,Dankrad最近吸取了這種設計的優勢,并想出一個更好的分片方案——DS。
DS利用專門的建設者來實現信標鏈執行區塊和分片之間更緊密的整合。我們現在有一個建設者,他可以創建整個區塊;一個提議者;以及一個進行投票的委員會。如果沒有PBS,DS是不可行的——普通的建設者無法擁有巨大帶寬,以滿足包含無數rollup數據塊的區塊。
前Dell董事總經理Sean Lee加入Algorand基金會成為新任CEO:Algorand基金會宣布前Dell董事總經理Sean Lee加入該基金會成為新任CEO。Algorand基金會表示,Sean Lee前曾在Dell Technologies、Pivotal、EMC等大型企業擔任領導職務,并在北美和亞洲初創企業以及技術公司合作方面擁有豐富經驗。[2020/6/24]
分片1.0包括64個獨立的委員會和發起人,可以允許每個分片單獨出問題。通過更緊密的整合使我們能夠一次性地確保完整的數據可用。數據在黑盒中仍然是“分片”的,但從實用的角度來看,分片開始感覺起來更像是大塊的數據,這簡直太好了。
Danksharding——誠實多數驗證
我們來看看驗證者是如何證明數據可信的:
這需要依靠占多數的誠實驗證者——作為單一的驗證者,我的列和行可用,不足以給我統計上的信心,證明整個區塊可用。我們需要誠實的大多數人,才能下這個結論。去中心化的驗證很重要。
注意這與我們之前討論的75個隨機樣本不同。私人隨機抽樣是指低配置的個體將能夠輕松地檢查可用性。然而,驗證者將繼續使用行和列的方法來檢查可用性和引導區塊重建。
Danksharding——重建
只要一個單獨的行或列的50%是可用的,那么它就很容易被采樣驗證者完全重建。當他們重建某行/列中缺失的任何塊時,他們將這些塊重新分配到正交線上。這有助于其他驗證者根據需要從他們相交的行和列中重建任何丟失的塊。
這里重建一個可用區塊的安全假設是:
有足夠多的節點執行抽樣請求,以便它們共同擁有足夠的數據來重建該區塊
正在廣播他們各自的區塊碎片的節點之間的同步性假設
那么,多少個節點才夠呢?粗略估計需要64,000個單獨的實例。這也是一個非常保守的計算,它假設同一驗證者運行的節點沒有交叉。如果你的采樣超過2行和2列,你就會因為交叉而增加集體檢索的幾率。這開始呈二次方擴展——如果驗證者正在運行,比如說10個或100個驗證器,64,000的要求可能會下降幾個數量級。
如果在線驗證者的數量開始變得非常低,DS可以被設置為自動減少分片數據塊的數量。因此,安全假設將被降低到一個安全的水平。
Danksharding——私人隨機抽樣的惡意多數安全
我們看到,DS的驗證是依靠誠實的多數來證明區塊。我作為一個個體,不能通過下載幾個行列來證明一個區塊是可用的。然而,私人隨機抽樣可以在不信任任何人的情況下,給這個保證。這就是前面討論的節點檢查75個隨機樣本的情形。
DS最初不會包括私人隨機抽樣,因為這是在網絡方面非常難解決的問題。
注意”私有”是很重要的,因為如果攻擊者對你進行了去匿名化處理,他們就能欺騙少量的采樣節點。他們可以只返回你所要求的確切的數據塊,而隱瞞其他的。所以你不會僅從自己的采樣中知道所有的數據都被提供了。
Danksharding——關鍵總結
DS非常令人興奮,不僅僅是名字起的好。它最終實現了以太坊對統一的結算和DA層的愿景。信標區塊和分片的這種緊密耦合,能達到以假亂真的不分片效果。
事實上,讓我們定義一下為什么它甚至被認為是“分片”的。這里唯一的分片,只是體現在驗證者不負責下載所有數據這一事實。沒有其他了。
所以,如果你現在質疑這是否是真正的分片,你并沒有瘋。這就是為什么PDS不被認為是“分片”。PDS要求每個驗證者完全下載所有的分塊,以證明其可用性。然后,DS引入了抽樣,所以個別驗證者只下載其中的某些片段。
最小化的分片意味著比分片1.0更簡單的設計。簡化內容包括:
與分片1.0規范相比,DS規范可能少了數百行代碼。
沒有更多的分片委員會作為基礎設施,委員會只需要對主鏈進行投票
不需要跟蹤單獨的分片數據塊確認,現在它們都在主鏈中得到確認,或者不被確認。
這樣做的一個很好結果是——數據的合并收費市場。分片1.0由不同的發起者做出不同的區塊,會使這一切變得支離破碎。
取消分片委員會也有力地抵制了賄賂現象。DS驗證者在每個紀元對整個區塊投票一次,所以數據會立即得到整個驗證者組的1/32的確認。分片1.0驗證者也是每紀元投票一次,但每個片區都有自己的委員會需要重組。因此,每個片區只由1/2048個驗證者組確認。
正如所討論的那樣,與2DKZG承諾方案相結合的區塊也使DAS的效率大大提高。分片1.0需要60KB/s的帶寬來檢查所有分片的全部DA,DS只需要2.5KB/s。
DS還有一種令人興奮的可能性存在——ZK-rollup和L1以太坊執行之間的同步調用。來自分片數據塊的交易可以立即確認并寫入L1,因為一切都在同一個信標鏈區塊中產生。分片1.0會因為單獨的分片確認而消除這種可能性。這就有了令人興奮的設計空間,對共享流動性等事情來說可能是非常有價值的。
Danksharding——在區塊鏈擴展上的制約
模塊化的層可以優雅地擴展——更多的去中心化帶來更多的擴展。這與我們今天看到的情況有根本的不同。向DA層添加更多的節點,可以安全地增加數據吞吐量。
區塊鏈的可擴展性仍有限制,但相比今天,我們可以提高好幾個數量級。安全和可擴展的基礎層允許執行被快速擴展。數據存儲和帶寬的改進也將隨著時間的推移提高數據吞吐量。
超過本文所設想的DA吞吐量肯定是有可能的,但是很難說這個最大值會落在哪里。我們沒有一個明確的紅線,但可以列舉支持某些假設開始變得困難的區間。
數據存儲——這與DA與數據可檢索性有關。共識層的作用不是保證數據可以無限期地被檢索,它的作用是讓數據在足夠長的時間內可用,任何愿意下載它的人都可以滿足我們的安全假設。然后,它被轉存到任何地方——這很舒服,因為歷史是N個信任假設中的1個,而且我們實際上并不是在談論那么多的數據,那樣大的計劃。不過,隨著吞吐量的增加,可能會進入令人不舒服的區間。
驗證者——DAS需要足夠的節點來共同重建區塊。否則,攻擊者可以在周圍等待,只對他們收到的查詢作出回應。如果提供的這些查詢不足以重建區塊,攻擊者可以扣留其余的查詢,我們就沒戲了。為了安全地提高吞吐量,我們需要增加更多的DAS節點或增加它們的數據帶寬要求。對于這里討論的吞吐量來說,這并不是一個問題。不過,如果吞吐量在這個設計的基礎上再增加幾個數量級,這可能會讓人感到不舒服。
注意建設者不是瓶頸。你需要為32MB的數據快速生成KZG證明,所以會希望有一個GPU或相當強大的CPU加上至少2.5GBit/s的帶寬。無論如何,這是一個專門的角色,對他們來說,這是一個可以忽略不計的業務成本。
原生的danksharding
DS很棒,但我們必須要有耐心。PDS是來幫我們渡過難關的——它在一個緊湊的時間表上實現了必要的向前兼容的步驟,以便在過渡期間提供數量級的擴展。然而,它實際上還沒有實現數據分片。
渣打銀行加入區塊鏈平臺TradeLens:3月11日消息,渣打銀行(Standard Chartered Bank)已加入由馬士基(Maersk)和IBM開發支持的區塊鏈平臺TradeLens,成為首家使用該平臺的金融機構。(Splash)[2020/3/11]
今天的rollup使用L1calldata進行存儲,它可以在鏈上永存。不過,rollup只需要在一些較短的時間段內使用DA,因此,任何感興趣的人都有足夠的時間來下載它。
EIP-4844介紹了新的攜帶blob的交易格式,其中rollup將用于未來的數據存儲。Blob攜帶大量的數據,它們比類似數量的calldata便宜得多。數據塊在一個月后將從節點上修剪掉,這就降低了存儲需求。使得有足夠的時間來滿足我們的DA安全假設。
對于擴展的背景,目前的以太坊區塊一般是平均約90KB。PDS為blob釋放了更多的DA帶寬,因為它們在一個月后會被修剪掉。它們并不會一直給節點造成負擔。
一個blob是一個由4096個字段元素組成的矢量,每個字段元素32個字節。PDS允許每個區塊最多有16個blob,而DS會將其提高到256個。
PDSDA帶寬=4096x32x16=2MiB每區塊,目標是1MiB
DSDA帶寬=4096x32x256=32MiB每區塊,目標是16MiB
每一步都是數量級的擴展。PDS仍然需要共識節點來完全下載數據,所以它比較保守。DS在驗證者之間分配了存儲和傳播數據的負載。
以下是EIP-4844在通往DS的道路上引入的一些好玩意兒:
攜帶blob的交易格式數據
對blob的KZG承諾
DS所需的所有執行層邏輯
DS所需的所有執行/共識交叉驗證邏輯
信標區塊驗證和DASblob之間的層分離
DS所需的大部分信標區塊邏輯
為blob提供的自我調整的獨立gas價格
DS未來還會加入:
PBS
DAS
2DKZG策略
托管證明或著類似的協議內要求,使每個驗證者驗證每個區塊特定部分分片數據可用性
請注意,這些數據塊是作為執行鏈上的一個新交易類型被引入的,但它們不會給執行方帶來額外的負擔。EVM只查看附著在數據塊上的承諾。由EIP-4844帶來的執行層變化也與DS同樣向前兼容,在這頭不需要更多的改變。從PDS到DS的升級只需要改變共識層。
在PDS中,數據塊完全由共識客戶端下載。數據塊現在被引用,但不是完全編碼在信標區塊主體中。與其將全部內容嵌入到主體中,不如將blob的內容作為“sidecar”單獨傳播。每個區塊有一個blobsidecar,在PDS中被完全下載,然后DS驗證者對其進行DAS。
我們在前面討論了如何使用KZG多項式承諾對blob進行承諾。然而,EIP-4844沒有直接使用KZG,而是實現了我們實際使用的東西——它的版本化哈希。這是一個單一的0x01字節,后面是KZG的SHA256哈希值的最后31字節。
我們這樣做是為了方便EVM的兼容性和向前兼容:
EVM兼容性——KZG承諾是48字節,而EVM更自然地使用32字節的值
前向兼容性——如果我們從KZG轉換到其他,承諾可以繼續保持32字節
多維度的EIP-1559
PDS最終創造了一個量身定做的數據層——數據塊將獲得自己獨特的收費市場,有獨立的浮動gas價格和限制。因此,即使一些NFT項目在L1上出售一堆猴子土地,你的rollup數據成本也不會上升。這顯示了今天任何rollup項目的主要成本是將其數據發布到L1。
Gas費市場沒有變化,而數據塊作為一個新的市場加入:
Blob費用是在gas里收取的,但它是一個可變的金額,根據其自身的EIP-1559機制進行調整。每個區塊的長期平均blob數量應該等于所定目標。
這里實際上有兩個并行的拍賣——一個用于計算,一個用于DA。這是高效資源定價的一個巨大進步。
可以看到一些有趣的設計。例如,將目前的gas和blob定價機制從線性EIP-1559改為新的指數EIP-1559機制可能是合理的。目前的實施并沒有平均到我們的目標區塊大小。現今的基本費用穩定性很差,導致觀察到的每個區塊的gas使用量平均超過目標值約3%。
第2部分歷史和狀態管理
快速回顧一下基礎概念:
歷史——鏈上曾經發生過的一切。你可以直接把它放在硬盤上,因為它不需要快速訪問。這是長期的N個誠實假設中的1個。
狀態——所有當前賬戶余額、智能合約等的快照。完整的節點都需要有這個數據,以驗證交易。它對內存來說太大了,而硬盤又太慢了——它很適合固態硬盤里。高吞吐量的區塊鏈讓這個狀態迅速膨脹,增長速度遠遠超過我們常人在筆記本電腦上能保持的。如果日常用戶不能保有該狀態,他們就不能完全驗證,去中心化也就無從談起。
簡而言之,這些東西會變得非常大,所以你很難運行一個節點,如果要求節點必須保持這些數據。如果運行一個節點太難,我們普通人就不會去做。這很糟糕,所以我們需要確保這不會發生。
Calldatagas成本縮減及calldata總量限制
PDS是邁向DS的一個很好的鋪墊,它滿足了許多最終的要求。在一個合理的時間范圍內實施PDS,就可以將DS的時間表提前。
一個更容易實施的修補是EIP-4488。它不太優雅,但它還是解決了當前費用的緊急情況。不幸的是,它沒有給出通往DS的步驟,所以不可避免地日后還是補上。如果開始覺得PDS比我們希望的要慢一些,那么快速通過EIP-4488,然后再在六個月后進入PDS,可能是有意義的。我們可以自由把握時機。
EIP-4488有兩個主要組成部分:
將calldata成本從每字節16個gas降低到每字節3個gas
增加每個區塊1MB的Calldata限制,加上每個交易的額外300字節
需要增加限制以防止最壞的情況發生——一個充滿calldata的區塊將達到18MB,這遠遠超出了以太坊可以處理的范圍。EIP-4488增加了以太坊的平均數據容量,但由于這個calldata限制,其突發數據容量實際上會略有下降。
EIP-4488的持續負載要比PDS高得多,因為這仍然是calldatavs.數據塊。有了EIP-4488,增速將有意義地上升,但也會帶來運行節點的瓶頸。即使EIP-4444與EIP-4488同步實施,也只是在一年后減少運行有效負載歷史。PDS的較低的持續負載顯然是更可取的。
在執行客戶中限定歷史數據
EIP-4444允許客戶選擇本地修剪超過一年的歷史數據。它規定客戶端停止在p2p層提供這種修剪后的歷史數據。修剪歷史數據使客戶可以減少用戶的磁盤存儲需求。
這件事本來就很重要,但如果EIP-4488被實施,這基本上是強制性的。我們希望這能在相對較短的時間內完成。最終某種形式的歷史過期是需要的,所以現在是處理它的一個好時機。
每日活躍用戶數排名前五的以太坊Dapps:Idex,ForkDelta,Bancor,CryptoKitties和LocalEthereum:據DappRadar數據,每日活躍用戶數量排名前五位的以太坊數據Dapps,分別為Idex(24h內6479個用戶),ForkDelta(24h內2221個用戶),Bancor(24h內560個用戶),CryptoKitties(24h內408個用戶)和LocalEthereum(24h內236個用戶)[2018/6/10]
鏈的完全同步需要歷史記錄,但是對于驗證新的區塊是不需要的。因此,一旦客戶端同步到鏈的頂端,歷史數據只有在通過JSON-RPC明確請求或某個點試圖同步鏈的時候才會被檢索。隨著EIP-4444的實施,我們需要為這些找到替代的解決方案。
客戶端將無法像今天一樣使用devp2p進行“完全同步”——而是從一個弱主觀檢查點進行“檢查點同步”,他們將把這個檢查點視為創世區塊。
請注意,弱主觀性不會是一個額外的假設——這是轉向PoS必然會有的。由于存在遠程攻擊的可能性,這就要求使用有效的弱主觀性檢查點來進行同步。這里的假設是,客戶不會從一個無效的或舊的弱主觀性檢查點進行同步。這個檢查點必須在我們開始修剪歷史數據的時期內,否則p2p層將無法提供所需的數據。
隨著越來越多的客戶采用輕量級同步策略,這也將減少網絡的帶寬使用。
恢復歷史數據
EIP-4444將在一年后修剪歷史數據聽起來不錯,而PDS修剪blob的速度更快。這些都是必要動作,因為我們不能要求節點存儲所有數據并保持去中心化。
EIP-4488——長期可能需要約1MB每個插槽,每年增加約2.5TB存儲量
PDS——目標是每個插槽約1MB,每年增加約2.5TB的存儲空間
DS——目標是每個插槽約16MB,每年增加約40TB的存儲空間
但這些數據去哪里了?難道我們還需要它們嗎?是的,但請注意,丟失歷史數據對協議來說不是一個風險——只是對個別應用程序來說是。所以以太坊核心協議的工作,不應該包括永久維護所有這些達成共識的數據。
那么,誰來儲存這些數據呢?這里有一些潛在的貢獻者:
個人和機構志愿者
區塊瀏覽器、API供應商和其他數據服務
第三方索引協議可以創建激勵性的市場,客戶向服務器付費以獲得帶有Merkle證明的歷史數據
門戶網絡中的客戶可以存儲鏈歷史的隨機部分,而門戶網絡會自動將數據請求引導到擁有這些數據的節點上
BitTorrent,例如,自動生成并分發一個7GB的文件,其中包含每天的區塊的blob數據
特定的應用程序協議可以要求其節點存儲與他們的應用程序相關的歷史部分
長期數據存儲問題是一個相對容易的問題,因為它是N個信任假設之一,正如我們之前討論的那樣。這個問題距離成為區塊鏈可擴展性的最終限制還有很多年。
弱無狀態性
好了,我們已經很好地掌握了管理歷史的方法,但是狀態呢?這實際上是目前提高以太坊TPS的主要瓶頸。
完整的節點取前狀態根,執行一個區塊中的所有交易,并檢查后狀態根是否與他們在區塊中提供的內容相符。為了知道這些交易是否有效,他們目前需要對手上的狀態進行驗證。
進入無狀態性——不需要手頭的狀態來發揮它的角色作用。以太坊正朝著“弱無狀態”努力,這意味著驗證區塊不需要狀態,但構建區塊時需要。驗證成為一個純粹的功能——給我一個完全隔離的區塊,我可以告訴你它是否有效。基本上像這樣:
由于PBS的原因,建設者仍然需要狀態,這是可以接受的——反正他們會是更中心化的高配置實體。我們的重點放在驗證者的去中心化上。弱無狀態性給建設者帶來了稍多一點的工作,而驗證者的工作少了非常多。非常劃算。
我們用見證者來實現這種神奇的無狀態執行。見證者是正確狀態訪問的證明,建設者將開始在每個區塊中包括這些證明。驗證一個區塊實際上不需要整個狀態——你只需要該區塊中的交易所讀取或影響的狀態。建設者將開始在一個給定的區塊中包括受交易影響的狀態片段,他們將用證人來證明他們正確地訪問了這些狀態。
讓我們來舉個例子。Alice想向Bob發送1個ETH。為了驗證這個交易的區塊,我需要知道:
在交易之前-Alice有1個ETH
Alice的公鑰-所以我可以知道簽名是正確的
Alice的nonce碼-所以我可以知道交易是按照正確的順序發送的
執行交易后,Bob多了1個ETH,Alice少了1個ETH
在一個弱無狀態的世界里,建設者將上述見證數據添加到區塊中并證明其準確性。驗證者收到區塊,執行它,并決定它是否有效。這就ok了。
從驗證者的角度來看,這里有一些影響:
保持狀態所需的巨大的SSD需求消失了——這是目前擴展的關鍵瓶頸。
帶寬要求會增加一些,因為你現在也在下載見證數據和證明。這是Merkle-Patricia樹的一個瓶頸,但問題不大,不是VerkleTries遇到的那種瓶頸。
你仍然執行交易來完全驗證。無狀態承認了一個事實,那就是目前這并不是擴展以太坊的瓶頸。
弱無狀態也允許以太坊放松對其執行吞吐量的自我限制,狀態膨脹不再是一個緊迫的問題。將gas限制提高到3倍可能是合理的。
在這一點上,大多數用戶的執行將在L2上進行,但更高的L1吞吐量即使對他們來說也是有益的。Rollup依靠以太坊進行DA和結算。隨著以太坊擴展其DA層,發布證明的攤銷成本可能占據rollup成本的更大份額。
VerkleTries
我們有意跳過了這些證人如何工作。以太坊目前使用Merkle-Patricia樹來存儲狀態,但所需的Merkle證明對這些證人來說太大,并不可行。
以太坊將轉向Verkletries來存儲狀態。Verkle證明的效率要高得多,所以它們可以作為可行的證人來實現弱無狀態。
首先讓我們回顧一下Merkle樹是什么樣子的。每筆交易開始時都有哈希值——底部的這些哈希值被稱為“葉子”。所有的哈希值都被稱為“節點”,它們是下面兩個子節點的哈希值。最終產生的哈希值是”Merkle根”。
這個數據結構非常有幫助,它可以證明交易的完整性,而不需要下載整個樹。例如,如果你想驗證交易H4被包含,你需要Merkle證明中的H12、H3和H5678。我們有來自區塊頭的H12345678。因此,一個輕量級的客戶端可以向一個完整的節點索取這些哈希值,然后根據樹中的路線將它們散列在一起。如果結果是H12345678,那么我們就成功證明了H4在樹上。
不過樹越深,到底部的路線就越長,因此你需要更多的項目來證明。因此,淺而寬的樹會更適合做高效的證明。
問題是,如果你想通過在每個節點下添加更多的子節點來使Merkle樹變得更寬,那將是非常低效的。你需要把所有同級節點的哈希值散列在一起,才能摸到整顆樹,所以你需要為Merkle證明接收更多的同級節點的哈希值。這將使證明的規模變得巨大。
這就是高效向量承諾的作用。請注意,Merkle樹中使用的哈希值實際上是向量承諾——它們只是一些糟糕的承諾,只能有效地承諾兩個元素。所以我們想要向量承諾,我們不需要接收所有的同級節點來驗證它。一旦我們有了這一點,我們就可以使樹更寬,并減少其深度。這就是我們如何獲得有效率的證明大小——減少需要提供的信息量。
Verkletrie類似于Merkle樹,但是它使用高效的向量承諾而不是簡單的哈希來承諾其子代。因此,基本的想法是,每個節點可以擁有許多子節點,但我不需要所有的子節點來驗證證明。無論寬度如何,這都是一個恒定大小的證明。
實際上,我們之前已經介紹了這個可能性的一個很好的例子——KZG承諾也可以作為向量承諾使用。事實上,這就是以太坊開發者最初計劃在這里使用的東西。他們后來轉向了Pedersen承諾,以完成類似的作用。它將基于一個橢圓曲線,承諾256個值。
那么,為什么不建立一個深度為1的樹,而且要盡可能寬?這對驗證者來說是件好事,因為他現在有了一個超級緊湊的證明。但是有一個實際的權衡,即驗證者需要能夠計算這個證明,而它越寬就越難。因此,Verkletries將位于1~256個值寬度的兩個極端之間。
狀態過期
弱無狀態從驗證者中移除狀態膨脹約束,但狀態并不會神奇地消失。交易的成本是有上限的,但它們通過增加狀態給網絡帶來了永久的稅收。狀態的增長仍然是對網絡的一種永久性拖累。我們需要做些什么來解決這個根本問題。
這就是我們需要狀態過期的原因。長期不活動的狀態會被砍掉,即使是區塊建設者本來應包括的東西。活躍的用戶不會注意到任何事情變化,而我們可以丟棄不再需要的沉重狀態。
如果你需要恢復過期的狀態,你只需要出示一個證明并重新激活它。這又回到了N個存儲假設之一。只要有人仍然擁有完整的歷史,你就可以從他們那里得到你需要的東西。
弱無狀態性將削弱基礎層對狀態過期的直接需求,但從長遠來看,特別是隨著L1吞吐量的增加,這是很好的。對于高吞吐量的rollup,這將是一個更有用的工具。L2狀態將以更高的速度增長,以至于它甚至會拖累高配置建設者。
第3部分一切都是MEV的鍋
PBS是安全實現DS的必要條件,但請記住它最初的設計其實是為了對抗MEV的中心化力量。你會注意到今天以太坊研究中反復出現的一個趨勢——MEV現在是加密貨幣經濟學的前沿和中心。
在設計區塊鏈時,考慮到MEV是維護安全和去中心化的關鍵。基本的協議層面的方法是:
盡可能地減輕有害的MEV,單一秘密領袖選擇)
將其余部分民主化
剩余的部分必須很容易被捕獲并在驗證者中傳播。否則,由于無法與復雜的搜索者競爭,它將使驗證者組走向中心化。合并后,MEV占驗證者獎勵的比例會高得多,這就加劇了這種情況。這一點是不能忽視的。
如今的MEV供應鏈
今天的事件順序長這個樣子:
礦池在這里發揮了建設者的作用。MEV搜索者通過Flashbots將一捆捆交易轉交給礦池。礦池運營者匯總出一個完整的區塊,并將區塊頭傳遞給各個礦工。礦工用PoW來證明區塊,在分叉選擇規則中給予其權重。
Flashbots的出現是為了防止整個堆棧的垂直整合-這將為審查和其他討厭的外部因素打開大門。當Flashbots誕生時,礦池已經開始與交易公司達成獨家交易,以提取MEV。但是,Flashbots給了他們一個簡單的方法來聚合MEV競價,避免垂直整合。
在合并之后,礦池會消失。我們讓普通的家庭驗證者也能夠相對容易地參與。這需要有人承擔專業的建設者角色。家庭驗證者可能并不像擁有高額工資的對沖基金那樣擅長捕捉MEV。如果不加以控制,普通人無法在競爭中存活,這將使驗證者組走向中心化。如果結構合理,該協議可以將MEV收入轉用于日常驗證者的質押收益。
MEV-Boost
不幸的是,協議內的PBS在合并時根本沒有準備好。Flashbots再次提供了一個救急解決方案——MEV-Boost。
合并后的驗證者默認直接從公共mempool接收交易到他們的執行客戶端。他們可以將這些交易打包,交給共識客戶端,并將其廣播到網絡上。(如果你需要復習一下以太坊的共識和執行客戶端是如何一起工作的,我在第四部分有過介紹)。
但是你的媽媽和大眾驗證者不知道如何提取MEV,就像我們討論的那樣,所以Flashbots正在提供一個替代方案。MEV-boost將接入你的共識客戶端,允許你外包專門的區塊建造。重要的是,你仍然保留了使用你自己的執行客戶端的權利。
MEV搜索者將繼續發揮它們今天的作用。他們將運行特定的策略,并為他們的打包塊出價,使其被包括在內。然后建設者將他們看到的所有打包塊以及任何私人訂單流匯總到最佳的完整塊中。建設者通過運行在MEV-Boost上的中繼,只把區塊頭傳遞給驗證者。Flashbots打算運行中繼器和建設者,并計劃隨著時間的推移進行去中心化,但對其他建設者發放白名單的過程可能會很慢。
MEV-Boost要求驗證者信任中繼,也就是共識客戶端收到頭部信息、簽署它,之后區塊主體才會顯現。中繼的目的是向發起者證明主體是有效的和存在的,這樣驗證者就不必直接信任建設者。
當協議內的PBS準備好了,它就會把MEV-Boost在這期間提供的東西匯總起來。PBS提供了同樣的權力分離,使建設者更容易去中心化,并使發起者人無需信任任何人。
委員會驅動的MEVSmoothing
PBS還使得一個很酷的想法成為可能——委員會驅動的MEVSmoothing。
我們看到提取MEV的能力是對驗證者組的一股中心化力量,但分配也是如此。每個區塊的MEV獎勵的高變異性鼓勵驗證者的組隊,以便隨著時間的推移使回報平滑。
默認情況是實際的區塊發起者獲得來自建設者的全部付款。而MEV平滑化將從這筆錢中拿一部分給許多驗證者。一個驗證者委員會將檢查提交的區塊,并證明這確實是出價最高的區塊。如果一切正常,該區塊進入流程,獎勵將在委員會和發起者之間分配。
這也解決了另一個問題——帶外的賄賂。發起人可能會被激勵提交一個次優的區塊,并接受直接的帶外賄賂,以隱藏他們從某人那收到的付款。這種證明使發起人受到制約。
協議內PBS是實現MEV平滑的先決條件。你需要對建設者市場和正在提交的明確的出價有一個認識。這里面有幾個開放的研究問題,但不妨礙這是一個令人興奮的提議,對確保去中心化的驗證者非常關鍵。
單槽拍板
快速得到最終結果是很好的。等待15分鐘對于用戶體驗或跨鏈溝通來說并不理想。更重要的是,這是一個MEV重組問題。
后以太坊合并時代,會出現比現在更強大的確認——數以千計的驗證者證明每個區塊,而不是現在這樣,礦工互相競爭,并可能在同一區塊高度挖礦,而不投票。這將使重組變得相當困難。然而,這仍然不是真正的最終拍板結果。如果最后一個區塊有一些誘人的MEV,可能會誘使驗證者試圖重新組鏈,并吃下獎勵。
單槽拍板消除了這種威脅。逆轉一個已完成的區塊需要至少三分之一的驗證者,而且他們的股份會立即被削減。
我不會在這里對潛在的機制進行過多的討論。單槽拍板在以太坊的路線圖中是非常遙遠的部分,它是一個開放的設計空間。
在今天的共識協議中,以太坊只需要1/32的驗證者來證明每個槽。在單槽中用BLS簽名聚合將這種投票擴展到全部驗證者組,需要更多的工作。這會把數十萬張投票壓縮到一個驗證中。
Vitalik列出了一些有趣的解決方案,這里查看。
單一秘密領袖選擇
SSLE旨在修補合并后我們將面臨的另一個MEV攻擊載體。
信標鏈驗證者名單和即將到來的領袖選擇名單是公開的,而且相當容易對他們進行去匿名化處理并映射其IP地址。你應該很容易發現這里的問題。
更復雜的驗證者可以使用一些技巧來更好地隱藏自己,但普通驗證者將特別容易被挖出,隨后被DDOSd。這很容易被MEV所利用。
假設你是n區的發起者,而我是n+1區的發起者。如果我知道你的IP地址,我可以很容易對你進行DDOS,使你因超時而無法生成你的區塊。現在我就可以捕獲兩個區塊的MEV,獲得雙倍的回報。EIP-1559的彈性區塊大小加劇了這種情況,所以我可以把本應是兩個區塊的交易塞進我的單個區塊,而這個區塊現在是兩倍長。
簡而言之,家庭驗證者可以直接放棄驗證,因為他們會被攻擊。SSLE將使得除了發起者之外沒有人知道什么時候輪到他們,從而防止了這種攻擊。這不會在合并時就生效,但希望它能盡早實施。
第4部分合并的秘密
好吧,其實上面我一直在開玩笑。我真的認為合并相對很快就會來到。
這么令人激動的事情,我覺得我得站出來喊兩句。你的以太坊速成課程到此結束。
合并后的客戶端
今天,你運行一個單體客戶端來處理一切。具體來說,全節點做以下兩件事:
執行——執行區塊中的每個交易,以確保有效性。使用前狀態根,執行各個操作,并檢查產生的后狀態根是否正確
共識——驗證你在最長的鏈上,完成了最多的工作。
兩者是不可分割的,因為完整的節點不僅遵循最長鏈,還要遵循最長的有效鏈。這就是為什么他們是全節點而不是輕節點。即使在51%的攻擊下,全節點也不會接受無效的交易。
信標鏈目前只運行共識,給PoS進行試運行,但沒有執行。最終,終端總難度將被決定,屆時,目前的以太坊執行區塊將合并到信標鏈區塊中,合并成一條鏈:
然而,完整的節點將在黑盒下運行兩個獨立的客戶端,并進行互操作。
執行客戶端——當前Eth1.0客戶端繼續處理執行。他們處理區塊,維護mempools,并管理和同步狀態。PoW則被棄用。
共識客戶端——當前的信標鏈客戶端繼續處理PoS共識。他們跟蹤鏈頭,對區塊進行通信和證明,并接收驗證者的獎勵。
客戶端收到信標鏈的區塊,執行客戶端運行交易,然后共識客戶端將遵循該鏈,如果一切檢查無誤。你將能夠混合和匹配你所選擇的執行和共識客戶端,所有的客戶端都支持互操作。一個新的引擎API將被引入,用于客戶端之間的通信:
或者像這樣:
合并后的共識
今天的中本聰共識很簡單。礦工創建新的區塊,并將其添加到觀察到的最長的有效鏈上。
合并后的以太坊轉向GASPER——結合CasperFFG加上LMDGHOST來達成共識。一句話——這是一個偏向活躍度的共識,而不是偏向安全性的。
區別在于,支持安全的共識算法在無法獲得必要的票數時就會停止。支持活躍度的鏈無論如何都會繼續建立一個樂觀的賬本,但如果沒有足夠的票數,它們就無法完成拍板。今天的比特幣和以太坊永遠不會達到最終拍板——你只是假設在足夠多的區塊之后,重構不會再次發生。
然而,以太坊也會在有足夠票數的情況下通過定期檢查點來實現最終拍板。每個32個ETH的實例都是一個獨立的驗證者,目前已經有超過38萬個信標鏈驗證者。總的紀元由32個槽組成,所有驗證者被分割開來,在一個給定的紀元內對一個槽進行驗證。分叉選擇規則LMDGhost隨后根據這些證明來確定當前鏈頭。一個新的區塊在每個槽之后被添加,所以總的紀元是6.4分鐘。一般在兩個紀元后,最終結果會以必要的票數實現。
總結時刻
所有的道路都通向中心化區塊生產、去中心化的無需信任區塊驗證和抗審查這一終局。以太坊的路線圖突出了這一愿景。
以太坊的目標是成為終極的統一化DA和結算層——大規模的去中心化和安全性為基礎,上面是可擴展的計算。這是將密碼學假設濃縮到一個強大的層。一個統一的模塊化的、包括執行的基礎層,同時能捕捉到整個L1設計的最高價值——導致貨幣溢價和經濟安全,正如我最近報道的。
我希望你對以太坊的研究是如何交織在一起的有了更清晰的認識。這是非常前沿的,所有的部件都在變化當中,要最終弄清楚這一宏大藍圖并不容易。你需要時刻跟進。
最終,這一切都回到了那個單一的愿景。以太坊為我們提供了一條通往大規模可擴展的令人信服的道路,同時又堅守了我們在這個領域非常關心的那些價值。
特別感謝DankradFeist的審閱和見解。
參考文獻
終局:https://vitalik.ca/general/2021/12/06/endgame.html
Can:https://twitter.com/CannnGurel
Celestia:https://members.delphidigital.io/reports/pay-attention-to-celestia
很棒的串推:https://twitter.com/bkiepuszewski/status/1518163771788824576
橢圓曲線密碼學的基礎知識:https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/
探索橢圓曲線配對:https://vitalik.ca/general/2017/01/14/exploring_ecp.html
KZG多項式承諾:https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html
可信初始化的原理:https://vitalik.ca/general/2022/03/14/trustedsetup.html
區塊鏈的可擴展性仍有限制:https://vitalik.ca/general/2021/05/23/scaling.html
多維度EIP-1559:https://ethresear.ch/t/multidimensional-eip-1559/11651
指數定價規則:https://ethresear.ch/t/make-eip-1559-more-like-an-amm-curve/9082
托管證明:https://dankradfeist.de/ethereum/2021/09/30/proofs-of-custody.html
資源定價:https://www.youtube.com/watch?v=YoWMLoeQGeI
指數EIP-1559機制:https://dankradfeist.de/ethereum/2022/03/16/exponential-eip1559.html
devp2p:https://github.com/ethereum/devp2p
weaksubjectivity:https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/
nonce:https://www.investopedia.com/terms/n/nonce.asp
MEV-Boost:https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177
GASPER:https://arxiv.org/abs/2003.03052
DankradFeist:https://twitter.com/dankrad
http://disaggregated
https://members.delphidigital.io/reports/valuing-layer-1s-memes-money-or-more
有人天生為王,有人自帶光環,但無人能夠完美一生。Web3無疑是2022年少數幾個還能維持光鮮亮麗的“詞”.
1900/1/1 0:00:00聽起來很新奇,但是「元宇宙搬磚」目前還不現實。因為近幾個月的疫情封控,讓不少居家隔離的人們表示,非常懷念公司的辦公室,以至于恢復線下辦公時,甚至要自拍發朋友圈.
1900/1/1 0:00:00根據?TrailofBits?的說法,分布式賬本技術?(DLT)?和包括比特幣和以太坊在內的區塊鏈可能比最初想象的更容易受到中心化風險的影響.
1900/1/1 0:00:00在加密領域,我們有一對重量級對決——UniswapvsSushiSwap。這些DeFi協議一開始的源代碼幾乎完全相同,但后來在各自社區的指導下不斷發展.
1900/1/1 0:00:00當UST從1美元貶值到0.01美元時,散戶一直不離不棄——60.4%的散戶持有至UST歸零,其余的散戶則平均虧損70%.
1900/1/1 0:00:002021年,ChrisDixon寫了一篇關于創作者如何使用NFT將他們的“1000名真正的粉絲”貨幣化的文章。從那時到現在,NFT的用例已成倍增加.
1900/1/1 0:00:00