1

一旦智能合约代码发布到区块链上,每个人都可以看到我的源代码是否正确?

每个人都可以看到应用程序的业务状态和保存在区块链中的信息是否正确?

例如,下面的示例向区块链发送请求,从区块链接收响应。在这种情况下,任何人都可以看到源代码和业务信息吗?该应用程序通过 Solidity 使用以太坊区块链。

https://docs.microsoft.com/en-us/azure/blockchain/service/send-transaction

是否可以保护源代码,用户只能通过 UI 看到业务状态?像传统的 Web 应用程序一样。

4

2 回答 2

0

智能合约状态和存储在区块链中的任何信息对区块链之外的所有观察者都是可见的,甚至是本地和私有变量。(它不一定对其他智能合约可见)。

solidity 源代码本身不存储在区块链上,只有编译后的字节码,它由以太坊虚拟机的低级机器指令(称为操作码)组成。尽管这不能轻易地转换回您的源代码(即所有变量名都将丢失),但它确实揭示了有关您的代码正在做什么的信息。

于 2020-10-12T15:58:43.877 回答
0

在任何区块链中,业务信息/状态对区块链网络或联盟的参与者都是可见的。任何智能合约状态的更改都是通过交易参与者之间共享的交易完成的。因此,通过该智能合约公开的内容/操作对该交易的参与者也是可见的,因此他们可以验证它的有效性/就是否接受/拒绝它达成共识。

要回答您的问题,“每个人”可能无法看到内容,除非它是您正在处理的公共智能合约/交易。在公共交易/合同的情况下,该公共链可见。如果是私人交易,那么它只对私人交易的参与者可见。

参考:问答

于 2020-09-08T05:34:11.560 回答