作者:阿劍
自《Arollup-centricethereumroadmap》一文發表以來,整個社區都對以太坊的路線圖產生了疑問。2020年11月18日,在以太坊基金會的Eth2.0研究團隊的第五次AMA活動中,Vitalik明白地表示,路線圖已經發生了變化:暫時不再強調Phase2的重要性,Phase1致力于實現數據分片,供rollup方式使用;信標鏈將具備執行功能,即Eth1-Eth2合并之后,信標鏈區塊將直接包含交易;Phase0實現后的三大工作:輕客戶端支持、數據分片、合并,將并行推進,任一模塊只要準備好了就退出。
本文的目的不是為原來的三階段路線圖辯護。相反,本文是想主張,三階段路線圖虛無縹緲,新路線圖食之無味,沒有一種與Eth2.0相關的路線圖值得以太坊放棄當前的運作模式、轉向以PoS為基礎的系統。
在這里,我會先講解初始的三階段路線圖的論證思路及其技術難點;然后分析新路線圖的可擴展性。最后論證,新路線圖的可擴展性優勢,已經渺小到不足以使以太坊冒險轉入PoS。
Eth2.0的三階段路線圖
在過去兩年,廣為流傳的Eth2.0路線圖規劃了三個依次序實現的組件:
Phase0:以PoS為共識機制的信標鏈
Phase1:多條分片鏈
Phase2:為所有分片增加執行功能
從這一路線圖可以清晰地看出,原來的以太坊2.0的目標是打造一個“分片化執行”的系統,意思是:每個分片都有自己的狀態,這些狀態按各分片的狀態轉換規則來變更;變更后的狀態由信標鏈來敲定;由此,以太坊2.0就成了一個多個分片可以并行處理交易的系統。這也意味著,以太坊2.0是一個“共識”和“交易處理”解耦的系統,被分配到各分片上的驗證者負責驗證交易和狀態的正確性;但這些狀態的敲定則依賴于信標鏈的epoch敲定機制,兩個過程并不是完全同步的。
美聯儲博斯蒂克:仍維持終端利率在5%-5.25%的觀點不變:2月7日消息,美聯儲博斯蒂克在接受采訪時表示,通脹放緩的情況將決定美聯儲何時暫停加息。他堅持認為終端利率為5.0%至5.25%。關于1月份的就業報告,他稱這是一個很大的驚喜。不過這只是一個數據點,但如果這種強勁勢頭持續下去,就意味著經濟放緩的幅度沒有那么大,這將“轉化為美聯儲加息的幅度超過他目前的預期”。而如果這個數據是一個反常現象(在六個月的時間內),那么他傾向于再稍微觀察一下,沒有必要影響政策的軌跡。[2023/2/8 11:53:33]
這種“PoS信標鏈+多分片”的架構,似乎也非常好地利用了PoS算法本身的特點:為了解決No-thing-at-stake問題,以太坊2.0所用的Casper算法要求用戶先存入一部分押金才能獲得出塊資格,而如果驗證者濫用了出塊資格,則會被罰沒押金;由此,像Casper這樣的算法實際上在區塊鏈上創造了兩種可以相互溝通、但相互獨立變更的狀態:一種是普通用戶的狀態,另一種是驗證者的出塊權重狀態;共識過程以出塊權重狀態為基礎,達成共識也會更改出塊權重狀態;因此,共識過程先天獨立于用戶交易的驗證,可以解耦;對任意的交易批次及結果狀態而言,共識過程可以被抽象成一種“終局性敲定機制”,邏輯上,多分片并行執行于是成為可能。
至于其可擴展性,以太坊分片技術的命名“二次方分片”透露了端倪:假設分片上的交易,其執行復雜性能夠被化約到與區塊頭驗證同樣的難度,則分片化執行的架構,可以使整個系統的處理能力,隨著參與節點處理能力的線性提高而呈平方級提高。通俗來說,如果參與網絡的節點在一段時間內能驗證4個區塊頭,這就意味著,在參與一個分片時,節點們可以在同等時間內驗證4筆交易,此時系統總處理量是4條分片×4筆交易/分片=16筆交易;如果節點的處理能力變成了8,則處理量會變成64筆交易。
觀點:美國央行CBDC未來一定會存在,但還需要很長時間準備:10月18日消息,前波士頓聯邦儲備銀行行長Eric Rosengren發表公開聲明,美國央行CBDC未來一定會存在,但這需要白宮、國會和美聯儲之間達成協議,因此可能需要很長時間。Rosengren還認為,央行CBDC將與穩定幣和其他加密貨幣等相互排斥。(Beincrypto)[2021/10/18 20:37:49]
聽起來很美好,但是,這個“平方級擴展”的論證中包含了如下假設:
存在一種技術,使得分片交易的驗證,可以簡化到與驗證區塊頭同樣的難度;
不存在跨分片的交易,即各分片內的交易是完全不會相互依賴的。跨分片的交易需要占用多個分片的處理容量,也要占據信標鏈的處理容量,會使可擴展性大打折扣。
關于,這個假設是有可能得到滿足的,無狀態性就是這樣的一種技術,它的思路是,在傳播交易,附帶交易所訪問狀態的證明,使得交易的驗證者無需持有交易執行之時的狀態數據,就能驗證交易的有效性。這一點極為關鍵,如果沒有無狀態性,參與分片驗證的驗證者就必須保存分片的狀態,因為驗證者會被不斷分配到不同的分片鏈上,那就意味著他們必須保存所有分片的狀態,在實踐中也就意味著他們要不斷下載所有分片的區塊并處理交易,從而使整個系統坍縮為一個大區塊系統。遺憾的是,至今,以太坊1.0也沒有研究出足夠輕量的無狀態方法。
關于,那就沒有什么好說的了。如果不能實現跨分片交易,分片化執行的系統就沒什么意義,因為各分片各自為政。必須使得ETH有辦法存在于各個分片上,這個系統才能仍然以ETH為主體。而直到今天為止,還沒有出現一種跨分片交易方案,能夠不增加信標鏈的處理量。道理也很簡單,對于任意A分片來說,因為并行處理,任意?B分片上正在發生什么交易,需不需要改寫本分片的狀態,是不可知的,因此必須存在一個通信層,可信地證明B分片上發生了一筆試圖改寫A分片狀態的交易。而一旦需要讓信標鏈具備處理交易的功能,平方級擴展的效果就會被打破。
觀點:每一輪比特幣的快速上漲都與市場快速擴容相關:從投資角度來看,以比特幣為例,每一輪比特幣的快速上漲都與市場的快速擴容相關,而與“總量恒定”、“四年減半”之類的概念關系不大。最后這波擴容的范圍最大,因此比特幣網絡的價值增量也最大,據不完全統計,持有比特幣的個人賬戶數量已經接近5000萬。我國參與比特幣網絡的時間比較晚,整體持有的比特幣主要來自2011年之后的挖礦所得,占據了流通比特幣的主流,然而總體持有量占比很低。我國監管態度明確,未來幾乎不可能出現同等規模的擴容。西方市場飽和以后,幣圈投資者越來越關注中國的動向,只有中國具備更大的接盤能力,然而我國一旦接盤就將是“最后一棒”。幣圈投資就是一場零和游戲。其中真正能創造便利和價值的部分,將來一定是由央行數字貨幣來承擔。(新華財經)[2021/6/23 23:58:59]
除了存疑的可擴展性,分片化執行還帶來了許多經濟上的有趣問題。例如,如果跨分片交易的處理時間超過一筆分片內交易的處理時間,這就意味著,不同分片上的ETH價值也不會相同。就好像美國國內的1美元,與美國國外的1美元,實際上并不是同一種東西。不論有多少個分片,都至少會有兩種ETH價格,一種,是那個金融應用最繁茂的分片上的ETH的價格;另一種是其它分片上的ETH的價格;后者必須支付一定的手續費并付出一定的時間,才能換成前者,因此對前者必定有一些折價。同理,即使每個分片上都有uniswap,不同分片上市場的交易滑點也必定不相同,最終大家都會匯集到一個分片上,因為大家都在一起的時候,流動性最充沛,資金效率最高。某種程度上,可以認為跨分片交易的需要是很少的——但這也意味著,其它分片上閑置的交易處理容量,也根本沒有意義。
聲音 | 觀點:2020年美國總統大選中,用戶將在Augur押注1000萬美元:曾在Augur擔任高級工程師的Ryan Berckmans日前在推特桑表示,Augur將在五年內成長為“龐然大物”。在英國大選期間,該平臺賭注達到了20萬美元。2018年的中期選舉則達到了150萬美元。他進一步預測,用戶將在即將到來的2020年美國總統大選中押注1000萬美元。(The Daily Hodl)[2019/12/13]
分片化執行系統的技術難點,此處不再贅述,感興趣者可以自己想想分片化執行系統怎么支付手續費的問題。但我在這里想說的是,分片化執行系統的設計理念違背了大家的實際需要,也違背了事物的發展規律。全局狀態,并不是一個問題,而正是大家需要的東西;正是因為以太坊使得所有金融應用都能瞬間組合,創造了一個價值可以零摩擦流通的空間,以太坊才有了變革世界的潛力;在協議層為價值流通創造摩擦,是自廢武功。有了一個良好的基礎層時候,應該想辦法維護這個基礎層,剩下的事情讓用戶自己選擇,讓生態自己演化——不要以為設計能設計出一個生態,過度設計只是給所有人強加成本。
分片化執行的擱置,側面印證了其中的難度——在可預見的未來,這條道路無法產生令我們滿意的成果。盡管如此,我并不認為Eth2.0的研究員們已經完全放棄了三階段路線圖,Vitalik也還強調,變更后的路線圖,跟Phase2也是完全兼容的,只是Phase2不再具有優先級。
但是實際上,放棄分片化執行,才是以太坊應該選擇的道路。
可執行信標鏈路線圖
在以太坊2.0的新路線圖中,最令人矚目的一點是:信標鏈區塊將包含合并后的Eth1分片的交易,也即信標鏈具備了執行功能。其它分片僅具有保存數據的功能。
聲音 | 趙東:贊同“穩定幣是買賣數字貨幣所使用的媒介”觀點:Dfund創始人趙東在微博上贊同某用戶關于穩定幣的觀點。該用戶表示,目前乃至將來,絕大多數的穩定幣是沒有實際意義的,所有的穩定幣再怎么穩定也不會比被錨定的那些法幣本身對自己更穩定,穩定幣的作用其實就是一個買賣數字貨幣所使用的媒介。[2018/9/28]
實際上,新路線圖中“數據分片”的定位是“供rollup使用的數據可得性層”。
沒了執行化分片,平方級擴展就無從談起了。那么,這種“PoSLayer-1+rollup+rollup數據不占據主鏈區塊空間”架構的可擴展性如何呢?
要解答這個問題,我們先來看看rollup方案與主鏈的交互模式。
首先,你可以把一個rollup系統理解為一個無狀態的合約,這個合約的內部狀態,對外是不可見的;但是,該合約內發生的所有交易,其數據會定期公開出來,發布到主鏈上,使得任一第三方,得到這些數據后,都可以重建出該合約的內部狀態。
使用有效性證明的rollup的特點是:該合約每次公開交易數據時,都附帶一個這些交易已被正確執行、因此新的狀態根應是XXX的“計算完整性證明”;如果該證明能通過合約的驗證,則該合約更新狀態根;如果該證明不能通過驗證,則該合約拒絕更新。
使用錯誤性證明的rollup的方案則相反:任一人每次為合約公開交易數據時,都必須存入一筆押金,并斷言合約的新狀態根是YYY;此后一段時間內,任意其他人都能存入押金、發出錯誤性證明來挑戰該斷言;錯誤性證明即證明該批交易有瑕疵,或者交易處理后的新狀態根不是YYY;如果挑戰成功,則發布錯誤斷言的人會損失押金;如果一段時間內無人挑戰,則合約更新狀態根為YYY。
這兩種方案,都必須在鏈上發布數據,因此會占用鏈上空間;而且,鏈上空間的大小,決定了rollup系統在單位時間內的處理量。想得更深一些,如果這些交易數據,能夠發布在一個數據量的約束更小的地方,或者說,不去占用Layer-1區塊的空間,則其處理量,能產生倍加的效果。如果這樣的西方有很多,那還可以產生倍乘的效果。
這就是“數據分片”及“以rollup為中心的路線圖”的理念:讓rollup方案把交易數據都放到分片區塊中,分片有多少個,處理量就能提升多少倍;當前的以太坊區塊數據量大概是20~30KB,這個數據量顯然是安全的,則,如果我們有64條分片,我們每15秒就能提供64*30=1920KB=1.9MB的數據量。而且,使用端我提供了這么大的數據吞吐量,但它不會成為全節點的負擔,因為這些數據你想下載就下載,不想下載就可以不下載,大家你下載一點,我下載一點,節點的負擔還是很輕的——反正,驗證這些rollup合約的狀態,并不要求我擁有該rollup的所有歷史交易數據。以太坊的狀態仍然是安全的。
聽起來很合理,但還是那句話,太樂觀了,太多假設了:
這種“想下載就下載,不想下載就不下載”的方法,在zkrollup上根本行不通:當zkrollup要更新狀態根時,zkrollup合約更新操作的驗證者在接受證明時也必須獲得與該證明對應的交易數據,否則就無法通過驗證。。也就是說,如果僅考慮zkrollup,那么“數據分片”的方法,從帶寬上來說,與大區塊沒有任何分別。不管這些數據一開始被發到了誰手上、存到了哪里,全節點都要下載它們。
對optimisticrollup來說,如果你愿意采取更樂觀一點的假設,當然可以,你可以平時完全不下載交易數據,僅保留獲得終局性的最新狀態根,僅在發生爭議時,再下載相關的交易數據,從全節點的角度看,并沒有因此喪失對合約狀態的驗證能力;但是從用戶的角度看,事情就完全不同了:你開始不確定自己到底是不是隨時能夠重構自己的狀態,來完成取款。也就是說,用戶將不能確定自己用的到底是optimisticrollup,還是plasma。本來,optimisticrollup的方案就是保證了所有全節點都有歷史交易的備份,所以用戶可以容易地重建自己的狀態,并提交狀態證明完成取款;但如果這一點保證失去了,你就不確定自己能不能重建狀態了。optimisticrollup的安全性也會受到影響:它的安全假設是,獲得了交易數據的人之中至少有1個是遵守協議的;在數據分片模式下,你并不知道,有多少人會去請求這部分交易數據。
總而言之,“數據分片”模式搭配zkrollup時,在帶寬的意義上,無法提供更大的可擴展性,而與擴大區塊空間的效果相同;在搭配optimisticrollup時,相對于大區塊,其可擴展性優勢與挑戰發生的頻率成反比;更嚴重的是,它使optimisticrollup有退化為plasma的風險。
結論
Rollup方案其實是從Layer-2發展過程中吸取了血淋淋的教訓而飛出來的鳳凰。它最大的特點在于,給用戶的資金安全提供了充分的保護。因為任意得到了交易數據的人都可以重建狀態,而區塊鏈保證了這些交易數據的永續數據可得性,rollup方案得以提供layer-2方案中首屈一指的用戶保護。只有這樣的方案,用戶才敢真的去使用。舍棄了這種好處,按最大化性能的樂觀假設來設計系統,只能設計出用戶不敢去用的東西。
只要你意識到,rollup本質上是一種合約的設計模式,“PoS+數據分片+rollup可以提供更大吞吐量”的迷思便可一眼洞穿——rollup不管在哪個共識中,都可以提供同樣的可擴展性,數據分片能提供更多,只是因為引入了別的安全假設,使rollup犧牲安全性來換取吞吐量而已——問題在于,這樣的合約,比rollup的安全性更弱、可擴展性更強的合約,不是沒出現過,不是在pow鏈上就設計不出來,而是設計出來了也沒人用而已。
自2017年以來,以太坊社區就為著實際的需要艱難地探索安全的可擴展性方案。許多人可能都相信過,“PoS+分片”能提供強大的可擴展性,但那是“分片化執行系統”,有自身的一堆問題。眼前的“可執行信標鏈路線”,也不過是犧牲合約本身的屬性來換吞吐量而已。時至今日,已經找不到證據,證明為了可擴展性,以太坊應該擁抱PoS。
歸根結底,只有契合用戶需要的性能提升,才是真正有意義的性能提升。如果不從用戶的實際需要出發,相反,從技術美感或者最大化性能的假設出發,只能設計出空中樓閣。如果可以,那就讓用戶自己來做決定,在協議層操心太多,往往徒增摩擦。
以太坊的路線圖應該改變嗎?當然,因為沒有什么利益,大到值得我們承擔改變底層這么大的風險。
根據澳大利亞儲備銀行在11月2日發布的聲明,該金融機構將與澳大利亞聯邦銀行、澳大利亞國民銀行、金融服務公司Perpetual和軟件公司ConsenSys合作開發一個項目.
1900/1/1 0:00:0011月21日,CFTC公布了最新一期的CME比特幣期貨周報,統計周期內BTC上漲勢頭延續,雖然在統計周期前半段基本保持橫盤,但是末段的一波上漲為后續的沖高奠定了基礎,市場上漲勢頭沒有明顯變化.
1900/1/1 0:00:00來源:光明日報 隨著經濟社會數字化轉型進程不斷推進,數字貨幣作為支付手段數字化的工具和基礎,受到越來越多的關注,當前全球主要經濟體央行紛紛開始推進主權數字貨幣發展,我國的數字人民幣試點已經啟動.
1900/1/1 0:00:00和新加坡相比加密貨幣政策一直推進緩慢的香港,近期傳出將把加密貨幣交易所納入監管軌道。那么已經擁有香港上市公司主體的火幣與OK能否借此完成合規?在北京加密貨幣政策合規化毫無進展的情況下,香港能否成.
1900/1/1 0:00:0011月15日,BCH即將再次分叉,隨著幣安和Coinbase的表態,BCHN基本推翻了原開發團隊ABC。總結來看,ABC在沒有共識下強推IFP,是此次分叉的直接原因.
1900/1/1 0:00:00剛滿60歲、剛剛從新冠病中康復的ChrisLarsen,他曬出了一張自己獻血的照片,并借此呼吁那些感染了新冠病并且已經治愈的人們可以“考慮捐血來幫助進行抗體移植”.
1900/1/1 0:00:00