智能合约的机密性和隐私性

Posted

技术标签:

【中文标题】智能合约的机密性和隐私性【英文标题】:Smart contracts confidentiality and privacy 【发布时间】:2018-01-28 23:49:51 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您的代码是不可变的,黑客无法弄乱您的代码。他们可以像其他人一样执行它,但就是这样。如果您在系统中留下一个漏洞,以便任何人都可以输入并执行他们可能通过该漏洞造成损害的代码,您可以查看 DAO 漏洞作为示例。

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

所以要回答你的问题,你的合同是公开的,但只要你不公布地址、人类可读的代码或所需的金额,你应该没问题。话虽如此,你应该尽量避免在链上保留你需要保密的信息,我还建议你获得任何由第三方审计的智能合约。

【讨论】:

这不是一个好建议。 “通过默默无闻的安全”不是一个可接受的概念。现在有一些方法可以反编译智能合约,即使不是这样,也有人可以使用软件来分析其功能。

以上是关于智能合约的机密性和隐私性的主要内容,如果未能解决你的问题,请参考以下文章

无合约的合约

区块链-智能合约工程师第三篇:Solidity进阶

区块链-智能合约工程师第三篇:Solidity进阶

区块链存在的问题,智能合约漏洞分析

区块链存在的问题,智能合约漏洞分析

随笔:zk-AuthFeed How to Feed Authenticated Data into Smart Contract with Zero Knowledge理解