原定於今年6月的以太坊合併(The Merge)又一次推遲。儘管如此,合併作為以太坊升級進程上的重要里程碑,依然是今年最值得關注的事件之一。
有人可能會將「合併」與「擴容」混淆,但這其實是以太坊升級的兩個階段。 「合併」解決的核心問題是將共識機制從POW切換到POS,減少能源消耗,本身並不能帶來擴容;而擴容則是解決以太坊可擴展性問題、提升吞吐量的關鍵。
以太坊的可擴展性不足,歷來是其發展的最大掣肘,也給了其他公鏈充足的競爭窗口期。如果以太坊擴容成功,將會釋放巨大潛能,這一全球性基礎設施的進化也必然會影響公鍊格局,甚至孕育新的應用賽道。
那麼,以太坊擴容要解決的核心問題有哪些,目前的主流方案是什麼,又如何理解即將發生的「合併」、你方唱罷我登場的多種Layer2項目呢?鏈茶館梳理以太坊升級進程,匯總如下。
本文目錄:
1. 「合併」的邏輯與影響
1.1 共識機制改變:從POW到POS
1.2 合併影響之一:TPS與手續費基本不變
1.3 合併影響之二:ETH將會微通縮
2. 以太坊的可擴展性困境
3. 以太坊擴容路線——Rollups+Sharding
3.1 鏈下擴容:各類Layer2及Rollups的勝出
3.2 鏈上擴容:Sharding的原理及意義
3.3 L2龍頭項目一覽
4. 小結
1. 「合併」的邏輯與影響
1.1 共識機制改變:從POW到POS
以太坊主網當前採取工作量證明(POW)共識機制,礦工們必須首先對一個特定值進行暴力求解,通過消耗的算力證明自己付出了代價,才有資格產出新的區塊。 POW會帶來大量的能源消耗,歷來為人詬病,而POS則通過驗證者的資產抵押來代替算力消耗,不會消耗過多能源。以太坊路線圖中最重要的兩個部分,一是從POW切換到POS、避免過多能源消耗,二是上述的擴容路徑,而共識機制的改變將會優先落地。
在2020年12月,作為未來主網的「信標鏈」已經上線,獨立於主網運行。信標鏈穩定出塊,驗證者也可質押挖礦、獲得信標鏈增發的區塊收益,但還沒有承擔實際功能。 「信標鏈」也將會是「擴容」路線中的重要組成部分,將在下文詳細介紹。
來源:https://beaconscan.com/
「合併」的目標,是將以太坊主網的「共識」邏輯放在信標鏈上,而「執行」邏輯仍然在原來的主網運行。要理解這一變化對於以太坊運行而言意味著什麼,需要先理解以太坊的出塊流程。
以太坊的一個完整出塊週期,包含如下步驟:
1)「執行」:礦工在新的交易請求中挑選部分並執行交易,驗證交易是否均有效,更新本地的EVM副本,產生潛在區塊;
2)「工作量證明」:礦工完成本地的執行和驗證後,會開始進行工作量證明,以獲得出塊資格;
3)「共識」:最終會有一名獲得出塊資格的礦工,將已經執行完的交易廣播給全網節點,其他節點會在本地重新驗證和執行,確認區塊有效性;
4)「多方存儲」:完成共識後,所有節點都會更新EVM副本狀態,保存最新的交易歷史[1]。
在合併之後,上述的「執行」和「多方存儲」維持不變,仍在原來的以太坊主網上運行,而礦工則會被信標鏈上的ETH質押者所替代,質押至少32個ETH即可參與出塊和驗證。在每個出塊週期內(設定為12秒),將會由算法選出一個區塊生產者,在區塊經過生產和廣播後,信標鏈將會分配一組驗證者,驗證區塊並完成共識[8]。
對比原先的流程,礦工由質押者所替代,礦工的信任成本從消耗算力變成了質押資產。 「工作量證明」被取消了,因此減少了~99%的能源消耗。
由於出塊成本大幅下降,因此很多人誤認為這會帶來ETH手續費的下降甚至性能的提升,但這其實是一個誤解。接下來,我們將會介紹合併所帶來的影響。
1.2 合併影響之一:TPS與手續費基本不變
可能和很多人的直覺相反,合併後雖然出塊成本降低,但是TPS和手續費基本保持不變,其核心原因在於區塊大小和出塊速度基本沒有變化。了解TPS的邏輯和手續費的定價機制,可以更好地理解這一點。
TPS即每秒交易筆數,等於每個區塊能夠容納的交易筆數➗出塊時間。在去年8月實施EIP-1559後,單個區塊的基準空間為1,500萬gas(gas是以太坊上操作消耗的計量單位),當需求增加時,單個區塊的空間上限可以達到3,000萬gas。
由於合併後的「執行」環節並沒有改變,因此單個區塊的空間大小也沒有改變,仍然遵循原先的1,500萬基準、3,000萬上限。至於出塊速度,目前以太坊主網基本維持在~13秒出一個區塊,合併後將會改變為每12秒出一個區塊。也就是說,TPS最多可能會由於出塊速度提升~1秒,帶來<10%的提升。
以太坊的區塊大小和出塊速度之所以有局限,是為了保證節點可以全量驗證、並且即時同步,達到足夠的安全和去中心化。 TPS的局限是以太坊的可擴展性問題,並不能通過改變共識機制來解決。
理解了TPS,手續費的邏輯也就顯然了。以太坊的手續費定價機制在去年EIP-1559實施後有重大變化,分為兩部分:基礎費用(Base Fee)和小費(Tips)。基礎費用完全按照供需關係來確定,需求即用戶提交的交易請求,供給則是以太坊能夠提供的計算空間。如果這一個區塊所收到的交易請求量大於上一個區塊實際處理的請求量,那麼下一個區塊的基礎費用就會最多增加12.5%。小費則是給礦工的獎勵,本質上也是一種吸引礦工的競價機制,同樣由需求決定。
基礎費用攀升示例,來源:https://ethereum.org/en/developers/docs/gas/
由於TPS沒有本質變化,計算空間仍然受限,因此合併也並不能改變供需關係,無法對手續費產生影響。
1.3 合併影響之二:ETH將會微通縮
ETH當前同時具有增發和燃燒機制,整體而言呈微通脹;而在合併之後,由於增發率降低,整體將呈1%~2%的微通縮。
目前ETH的增發機制為:每個區塊產生2個ETH的礦工獎勵,根據當前出塊速度和流通總量估算,年增發率大約在4.3%。其燃燒機制為:1.2小節中所述的「基礎費用」均會燃燒,每年約燃燒290萬枚ETH。綜合估算整體的通脹率在~2%。
合併之後,最大的變化在於區塊獎勵會大幅降低,約為原先的~90%,假定年燃燒量不變,整體將會達到~2%的通縮。
POS和POW兩種機制下的ETH通脹模型,鏈茶館製作
2. 以太坊的可擴展性困境
以太坊作為最主流的智能合約平台,以其安全和去中心化的特徵著稱,然而在可擴展性方面仍然落後:以太坊目前的TPS(每秒可處理的交易筆數)在10~15之間,供給不足、需求旺盛,導致依靠競價確定的手續費居高不下,每筆交易需要花費數美元~數十美元。
以太坊近一周TPS,來源:https://ethtps.info/Network/Ethereum
作為對比,BNB的TPS在40~50之間,Solana更是達到了1,000+,和Visa在同一水平。
BNB、Sol的TPS,來源:https://bscscan.com/;https://explorer.solana.com/
去中心化(Decentralization)、安全(Security)、可擴展性(Scalability),三者只能擇其二,這也被稱為區塊鏈不可能三角。以太坊最初的選擇是放棄可擴展性,使之符合Web3最重要的價值觀。
如果以簡潔粗暴的方式實現可擴展性,那麼就會犧牲安全性或者去中心化。如下圖所示:第一種方法是擴大區塊容量,但這樣會導致驗證者的工作量也同樣擴大,最終能夠承受工作量的驗證者就會集中在數據中心,由巨頭把控,失去了去中心化特徵,這也是為什麼以太坊目前的區塊容量和出塊速度都是有限的,只有這樣才能讓普通人也可參與驗證;第二種方法即擁有更多的山寨幣(公鏈),但這樣會由於驗證分散、導致安全性也成比例降低。
來源:https://www.youtube.com/watch?v=OJT_fR7wexw
儘管如此,以太坊一直在積極尋找可擴展性的解決方案,並且在2020年就確定了以Rollups(打包)+Sharding(分片)為中心的擴容路線[2]。
3. 以太坊擴容路線——
Rollups+Sharding
根據以太坊官網的現行分類,「擴容」分為鏈上和鏈下擴容,其中鏈上擴容即「分片」(Sharding),是對以太坊主網的變更;鏈下擴容即Layer2及其他各類獨立於以太坊主網的方案。
鏈茶館製作,依據:https://ethereum.org/en/developers/docs/scaling/#layer-2-scaling
由於鏈上擴容的Sharding是對以太坊主網的變更,將會對所有歷史數據進行遷移,因此進程緩慢,官方預期Sharding會在2023年實現;而鏈下擴容的多種方案已經落地,其中的Rollups是以太坊社區選定的主要路線、也是擴容路線圖的短期重點。下文將分別介紹鏈下和鏈上擴容。
3.1 鏈下擴容:各類Layer2及Rollups的勝出
以太坊官網的分類中,對Layer2的定義相對狹隘,僅僅將Rollups和State Channels這兩種通過主網來完成共識的方案稱為Layer2。通常在廣義上,所有的鏈下擴容都可以稱為Layer2。
簡單介紹下幾類方案:
1)Rollups:在以太坊主網之外(即鏈下)完成交易的執行,之後將多筆交易打包發佈到主網上,由主網完成共識。通過將計算執行放在鏈下、並打包壓縮部分數據返回鏈上,減少了對主網空間的利用。
需要注意的是,Rollups打包發布的信息中必須包含:a)狀態根(State Root),代表交易完成後的所有賬戶餘額,也就是交易結果狀態;b)交易信息,即A給B轉賬多少的交易指令。通過這兩部分信息,主網節點可以對Rollups上的交易歷史做全量驗證,因此Rollups的安全性能夠得到主網的保證。這一點非常關鍵,也是Rollups區別於Plasma/Validium、安全性得到認可的原因。
來源:https://vitalik.ca/general/2021/01/05/rollup.html
Rollups中又分為兩類,一類是Optimistic Rollups,採用欺詐證明(Fraud Proof),即設置挑戰機制,允許驗證者對有問題的交易進行挑戰,受到挑戰的交易需要在L1主網上重新執行,由於假定所有交易在正常情況下合法,因此稱為「樂觀Rollups」;另一類是ZK Rollups,採用有效性證明(Validity Proof),即所有提交到L1主網的交易都需要通過零知識證明。
Optimistic Rollups的加密技術方案成熟,可以兼容EVM,也是落地最早的Rollups,典型項目為Arbitrum和Optimism。 ZK Rollups需要打包上傳到L1的數據更簡潔,因此執行交易更為快速高效,但技術難度較大,並不天然兼容EVM,對開發者來說遷移成本高
2)State Channels:參與者可以通過多簽合約在鏈下完成多筆交易,將金額累計,以最終的一筆交易記錄在主網上。但是這類方案的應用場景非常局限,只有網絡參與者能夠使用,而且在復雜交易中需要質押非常大量的金額。
3)Sidechains:獨立於主網的EVM兼容鏈,通過雙向橋可以和主網橋接,但是其共識邏輯、區塊參數均與主網無關。由於完全獨立,因此安全性無法得到主網的保證,典型項目如Polygon。
4)Plasma:類似安全級別更低的Optimistic Rollups。 Plasma本身是一個可以有無窮個子鏈的區塊鏈,每一個子鏈都類似一棵樹上的樹枝,執行部分交易,所有的交易狀態最終會匯總成一個hash值,發佈到L1上。但是通過這個hash值並不能複原所有的交易歷史,因為過程中的交易信息會存儲在各個子鏈、即各個樹枝上,而驗證節點無法確信子鏈上的所有區塊都有足夠的數據有效性證明。一旦有任何一個區塊的信息無法確認是否有效,那麼整條鏈上的交易歷史都會陷入危機,這也被成為數據可用性問題(The Data Availability Problem)[3]。
來源:http://plasma.io/plasma-deprecated.pdf, P10
Plasma和Optimistic Rollups有兩個相似之處,一是都將計算放在了鏈下,二是都採取欺詐證明。但其中的關鍵區別在於,Rollups壓縮後上傳的數據仍包含了全量交易歷史,Plasma卻不包含。
5)Validium:類似安全級別更低的ZK Rollups,同樣採取零知識證明,但是數據並不存儲在L1上,典型項目如採用了StarkWare技術的Immutable X、DeversiFi。
整體上來看,Rollups是安全性最高、且應用場景廣泛(不像State Channels那樣只允許網絡參與者使用)的鏈下擴容解決方案。因此,在分片實現之前,Rollups被認為是最重要的擴容路徑。
下圖展示了部分主流Layer2項目,可以看到,事實上Rollups也是最廣為採用的技術,其中技術成熟的Optimistic Rollups應用場景更廣泛,可以面向任何智能合約;而ZK Rollups由於在兼容EVM方面的局限性,使用場景往往受限。
來源:https://l2beat.com/
值得注意的是,TVL排名第5的Metis,由於沒有將全部交易數據放在鏈上、而是通過鏈下的去中心化存儲項目MEMO來保存,在實現了超低手續費的同時犧牲了數據可用性,因此被排斥為「Optimistic Chain」而非「Optimistic Rollup」。
Metis的取捨也反映了Rollups的一個問題:由於仍然需要在L1上發布交易數據,因此其可擴展性受限於以太主網的存儲空間。 Rollups所能做的,就是將盡可能少的數據壓縮上傳至L1,以此來提升吞吐量。
在這一方面,ZK Rollups比Optimisitc Rollups更具有優勢。由於ZK Rollups通過零知識證明解決驗證問題,所有發佈到L1的交易數據都已經得到了驗證,所以如果有部分交易信息僅僅是用來驗證、而非計算最新結果,那麼在ZK Rollups中這部分信息可以放在鏈下,但是在Optimistic Rollups中則必須放在鏈上,以便在欺詐證明中查詢[4]。 ZK Rollups比Optimistic Rollups更節省鏈上空間。
下圖展示了多個L2的手續費對比(假設將Metis仍歸類為L2),可以看到,除了主打隱私的Aztec和存在爭議的Metis相對特殊外,ZK系的Loopring/ZKSync/Polygon Hermez手續費均低於OP系的Optimism/Boda/Arbitrum。
來源:https://l2fees.info/
那麼,Rollups到底能在多大程度上提升TPS呢?簡單來說,假設Rollups佔用了主網的全部空間,那麼理論上限大約能達到主網的100倍[5]。以ZK作為上限來估算,一筆發送ETH的交易大概需要~12字節,而在主網則需要~110字節,而ZK所需要的證明空間極少,單個ZK的打包數據在驗證上所需的額外空間只佔以太坊區塊空間的不到5%,因此粗略來算TPS為主網的100倍。目前主網日常TPS約15、理論上限TPS約100,因此ZK Rollups的理論上限TPS約10,000。
當然,10,000TPS是一個非常理想的數字,幾乎不可能達到:首先,單個以太區塊內只存在單筆打包交易就很難實現,存在多筆則驗證所需的空間也會增加;其次,主網不太可能持續維持理論上限,因為在EIP-1559實施後,如果對區塊空間的需求持續攀升,那麼手續費就會不斷攀升,直到用戶無法承受[6]。
從Optimism的近期轉賬數據來看,最簡單的ETH轉賬大約能提升5~6倍TPS。以下是一筆最簡單的ETH轉賬交易,如果發生在以太坊主網需要消耗21,000gas,通過OP則只消耗了主網~3,800gas。
來源:https://optimistic.etherscan.io/tx/10153071
總結而言,Rollups理論上能將主網TPS提升100倍,但務實一些估算,Optimistic Rollups大約能提升數倍,ZK Rollups應該能提升數十倍。
有沒有一種方法,能夠在保持安全性和去中心化的同時,擴大以太主網的存儲空間,進一步提升TPS呢?這就是Sharding的意義。
3.2 鏈上擴容:Sharding的原理及意義
要繼續突破TPS,就需要擴充主網的存儲空間,Sharding就是實現這一目的的技術方案。
在Sharding方案中,主網被稱為信標鏈(Beacon Chain),在主網之上有64個分片(Shards)用以產生區塊、存儲信息。在每個出塊週期內(Slot,設定為12秒),每個分片內都會隨機產生一個提議者(Proposer),產出一個分片塊(Shard blob)並廣播到主網[7]。
來源:https://hackmd.io/@vbuterin/sharding_proposal
Sharding的思想和Rollups有些類似,都是通過主網外的數據層來存儲數據,釋放空間,但是Sharding運用了兩個技術,使之有別於Rollups,也實現了這樣一個目的:單一節點不需要下載全量數據來驗證交易歷史。
第一個技術是驗證委員會的隨機選取。對於每個分片塊,都會將全量的驗證者隨機打亂,組成一次性的驗證委員會,來對這一個分片塊進行驗證。這一隨機性保證了作惡者難以將其買通的驗證者都放入同一個委員會進行驗證,除非作惡者掌控了1/3以上的驗證者。
來源:https://hackmd.io/@vbuterin/sharding_proposal
第二個技術是數據可用性的隨機抽取,即每個客戶端在驗證分片塊時,並不需要下載全量數據,而只需要隨機抽取分片塊的部分,來驗證至少50%的數據有效性。
來源:https://hackmd.io/@vbuterin/sharding_proposal
通過上述步驟,Sharding實現了隨機抽樣的部分節點、對隨機抽樣的部分數據的驗證,而不再像目前一樣需要節點對主網的全量數據進行驗證,由此實現主網的擴容。
那麼,Sharding能貢獻多少擴容呢?按照目前的設計,共有64個分片,每個分片在每12秒的出塊週期內會產出~250KB的數據塊,也即每12秒能夠承載16MB數據、每秒能承載~1.3MB數據。對比當前ETH主網狀態,每個區塊的目標承載空間為1,500萬gas,一筆最簡單的ETH轉賬需要~110字節,消耗2.1萬gas,按平均13秒出一個區塊,可以估算得出當前主網每秒能夠承載~77KB數據。因此,Sharding大約能帶來~17倍(1.3MB/77KB)的性能提升。
Sharding還沒有明確的時間預期。雖然官方給出的計劃是2023年,但是鑑於合併仍未按計劃落地,2023年的預期恐怕過於樂觀。目前的擴容,需要依靠L2實現。
3.3 L2龍頭項目一覽
Arbitrum、Optimism、ZKSync、StarkNet是目前最主流的四個L2項目。梳理項目基礎信息,可以發現:
1)OP系更成熟,Arb佔據TVL之首,和ZK系的ZKSync、StarkNet遠遠拉開差距。 ZK系技術難度高、並不天然兼容EVM,生態發展較慢。
2)不論是OP系還是ZK系,背後都有強大的資本力量。在去年9月,Arbitrum的估值就達到了12億美元,今年5月StarkNet母公司更是以80億美元估值驚艷了Web3。頭部Crypto投資機構如a16z/Paradigm,都同時押注了OP系和ZK系的項目。 Optimism剛剛發幣,雖然初期表現不佳,但是FDV仍然有50億美元;除此之外三家都尚未發幣,這也是接下來值得期待的一波潛在空投。
主流L2項目一覽,鏈茶館製作
4. 小結
以太坊的「共識邏輯改變」與「擴容」,構成了以太坊升級的兩大主題,本文也從這兩部分展開,分別介紹了共識邏輯的變化與影響、多種擴容方案及其落地程度。
以太坊合併(The Merge)的目的,是將共識邏輯從POW轉變為POS,從而大大減少能源消耗;但是由於執行邏輯並不改變、沒有改變以太坊的計算存儲空間,因此對於TPS和手續費基本沒有影響,而在合併後ETH增發率將會大幅下降,造成微通縮。
與此並行的,則是以太坊的擴容(Scaling)進程,旨在提升以太坊的處理性能/TPS,也只有在供給能力提升後,依靠供需關係定價的手續費才能下降。擴容分為鏈上和鏈下兩類,鏈上即對於以太坊主網運行邏輯的變更,採用分片(Sharding)方案,在主網上分出64個子區塊鏈分區而治,但是距離落地預期仍較遠;在這一方案實現前,以太坊社區將鏈下擴容中的打包(Rollups)方案作為中短期路徑,且這一賽道中已產生四大主流L2項目,當下單個項目估值在數十億美元。
有趣的問題是,Rollups和Sharding未來會如何結合? V神的理想假設是,兩者的效用將會疊加:ZK Rollups理論上能將TPS提升~100倍,Sharding理論上提升~20倍,假設ETH的TPS為50(實際目前在~15),未來以太坊的TPS理論上限為~10萬,遠遠超過1,000~4,000的Visa。不過這一假設太過理想,幾乎不可能實現。
務實的估算結果是,當前OP Rollups能將TPS提升~5倍,ZK Rollups應該能提升數十倍。儘管如此,ZK對於性能的提升能力依然矚目,遠遠強過OP,但是由於其不天然支持EVM、使用場景受限,因此生態落後於OP。如果ZK實現了對EVM的友好兼容,潛力完全釋放,OP的生態恐怕會受挫。甚至於,屆時僅僅通過ZK就有可能實現~1,000的TPS,Sharding是否仍然必要也未可知。
以太坊的合併雖然被推遲,但是應該會在2022年底前實現POW機制的終結。與此同時,L2項目蓄勢待發,多個項目即將發幣,可以預見將會吸引一波新的用戶和資金。以太坊升級道路漫漫,但最終一定會影響公鍊格局。
註釋
[1]Mining:
https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/mining/;
參考《深度解讀Optimism:基本架構、Gas機制與挑戰| CatcherVC Research》:
https://mirror.xyz/0x8C4d5E90196325FB22Fff37C97D7984a37e51D11/5Y8BUo8PvJe2xGKExbxmPBaYaInuaYZlFt8_KlW9UpA
[2]A rollup-centric ethereum roadmap:
https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698
[3]The Data Availability Problem:
[4]An Incomplete Guide to Rollups:
https://vitalik.ca/general/2021/01/05/rollup.html, 「How does compression work?」
[5]An Incomplete Guide to Rollups:
https://vitalik.ca/general/2021/01/05/rollup.html, 「How much scaling do rollups give you?」文中估算的依據是主網單個區塊最大消耗空間為1,250萬gas,因此Rollups TPS理論上限約5,000;而在EIP-1559實施後,單個區塊空間上限提升到了3,000萬gas。
[6]Gas and fees:
https://ethereum.org/en/developers/docs/gas/#top,「Base fee」
[7]An explanation of the sharding + DAS proposal:
https://hackmd.io/@vbuterin/sharding_proposal
[8]Rewards and Penalties on Ethereum 2.0 [Phase 0]:
https://consensys.net/blog/codefi/rewards-and-penalties-on-ethereum-20-phase-0/,「On Block Minting and Consensus in Ethereum 2.0」
文/echo_z