簡單總結
移除 SELFDESTRUCT 的 gas 返還,減少 SSTORE 的 gas 返還到一個較低水平,使得返還的量仍然相當大,但不會像現在高到可以被利用的地步。
原因
最初引入 SSTORE 和 SELFDESTRUCT 的 gas 返還是為了鼓勵應用開發者寫應用時能踐行“良好的狀態衛生”,清理不再需要的存儲槽與合約。但是,結果證明這項技術帶來的效率遠低于預期,gas 返還還帶來多項未預料到的有害后果:
gas 返還導致 GASToken 的出現。GasToken 有益于把 gas 空間從低費用階段轉移到高費用階段,但它也對網絡有壞處,尤其是加劇狀態大小膨脹 (由于狀態槽被有效用作“電池”來積攢 gas) 和低效地堵塞區塊鏈 gas 使用。
gas 返還加劇區塊大小變化。一個區塊實際消耗的 gas 量的理論最大值是接近名義上的 gas limit (因為返還會增加同一區塊里后面交易的 gas 空間,盡管返還的 gas 最多是該筆交易消耗 gas 的50%)。這一點不是致命的,但影響還是相當不好,特別是返還可以被用來維持比 EIP-1559 使用兩倍 gas limit 更長的峰期。
第165次以太坊核心開發者執行會議:EIP-6466和EIP-6406是代碼更改,不影響升級:金色財經報道,7月6日,在ACDE #165上,以太坊開發人員討論了:對EIP-6466和6406的影響分析;Cancun/Deneb測試工作的進展;將構建器覆蓋標志包含到引擎API中;以及EIP-4788規范中包含兩個環形緩沖區。
首先,EIP-6466和EIP-6406是代碼更改,將兩個區塊頭字段transactions_root和receipts_root中的數據編碼從RLP更新到SSZ。安全審計公司Dedaub對EIP-6466與EIP-6406的影響分析是為了確定這些代碼更改對以太坊上已部署和積極使用的智能合約的影響。分析發現,SSZ更新將影響三個主要項目:LayerZero、zkBridge(跨鏈橋)和預言機。盡管這些應用程序受到影響,Dedaub總監Neville Grech表示,所有三個應用程序都可以升級,以適應通過EIP-6466和6406實施的代碼更改。
關于Cancun/Deneb測試,以太坊基金會的DevOps工程師Parithosh Jayanthi表示,Devnet #7Cancun/Deneb升級已于6月30日星期五成功啟動。測試網絡正在順利完成,并且已經發現了客戶端實施中的一些問題。Jayanthi表示,一旦客戶團隊修復了未解決的問題,他將嘗試在更長的時間內向網絡發送Blob交易,以了解網絡如何處理3個目標Blob/塊的負載(從2個Blob的目標增加) /block在最后一個測試網期間。
關于將構建器覆蓋標志包含到引擎API中,Teku (CL) 開發人員Mikhail Kalinin詢問EL客戶團隊是否愿意接受坎昆升級中引擎API的更改。Kalinin要求客戶團隊在GitHub上審查構建器標志Engine API更改,如果他們反對在7月10日星期一之前將其納入坎昆,請大聲說出來。如果沒有人反對這一更改,Kalinin表示他將合并必要的更改納入引擎API規范,以便包含在Cancun/Deneb升級中,對引擎API的更改不會記錄為EIP。
此外,EIP-4788引入一種新的預編譯,這是一種具有成本效益的智能合約操作,它將在EL上公開有關CL的信息,以防止通過代碼更改過度使用存儲空間。此功能將解鎖去中心化應用程序的許多用例,例如質押池和重新質押協議,這些應用程序將受益于對CL狀態的信任最小化訪問。以太坊基金會研究員Alex Stokes表示,該修改將合并到最終的EIP-4788規范中,以便在坎昆盡快實施。[2023/7/9 22:27:15]
規范
GoPlus與慢霧提出合約可限時授權EIP提案,以降低遺留授權導致的被盜風險:10月6日消息,安全機構GoPlus與慢霧提出可限時授權的EIP標準,以降低遺留授權導致的被盜風險。標準中提到,包括TransitSwap事件在內,反復發生的資產盜竊是由于用戶對合約的過度授權造成的,如果合約出錯,所有沒有召回授權的用戶都會受到攻擊。
GoPlus與慢霧提出的解決方案可以為ERC-20Token設置Approv,以在默認時間段內自動撤回授權,或者使用自定義的時間限制來召回授權并及時避免風險,并提交了一份新的EIP,目前正在由以太坊研究部門審查。[2022/10/6 18:41:11]
參數
對于存在 block.number >= FORK_BLOCK 的區塊,需要作下列變更。
1. 移除 SELFDESTRUCT 的返還
2. 用 SSTORE_RESET_GAS + ACCESS_LIST_STORAGE_KEY_COST (EIP-2929 + EIP-2930 合力下的 4,800 gas) 取代 SSTORE_CLEARS_SCHEDULE ( EIP-2200 定義的)
吳忌寒:EIP-1559若順利通過 ETH價格會大幅上漲:比特小鹿董事長吳忌寒在BCH蜂群表達對以太坊EIP-1559提案的支持。針對大量礦池反對EIP-1559提案,他表示:V神辛辛苦苦給弄了這么好的提案,還有這么多人反對。提案順利通過,ETH價格大幅上漲,礦工也是贏家。EIP-1559將銷毀大部分手續費,促進以太坊由通脹走向通縮,礦工的收入(幣本位)減少10-30%。目前星火等以太坊礦池反對,但魚池表示支持,認為可以提升用戶體驗。(吳說區塊鏈)[2021/3/2 18:07:50]
3. 把交易后的最大返還 gas 量減少到 gas_used // NEW_MAX_REFUND_QUOTIENT
原理闡釋
EIP-2200 引入了返還的三種情況:
1. 如果原始值是非零,新值是零,添加 SSTORE_CLEARS_SCHEDULE (當前是15,000)的 gas 量到返還計算器
2. 如果原始值是零,當前值是非零,新值為零,添加 SSTORE_SET_GAS - SLOAD_GAS (當前是 19,900) 的 gas 量到返還計算器
3. 如果原始值是非零,當前值是一個不一樣的非零值,新值等于原始值,添加 SSTORE_RESET_GAS - SLOAD_GAS (當前是 4,900)的 gas 到返還計算器
分析:以太坊競價升級算法EIP-2593提案是以用戶為主導的策略:加密貨幣研究員hasufl和gakonst聯合發布了對EIP-2593 區塊空間市場提案的分析,分析稱,EIP-2593 更廣為人知名字是競價升級算法或者簡稱為自動扶梯,被稱為改進以太坊交易費機制的 EIP-1559 提案的替代品,因為在設計目標上有很大的重疊。在自動扶梯方案中,用戶繼續參與區塊空間的第一價格拍賣。不過每一筆交易都可以選擇為逐步提高的出價提供參數,從而為區塊生產者創建一個基于時間的拍賣,以便納入這筆交易。EIP-2593 引入了用戶必須指定的參數,包括用戶愿意為交易支付的最低價格、交易有效的第一個區塊、發送方為處理此交易愿意支付的最大價格、用戶愿意等待處理交易的最后一個區塊。EIP-2593 機制向交易中附加一個不斷升級的出價,以緩慢地測試最佳出價。從較低的費用開始,有助于避免支付過高的價格,因為礦工應以他們愿意接受的最低價格進行交易。不斷升級的價格確保了一筆交易最終被包括在內,前提是交易價格高于網絡 gas 費,有助于防止支付不足。不過自動扶梯算法比 EIP-1559 小得多,并且設計范圍不同。EIP-1559 拍賣范圍也相對較小,即使在目標重疊的地方,結果也很難比較。這兩個提案是相輔相成的,盡管不一定是在基礎層,但都應該贊同。現在自動扶梯算法已經被使用了,無論是用戶手動操作,還是在以太坊進行大量交易的專業服務公司的內部使用。這證明了自動扶梯是用戶的主導策略。因此,應該關注的不是自動扶梯算法是否有用,而是它們是否應該在協議內部或外部實現。[2020/6/25]
在這三種情況里,只有 (1) 會啟動 gastoken 且允許區塊在執行上消耗超過區塊 gas limit 的 gas。(2) 不具有這個特點,因為要獲得 19,900 的 gas 返還,同一個存儲槽必須在之前從零改為非零,這需要消耗 20,000 gas。無法從一個存儲槽獲得 gas 并用它來編輯另一個存儲槽,意味著它不能被用作 gas token。另外,獲得返還需要恢復存儲的寫入和擴展,使得返還的 gas 不會增加客戶端處理區塊的工作量。(3) 是相似的:只有當同一個存儲槽在之前已經消耗了 5,000 gas 的時候才能獲得 4,900 gas 返還。
動態 | 報告:關于以太坊提案EIP-2025的討論是重要而健康的:Circle Research發布報告對最近以太坊核心開發者關于EIP-2025討論的回應。核心開發者和以太坊支持者就建立一種利用區塊獎勵預定部分的資金模式進行激烈辯論。支持者主要屬于將從這筆資金中獲益的陣營,反對該計劃的比例更大,包括大多數推特用戶。報告稱,已提出其他籌資方法,包括分配自愿捐款、基于社區的投資和創建GitHub獎金。 雖然以太坊基金會已概述在未來12個月花費3000萬美元的計劃(900萬美元將用于當前的ETH 1.x迭代),但加密貨幣生態系統需要明確定義的未來融資模式。“我們不確定EIP-2025在技術上是否合理,但它引發一場重要、可以說是健康的討論,討論的主題是在社區/網絡的基因之外引入這種形式的資金所帶來的挑戰。”(CryptoGlobe)[2019/8/5]
此 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 的另一個原因是,清除還未被讀取的數據 (通常是“無用”數據) 是不會有凈返還的,但清除被讀取過的數據 (通常是“有用”數據) 還繼續會有凈返還。
向后兼容性
返還當前僅在交易執行后應用,因此無法對執行中任何特定可用的調用框架造成影響。因此,清除它們將不會破壞任何代碼的執行,盡管它將使得一些應用變得經濟上不可行。
Gas token 會變得沒有價值。DeFi 套利機器人今天經常不是使用已有的 gas token 方案就是一個定制的,以減少鏈上的開銷,這得益于重寫它們的代碼以清除對那些不再有用的 gas 存儲機制的調用。
然而,完全保留在 new = original = 0 != current ?里的返還,以及保留在其他 nonzero -> zero 情況里的一些返還能確保一些接收 (和值得) 更好的 gas 開銷待遇的關鍵用例能持續獲益。例如,zero -> nonzero -> zero 的存儲設置模式保持只需消耗大約 100 gas。這些模式包括兩個重要實例:
? 反重入鎖 (通常在一個子調用開始前從 0 變為 1,當子調用結束時再變回 0)
? ERC20 授權與發送 (當代幣轉移得到授權,"授權值"會從零變成非零,然后在代幣轉移過程中恢復到零)
對清除存儲激勵的影響
對之前關于移除返還的 EIP (EIP-3298 和 EIP-3403) 的批評是這些 EIP 完全消除了把一個值設為零的激勵,相當于鼓勵用戶不要完全清除一個存儲槽 (即使他們想這么做),哪怕他們想再次使用該存儲槽的幾率是最小的。
舉一個例子,如果你有一個單位的 ERC20 代幣,且你要送出或賣出你的所有余額,你可以只給出 0.999999 個單位,把剩余的留下。如果你想在未來重新放入更多該種代幣到同一個賬戶,你僅需要為 SSTORE 支付 5,000 gas (2,100用于讀取 + 2,900用于非零變為非零的設置) 而不是22,100 (20,000 用于零到非零值的設置)。今天,這部分的 gas 會被清除存儲獲得的 15,000 gas 返還所抵消,因此,如果你有超過 15000 / 17100 = 87.7% 的把握會再使用這個存儲槽,你才會有動力這樣做;按照 EIP 3298 或 EIP 3403 的設定,抵消激勵這部分是不存在的,因此,如果你再次使用該存儲槽的可能性是大于 0 的,設為非零值會更好。
對于剩下的 4,800 gas 返還,如果你覺得再次使用某個存儲槽的幾率大于 4800 / 17100 = 28.1% ,你才有保持該存儲槽為非零的動力。這并不是完美的,但它可能高于一般人在清除了他們的全部余額后在同一個地址重新獲得同一代幣的幾率。
gas 返還的上限是所消耗 gas 量的1/5,這意味著這種返還僅夠用于增加處理一個區塊所需的存儲寫入操作量最多為25%,限制了利用這個機制進行以存儲寫入為重點的拒絕服務攻擊。
測試用例
EIP-2929 的 gas 開銷
注意,“熱”和“冷”存儲槽之間是有區別的。這個表展示了 EIP-2929 下的值,假定所有變動過的存儲槽都已經是“熱”狀態 (區別是一次性消耗 2,100 gas)。
減少了的返還后
如果通過把 SSTORE_CLEARS_SCHEDULE 從 15,000 變為 4,800 (以及去除 selfdestruct 的返還) ,減少了部分的返還,下面是是一個對比表。
安全考慮
返還對于事務執行時不可見的,因此這不會對事務執行邏輯產生任何影響。
如果我們不計算后來重置回零的零到非零的 SSTORE,在一個區塊里執行的最大 gas 消耗量受到 gas limit 的限制。不計算這些事可以的,因為如果這樣的 SSTORE 被重置了,存儲不會被擴展,客戶端實際上不需要調整默克爾樹;gas 消耗是可以返還的,但客戶端對這些操作碼的處理通常也會被取消。如果 new_value = original_value,客戶端應該保證不會進行存儲寫入;這是自以太坊創世以來的一次謹慎優化,但它現在變得更重要了。
來源 |?eips.ethereum.org
作者 | Vitalik Buterin & Martin Swende
中國互聯網金融協會、中國銀行業協會、中國支付清算協會聯合發布《關于防范虛擬貨幣交易炒作風險的公告》,消息一出,颯姐的私信滿屏,業內非常關心公告是否代表官方態度,是否會影響幣價?作為一名觀察者.
1900/1/1 0:00:00你沒有必要獲取加密圈內所有的信息,這也不可能實現,通常你也會錯過下一次大漲,所以在幣圈這個風云變幻的市場中,這種投資方式并不可行.
1900/1/1 0:00:00“玩的就是心跳!”這是不少幣圈合約玩家的口頭禪。5月17日中午12時,比特幣再現暴跌,日內跌近13%,回落至42282美元.
1900/1/1 0:00:00近期,虛擬貨幣價格暴漲暴跌,虛擬貨幣交易炒作活動有所反彈,嚴重侵害人民群眾財產安全,擾亂經濟金融正常秩序.
1900/1/1 0:00:00這幾天網上似乎越來越多人開始討論以太坊超越比特幣的可能。之所以會出現這個現象,我覺得可能和兩個因素有關:一是以太坊上面的生態越來越大;二是以太坊的價格上漲將具備機制因素.
1900/1/1 0:00:005月22日,清華大學五道口金融學院名譽院長、央行原央行周小川在“2021 清華五道口全球金融論壇”上發表了“數字貨幣和電子支付系統”的主題演講.
1900/1/1 0:00:00