一個PoS的幽靈,在以太坊的上空回蕩。——題記
自《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敲定機制,兩個過程并不是完全同步的。
Decentraland(MANA)成為前100個以太坊巨鯨24H交易量前十的代幣:8月14日消息,WhaleStats數據顯示,Decentraland(MANA)成為前100個以太坊巨鯨錢包24小時交易量排名前十的代幣之一。[2022/8/14 12:24:32]
這種“PoS信標鏈多分片”的架構,似乎也非常好地利用了PoS算法本身的特點:為了解決No-thing-at-stake問題,以太坊2.0所用的Casper算法要求用戶先存入一部分押金才能獲得出塊資格,而如果驗證者濫用了出塊資格,則會被罰沒押金;由此,像Casper這樣的算法實際上在區塊鏈上創造了兩種可以相互溝通、但相互獨立變更的狀態:一種是普通用戶的狀態,另一種是驗證者的出塊權重狀態;共識過程以出塊權重狀態為基礎,達成共識也會更改出塊權重狀態;因此,共識過程先天獨立于用戶交易的驗證,可以解耦;對任意的交易批次及結果狀態而言,共識過程可以被抽象成一種“終局性敲定機制”,邏輯上,多分片并行執行于是成為可能。
至于其可擴展性,以太坊分片技術的命名“二次方分片”透露了端倪:假設分片上的交易,其執行復雜性能夠被化約到與區塊頭驗證同樣的難度,則分片化執行的架構,可以使整個系統的處理能力,隨著參與節點處理能力的線性提高而呈平方級提高。通俗來說,如果參與網絡的節點在一段時間內能驗證4個區塊頭,這就意味著,在參與一個分片時,節點們可以在同等時間內驗證4筆交易,此時系統總處理量是4條分片×4筆交易/分片=16筆交易;如果節點的處理能力變成了8,則處理量會變成64筆交易。
聽起來很美好,但是,這個“平方級擴展”的論證中包含了如下假設:
CryptoPunk #5364 被捐贈于烏克蘭以太坊錢包,估值約20萬美元:3月2日消息,CryptoPunk #5364 被捐贈于烏克蘭以太坊錢包。據加密分析公司 Elliptic 估計,其價值約為20萬美元。此前,烏克蘭收到了價值約 1000 萬美元的 ETH、DOT、USDT、BTC 和其他加密代幣捐贈。處理捐款的數字化轉型部的烏克蘭加密貨幣交易所Kuna創始人Michael Chobanian表示,至少1400萬美元的捐贈加密貨幣已經用于軍事硬件和平民用品,包括食品和天然氣。
據悉,截至目前,烏克蘭加密貨幣捐贈活動金額已累計超過3300萬美元。[2022/3/2 13:31:57]
存在一種技術,使得分片交易的驗證,可以簡化到與驗證區塊頭同樣的難度;
不存在跨分片的交易,即各分片內的交易是完全不會相互依賴的。跨分片的交易需要占用多個分片的處理容量,也要占據信標鏈的處理容量,會使可擴展性大打折扣。
關于,這個假設是有可能得到滿足的,無狀態性就是這樣的一種技術,它的思路是,在傳播交易,附帶交易所訪問狀態的證明,使得交易的驗證者無需持有交易執行之時的狀態數據,就能驗證交易的有效性。這一點極為關鍵,如果沒有無狀態性,參與分片驗證的驗證者就必須保存分片的狀態,因為驗證者會被不斷分配到不同的分片鏈上,那就意味著他們必須保存所有分片的狀態,在實踐中也就意味著他們要不斷下載所有分片的區塊并處理交易,從而使整個系統坍縮為一個大區塊系統。遺憾的是,至今,以太坊1.0也沒有研究出足夠輕量的無狀態方法。
關于,那就沒有什么好說的了。如果不能實現跨分片交易,分片化執行的系統就沒什么意義,因為各分片各自為政。必須使得ETH有辦法存在于各個分片上,這個系統才能仍然以ETH為主體。而直到今天為止,還沒有出現一種跨分片交易方案,能夠不增加信標鏈的處理量。道理也很簡單,對于任意A分片來說,因為并行處理,任意B分片上正在發生什么交易,需不需要改寫本分片的狀態,是不可知的,因此必須存在一個通信層,可信地證明B分片上發生了一筆試圖改寫A分片狀態的交易。而一旦需要讓信標鏈具備處理交易的功能,平方級擴展的效果就會被打破。
以太坊核心開發人員:Schlesi測試網已分叉:以太坊核心開發人員Afri Schoedon昨日在推特上稱,為以太坊2.0公測設計的Schlesi測試網突然分叉了。這一情況發生在2020年5月17日,slot 141184。這意味著一個測試網經歷了一次意外的分裂,并且獨立驗證了不同的slot。到目前為止,它是以太坊2.0多客戶端測試網最近發布以來公開的第一個分叉。注:slot是以太坊2.0中產生一個區塊的時長,每個slot為12秒。(U.Today)[2020/5/18]
除了存疑的可擴展性,分片化執行還帶來了許多經濟上的有趣問題。例如,如果跨分片交易的處理時間超過一筆分片內交易的處理時間,這就意味著,不同分片上的ETH價值也不會相同。就好像美國國內的1美元,與美國國外的1美元,實際上并不是同一種東西。不論有多少個分片,都至少會有兩種ETH價格,一種,是那個金融應用最繁茂的分片上的ETH的價格;另一種是其它分片上的ETH的價格;后者必須支付一定的手續費并付出一定的時間,才能換成前者,因此對前者必定有一些折價。同理,即使每個分片上都有uniswap,不同分片上市場的交易滑點也必定不相同,最終大家都會匯集到一個分片上,因為大家都在一起的時候,流動性最充沛,資金效率最高。某種程度上,可以認為跨分片交易的需要是很少的——但這也意味著,其它分片上閑置的交易處理容量,也根本沒有意義。
分片化執行系統的技術難點,此處不再贅述,感興趣者可以自己想想分片化執行系統怎么支付手續費的問題。但我在這里想說的是,分片化執行系統的設計理念違背了大家的實際需要,也違背了事物的發展規律。全局狀態,并不是一個問題,而正是大家需要的東西;正是因為以太坊使得所有金融應用都能瞬間組合,創造了一個價值可以零摩擦流通的空間,以太坊才有了變革世界的潛力;在協議層為價值流通創造摩擦,是自廢武功。有了一個良好的基礎層時候,應該想辦法維護這個基礎層,剩下的事情讓用戶自己選擇,讓生態自己演化——不要以為設計能設計出一個生態,過度設計只是給所有人強加成本。
動態 | 以太坊未確認交易33938筆:據Etherscan.io數據顯示,當前以太坊未確認交易為33938筆,與昨日相比略有減少,但網絡擁堵情況仍較為嚴重。[2019/2/3]
分片化執行的擱置,側面印證了其中的難度——在可預見的未來,這條道路無法產生令我們滿意的成果。盡管如此,我并不認為Eth2.0的研究員們已經完全放棄了三階段路線圖,Vitalik也還強調,變更后的路線圖,跟Phase2也是完全兼容的,只是Phase2不再具有優先級。
但是實際上,放棄分片化執行,才是以太坊應該選擇的道路。
可執行信標鏈路線圖
在以太坊2.0的新路線圖中,最令人矚目的一點是:信標鏈區塊將包含合并后的Eth1分片的交易,也即信標鏈具備了執行功能。其它分片僅具有保存數據的功能。
實際上,新路線圖中“數據分片”的定位是“供rollup使用的數據可得性層”。
沒了執行化分片,平方級擴展就無從談起了。那么,這種“PoSLayer-1rolluprollup數據不占據主鏈區塊空間”架構的可擴展性如何呢?
要解答這個問題,我們先來看看rollup方案與主鏈的交互模式。
首先,你可以把一個rollup系統理解為一個無狀態的合約,這個合約的內部狀態,對外是不可見的;但是,該合約內發生的所有交易,其數據會定期公開出來,發布到主鏈上,使得任一第三方,得到這些數據后,都可以重建出該合約的內部狀態。
使用有效性證明的rollup的特點是:該合約每次公開交易數據時,都附帶一個這些交易已被正確執行、因此新的狀態根應是XXX的“計算完整性證明”;如果該證明能通過合約的驗證,則該合約更新狀態根;如果該證明不能通過驗證,則該合約拒絕更新。
以太坊區塊鏈24小時處理轉賬金額超過230億美元:據數據顯示,以太坊區塊鏈在過去24小時處理了超過230億美元的轉賬,這幾乎是BTC、BCH、LTC、DASH、BTG和ETC轉賬金額的總和。更準確的說,以太坊的轉賬數據不僅僅是ETH轉賬,還包括其上的所有ERC20代幣。[2018/1/15]
使用錯誤性證明的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。
歸根結底,只有契合用戶需要的性能提升,才是真正有意義的性能提升。如果不從用戶的實際需要出發,相反,從技術美感或者最大化性能的假設出發,只能設計出空中樓閣。如果可以,那就讓用戶自己來做決定,在協議層操心太多,往往徒增摩擦。
以太坊的路線圖應該改變嗎?當然,應該放棄這些不切實際的幻想,回頭問問用戶需要什么。
作者:?阿劍
六安瓜片,綠色黃金! 六安瓜片,中華傳統歷史名茶,中國十大名茶之一,簡稱瓜片、片茶,產自安徽省六安市大別山一帶,唐稱“廬州六安茶”,為名茶;明始稱“六安瓜片”,為上品、極品茶;清為朝廷貢茶.
1900/1/1 0:00:00鏈聞消息,金融隱私公鏈Findora宣布于近期成立「FindoraResearchCenter」并推出首期500萬美元專項研究基金,支持密碼學相關研究和項目,旨在加快建設新時代的去中心化金融.
1900/1/1 0:00:00鏈聞消息,加密貨幣衍生品交易平臺BitWell在其CEO致社區的公開信中公布了Roadmap發展路線圖.
1900/1/1 0:00:00各位小伙伴們大家好,今天是2020年11月24日星期二,我是區塊鏈里面的狂牛,很高興與大家見面.
1900/1/1 0:00:00這一周,“科學家”們很忙。11月14日,黑客攻擊ValueDeFi的MultiStablesVault池子,獲得近740?萬美金的DAI;11月17日,黑客攻擊OriginProtocol憑空鑄.
1900/1/1 0:00:00多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識老席何懼再遇荒涼?席幕楓:11.24晚間BTC行情分析大餅,整體格局依舊偏弱勢整理,18.
1900/1/1 0:00:00