以太坊向PoS的過渡「The Merge」將如何影響應用層?
來源:
來源:以太坊官方博客

來源:
來源:
以太坊官方博客
本文的其餘部分將假設讀者熟悉上述內容。對於那些想要更深入挖掘的人,下面可獲得The Merge 的完整規範:
共識層
共識層
引擎API
1
共識層

共識層
引擎API
2
區塊結構
以太坊合併之後,網絡上將不再存在工作量證明(PoW)。相反,以前的PoW部分將成為信標鏈(Beacon Chain)上創建的區塊的組成部分。然後,您可以將信標鏈視為以太坊新的PoS共識層,取代之前的PoW共識層。信標鏈區塊將包含ExecutionPayloads,這是當前PoW鏈上區塊的合併後等價物。下圖顯示了這種關係:

對於最終用戶和應用開發人員來說,這些ExecutionPayloads 是與以太坊進行交互的地方。該層上的交易仍將由執行層客戶端(Besu、Erigon、Geth、Nethermind 等)處理。幸運的是,由於執行層的穩定性,The Merge 只引入了最少的破壞性更改。
挖礦和Ommer區塊字段
3
合併後,之前包含在PoW區塊頭中的幾個字段不再使用,因為它們與PoS無關。為了最大限度地減少對工具和基礎設施的破壞,這些字段被設置為0,或者它們的數據結構的等效項,而不是從數據結構中完全刪除。你可以在EIP-3675 中找到對區塊字段的完整更改內容。
因為PoS不會像PoW那樣自然產生ommers(又名叔塊),所以每個叔塊(ommers)中的這些列表將為空,這個列表的哈希(ommersHash)將成為RLP 編碼哈希的一個空列表。同樣,因為PoW還包含了難度和隨機數,所以此後它們將被設置為0,同時賦予它們字節大小值。
另一個與挖礦相關的字段mixHash 不會設置為0,而是包含信標鏈的RANDAO 值。下文將會對此進行更多介紹。
BLOCKHASH & DIFFICULTY 操作碼更改
合併後,BLOCKHASH 操作碼仍可使用,但考慮到它不再通過PoW哈希程序偽造,此操作碼提供的偽隨機性將弱得多。

相關地,DIFFICULTY 操作碼(0x44) 將被更新並重命名為RANDOM。合併後,它將返回信標鏈提供的隨機信標的輸出。因此,與BLOCKHASH 相比,儘管仍然存在偏差,此操作碼將成為應用程序開發人員使用的更強大的隨機源。
RANDOM 公開的值將存儲在ExecutionPayload 中,其中存儲了與PoW計算相關的值mixHash。 Payload 的mixHash 字段也將被重命名為random。
這是DIFFICULTY & RANDOM 操作碼在合併前和合併後如何工作的說明:
4
合併前,我們看到0x44 操作碼返回區塊頭中的難度字段。合併後,重命名為RANDOM 的操作碼指向先前包含mixHash 的區塊頭字段,現在存儲來自信標鏈狀態的隨機值。
這一變化在EIP-4399 中得到正式化,也為鏈上應用程序提供了一種評估合併是否發生的方法。根據這個EIP的介紹:<1%。
此外,此EIP 提出的更改允許智能合約確定是否已升級到PoS。這可以通過分析DIFFICULTY 操作碼的返回值來完成。如果值大於2**64 ,則表示交易正在PoS 區塊中執行。
5
出塊時間
合併將影響以太坊的平均區塊時間。目前在PoW下,平均每約13 秒產出一個區塊,實際區塊間隔時間有相當大的差異。在權益證下,區塊間隔將恰好為12 秒,除非由於驗證者離線或因為他們沒有及時提交區塊而錯過了某個時隙。在實踐中,發生這種情況的插槽
這意味著網絡上的平均出塊時間減少了約1 秒。在計算中假設特定平均區塊時間的智能合約需要考慮到這一點。
安全頭區塊(safe head)和最終區塊
在PoW下,區塊重組在一直都可能出現。應用通常會等待在新頭區塊(safe head)上挖出幾個區塊,然後再將其視為該區塊已不太可能從規範鏈中被刪除,或已經得到“確認”。在合併之後,我們有了最終和安全的頭部區塊的概念。這些區塊可以比“已確認”的PoW區塊更可靠地使用,但需要改變理解才能正確使用。
下一步
下一步

6
下一步
本文來自元宇宙之道,經授權轉載。
本文來自元宇宙之道,經授權轉載。


