Contract-Design

為什麼在合約程式中使用自毀?

  • August 17, 2020

我正在閱讀契約中自毀的點點滴滴是一件好事。有人可以解釋在乙太坊程式方面進行合約自毀的好處是什麼?如果您使用不同的客戶端、實現或語言,會有區別嗎?

乙太坊中的自毀是 EVM 級別的操作(實際上是 OPCODE),與您使用的語言或客戶端無關。

例如,呼叫selfdestruct(address)將所有合約的目前餘額發送到address.

當你完成一份合約時,這很有用,因為它花費的 gas 比僅僅發送餘額要少得多address.send(this.balance)

事實上,SELFDESTRUCT 操作碼使用負氣體,因為該操作通過清除所有合約數據來釋放區塊鏈上的空間。

這個負gas從交易的總gas成本中扣除,所以如果你先做一些清理操作,SELFDESTRUCT可以降低你的gas成本。

引用自:https://ethereum.stackexchange.com/questions/315