Contract-Design

任何乙太坊智能合約的原始碼都一定是公開的嗎?

  • December 20, 2021

我認為任何智能合約都有開放程式碼。但是,有時我會在 etherscan 上遇到沒有公開可用的 Solidiy程式碼的智能合約。

怎麼會這樣?這不違背乙太坊作為區塊鏈的基本理念,即一切都是開放的,任何人都可以公開看到嗎?

例如

沒有原始碼???

當您部署用 Solidity 編寫的智能合約時,Solidity 程式碼不會部署到區塊鏈中。solidity 程式碼首先由編譯器編譯為字節碼,然後將字節碼部署到區塊鏈中。

當您在例如 Etherscan 上看到 Solidity 程式碼時,這意味著合約已驗證

您在螢幕截圖中看到的是智能合約的字節碼。使用好的反編譯器,您將能夠將字節碼反編譯為 Solidity 程式碼。這樣,無論是否經過驗證,每個契約都在乙太坊區塊鏈上完全“開源”。Etherscan 有一個反編譯器建構,您可以在其中查看:反編譯器

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