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

时间:2018-01-03 19:06:15

标签: blockchain hyperledger corda smartcontracts consensus

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

我说的是智能合约的最终结果是相同的,所以没有提交共识,但是有些同行可以出于任何原因修改它运行的代码。

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

2 个答案:

答案 0 :(得分:1)

为了扩展马修的答案,交易中的每个州都与给定的合同相关联。此合约使用[contract name, hash of the JAR file containing the contract]对唯一标识。

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

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

答案 1 :(得分:0)

如果智能合约均由有效的数字签名签署并具有确定性,则可以是明确的。

数字签名的存在为所有节点提供了一种机制,使他们能够确定合同代码是否已被操纵。

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