Blockchain 如何防止智能合约在区块链网络中被修改和部署?

Blockchain 如何防止智能合约在区块链网络中被修改和部署?,blockchain,hyperledger,corda,smartcontracts,consensus,Blockchain,Hyperledger,Corda,Smartcontracts,Consensus,这个问题更多地涉及到私有区块链框架,如Corda、Hyperledger等。在所有这些平台中,我们都可以编写一些名为chaincode、smart contracts等的程序,这些程序允许我们实现业务逻辑。所有这些都部署在区块链网络的每个对等方中,但如何避免和检测在某些对等方中部署了不同版本的代码 我说的是,智能合约的最终结果是相同的,因此没有达成一致意见,但有些同行可以出于任何原因修改它运行的代码 我们如何在私有区块链中管理这种情况 如果智能合同都由有效的数字签名签署并且具有确定性,则智能合同

这个问题更多地涉及到私有区块链框架,如Corda、Hyperledger等。在所有这些平台中,我们都可以编写一些名为chaincode、smart contracts等的程序,这些程序允许我们实现业务逻辑。所有这些都部署在区块链网络的每个对等方中,但如何避免和检测在某些对等方中部署了不同版本的代码

我说的是,智能合约的最终结果是相同的,因此没有达成一致意见,但有些同行可以出于任何原因修改它运行的代码


我们如何在私有区块链中管理这种情况

如果智能合同都由有效的数字签名签署并且具有确定性,则智能合同可以是确定的

数字签名的存在为所有节点提供了一种机制,允许它们确定合同代码是否被操纵


如果智能合约代码是确定性的,则执行该代码的所有节点将到达相同的最终状态。

要扩展Matthew的答案,事务中的每个状态都与给定合约关联。此合同使用
[合同名称,包含合同的JAR文件的哈希]
对进行唯一标识

如果合同被修改,这将修改包含合同的JAR的哈希,因此合同JAR将不再被视为有效


正如Matthew所说,包含(除其他事项外)与每个州使用的合同相关信息的交易将进行数字签名,以防止其被修改。

谢谢Joel和Matthew,在Corda的案例中,这是真的吗?你能分享更多信息吗?。另一方面,我认为Hyperledger也有同样的机制,我将进行研究