風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
以太坊存儲的分開定價和雙軌EIP1559
白计划
特邀专栏作者
2021-04-17 06:09
本文約2315字,閱讀全文需要約4分鐘
以太坊狀態模型的最大問題是:平均狀態增長與最壞情況狀態增長之間的巨大差異。​

以太坊狀態模型的最大問題是:平均狀態增長與最壞情況狀態增長之間的巨大差異。
本文系Vitalik在以太坊研究者論壇裡提出的一個最新討論,該討論是繼以太坊研究科學家BarnabéMonnot提出的關於EIP1559切實實施的思路進行的再次結合。
作者:Vitalik Burerin
作者:Vitalik Burerin
編譯:白計劃團隊
特別感謝@barnabe 在早期提出了類似的想法。
正如我在此前的《關於資源定價的立場文件》中詳細討論的那樣,以太坊中的Gas實際上是支付三種不同的資源:
1.帶寬(必須下載的事務數據)
2.計算(驗證和執行交易的時間)
3.存儲(歷史記錄,但更重要的是狀態陳述,例如帳戶餘額,隨機數,約代碼,合約存儲)
白計劃批註:《關於資源定價的立場文件》是一份區塊鏈資源定價的草案,其中Vitalik通過數學演算推論了相應的定價方式。
該草案內容包含:價格與數量、社會成本曲線、首次和二次拍賣、可調整收費計劃、存儲維護費,以及包含為什麼固定費用並未得到充分利用?
帶寬和計算是短暫的成本,存儲不像這兩個成本,它會超出短暫的限制。
在一個塊的時間內,一個節點可以進行多少次計算或下載數據是有限度的,一旦該塊通過,下載和驗證所需的量就達到了極限。塊的大部分都消失了(將來只有少數同步節點需要對其進行處理)。
二級標題
二級標題

平均大小與最壞情況的存儲大小

在當前(狀態)協議(普遍認為是不可持續的)和狀態到期的改進協議中,對狀態建模的不足之一是平均狀態增長與最壞情況狀態增長之間的巨大差異。
考慮當前的協議。如今,該狀態的總大小約為5.5億個對象,約32GB(不包括trie開銷)。如果我們剔除上一年所有not touched的狀態,那總量很容易下降一半以上。
現在,最壞的情況是什麼?
合同代碼的創建按每字節200Gas的費用收費,因此,如果將一個區塊分成3個事務,每個事務創建一個合同,我們可以為12334800Gas+3*55000Gas來製作3個20558字節的合同,以增加合同創建的開銷。
這樣,在單個塊中,存儲大小可以增加20600*3=61800字節。
假設平均出塊時間為13.1秒1個,每年都有31556925/13.1=2408925塊,總的來說,狀態可以按61800*2408925=148871600381.67938字節增長,即約138 GB。
這個差異約為10倍。 (白計劃注:下文數據16GB根據上下文理解是以太坊目前一年的狀態總量大小)
二級標題
二級標題

雙軌EIP-1559

解決此問題的自然方法是對臨時成本和永久成本使用EIP-1559定價,但調整期有所不同。
對於臨時成本,價格可以一次調整10%以上。但是,對於永久性成本,將使價格調整慢得多。
如果我們採用AMM成本曲線機製作為基礎,對於存儲,我們可以考慮一條曲線,目標速率為每月1GB,而成本的增加取決於我們比目標高出多少:
例如,每超出目標1GB,存儲成本就可能翻倍。在這種情況下,存儲塊價格可能需要3天左右的才能翻一番。如果存儲增長超過10GB,則存儲成本將是正常價格的1000倍,在經濟上無法繼續存儲。
有兩種方法可以實現此目的:
1.用Gas購買存儲。也就是說,使用SSTORE創建新的存儲插槽,像現在一樣消耗Gas,但是消耗的Gas量將是可變的。這樣做的缺點是,它會形成(變相)激勵措施,用戶寧願在Gas價格較低的周末補充存儲空間。
2.用ETH購買存儲。交易(和調用)除了需要Gas外,還需要提供另一種資源(我們可以稱其為mana),該資源將採用與Gas相似的機制,但參數不同。這樣做的缺點是使調用規則變得複雜,並且需要添加新的CALL操作碼。
請注意,這裡有一個混合選項:
3.可以以ETH定價存儲,但以Gas收費(因此,如果基本費用上漲了2倍,則填充存儲插槽所需的Gas將自動減半)。我們可以將用於擴展存儲的ETH排除在EIP 1559 Gas價格更新規則甚至是區塊限制範圍之外。
4.將Gas更全面地改造為三個概念:Gas,執行點和存儲點。 1Gas=1wei; 分配Gas的交易只是意味著它正在將其某些wei轉換為可用於支付資源的特殊形式。就call和subcall之間的傳遞方式而言,此形式的工作方式與Gas相同。
但是,AMM現在管理兩項成本:執行點成本和存儲點成本。當執行過程處理當前消耗N個Gas的操作碼時,它將花費N個執行點,這意味著需要N* execution_point_cost支付Gas。填充存儲槽需要1個存儲點,因此需要storage_point_cost充入Gas。
最後,還要注意,狀態限期的路線圖裡有望刪除退款。這是因為技術原因:存儲插槽無法“變空”且資格獲得退款,因此只能將它們設置為零,並且零記錄必須保持該狀態,直到該時期結束並且該狀態可以到期為止。這大大降低了早期在存儲租金嘗試時遇到的複雜性問題。
公鏈
AI總結
返回頂部
以太坊狀態模型的最大問題是:平均狀態增長與最壞情況狀態增長之間的巨大差異。​
作者文庫
白计划
下載Odaily星球日報app
讓一部分人先讀懂 Web3.0
IOS
Android