Selfdestruct

一個契約怎麼能毀掉其他契約(自殺賬戶)?

  • September 24, 2018

我從黃皮書中了解到,在契約執行結束時,可能會有一個自殺賬戶列表將被刪除。

我的問題是,一個智能合約為什麼以及如何刪除其他賬戶(智能合約)。

例如,我理解自我毀滅的需要。當一個智能合約完成時,它會自行銷毀。但是為什麼你需要摧毀別人以及如何?

我的智能合約可以破壞他人擁有的合約嗎?

另外,在工程方面,這種破壞是如何實施的?例如,我們是否真的修改了與銷毀帳戶相關的先前區塊的內容?或者我們只是更新樹結構的變化?

要開始我的回答,我不得不說,一旦你將某些東西放在區塊鏈上,它就是“不可變的”,我的意思是它不能被修改或刪除。

(有一種特殊類型的“可升級”契約,但這不是答案)

你可以在這裡找到很多關於自毀的資訊。

**為什麼你需要摧毀別人?**例如,要使合約不可訪問,您不能將其從鏈中刪除,但可以禁用它。

**我的智能合約可以破壞他人擁有的合約嗎?**這需要很長的解釋,並且有多種因素在起作用。但是,總而言之,不,你不能這樣做。

**這種破壞是如何實施的?**您可以使用selfdestruct/destroy(舊的意思suicide/kill)。你可以在這裡找到一些資訊和一個很好但很老的教程——後者解釋了這個實現是如何工作的。此外,這裡還有另一個連結,其中包含有關該主題的資訊。

**我們是否真的修改了與銷毀帳戶相關的先前區塊的內容?或者我們只是更新樹結構的變化?**我們永遠不能修改其他區塊,我們只能在區塊鏈中放入一個新的區塊,提供更多資訊。區塊是永久性的,它們包含交易和契約的資訊。也許可以幫助您了解塊概念。

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