摘要:除可執行分片之外,可執行信標鏈作為替代的 eth2 執行模型,通過在信標鏈上添加單個執行線程的支持來實現
Vitalik 此前發布的文章《以 rollup 為中心的路線圖》中提到,數據分片作為 eth2 執行中的主要擴容因素,允許在單個執行分片上進行擴容,并簡化了總體設計。
Eth1 分片設計基于其通過信標鏈與數據分片通信。如果階段 2 的多執行分片功能將在之后推出,那么這個方法就有意義了。有了以 rollup 為中心的路線圖,將 Eth1 放在專門的分片上 (即獨立于信標鏈、且頻繁與信標鏈交互) 會給共識層帶來不必要的復雜性,并增加在分片上發布數據和在 eth1 中訪問數據之間的延遲。
我們提議將 eth1 數據 (交易、狀態根等) 嵌入到信標區塊中,并且要求信標鏈區塊提議者生成可執行的 eth1 數據,以消除這種復雜性。也就是說將 eth1 執行和有效性作為共識核心的一等公民。
提案概覽
Eth1-引擎由系統中的驗證者維持。
當驗證者打算提議一個信標區塊時,他會通過 eth1-引擎創建 eth1 數據。然后 eth1 數據將被嵌入到其提議的信標區塊中。
如果 eth1 數據無效,其所在的信標區塊也同樣無效。
Eth1 引擎的修改
根據前面的介紹,eth1 分片為中心的設計中,eth1-引擎和 eth2-客戶端是松散耦合的,并通過 RPC 協議實現通信 (查看文章 eth1+eth2 客戶端關系 以了解更多信息)。eth1-引擎不斷維護著其交易池和狀態下載器,這需要它自己的網絡堆棧。它還應該存儲 eth1 區塊。
一鯨魚地址在15小時前將超57萬枚SOL轉入交易所:6月10日消息,據Lookonchain監測,15小時前,一鯨魚地址開始將SOL存入交易所。 Solana鏈上地址為“6brjeZ”的鯨魚在 15 小時前轉移了 681,746 枚SOL (價值954萬美元),其中 576,009枚SOL (820萬美元) 最終存入Binance 、Coinbase和Kraken交易所。[2023/6/10 21:28:19]
當前的提案取消了 eth1 區塊的概念,eth1-引擎有兩種可能的方式來處理這一變化:
通過合成的方式,從信標鏈區塊的 eth1 數據中創建 eth1 區塊
修改引擎:交易處理過程不a需要使用 eth1 區塊,而是使用 eth1 數據
信標區塊根可用于保存當前狀態管理所需要的鏈的概念
兩者相比,后者為比較長期的選項。它允許 eth1 客戶端更快地轉換為 eth1-引擎,且 eth1 分片概念證明 (PoC) 已經證明了這一點。
我們使用術語“可執行數據” (executable data) 來表示包含 eth1 狀態根、交易清單 (包括收據根“receipts root“和 bloom filter)、coinbase、時間戳、區塊哈希以及 eth1 狀態遷移函數所需要的所有其他數據位。可執行數據在 eth2 規范中表示如下:
class?ExecutableData(Container):????coinbase:?bytes20??#?Eth1?address?that?collects?txs?fees????state_root:?bytes32????gas_limit:?uint64????gas_used:?uint64????transactions:?[Transaction,?MAX_TRANSACTIONS]????receipts_root:?bytes32????logs_bloom:?ByteList[LOGS_BLOOM_SIZE]Eth1-引擎的職責清單與此前 eth1 分片的職責類似。主要有:
美聯儲哈克:預計美聯儲將在明年的某個時候暫停緊縮政策:金色財經報道,美聯儲哈克表示:預計美聯儲將在明年的某個時候暫停緊縮政策。[2022/11/10 12:45:53]
交易執行。Eth2-客戶端向 eth1-引擎發送一筆可執行數據。Eth1-引擎通過處理該數據來更新其內部狀態,并且如果通過了共識檢查則返回 true ,否則返回false。諸如即時存款處理之類的高級用例也可能要求結果中包含完整的交易收據。
交易池維護。Eth1-引擎使用 ETH 網絡協議來廣播信息并跟蹤網絡上的交易。等待被打包的交易 (pending transactions) 保存在交易池中,然后用于創建新的可執行數據。
可執行數據創建。Eth2-客戶端發送之前的區塊哈希、eth1 狀態根、coinbase、時間戳和創建可執行數據的所有其他信息 (交易清單的一部分)。Eth1-引擎返回一個 ExcecutableData 實例。
狀態管理
Eth1-引擎維護狀態存儲以便能夠運行 eth1 狀態執行函數。
它涉及在最終確定性上觸發的狀態樹修剪機制 (pruning mechanism),該機制要求基于信標區塊鏈的狀態樹版本控制。
注意:長期無區塊敲定會造成大量垃圾數據的堆積,從而消耗額外的磁盤空間。
當無狀態執行和”區塊創建“完成時,eth1 引擎可以選擇作為純狀態遷移函數運行,并在此基礎上承擔一些責任,如,可以禁用狀態存儲,從而減少使用磁盤空間的需求。
JSON-RPC 支持。為了可用性和應用性,保留以太坊 JSON-RPC 的支持十分重要。該責任將由 eth2-客戶端和 eth1-引擎共同承擔,因為 eth1-引擎可能失去了單獨處理 JSON-RPC 終端子集的能力,如那些基于區塊號和哈希的調用。這種分離將在之后解決。
Nexo是過去一周FTX撤資的最大實體:金色財經報道,鏈上數據顯示,Nexo在11月1日至11月8日期間從FTX撤資超過2.19億美元,使其成為過去一周從FTX撤資的最大實體。值得一提的是,Nexo成功避開了今年加密行業幾乎所有重大風險事件,包括Terra、對沖基金Three Arrows Capital和加密貨幣借貸服務提供商Celsius倒閉等。(cointelgraph)[2022/11/10 12:45:16]
信標區塊處理
可執行數據 ExecutableData 結構代替了信標區塊體中的 Eth1Data 。此外,信標鏈和 eth1 的同步處理允許即時存款。因此,存款可以從信標區塊體中移除。
以下是更新了的信標區塊體:
class?ExecutableBeaconBlockBody(Container):????randao_reveal:?BLSSignature????executable_data:?ExecutableData??#?Eth1?executable?data????graffiti:?Bytes32??#?Arbitrary?data????#?Operations????proposer_slashings:?List[ProposerSlashing,?MAX_PROPOSER_SLASHINGS]????attester_slashings:?List[AttesterSlashing,?MAX_ATTESTER_SLASHINGS]????attestations:?List[Attestation,?MAX_ATTESTATIONS]????voluntary_exits:?List[SignedVoluntaryExit,?MAX_VOLUNTARY_EXITS]我們修改了 ?process_block 函數:
Sullivan Bank與Bakkt合作為客戶提供加密服務:8月24日消息,Sullivan Bank與數字資產平臺Bakkt達成合作,利用Bakkt Crypto Connect很快使Sullivan Bank客戶能夠購買、出售和持有比特幣和以太坊。(Business Wire)[2022/8/24 12:46:13]
def?process_block(state:?BeaconState,?block:?BeaconBlock)?->?None:????process_block_header(state,?block)????process_randao(state,?block.body)????#?process_eth1_data(state,?block.body)?used?to?be?here????process_operations(state,?block.body)????process_executable_data(state,?block.body)在 process_operations 完成之后處理可執行數據是合理的,因為在很多情況下,operation processing 可能會使整個區塊無效。雖然,這種方法可能不是最優的,無法讓客戶端優化達到最優效果。
訪問 EVM 的信標狀態
我們更改了 BLOCKHASH 操作碼 (此前用于返回 eth1 區塊哈希) 的語義,現在用來返回信標區塊根。這允許驗證被打包進信標狀態或區塊的數據 (包括從前 256 個 slot 到最近一個 slot 的數據)。
異步狀態讀取有一個主要的缺點。客戶端必須要等待一個區塊產生,才可以使用鏈接到該區塊的證明或使用該區塊的狀態根創建一個事務。簡單地說,異步狀態訪問至少要延遲一個 slot。
Solana生態錢包Solflare宣布支持Keystone硬件錢包:6月11日消息,Solana 生態錢包 Solflare 宣布支持 Keystone 硬件錢包。Keystone 的硬件支持用戶使用二維碼轉賬,并有效防止用戶“盲目簽名”遭遇釣魚攻擊。[2022/6/11 4:18:01]
直接狀態訪問
假設 eth1-引擎可以訪問代表整個信標狀態的默克爾樹。那么 EVM 可能可以憑借 READBEACONSTATEDATA(gindex) 操作碼,以提供直接訪問信標狀態任何部分的功能。這個操作碼有幾個良好的屬性。首先,這種讀取復雜性取決于 gindex 值并且易于計算,因此可以輕松地計算 gas 費。第二,返回數據的容量為 32 字節,完全適合 EVM 的 32 字節字。
使用此操作碼,就可以創建更高級別的信標狀態訪問庫,從而為智能合約提供便捷的 API。如:
v?=?create_validator_accessor(index)?#?creates?an?accessorv.get_balance()?#?returns?balance?of?the?validatorv.is_slashed()??#?returns?the?value?of?slashed?flag該模型消除了狀態訪問延遲。因此,通過對信標鏈操作和 eth1 執行進行適當的排序 (eth1 執行在后),并且在 slot N上可以訪問 slot N-1 分片數據的交聯,可以允許 rollup 以最快的方式對數據打包進行證明。
此外,使用這個方法不需要將證明廣播至網絡并進一步由合約驗證,從而減少了信標狀態讀取在數據和計算方面的復雜性。
注意:在一開始使 READBEACONSTATEDATA 操作碼的語義獨立于特定的承諾方案 (即默克爾樹) 是有意義的,這有益于更輕松地實現升級。
直接訪問的成本提高了 eth1-引擎的復雜性。讀取信標狀態可以通過不同的方式實現:
將可執行數據和狀態一起傳遞。該方法的主要問題是處理大容量的狀態副本。如果將直接訪問限制為狀態數據的一個子集,而該狀態數據的子集需要將一小部分狀態傳遞給執行,那么它可能會起作用。
雙工通信通道。有了雙工通道,eth1-引擎將能夠同步向信標節點詢問 EVM 請求的狀態。根據通道設置的方式,延遲可能會成為執行那些具有信標狀態讀取的交易的瓶頸。
嵌入式的 eth1-引擎。如果將 eth1-引擎嵌入到信標節點中,它可以通過節點提供的托管功能從同一個內存空間讀取狀態。
分析
網絡帶寬
當前提案通過可執行數據的容量來擴大信標區塊。不過,由于該提案允許使用更高級的存款方案,因此很有可能刪除 Deposit 操作。
取決于區塊利用率,根據 eth1 平均區塊容量 (這略微影響網絡接口的需求),預期的增長在 10% 到 20%之間。
值得注意的是,如果 CALLDATA 由 rollup 利用,那么在最壞的情況下,eth1 區塊容量可能會增長到 200kb (gas limit 為 1200 萬時),使得可執行信標區塊容量增長 60% ,容量變為 300kb 。
區塊處理時間
平均處理時間:
Toledo 上的 Lighthouse 有 1.6 萬驗證者,主網上的 Go-ethereum 的 gas limit 為 1200 萬。
很難推斷出信標鏈的處理時間,尤其是,特別是在驗證者子集相對較大以及需要處理交聯的情況下 (如果分片上線)。也許在某個時候,epoch 處理將與 eth1 執行幾乎同時進行。
減少時段邊界 (epoch boundary) 處理時間的方法是,提前處理 epoch,而不是等到下一個 slot 的開始,以防最近一個 epoch 的最后一個區塊準時產生。
異步狀態訪問模型允許另一種優化方式。在這種情況下,process_executable_data 可能與主要的 process_block ,甚至 process_epoch 的有效負載并行運行。
固化該設計
有人可能會說,當前提案將執行模型固定下來,并削弱了引進更多可執行分片的能力 (一旦我們需要它們)。
另一方面,一些可執行分片會帶來諸如跨分片通信、共享賬戶空間等問題。還有一些其他的問題,而這些問題與執行模型的預期轉變同樣重要且難以解決。
原文鏈接:https://ethresear.ch/t/executable-beacon-chain/8271
ECN的翻譯工作旨在為中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須注明原文出處以及ETH中文站。若需長期轉載,請聯系eth@ecn.co進行授權
來源 |?ethresear.ch
作者 | Mikhail Kalinin
特別感謝最初提出該想法的 Vitalik Buterin @vbuterin,感謝 Danny Ryan @djrtwo、@zilm 等給本文提供的寶貴意見。
近期,NBA Top Shot的持續火熱讓我們看到了NFT市場的巨大潛力,此前的最高售賣記錄為勒布朗詹姆斯,拍出了20.8萬美元的天價.
1900/1/1 0:00:00NFT市場目前還小,關注度還不夠。不過隨著NFT價值被人們逐步挖掘出來,它在未來幾年可能會呈現爆發式增長.
1900/1/1 0:00:00據近日消息,餐飲巨頭海底撈為了慶祝海底撈在線注冊會員數破億,以及第三屆海底撈撈粉節的舉辦,海底撈將于3月20日-3月31日期間向粉絲推出數字藏品等周邊產品.
1900/1/1 0:00:00有關數據顯示,NFT每周成交量已跌至2021年7月以來的最低水平。NFT市場的熱度正在消退嗎?隨著BTC和更廣泛的Crypto市場持續低迷,NFT在過去一個月似乎也受到了一定的影響.
1900/1/1 0:00:00以太坊倫敦主網即將在區塊高度 12,965,000 進行倫敦硬分叉升級,本次升級將是以太坊近幾年來最重要的一次系統更新,也是在以太坊迭代到以太坊 2.0 之前最關鍵的一次升級.
1900/1/1 0:00:00毫無疑問,今天科技板塊的頭版頭條又是屬于埃隆·馬斯克的。據彭博社報道,馬斯克的財富約在 2600 億美元左右。Twitter 的市值約為 370 億美元.
1900/1/1 0:00:00