【问题标题】:Can we deploy smart contract without publicly giving bytecode?我们可以在不公开提供字节码的情况下部署智能合约吗?
【发布时间】:2022-01-07 08:43:18
【问题描述】:

我正在学习 dapp 和区块链开发,每次我们部署智能合约时,都可以在 polyscan/etherscan 上看到字节码。 我们可以隐藏吗?我们可以在不提供字节码的情况下部署智能合约吗?

【问题讨论】:

    标签: blockchain solidity smartcontracts web3 decentralized-applications


    【解决方案1】:

    鉴于区块链的开放性,我认为没有办法隐藏这一点,因为每当我们部署合约时,我们都会更新不可变的区块链状态。

    【讨论】:

    • 意味着我所有的solidity代码和私有变量都对所有人可见?
    • 唯一公开的是字节码而不是你的原始代码,因为 EVM 只理解字节码(它们可以被反编译但也不可读)访问你的原始代码的唯一方法是当你可能通过 Github 或 Etherscan 自己公开它。私有变量也可以从中读取,这就是为什么不建议将机密数据存储在区块链上的原因。
    • 表示没有人可以看到我的代码,对吧?有没有 Solidity 代码的反编译器?
    • 是的,没有人可以看到您的代码。大多数反编译器不编译为 Solidity,但大多是类似 Python 的语言。所以如果你想隐藏你的代码,除非你公开它,否则没有人会看到它。
    • 感谢帮助的朋友
    【解决方案2】:

    您的代码在以太坊虚拟机 (EVM) 上执行,字节码向 EVM 提供有关如何执行代码的说明。字节码是代表合约的东西,它被部署在 以太坊生态系统。字节码是 EVM 理解的低级语言,在部署期间是必需的。

    【讨论】:

      猜你喜欢
      • 2022-12-06
      • 2021-06-28
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多