簡單總結
移除SELFDESTRUCT的gas返還,減少SSTORE的gas返還到一個較低水平,使得返還的量仍然相當大,但不會像現在高到可以被利用的地步。
原因
最初引入SSTORE和SELFDESTRUCT的gas返還是為了鼓勵應用開發者寫應用時能踐行“良好的狀態衛生”,清理不再需要的存儲槽與合約。但是,結果證明這項技術帶來的效率遠低于預期,gas返還還帶來多項未預料到的有害后果:
gas返還導致GASToken的出現。GasToken有益于把gas空間從低費用階段轉移到高費用階段,但它也對網絡有壞處,尤其是加劇狀態大小膨脹(由于狀態槽被有效用作“電池”來積攢gas)和低效地堵塞區塊鏈gas使用。
gas返還加劇區塊大小變化。一個區塊實際消耗的gas量的理論最大值是接近名義上的gaslimit(因為返還會增加同一區塊里后面交易的gas空間,盡管返還的gas最多是該筆交易消耗gas的50%)。這一點不是致命的,但影響還是相當不好,特別是返還可以被用來維持比EIP-1559使用兩倍gaslimit更長的峰期。
第110次以太坊ACDC會議:CL客戶端團隊正考慮將EIP 4788納入Deneb升級:6月4日消息,據 Galaxy 研究副總裁 Christine Kim 記錄報道,以太坊核心開發人員于本周召開了第 110 次全核心開發人員共識 (ACDC) 電話會議。開發人員在會上討論和協調對以太坊共識層 (CL) 的更改。本周,以太坊基金會研究員 Dankrad Feist 介紹了一項關于以太坊主網節點傳播大量數據的能力的數據實驗結果。根據他的發現,他建議將 EIP 4844 規范從每個塊最多 4 個 blob 增加到 6 個。
此外,CL 客戶端團隊正在考慮將 EIP 4788 納入 Deneb 升級。據悉,EIP 4788 為智能合約和去中心化應用程序 (dapps) 引入了一種信任最小化的方式來訪問 CL 和驗證者余額、活動和獎勵等信息。[2023/6/4 11:56:33]
規范
參數
對于存在block.number>=FORK_BLOCK的區塊,需要作下列變更。
MetaMask iOS v3.0.1版啟用EIP-1559相關功能:8月6日消息,MetaMask iOS v3.0.1版正式啟用EIP-1559相關功能,用戶的交易費用支付頁面呈現Max priority fee和Max fee兩個參數。其中Max fee即相當于EIP-1559協議中每筆交易支付的總交易費用,由基本交易費(Base Fee)+ 優先交易費用(Priority Fee,即小費)組成;而Max priority fee則是由用戶設置的每筆交易最大可支付的優先交易費用(Priority Fee,即小費)。[2021/8/6 1:38:27]
1.移除SELFDESTRUCT的返還
2.用SSTORE_RESET_GAS+ACCESS_LIST_STORAGE_KEY_COST(EIP-2929+EIP-2930合力下的4,800gas)取代SSTORE_CLEARS_SCHEDULE
3.把交易后的最大返還gas量減少到gas_used//NEW_MAX_REFUND_QUOTIENT
原理闡釋
EIP-2200引入了返還的三種情況:
金色相對論 | Esther:ETH 實現PoS共識和EIP 1559之后,每年的發行量會降低至0-200萬:11月27日消息,在今日舉行的金色相對論中,針對“可以預測的是階段0會持續較長的一段時間,這段時間投資者存入的ETH和信標鏈出塊獎勵的BETH都無法兌現,這對于以太坊生態來說,是好是壞?有哪些補足辦法?”的問題,ECN以太坊中文社區 Esther表示,長期來看,對整體以太坊網絡來說,這是一個比較保守和穩健的策略。但上面談到的新路線圖已經對eth1和eth2的合并過程進行了簡化和提速,技術上來看,甚至可能在分片之前就能實現合并。但是為了觀察PoS鏈的穩定性和安全性,在合并之前階段0信標鏈需要持續運行一段時間,同時還需要對合并進行反復測試,此后社區才會放心從PoW鏈完全遷移到PoS鏈上。階段0還會帶來一個不可忽視的直接影響,即ETH的發行量和流通量。由于在合并之前,eth1和eth2并行存在,網絡發行量會有所上升。根據Vitalik本人的說法,在接下來1-2年中(eth1和eth2合并前),ETH的發行計劃為每年約470萬。而完全實現PoS共識和EIP 1559之后,每年的發行量會降低至0-200萬。當然Staking也有其不確定性所在,比如說自己跑節點的話可能因為操作失當或是網絡因素面臨懲罰,對于投資者來說主要還是流動性不足和機會成本方面,現在多家平臺已經推出了質押和流動性方案,大家打算參與的話需要多做點功課進行評估。[2020/11/27 22:21:14]
1.如果原始值是非零,新值是零,添加SSTORE_CLEARS_SCHEDULE的gas量到返還計算器
Deipool借貸挖礦支持質押BIKI挖DIP:據官方消息,Deipool借貸挖礦已上線BIKI資金池,支持質押BIKI挖DIP,借方和貸方任意一方,質押BIKI參與流動性挖礦,每天都有一定比例的收益。Deipool連續5日公測,10月10日至10月15日每日挖礦總產出5萬DIP,正式挖礦將于10月15日開啟,每日挖礦總產量23萬DIP,每天借貸挖礦的產量,由智能函數確定,線性減產,激勵早期參與者。
?BiKi已上線DIP,并支持DIP流動性挖礦,通過網格寶開啟DIP/USDT網格交易的用戶將瓜分該幣對前一日幣幣手續費50%,一鍵即可享受網格收益+流動性挖礦雙收益。[2020/10/12]
2.如果原始值是零,當前值是非零,新值為零,添加SSTORE_SET_GAS-SLOAD_GAS(當前是19,900)的gas量到返還計算器
3.如果原始值是非零,當前值是一個不一樣的非零值,新值等于原始值,添加SSTORE_RESET_GAS-SLOAD_GAS的gas到返還計算器
在這三種情況里,只有(1)會啟動gastoken且允許區塊在執行上消耗超過區塊gaslimit的gas。(2)不具有這個特點,因為要獲得19,900的gas返還,同一個存儲槽必須在之前從零改為非零,這需要消耗20,000gas。無法從一個存儲槽獲得gas并用它來編輯另一個存儲槽,意味著它不能被用作gastoken。另外,獲得返還需要恢復存儲的寫入和擴展,使得返還的gas不會增加客戶端處理區塊的工作量。(3)是相似的:只有當同一個存儲槽在之前已經消耗了5,000gas的時候才能獲得4,900gas返還。
動態 | V神沒有參與以太坊伊斯坦布爾硬分叉項目的EIP審批:據Cryptoglobe消息,以太坊開發人員日前已就伊斯坦布爾升級中的6個改進協議達成共識,共接納了6個EIP(以太坊改進建議):EIP-1108,EIP-1344,EIP-1884,EIP-2028,EIP-152,EIP-2200。據悉,V神并沒有參與以太坊伊斯坦布爾硬分叉項目的EIP審批。V神近日發推評論該項目是在“大獨裁者”零參與的情況下進行的。注:V神經常被以太坊的批評者指責為負責以太坊的開發,并使該項目不夠去中心化。[2019/8/25]
此EIP處理第一種情況。我們可以通過使用一個相似的“配對”變元來確定在何種條件下gastoken是不可用的(例如,你不可以在一個存儲槽里獲得比你的輸入更多的gas),將每一筆返還映射到同一筆交易的同一個存儲槽的前一筆支出。當一個存儲槽的原始值是非零值,如果它被改為0時,有兩個可能性:
1.這可能是存儲槽第一次被設置為零。在這種情況下,我們可以把這個時間與SSTORE_RESET_GAS+ACCESS_LIST_STORAGE_KEY_COST第一次讀取和編輯存儲槽的最小開銷進行配對。
2.這可能是存儲槽第二次被設置為零或被設置為零后的情況。在這種情況下,我們可以把這個事件與最近一次數值從零改為其他值,且SSTORE_CLEARS_SCHEDULE的gas從返還中被移除的變元進行配對。
對于第二次或之后的情況,SSTORE_CLEARS_SCHEDULE?的值是什么并不重要,因為那個gas大小的返還是與相同大小的清除返還相匹配的。這就只剩下第一種情況了。為了確保存儲槽上消耗的gas總量為正,我們需要SSTORE_CLEARS_SCHEDULE<=SSTORE_RESET_GAS+ACCESS_LIST_STORAGE_KEY_COST。因此,此EIP只把SSTORE_CLEARS_SCHEDULE減少到那兩項開銷的總和。
此EIP的另一個原因是,清除還未被讀取的數據(通常是“無用”數據)是不會有凈返還的,但清除被讀取過的數據(通常是“有用”數據)還繼續會有凈返還。
向后兼容性
返還當前僅在交易執行后應用,因此無法對執行中任何特定可用的調用框架造成影響。因此,清除它們將不會破壞任何代碼的執行,盡管它將使得一些應用變得經濟上不可行。
Gastoken會變得沒有價值。DeFi套利機器人今天經常不是使用已有的gastoken方案就是一個定制的,以減少鏈上的開銷,這得益于重寫它們的代碼以清除對那些不再有用的gas存儲機制的調用。
然而,完全保留在new=original=0!=current?里的返還,以及保留在其他nonzero->zero情況里的一些返還能確保一些接收(和值得)更好的gas開銷待遇的關鍵用例能持續獲益。例如,zero->nonzero->zero的存儲設置模式保持只需消耗大約100gas。這些模式包括兩個重要實例:
?反重入鎖(通常在一個子調用開始前從0變為1,當子調用結束時再變回0)
?ERC20授權與發送(當代幣轉移得到授權,"授權值"會從零變成非零,然后在代幣轉移過程中恢復到零)
對清除存儲激勵的影響
對之前關于移除返還的EIP(EIP-3298和EIP-3403)的批評是這些EIP完全消除了把一個值設為零的激勵,相當于鼓勵用戶不要完全清除一個存儲槽(即使他們想這么做),哪怕他們想再次使用該存儲槽的幾率是最小的。
舉一個例子,如果你有一個單位的ERC20代幣,且你要送出或賣出你的所有余額,你可以只給出0.999999個單位,把剩余的留下。如果你想在未來重新放入更多該種代幣到同一個賬戶,你僅需要為SSTORE支付5,000gas(2,100用于讀取+2,900用于非零變為非零的設置)而不是22,100(20,000用于零到非零值的設置)。今天,這部分的gas會被清除存儲獲得的15,000gas返還所抵消,因此,如果你有超過15000/17100=87.7%的把握會再使用這個存儲槽,你才會有動力這樣做;按照EIP3298或EIP3403的設定,抵消激勵這部分是不存在的,因此,如果你再次使用該存儲槽的可能性是大于0的,設為非零值會更好。
對于剩下的4,800gas返還,如果你覺得再次使用某個存儲槽的幾率大于4800/17100=28.1%,你才有保持該存儲槽為非零的動力。這并不是完美的,但它可能高于一般人在清除了他們的全部余額后在同一個地址重新獲得同一代幣的幾率。
gas返還的上限是所消耗gas量的1/5,這意味著這種返還僅夠用于增加處理一個區塊所需的存儲寫入操作量最多為25%,限制了利用這個機制進行以存儲寫入為重點的拒絕服務攻擊。
測試用例
EIP-2929的gas開銷
注意,“熱”和“冷”存儲槽之間是有區別的。這個表展示了EIP-2929下的值,假定所有變動過的存儲槽都已經是“熱”狀態(區別是一次性消耗2,100gas)。
減少了的返還后
如果通過把SSTORE_CLEARS_SCHEDULE從15,000變為4,800(以及去除selfdestruct的返還),減少了部分的返還,下面是是一個對比表。
安全考慮
返還對于事務執行時不可見的,因此這不會對事務執行邏輯產生任何影響。
如果我們不計算后來重置回零的零到非零的SSTORE,在一個區塊里執行的最大gas消耗量受到gaslimit的限制。不計算這些事可以的,因為如果這樣的SSTORE被重置了,存儲不會被擴展,客戶端實際上不需要調整默克爾樹;gas消耗是可以返還的,但客戶端對這些操作碼的處理通常也會被取消。如果new_value=original_value,客戶端應該保證不會進行存儲寫入;這是自以太坊創世以來的一次謹慎優化,但它現在變得更重要了。
來源|?eips.ethereum.org
作者|VitalikButerin&MartinSwende
加密行業越來越多的聲音認為,以太坊市值超越比特幣的可能性正在提升。其中之一是BitMEX創始人ArthurHayes,此前曾撰文表示以太坊價格很可能會達到1萬美元,今日再撰文表示以太坊市值將有可.
1900/1/1 0:00:00如果用一個詞來形容SEC與加密市場的關系,你會想到什么? 我想到的是“牽絆”。 此前,SEC新領導層及華爾街對加密貨幣的積極態度讓許多行業支持者喜出望外,但隨后SEC的最新態度“比特幣是一種高度.
1900/1/1 0:00:00據財聯社報道,支付寶已對部分用戶上線數字人民幣模塊,并支持用戶轉賬、收款等服務,其中,轉賬方式可支持「錢包編號轉賬」,也可支持「手機號或郵箱轉賬」.
1900/1/1 0:00:00對于加密貨幣市場來說,這不是一個美好的一周,最糟糕的情況出現在周二和周三。首先,美國證券交易委員會的一份報告顯示,美國可能對比特幣ETF并不那么熱衷.
1900/1/1 0:00:00行情 | BTC再度跌至9900美元下方:火幣全球站數據顯示,BTC持續小幅下跌,再度跌破9900美元,現報9886.68美元,日內跌幅為2.10%,行情波動較大,請做好風險控制.
1900/1/1 0:00:002021年BTC牛市行情沒有放緩的跡象。BTC近期創下65,000美元的歷史新高,這可能只是本周期出現的眾多高點中的第一個.
1900/1/1 0:00:00