【问题标题】:Where do smart contracts reside in blockchain (Ethereum or Hyperledger)智能合约在区块链中的位置(以太坊或超级账本)
【发布时间】:2017-06-24 04:28:17
【问题描述】:

因此,让我们考虑一个典型的贸易融资流程。出口商部署一个具有装运条件的合约,并在部署完成后生成一个哈希值。

问题:

1) 合约存储在哪里?
2) 海关和进口商等其他参与者如何访问此合同?
3) 我们可以在区块链上激活参与者级别的合约访问权限吗?

【问题讨论】:

  • 如果您可以发布单独的问题而不是将您的问题合并为一个问题,则最好。这样,它可以帮助人们回答您的问题,也可以帮助其他人至少寻找您的一个问题。谢谢!

标签: storage blockchain hyperledger ethereum contract


【解决方案1】:

以太坊和 Hyperledger 有几个方面使它们完全不同。让我给出一个稍微简化的答案,以免涉及太多细节和太长的答案。

首先,以太坊主要是一个以特定方式工作的公共区块链。同样,比特币区块链以某种预期的方式工作。 Hyperledger 不是那样的,它是分布式账本技术(在我的术语中与区块链不同)的保护伞,所有这些都旨在提供一个非常灵活的架构,以便人们可以构建具有几乎任何属性的各种账本支持的系统需要。可以将其与想象中的比特币保护伞进行比较,该保护伞提供技术来生产具有可插拔部件的自己的山寨币,例如共识、区块链存储、节点组成等。总之,所有这些都是为了解决不同的问题,不能认为一个可以一概而论。

回到您的问题。

1) 合约存储在哪里?

以太坊在链上拥有合约(称为智能合约),即代码被编译为字节码,生成的字节在交易中发送,以持久保存到以太坊区块链上。这在您部署智能合约时完成一次。这之后可以与智能合约进行其他交易交互。

理论上,Hyperledger 没有对此进行定义,它可能在分类帐上,也可能不在。以 Fabric 为例,它将代码部署到沙盒 Docker 容器中,然后可以使用事务进行交互。

2) 海关和进口商等其他参与者如何访问此合同?

简短的回答是他们通过凭据获得访问权限。

这在以太坊和 Hyperledger 中都开放供您自己决定。我们现在假设这两种情况下的代码都已部署为以太坊区块链上的代码和 Fabric 中的 Docker 容器。

在以太坊中,代码有点简化,可公开访问/可见,这意味着您需要使用某种检查来只允许那些应该能够与智能合约交互的人这样做。一种方法是检查(交易的)发件人并只允许某些发件人。它类似于传统系统,通常需要验证/授权才能被允许进入和查看/更改数据。

在 Hyperledger 中,它很可能以类似的方式建模,例如在 Fabric 中,还有证书颁发机构颁发证书,允许访问系统的不同部分。例如。运输、背书或交易。

3) 我们可以在区块链上激活参与者级别的合约访问权限吗?

是的,所以两个系统中的每个参与者都有凭据,智能合约的设计者可以使用它来控制访问。

另外,在 Fabric 中,还有一些通道可以划分用于访问控制的分类帐。

HTH。

【讨论】:

    【解决方案2】:

    1) 合约驻留在账本上。每当调用交易时,合约中的相应方法都会在所有验证节点上执行。

    2) 其他参与者可以使用他们预定义的用户凭据访问此合约,他们可以使用这些凭据来注册自己并调用合约上的交易。

    3) 是的,我们可以通过为每个用户定义属性并只允许具有某些属性的用户访问合约的特定部分来激活合约的参与者级别访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2021-06-29
      • 2022-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      相关资源
      最近更新 更多