Contract-Deployment

任何人如何將合約發佈到預先生成的地址?

  • February 29, 2020

有一個合約,原始碼告訴合約地址是在合約上傳到網路之前提前生成的(那裡有註釋)。

地址開頭很不尋常:0x000000…

如您所見,它表明地址是專門為這些零而生成的。人們可以認為這些零是一種簡單的運氣,但合約使用兩個額外的地址來實現其目的,它們以 0x100000… 和 0x200000… 開頭

這怎麼可能將合約上傳到特定地址,這是否意味著作者擁有合約的私鑰,因為它是提前生成的?

這怎麼可能將合約上傳到特定地址,這是否意味著作者擁有合約的私鑰,因為它是提前生成的?

合約的地址是根據其創建者(發送者)的地址和創建者發送的交易數量(隨機數)計算得出的。發送者和隨機數經過 RLP 編碼,然後使用 Keccak-256 進行散列。有關更多詳細資訊,請參閱此答案

所以為了回答你的問題,確實可以通過提前計算該地址(如上所述)將合約上傳到特定地址,但這一事實並不意味著作者擁有該合約的私鑰。

請注意,合約的作者實際上並不是它的私鑰,因為他們可以簡單地實現和限制自己的特定功能。

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