Hyperledger Fabric链代码(智能合约)的安全性问题

时间:2018-09-11 14:49:53

标签: hyperledger-fabric hyperledger blockchain smartcontracts

我正在阅读Hyperledger Fabric的文档,发现一个非常令人困惑的方面。我不知道这是否真的是安全问题,还是我误解了什么。

根据文档的this section,我理解的是,智能合约的interface在不同的同位体上实例化时必须相同。这是否意味着我在智能合约功能中可以具有不同的业务逻辑,同时在将其部署到不同的对等方时具有相同的界面?

如果我是正确的话,这是否意味着设计中存在BIG安全问题?任何有助于更好地理解该概念的帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

Chaincode接口是严格定义的,不能更改,该接口是:

['Hello', 'hhf', 'ddh', 'GTDJJ']

您有一种方法可以处理逻辑的初始化方面,而其余部分则可以通过// Chaincode interface must be implemented by all chaincodes. The fabric runs // the transactions by calling these functions as specified. type Chaincode interface { // Init is called during Instantiate transaction after the chaincode container // has been established for the first time, allowing the chaincode to // initialize its internal data Init(stub ChaincodeStubInterface) pb.Response // Invoke is called to update or query the ledger in a proposal transaction. // Updated state variables are not committed to the ledger until the // transaction is committed. Invoke(stub ChaincodeStubInterface) pb.Response } 方法执行。现在,在chaincode安装/实例化过程中,将计算出chaincode的哈希值,并将其保留在绑定到chaincode的生命周期命名空间中。因此,如果另一个对等方将使用不同的二进制代码并尝试使用它,则对等方将无法执行它。