時(shí)間:2023-04-20|瀏覽:291
參考以太坊最新公開消息:https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md#eips-considered-for-inclusion,和上海升級(jí)的相關(guān) EIP 如下:
- 確定包含的 EIP:EIP-3651,EIP-3855,EIP-3860,EIP-4895 - 可能包含的 EIP:EIP-3540,EIP-3670 - 而和 L2 擴(kuò)容相關(guān)的 EIP-4488,EIP-4844 都不在本次升級(jí)范圍內(nèi)
說到 EIP-3651,得先介紹一下 EIP-2929 一個(gè)改動(dòng):
當(dāng)目標(biāo)不在 accessed_addresses 中,收取 COLD_ACCOUNT_ACCESS_COST(冷賬戶訪問成本)gas,并將地址添加到 accessed_addresses。否則,收取 WARM_STORAGE_READ_COST(暖存儲(chǔ)讀取成本)gas,暖讀取消耗 gas 相對(duì)較低。
如今 COINBASE 直接支付正變得越來越受歡迎,但目前訪問 COINBASE 的價(jià)格較高;這是由于在 EIP -2929 引入的訪問列表框架下,COINBASE 是按冷賬戶訪問成本計(jì)算 gas 的,在 EIP-3651 后,accessed_addresses 將包括 COINBASE (0x41) 返回的地址。
好處:修改后,COINBASE 在支付 ERC20 代幣時(shí)會(huì)減少 gas 消耗。
EIP-3855,引入一條新指令(0x5f),將常量值 0 壓入堆棧,黃皮書關(guān)于 PUSH 的指令集,目前只有 PUSH1-PUSH32,作用是將 1 字節(jié)壓入堆棧,到 32 字節(jié)壓入堆棧
現(xiàn)有指令實(shí)現(xiàn)將 0 值壓入堆棧需要通過執(zhí)行 PUSH1 0,在 runtime 中需要消耗 3 gas,并且額外需要消耗 200 gas(2 字節(jié)的存儲(chǔ)成本)
有了 PUSH0 指令后,就不需要消耗這額外的 200 gas 了。
好處:目前大約有 11% 的 PUSH 操作只是壓入 0,因此這個(gè) EIP 執(zhí)行后可以節(jié)省一定量的 gas,也能稍微提高以太坊的現(xiàn)有的 TPS。
目前 initcode 的最大為 MAX_CODE_SIZE: 24576(EIP-170),新的 initcode 的最大為 (MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152),這意味合約大小可以擴(kuò)展一倍,合約開發(fā)者可以部署更豐富的功能。(合約代碼過大會(huì)導(dǎo)致部署不成功,PS:L2 項(xiàng)目也部分已修改,支持更高的合約大小上限)
此外為每 32 字節(jié)的 initcode chunk 引入 2 個(gè) gas 費(fèi)用,以表示 jumpdest-analysis 的成本。因?yàn)樵诤霞s創(chuàng)建期間,客戶端必須在執(zhí)行之前對(duì) initcode 執(zhí)行 jumpdest 分析。執(zhí)行工作與 initcode 的大小成線性關(guān)系。
這意味著 initcode 每字節(jié)將添加成本 0.0625 gas,合約部署 gas 成本微微上漲。
好處:合約部署 gas 費(fèi)微微上調(diào),但合約大小可以擴(kuò)展一倍,合約開發(fā)者寫更豐富的功能代碼。
主要內(nèi)容是確定信標(biāo)鏈提款至 EVM 的主要流程,部署完成后,以太坊信標(biāo)鏈質(zhì)押提款功能將被激活。
好處:激活以太坊信標(biāo)鏈質(zhì)押提款功能。
此 EIP 涉及改動(dòng)較大,并非一定包含在上海升級(jí)中。
此 EIP 中描述的格式引入了一個(gè)簡單且可擴(kuò)展的格式,并引入了驗(yàn)證。實(shí)現(xiàn)了合約代碼和數(shù)據(jù)的分離。
新的 EVM 對(duì)象格式為:magic, version, (section_kind, section_size)+, 0,
好處:版本控制有利于以后實(shí)現(xiàn)引入或棄用新功能(例如引入賬號(hào)抽象);合約代碼和數(shù)據(jù)的分離對(duì)于 L2 的驗(yàn)證 (op) 有益,減少 L2 驗(yàn)證器的 gas 成本;合約代碼和數(shù)據(jù)的分離也更加方便鏈上數(shù)據(jù)分析工具的工作。
此 EIP 并非一定包含在上海升級(jí)中,配合 EIP-3540 合約創(chuàng)建時(shí)引入代碼驗(yàn)證。拒絕未定義指令的合約。
好處:合約創(chuàng)建時(shí),就可引入代碼驗(yàn)證。
聲明:內(nèi)容來源于互聯(lián)網(wǎng),不代表本站觀點(diǎn)。