智能合约的机密性和隐私

Smart contracts confidentiality and privacy

我想创建一个需要智能合约的应用程序,其中只有 2 方知道 ETH 地址和发送到那里执行某些代码所需的金额。可以吗?

您的代码是不可变的,黑客无法破坏您的代码。他们可以像其他人一样执行它,仅此而已。如果你在你的系统中留下一个漏洞,任何人都可以进入并执行他们可能通过该漏洞造成损害的代码,你可以查看 DAO 漏洞作为示例。

任何人都可以在区块链上看到你编译的字节码,但为了理解它是如何工作的,他们需要预编译的人类可读代码。只要您将人类版本保密,他们就只能访问字节代码。目前,没有办法从编译代码中获取人工代码。

因此,为了回答您的问题,您的合同是 public,但只要您不公布地址、人类可读代码或所需金额,就应该没问题。话虽这么说,你应该尽量避免将你需要在链上保持私密性的信息保留下来,我还建议你获得第三方审计过的任何智能合约。