在比特幣中,鏈上最寶貴的資源是空間,而在以太坊中,鏈上最寶貴的資源是 Gas,所以以太坊的 TPS 也是有限的。於是,當大量的人需要做交易,尤其是很多操作複雜的交易的時候,以太坊就會擁堵。那麼以太坊交易成本又由哪些組成呢?就讓我們在這篇文章中來看看吧!

作者: Xiang,W3.Hitchhiker

修訂: Evelyn

原用標題: ETH 交易成本組成

封面:William Tempest,Ethereum

眾所周知,以太坊有自己的虛擬機。

什麼意思呢?

就是比特幣中的交易長這樣:

“如果小明的簽名驗證通過,小明轉 10 元錢給小紅的地址。”

而以太坊中的交易可能長這樣:

“當小明的簽名驗證通過並且滿足 blablablabla 條件時,將小明賬戶中的 10 元錢轉到小紅的賬戶上。”

這其中的 blablablabla 條件,實際上可以是任何邏輯或者任何程序,其中可以有條件判斷,可以有循環,這些以太坊都支持。但問題就來了—— 要是有個不善良的礦工打包了個死循環放在區塊裡,豈不是能讓所有的以太坊節點都死機?

為了防止這種事情發生,以太坊中設置了每個區塊的 Gas 上限以及每個計算步驟所需要消耗的 Gas 量。

我們可以簡單粗暴地把 Gas 理解成汽油。比如,一個條件判斷需要 10 gas,一個簽名驗證需要 100 gas,一個狀態讀寫需要 10 gas 等等……然後,每筆交易都需要註明這筆交易需要使用的 Gas(當然,還需要付錢)。比如說,在某筆交易之後,你註明 “跑 1000 個 gas 的”,於是,以太坊的節點會執行這筆交易,但是當計算需要消耗的 gas 超過 1000 了,不管交易的步驟執行沒執行完都會停下來。

於是,死循環不會出現,比如你寫了個死循環,但是每次循環會燒 10 gas,而區塊的 gas 上限是 10000,你於是最多給這個程序買 10000 的 gas,那麼所有節點會執行 1000 次循環,直到把你給的 gas 燒完就停下來,而不會無限循環下去。

而這個時候就引出了另一個以太坊和比特幣不同的區別:

在比特幣中,鏈上最寶貴的資源是空間—— 因為一個區塊大小是 1 M,而平均 10 分鐘才能出一個區塊。

而在以太坊中,鏈上最寶貴的資源是 gas,因為每個區塊的 gas 是有上限的,而平均出塊時間也是固定的,每單位時間能夠做的計算步驟其實也是有限的,所以 ETH 的 TPS 也是有限的。

於是,當大量的人需要做交易,尤其是很多操作複雜的交易的時候,以太坊就會擁堵。

ETH 的 TPS

對 ETH 的 TPS 造成影響的問題大概分以下幾個方面:

  1. ETH 的 gas 機制
  2. ETH 的交易成本
  3. ETH 的網絡
  4. 合併進程
  5. 分片鏈

1、ETH 的 gas 機制

我們知道比特幣區塊鏈中消耗的礦工費用是 BTC,為了激勵以太坊網絡中的計算,於是在以太坊中產生了 gas 的概念,在以太坊區塊鏈上執行寫入操作都需要支付 gas 費用,以太坊定義了貨幣是 1 ETH,且 1 ETH = 1e18 Wei。Wei 是其中的最小額,在整個工作中,發送代幣、調用合約都要支付 gas,且以 Wei 作為單位來計算。

Wei 的由來

戴維(Wei Dai)是一位華裔計算機工程師,對密碼學和加密貨幣的貢獻而聞名,他開發了 Crypto++ 密碼庫,創建了 B-Money 加密貨幣系統,並共同提出了 VMAC 消息認證碼算法。2013 年,Vitalik Buterin 的以太坊(Ethereum)最小單位 Wei,便以他的名字命名。比特幣白皮書的排名第一的參考資源也是戴維的 B-money,中本聰在建立比特幣初期也多次想與戴維聯繫。

目前 ETH 消耗 gas 的單位是 Gwei,對應 1 Gwei=1e9 Wei

簡單說,gas price 就是汽油單價,gas limit 相當於發動一次汽車需要的最大汽油量。

再具體點的表達是:

Gas Price  是以太坊內計算消耗 1 個 gas 對應多少 Gwei 的標準量,單位是 Gwei。

Gas Limit  是消耗 gas 的上限單位。在完成每筆交易中最多使用多少個 gas(交易的 gas limit)。

區塊的 Gas Limit  是能夠將一定量的交易 “裝在” 該區塊中的交易所用總 Gas 數的上限。當節點在選擇要打包的交易時,節點必須確保加入這筆交易後,區塊裡的交易所用總 Gas 數不會超過區塊 Gas 上限。對於要被打包的交易來說,其 Gas Limit 加上其他交易的 Gas Limit 總和,必須小於等於區塊 Gas Limit。當然,如果有一筆交易不能被打包進入當前區塊,它還是有機會被後面的區塊打包的。區塊的 Gas Limit 大小是動態調整的,倫敦升級為以太坊引入了可變大小的區塊 Gas limit。每個區塊的目標大小為 1500 0000 gas,但區塊大小會根據網絡需求增加或減少,直至區塊限制為 3000 0000 個 gas(目標區塊大小的 2 倍)。

區塊 gas limit 為什麼要改變

  1. 讓區塊大小可以根據網絡交易多寡,自由調整區塊大小。在網絡交易量大時,可自動實現擴容。
  2. 防止惡意用戶的惡意 for 循環攻擊使網絡癱瘓。

因惡意用戶不斷的轉移額度非常小的帳目,使得整個網絡癱瘓,當交易的費用非常低時,可以忽略不計,因此以太坊引入了 gas 的概念,任何轉賬以及智能合約的執行,都要消耗一定的費用即 gas,如果 gas 消耗完畢,則代碼不再繼續執行,這樣防止惡意代碼的 for 循環不停的執行,以至於整個網絡無法繼續向下一個狀態遷移。因此我們知道,任何計算、存儲都是需要付出成本的,這樣才能杜絕惡意攻擊代碼。

交易成本對 TPS 的影響

當交易大時,區塊 gasl imit 將實現自動擴容,提高以太坊本身的 tps,區塊的 gas limit 最高為 30,000,000(節點默認配置)。

2、ETH 的交易成本

以太坊的底層技術與 gas 的設計都是由 Gavin Wood 完成的,具體可參考 Gavin Wood 寫的黃皮書。

以下是 ETH 黃皮書設計的 gas 成本。

截圖來自:paper.pdfethereum.github.io

使用 ETH 需要付費,以及 gas 的概念。總的來說,每一筆交易都有與之關聯的 gas ——發送一筆交易的成本包含兩部分:固有成本  和   執行成本

執行成本根據該交易需要使用多少 ETH 虛擬機(EVM)的資源來運算而定,執行一筆交易所需的操作越多,則它的執行成本就越高。

固有成本由交易的負載(payload)決定,交易負載分為以下三種負載:

  • 如果該交易是為了創建智能合約,則負載就是創建智能合約的 EVM 代碼
  • 如果該交易是為了調用智能合約的函數,則負載就是執行消息的輸入數據
  • 如果該交易只是單純在兩個賬戶間轉賬,則負載為空

固有成本 gas

假設 Nzeros 代表交易負載中,字節為 0 的字節總數;Nnonzeros 代表交易負載中,字節不為 0 的字節總數。可以通過下列公式計算出該交易的固有成本,參考黃皮書 6.2 章節:

固有成本= Gtxdatazero × Nzeros + Gtxdatanonzero × Nnonzeros + Gtxcreate + Gtransaction + Gasscesslist 成本

在黃皮書的附錄 G 中,可以看到一份創建和執行交易的相關成本的費用表。其中與固有成本相關的內容如下:

  • Gtransaction = 21,000 Wei
  • Gtxcreate = 32,000 Wei
  • Gtxdatazero = 4 Wei
  • Gtxdatanonzero = 16 Wei (在伊斯坦布爾升級前為 68 wei)
  • Gasscesslistaddress = 2400 Wei
  • Gasscessliststorage = 1900 Wei

因為 ETH 是原生的代幣,沒有智能合約,不需要與合約交互,所以 ETH 的轉賬是最便宜的,只需要 21000 gasl imit 的配置。當 ETH 轉賬需要附加一些數據時,就可以參考上述公式。

如下圖,操作了 tp 錢包,在轉賬時加入了兩個 0 字節,兩個非 0 字節。按上述公式計算:

固有成本= 21000 + 4 × 2 + 16 × 2 = 21040,也就是對應上方的 gas limit。

交易的固有成本必須小於該交易設置的 gas 上限

我們知道了固有成本後,就能理解為什麼一旦交易的固有成本高於 Gas 限制,則該交易就會被視為非法。Gas Limit 規定了一筆交易在執行時,能夠消耗掉的 Gas 上限;如果在還沒開始執行該交易前,我們就知道它的固有成本是高於 Gas 上限的,那我們就沒有理由執行這筆交易。(這是因為在交易之前就會報錯)

而其他代幣的轉賬就會比 ETH 的 21000 gas limit 高很多,這是因為其他代幣是通過智能合約執行交易,比普通的轉賬需要更複雜的計算和寫入。

Gas Limit 範圍雖然可以調整,但是如果填寫太少,可能會導致交易失敗,就好比油價很高,但是你拿一個可樂瓶來做油箱,並且要跑 100 公里的路,但事實是還沒有上高速車就沒有油了,所以 gas limit 不夠礦工消耗的話會就會導致代碼執行中斷。儘管如此,礦工還是會把勞務費 gas 收走的~

那 ETH 目前的 tps 大約在什麼範圍?

2022 年 2 月 28 日下午的區塊 gas limit 為 30,000,000 左右,以太坊的出塊時間在 13 秒左右,交易的最低成本為 21000,對應 ETH 的 tps 上限為 110 左右,由於還存在大量不是普通轉賬的交易,而是與合約交互的交易,所以實際 ETH 的 tps 只有 10 多筆。

執行成本 gas

在以太坊中,執行交易會改變狀態—— 好幾筆交易被打包進一個區塊,每個區塊就相當一個交易列表;當交易被按照順序執行後,會輸出新的合法狀態。

交易按照以下步驟執行:

  1. 將發送者賬戶 nonce 值加 1
    每當發送一筆交易,發送者賬戶 nonce 就會增加。這個操作在交易執行之初就會完成,如果交易執行失敗,則賬戶 nonce 值回滾。
  2. 從發送者賬戶扣除交易預付額(gas limit × gas price)
    我們會從發送者賬戶餘額裡扣除交易預付額,這個機制很簡單——由發送者為自願付出的執行交易成本(gasLimit × gasPrice)付費。
  3. 確定該交易能夠用於執行的 gas 值(gas limit – intrinsic cost)
    交易的 gas 總額(gas limit)扣掉固有成本後,剩下的就是可用於執行交易的 gas 。
  4. 執行該交易包含的操作(轉賬、調用或創建智能合約)
    執行交易還涉及 EVM 的操作列表,其中唯一完全不需要 EVM 操作的交易——就是普通轉賬。
    每一項 EVM 操作都有對應的 gas 成本;在交易執行過程中,每做了一項 EVM 操作,就會從可用 gas 中扣掉對應的 gas 成本。直到下列兩種情況中的一種出現才停止:- 可用 gas 被耗盡,執行失敗- 執行結束後可用 gas 還有剩,或是剛好為零
  5. 通過 SELFDESTRUCT 和 SSTORE 函數對發送者退款
    在以太坊中,SELFDESTRUCT 操作碼用於銷毀不再需要的智能合約。每銷毀一個合約,執行者能夠收取 24,000 Wei 。
    同樣的,當使用 SSTORE 操作碼寫入 0(有效刪除值)的時候,操作者每寫入一個 0 ,就能收取 1500 Wei 。
    關於退款,有件有趣的事情是,退款也有上限。該上限確保礦工可以算出執行交易所需的計算時間的上界。(更多關於 gas 費用和退款的詳細說明,可以在以太坊的設計合理性一文中找到)。
    還有一個重點是,必須在交易所包含的操作都執行結束後,才會進行退款。因此任何應該返還的 gas 都不會被交易執行過程所消耗,從而避免了可能出現的_永遠不會耗盡 gas 的交易_。
  6. 退還交易發送者任何未使用的 gas
    如果用於交易的預付款超過交易所使用的 gas,則發送方有權在執行交易後收回剩餘的 gas。
  7. 向受益人賬戶(通常屬於挖出包含該交易的區塊的礦工)轉入挖礦收益
    執行交易所使用的所有 Gas 被視為交易手續費,由礦工獲得。這種機制激勵礦工持續出塊,並在網絡安全層面永續合作。

執行交易包含的操作成本參考下圖黃皮書的對應內容,例如 MUL、DIV、ADD、SUB 等等

與 gas、tps 相關的 EIP 方案:

  1. EIP-5: 調整 RETURN 和 CALL 的 Gas 用量
  2. EIP-150:大量 IO 操作的 Gas 成本變化
  3. EIP-158:狀態清除
  4. EIP-1108:降低 alt_bn128 預編譯 Gas 成本
  5. EIP-1283:SSTORE 操作碼的 Gas 調整
  6. EIP-2028:減少交易數據使用成本
  7. EIP-2200:淨 Gas 計量的結構化定義
  8. EIP-2565:指定 ModExpGas 成本
  9. EIP-1559:ETH 1.0 鏈的收費市場變化
  10. EIP-2929:狀態訪問操作碼的 Gas 成本增加
  11. EIP-1077: 合約調用的 Gas 中繼
  12. EIP-1087:用於 SSTORE 操作的 Gas 計量
  13. EIP-1285:在 CALL 操作碼中增加 GcallstipendGas
  14. EIP-1380:降低了內部調用的 Gas 成本
  15. EIP-1613: Gas 站網絡
  16. EIP-1930:具有嚴格 Gas 語義的 CALL
  17. EIP-2045:EVM 操作碼的顆粒 Gas 成本
  18. EIP-2046:降低了對預編譯進行靜態調用的 Gas 成本
  19. EIP-2542:新的操作碼 TXGASLIMIT 和 CALLGASLIMIT
  20. EIP-3322:帳戶 Gas 存儲操作碼
  21. EIP-2780:減少內部交易 Gas
  22. EIP-4488:減少交易 calldata gas 與總 calldata 限制
  23. EIP-4844:分片 Blob 交易

EIP-1559

2019 年由 v 神提出,2021 年 8 月 5 日上線。

一種交易定價機制,包括固定的每個區塊的交易費用,該費用將被銷毀並動態擴展/收縮區塊大小以應對瞬時的堵塞。

交易發送者通過提供兩個值來指定其費用:

  • “gas premium”(天然氣溢價)加到 “base fee”(基本費)中,以計算 gas price。“gas premium” 可以設置為較低的值(例如 1 gwei)以補償礦工的叔叔率風險,也可以設置為較高的值以在突如其來的高交易量中競爭。“gas premium” 將給予礦工。
  • “fee cap” 表示交易發送者願意支付的最高總額(base fee + gas premium)。

動機

“當前以太坊的 “最高價拍賣” 費用模式效率低下,對用戶來說成本高昂。此 EIP-1559 提出了一個取代這種機制的方法,即根據網絡需求來對一個基本網絡費用進行調整,從而創建更好的費用價格效率,並降低用於避免支付不必要的高額費用所需的客戶端軟件的複雜性。”

在當前的以太坊系統中,新提交的交易必須等待被某個礦工打包進入下一個區塊,但這些交易可以通過增加 Gas Price 參數使其高於網絡平均水平,以此來激勵礦工打包自己的交易。礦工是總是會希望將那些包含最大交易費的交易打包進入新區塊中,因此預計被打包進入下一個區塊中的交易總是那些有著最高 Gas 價格的交易。

這種最高價拍賣模式的問題在於,在交易需求旺盛的時期,情況可能會很快失控。當區塊接近達到滿塊時,使交易被打包進入下個區塊的成本 (交易費) 可能會急劇上升,因為用戶會試圖以比其他人更高的價格來讓自己的交易被打包。

儘管當前礦工們有一定的能力 (備註:比如增加區塊 gas 上限) 來增加在單個區塊中打包的交易筆數,但這一上限無法很快得到改變,且實際上礦工們更樂於使用較小的滿塊,而不是將區塊 gas 上限越推越高 (對於礦工來說,由於存在叔塊率,更大的區塊帶來更高的風險)。尤其是如果你的錢包使用了 gas 定價算法,從而使你的交易在一個特定的時間框架內被打包,那麼你可能最終會支付一筆相當高昂的交易費來讓你的交易被打包進入下一個 (幾乎) 滿了的區塊。

EIP-1559 引入了 gas 費用的 “base fee”(基本費) 概念,這筆費用被設定為會動態地調整,當網絡超出目標每區塊 gas 使用量時,“base fee” 會略有增加,而當數量低於目標時,“base fee” 用會略有下降。這筆 “base fee” 不會流向礦工的口袋,而是會被銷毀。

為了激勵礦工打包交易,用戶還將設定一個 “Tip” (小費) 參數,並設定一個他們為了讓自己的交易被打包進入區塊而願意支付的最大金額,礦工將獲得這筆 “Tip”(小費)。

由於 “基本費” 不會根據網絡需求的瞬息變化而劇烈波動,因此用戶在一定程度上遠離了 “最高價拍賣” 模式帶來的低效率問題 (“Tip” 費用仍然是最高價模式),因為 “基本費” 會被銷毀,而不是給礦工,這樣礦工就不會有動機去嘗試操控交易費了。重要的是,此機制也試圖解決錢包開發者在自動預估網絡交易費方面遇到的一個重大問題,使交易費預估變得更加可預測。

簡單總結

提高用戶體驗,避免 gas 費用增長過快,更好的預估市場,利於 L2 的運行成本的評估,縮減了礦工的利潤,銷毀更多 ETH,利好 ETH 與 layer2,但對 tps 影響不大。

EIP-4488

2021 年 11 月份由 v 神提出,目前還處於草案階段(待討論確定)

降低交易調用 calldata gas 成本,並增加一個區塊中調用 calldata(Gtxdatazero) 的總交易的限制。

動機

Rollups 在短期和中期,也可能是長期的,以太坊唯一的去信任擴展解決方案。長時間來,L1 的交易費用一直非常高,並且迫切需要採取任何必要的措施來幫助促進整個生態系統向 rollup 的遷移。Rollups 顯著降低了許多以太坊用戶的費用:Optimism 和 Arbitrum 經常提供比以太坊 L1 層本身低約 3-8 倍的費用,而具有更好的數據壓縮並且可以避免包含簽名的 ZK rollups 的費用約低 40-100 倍的費用。

然而,即使是這樣,費用對許多用戶來說也太貴了。對 rollups 本身長期不足的長期解決方案一直是數據分片,這將為鏈中的 rollups 添加約 1-2 MB/秒的專用數據空間。然而,數據分片仍然需要相當長的時間來完成實施和部署。因此,需要一種短期解決方案來進一步降低 rollup 成本,並激勵整個生態系統向以 rollup 為中心的以太坊過渡。

該 EIP 提供了一種快速實施的短期解決方案,同時也降低了安全風險。

當前區塊的 gas limit 為 30000000 左右,那區塊最大塊大小為 30000000 / 16 = 1875000 字節。如果只是簡單把 calldata 從 16 減少至 3,會將區塊最大大小增加到 10000000 字節,這會讓以太坊的 P2P 網絡面臨前所未有的壓力,所以該項提案限制了 calldata 總量的大小。公式如下:

簡單總結

短期的解決方案,也可能是長期的,利好 layer2 的 rollup,可以大大降低 rollup 的交易成本,非 0 字節的數據可以降低為當前的 1/5 的成本不到,0 字節的也可以微微降低(ab,op,zk 等預計都可以下降至目前 1/4-1/5 的手續費),但對 ETH L1 tps 影響不大, 甚至會降低,區塊大小會增加,所以該提議與 EIP-4444 可能同期執行。

交易成本對 TPS 的影響

ETH 的 gas 的相關處於草案階段的 EIP 主要為 EIP-4488,對 TPS 的影響較大,利好 layer2 的 rollup,可以大大降低 rollup 的交易成本,非 0 字節的數據可以降低為當前成本的 1/5 不到,0 字節的也可以微微降低(ab,op,zk 等預計都可以下降至目前 1/4 – 1/5 的手續費),但對 ETH L1 tps 影響不大,可能微降。

3、ETH 的網絡

ETH 節點之間的數據都是通過 P2P 網絡進行傳輸,ETH 的 P2P 網絡會影響節點間的區塊數據的同步速度,因此也會限制 TPS 的增長。

Devp2p 是一組形成以太坊 P2P 網絡的網絡協議。服務於與以太坊相關的任何網絡應用程序的需求。

該系統提供對整個 Internet 中其他節點的發現以及與這些節點間的安全通信。

IPFS 的 libp2p  項目,旨在成為一個模塊集合,用於從模塊化組件組裝 P2P 網絡。

很難比較這兩個項目,因為它們的範圍不同,並且在設計時考慮了不同的目標。devp2p 是一個集成系統定義,它希望能夠很好地滿足以太坊的需求(儘管它也可能非常適合其他應用程序),而 libp2p 是一組編程庫組件的集合,不專門為單個應用程序服務。

也就是說,這兩個項目在精神上非常相似,並且隨著 libp2p 的成熟,devp2p 正在採用部分 libp2p。

與 ETH 網絡相關的 EIP:

  1. EIP-8: devp2p 前向兼容性要求
  2. EIP-627:Whisper 規範
  3. EIP-706:DEVp2p 快速壓縮
  4. EIP-778:以太坊節點記錄 (ENR)
  5. EIP-868:v4 ENR 擴展
  6. EIP-2124:減少交易數據使用成本
  7. EIP-2364:ETH/64:forkid 擴展協議握手
  8. EIP-2464:ETH/65:交易公告和檢索
  9. EIP-2481:ETH/66:請求標識符
  10. EIP-2976:基於 Gossip 的類型化交易
  11. EIP-4444:對執行層客戶端的歷史數據設限

EIP-4444

2021 年 11 月份由提出 George KadianakislightclientAlex Stokes 目前還處於草案階段

動機

客戶端停止在 p2p 層上提供超過一年的歷史收據。客戶可以在本地修剪這些歷史數據。

歷史塊和收據目前佔用超過 400GB 的磁盤空間(並且還在增長!)。因此,要驗證鏈,用戶通常必須擁有 1TB 的磁盤。

驗證新塊不需要歷史數據,因此一旦客戶端同步了鏈的末端,只有在通過 JSON-RPC 明確請求或對等方嘗試同步鏈時才會檢索歷史數據。通過修剪歷史,該提議減少了節點的硬盤需求。修剪歷史數據還允許客戶端刪除處理歷史塊的代碼。這意味著執行客戶端不需要維護處理每次升級的複合更改的代碼路徑。

最後,隨著客戶端基於 PoS 採用更輕量級的同步策略,這種變化將導致網絡上的帶寬使用減少。

簡單總結

裁剪一年前的歷史數據,減少網絡帶寬的使用。

ETH 網絡對 TPS 的影響

與 ETH 的網絡相關的、處於草案階段的 EIP,對 TPS 的影響不大。

4、合併進程

合併是指以太坊的信標鏈作為共識層,與當前大多 ETH 用戶使用的主網 POW 鏈作為執行層,進行合併,合併後執行層就會放棄現有的 POW 共識機制。

信標鏈

信標鏈將管理或協調擴展的分片和質押網絡。但它不會像今天的以太坊主網。不能處理賬戶或智能合約。

信標鏈的角色會隨著時間而改變,但它是正在努力實現的安全的、可持續和可擴展的以太坊的基礎組成部分。

信標鏈將向以太坊引入 POS。這是一種幫助您確保以太坊安全的新方法。把它想像成一種公共物品,它將使以太坊更健康,並在此過程中為你賺取更多的 ETH。

質押和成為驗證者比挖礦(網絡當前的方式)更容易。從長遠來看,這將有助於使以太坊更加安全。參與網絡的人越多,它就會變得越去中心化和安全。

最初,信標鏈將與我們今天使用的以太坊主網分開存在。但最終,它們將被連接起來。該計劃是將主網 “合併” 到由信標鏈來控制和協調的 POS 系統中。

信標鏈啟動時間 2020 年 12 月份。

棄用 ETH2

以太坊協議正發生重大變化。客戶端團隊正在升級協議,對以太坊進行擴容,以滿足全球用戶的需求,同時提升以太坊安全性與去中心化程度。除了協議開發,以太坊的一個極為重要的轉變在於棄用術語 “ Eth1 ” 與 “ Eth2 ”。2021 年年底起,核心開發者就停止使用 “ Eth1 ” 與 “ Eth2 ” 了,分別以 “ 執行層” 與 “ 共識層” 取而代之。今天,正如我們在 Q1 路線圖中強調那般,  ethereum.org  也對此做出同樣的改變。

Eth1 → 執行層

Eth2 → 共識層

執行層 + 共識層 = 以太坊讓我們一起來探究原因吧!

概覽

術語 Eth1 與 Eth2 ( 以太坊 2.0 ) 逐步停止使用

執行層 ( Eth1 ) 與共識層 ( Eth2 ) 作為新術語

以去中心化的方式來擴展以太坊的路線圖保持不變

用戶不需要有任何操作

以太坊 2.0 從何而來?

作為路線圖的一部分,以太坊一直計劃以去中心化的方式來擴展網絡,並過渡到 PoS ( 權益證明) 。早些時候,研究者們分別對這些計劃進行研究,但在 2018 年左右,上述都被納入進 “ 以太坊 2.0 ” 路線圖中。

作為路線圖的一部分,現有的 PoW 鏈 ( Eth1 ) 最終會通過難度炸彈被棄用。用戶與應用將被遷移到新的以太坊 PoS 鏈 (即 Eth2 ) 上。

2019 年初 ConsenSys 發表的《Serenity 路線圖》解釋了具體情況。

發生了什麼改變?

隨著信標鏈的工作開始,很明顯,分階段進行的以太坊 2.0 將要花費數年時間才能完全交付。這導致對 PoW 鏈的研究計劃又重新活躍起來,例如 Stateless Ethereum ( 無狀態以太坊),這是一個通過刪除網絡裡不再被訪問的狀態來限制狀態膨脹率的範式。

對於 PoW 鍊長期可持續發展的日益關注,加上我們也意識到信標鏈將比以太坊 2.0 路線圖的其他部分更早準備好,“ 早期合併” ( “Early Merge” ) 提案由此產生。在這個提案裡,現有的 EVM 鏈將作為以太坊 2.0 的 “分片 0”。這不僅能加快向 PoS 的轉變,還能令應用的過渡更為順暢,因為不需要應用終端發生任何遷移就能過渡到 PoS 。

這個提案發布不久後, Danny Ryan 在他的文章《Eth1+Eth2 客戶端的關係》中探討了我們怎樣通過利用現有的 Eth1 客戶端來完成這一點。這將能大大減少交付一個合併後系統的開發工作,且充分利用已經在主網身經百戰的客戶端。大約在同一時間,把 rollups 作為一種可行且安全的方式來為以太坊擴容的研究證明是有前景的。與其花上幾年等待一個複雜、不確定的擴容方案,我們還不如將注意力放到基於 rollups 的擴容方案,而不是分片執行。

還想閱讀更多資料?點擊查看 Danny Ryan 在 ETHGlobal 的演講《Eth1 + Eth2 = Ethereum》

為什麼我們不能用 Eth2?

思維模式

Eth2 這個品牌名的主要問題之一是 Eth2 會對新以太坊用戶創造一個不完整的心智模型。他們會直覺地認為:Eth1 在前,Eth2 在後;或者 Eth2 一旦創世了, Eth1 就不復存在了。這兩種觀念都是錯誤的。通過不再試用 Eth2 這個術語,未來用戶就不會再形成這種容易錯誤理解的思維模式了。

包容性

隨著以太坊路線圖的升級,以太坊 2.0 已經變得不能準確表達以太坊路線圖的意思了。嚴謹且準確的詞彙選擇,可以讓大眾更好理解以太坊的內容。

防止詐騙

不幸的是,一些惡意行為者試圖利用 Eth2 這一誤稱來騙用戶用 ETH 來兌換代幣 “ ETH2 ” ,或者要在 Eth2 升級前,必須以某種方式遷移他們的 ETH。我們希望這次更新的術語能夠清楚地消滅這種詐騙元素,讓生態變得更安全。

對質押的澄清

有些質押運營商還把他們在信標鏈上的 ETH 打上 “ ETH2 ” 的標籤。這可能會帶來誤解,因為這些服務的用戶並不會實際收到”ETH2” 代幣。從來就沒有所謂的 “ ETH2 ” 代幣;那僅代表用戶在特定運營商的押金中的份額。

合併

最初,信標鏈與主網分開運行。以太坊主網繼續通過 POW   得到保護,即使信標鏈使用 POS 共識並行運行。合併是這兩個系統最終融合在一起的時候。

想像一下以太坊主網是一台載滿遊客並高速運行的火車,信標鏈也同樣如此,他們在高速運行的同時,還需要相互對接,合併成一台全新性能更強的火車,並且過程中游客是無感知的,可想而之難度是非常大的。

合併後標誌著以太坊工作量證明的結束,並開啟一個更可持續、更環保的以太坊時代。此時,以太坊將更接近實現其以太坊願景中概述的全面、安全和可持續性,並且用戶全程將會是無感知的。

一旦發生合併,將分配質押者來驗證以太坊主網。將不再需要 POW 模式採礦,因此礦工可能會將他們的收入投入到新的股權證明系統中。

合併預計時間:ETH 官網提供的合併時間在 2022 年的第三季度。

合併對 TPS 的影響

合併後主網作為執行層繼續運行,當前 POW 的出塊平均時間為 13 秒左右,轉 POS 後,大約為 12 秒一個區塊,出塊時間會穩定許多,傳統 POW 礦商可能也轉為 POS 挖礦,將提高 ETH 的需求,利好 ETH,但轉 POS 後,以太鏈的 TPS 只會有微漲幅,不會有大的變化。

5、分片

分片是水平拆分數據庫以分散負載的過程,這是計算機科學中的一個常見概念。在以太坊環境中,分片將通過創建稱為 “分片” 的新鏈來減少網絡擁塞並增加每秒交易量。

以太坊的分片過程會是一個多階段升級的過程,最終分片鏈將網絡負載分散到 64 個新鏈上。

將保持較低的硬件要求來規範本地運行節點。分片將為以太坊提供更多存儲和訪問數據的能力,目前認為不會影響執行代碼。

分片的特點

保持去中心化,分片是一種很好的擴展方式,使用分片鏈,驗證者只需為他們正在驗證的分片存儲/運行數據,而不是為整個網絡存儲/運行數據。這加快了速度並大大降低了硬件要求。

分片最終會實現在個人筆記本電腦或手機上運行以太坊。會有更多的人能夠在分片的以太坊中參與或運行客戶端。這將提高安全性,網絡越分散,攻擊範圍就越小。

由於硬件要求較低,分片將使您更輕鬆地自行運行客戶端,而完全不依賴任何中介服務。

分片鏈的細節討論

分片鏈版本 1:數據可用性

當第一個分片鏈運行時,它們只會向網絡提供額外的數據。他們不會處理交易或智能合約。但是當與 rollup 相結合時,它們會處理大量事務。

Rollup 是當今存在的 “layer2 ” 技術。它們允許 dapp 將交易捆綁或 “rollup” 到鏈外的單個交易中,生成加密證明,然後將其提交給鏈。這減少了事務所需的數據。匯總與分片提供的所有額外數據可用性相結合,每秒可以獲得 100000 個事務。

分片鏈版本 2:代碼執行

考慮到版本 1 分片提供的處理能力,是否還需要將分片應用到處理執行過程。在社區中存在爭論。Vitalik Buterin 提出了 3 個值得討論的潛在選項。

(1)不需要狀態執行

這意味著我們不會讓分片能夠處理智能合約只將它們作為數據倉庫。

(2)有一部分執行分片

也許有一個妥協,我們不需要所有的分片(現在計劃 64 個)變得更聰明。我們可以只將這個功能添加到少數幾個,而剩下的不添加。這可以加快交付速度。

(3)等待(ZK)snarks

當 ZK snarks 技術成熟穩固後重新審視這個問題。可能 ZK snarks 技術需要更多分片。

分片預計時間

ETH 官網提供的分片時間在 2023 年某個時間,取決於合併後工作進展的速度。

分片對 TPS 的影響

儘管分片方式並未確定,但可以肯定的是分片將極大的提高 TPS。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規