美文网首页
SmartContracts

SmartContracts

作者: d24b5d9a8312 | 来源:发表于2019-03-03 00:55 被阅读0次

发自简书
一个智能合约,或者Fabric称之为“链码”的,可以作为一个受信任的分布式应用程序,从区块链中获得其安全性/信任以及同行之间的基本共识。 它是区块链应用程序的业务逻辑。

有三个关键点适用于智能合约,尤其是应用于平台时:

许多智能合约在网络中同时运行,
它们可以动态部署(在很多情况下是任何人),以及
应用程序代码应视为不受信任,甚至可能是恶意的。

大多数现有的具有智能合约能力的区块链平台遵循订单执行架构,其中共识协议:

验证和订单事务然后将它们传播到所有对等节点,然后,每个对等体按顺序执行事务。

几乎所有现有的区块链系统都可以找到订单执行架构,范围从公共/无权平台,如以太坊(基于PoW的共识)到许可平台,如Tendermint,Chain和Quorum。

在区块链中执行的与订单执行架构一起运行的智能合约必须是确定性的; 否则,可能永远不会达成共识。为了解决非确定性问题,许多平台要求智能合约以非标准或特定于域的语言(例如Solidity)编写,以便可以消除非确定性操作。这阻碍了广泛采用,因为它要求开发人员编写智能合同以学习新语言并可能导致编程错误。

此外,由于所有节点都顺序执行所有事务,因此性能和规模有限。 智能合约代码在系统中的每个节点上执行的事实要求采取复杂措施来保护整个系统免受潜在恶意合同的影响,以确保整个系统的弹性。

Fabric为我们称为execute-order-validate的事务引入了一种新的体系结构。 它通过将事务流分为三个步骤来解决订单执行模型面临的弹性,灵活性,可伸缩性,性能和机密性挑战:

执行一个事务并检查其正确性,从而认可它,通过(可插入的)共识协议来订购交易,以及在将提交到分类帐之前,针对特定于应用程序的认可策略验证事务。

这种设计与订单执行范例完全不同,因为Fabric在达成订单的最终协议之前执行交易。

在Fabric中,特定于应用程序的认可策略指定哪些对等节点或多少对等节点需要保证正确执行给定的智能合约。因此,每个事务只需要由满足事务的认可策略所必需的对等节点的子集来执行(认可)。这允许并行执行,从而提高系统的整体性能和规模。 第一阶段也消除了任何非确定性,因为在排序之前可以滤除不一致的结果。

因为我们已经消除了非确定性,所以Fabric是第一个可以使用标准编程语言的区块链技术。 在1.1.0版本中,智能合约可以用Go或Node.js编写,而有计划在后续版本中支持其他流行语言,包括Java。

相关文章

  • SmartContracts

    发自简书一个智能合约,或者Fabric称之为“链码”的,可以作为一个受信任的分布式应用程序,从区块链中获得其安全性...

网友评论

      本文标题:SmartContracts

      本文链接:https://www.haomeiwen.com/subject/kausuqtx.html