您现在的位置: 比特财富网 >> 区块链 >  >> 區塊鏈百科
導致以太坊延遲硬分叉的EIP 1283到底是什麼?
EIP的全稱是Ethereum Improvement Proposals(以太坊改進提案),任何人都可以上去提一些對以太坊的改進提案,不過必須得嚴謹、正式,以太坊君士坦丁堡這次漏洞就是由一個EIP引起的,這個EIP的編號是1283。www.emoneybtc.comEIP 1283使以太坊虛擬機使執行智能合約的引擎更高效,並降低在以太坊上運行智能合約的成本。
該提案是針對SSTORE操作碼的,該操作碼主要用於合約持久化存儲數據,EIP1283為SSTORE操作碼設計了更加合理的gas收費方式。
詳情地址如下:
https://eips.ethereum.org/EIPS/eip-1283
為什麼需要EIP 1283?
EIP-1283提案由Wei Tang(@sorpass)於2018年8月1日創建,作為EIP-1087和EIP-1153的替代方案。EIP-1087由Nick Johnson創建,主要是改變EVM SSTORE運行gas費用收取方式,減少過多的gas費用成本;EIP-1153由Alexey Akhunov創建,相比EIP-1087更加便宜,gas費用計算規則更加簡單。EIP-1283提出了在SSTORE上進行gas計量的方案,為數據存儲的變化引進更加合理公平的定價方案。
其中定義了三個概念:
存儲槽的原始值(original):在當前事務發生回滾(revert)後會存在的值叫原始值。存儲槽的當前值(current):在使用SSTORE操作碼之前存在的值叫當前值。存儲槽的新值(new):在使用SSTORE操作碼之後存在的值叫新值。
然後以這三個概念為基礎,設計了如下處理邏輯:


如果當前值等於新值(這是無操作),則扣除200 gas。
如果當前值不等於新值
如果原始值等於當前值(此存儲槽未被當前執行上下文更改)
如果原始值為 0,則扣除20000 gas。
否則,扣除5000 gas。如果新值為 0,則在退款計數器中增加15000 gas(退款計數器中記錄的gas會退還給用戶)。
如果原始值不等於當前值(代表此存儲槽”髒”了),則扣除200 gas。
如果原始值不為0
如果當前值為 0(也表示新值不為0),請從退款計數器中減少15000 gas。
如果新值為 0(也表示當前值不為0),請向退款計數器中增加15000 gas。
如果原始值等於新值(此存儲槽已重置)
如果原始值為 0,則將退款計數器中增加19800 gas。
否則,則在退款計數器中增加4800 gas。
根據如上的邏輯可以發現,當使用SSTORE操作碼的時候如果不改變任何值的時候,只消耗 200 gas。如果改變了值最終又重置為0的話也只消耗20000 + 200 – 19800 = 400 gas。
而在之前EIP 1087的邏輯中如果使用SSTORE操作碼改變了值最終又重置為0的話需要消耗20000 + 5000 – 10000 = 15000 gas。
顯然EIP 1283的處理邏輯比EIP 1087更加合理,也更加便宜,但是問題就在這裡。
  • 外匯市場中常見對沖模式有哪些?

    對沖在外匯投資市場中最為常見,重在避開單線買賣的風險。外匯市場常見的對沖模式有四大類型,接下來,中油財經網小編將在此為大家一一講述。在《量化

  • 匯市高手操盤策略

    外_匯_邦 WaiHuiBang.com   一、賣空  A、外匯價在高位形成2B頭寸開倉在跌破前期

  • 外匯黃金平均點差是多少?

      外匯黃金大多數投資人都是在進行外盤交易,而外盤交易這些產品所需要收取的唯一的費用就是點差,不同的平台點差都不相同。那麼,外匯黃金

  • 大盤跌了基金要賣出嗎?

    最佳答案: 看情況來定。如果行情好的時候,你持有的基金沒有同類漲的多,行情差的時候,你持有的基金卻比

  • 淘寶流星花園紅包要怎麼用?

    最佳答案: 流星花園紅包是淘寶的一個攢紅包活動吧,集齊搶紅包需要的卡片之後就可以參與搶紅包活動了。不

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com