一旦智能合约代码发布到区块链,每个人都可以看到我的源代码,这是正确的吗?
每个人都可以看到保存在区块链中的应用程序的业务状态和信息,这是正确的吗?
例如,下面的示例向区块链发送请求,接收来自区块链的响应。在这种情况下,任何人都可以看到源代码和业务信息吗?该应用程序通过Solidity使用以太区块链。
https://docs.microsoft.com/en-us/azure/blockchain/service/send-transaction
是否可以保护源代码,用户只能通过UI查看业务状态?就像传统的web应用程序一样。
发布于 2020-09-08 13:34:12
在任何区块链中,区块链网络或联盟的参与者都可以看到业务信息/状态。任何智能合约状态的更改都是通过在事务参与者之间共享的事务来完成的。因此,通过该智能合约公开的内容/操作对该事务的参与者也是可见的,以便他们可以验证它的有效性/对是否接受/拒绝它有一个共识。
回答您的问题时,"everyone“可能无法查看内容,除非您正在处理的是公共智能合约/交易。在公共交易/合同情况下,它对公共链是可见的。如果它是私有事务,那么它只对私有事务的参与者可见。
参考:Q&A
发布于 2020-10-12 23:58:44
智能合约状态和区块链中存储的任何信息对区块链外部的所有观察者都是可见的,即使是本地和私有变量也是如此。(它不一定对其他智能合约可见)。
固定性源代码本身并不存储在区块链上,只有编译后的字节码,该字节码由用于以太虚拟机的低级机器指令(称为操作码)组成。虽然这不容易转换回您的源代码(即所有变量名称将丢失),但它确实揭示了您的代码正在做什么的信息。
https://stackoverflow.com/questions/63701829
复制相似问题