高性能区块链拓展方法

总结当前区块链研究中用于提高区块链系统性能和可扩展性的方法。并详细说明侧链技术,以及通过以太坊构建侧链的方法

如今,性能过低是当前区块链技术面临的主要挑战之一。区块链的性能指标主要包括交易吞吐量和延时。比特币理论上每秒最多只能处理七笔交易,每十分钟出一个区块,相当于交易吞吐量为7,交易延时为10分钟,实际上,等待最终确认需要6个左右的区块,也就是说实际交易延时是1个小时。以太坊稍有提高,但也远远不能满足应用需求。从区块链技术来看,目前影响区块链性能因素主要包括广播通信、信息加解密、共识机制、交易验证机制等几个环节。目前提高区块链性能与扩展性已经提出几种方法,主要包括分片(Sharding)、离链计算(Off-chain computing)及侧链(Slidechain)、有向无环结构(DAG)等等,这些方式主要是通过将部分链上任务转到链下或其他链进行处理,或者将整个交易分为几个部分并分别处理,另一种思路是调整共识机制,采用新的可扩展的共识协议,从PoW到PoS再到DPoS和各种BFT类算法,共识机制不断创新,区块链平台性能也得到大幅提升,或者系统优化,通过优化系统 架构、代码结构、 数据存储效率、 网络发送效率等, 提高区块链性能。

  • 分片(Sharding)。分片技术是一种基于数据库分片传统概念的扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上。在公共区块链的情境中,网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。因此,每个节点只需处理一小部分传入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。因此,随着网络的增长,区块链处理越来越多的交易将成为可能。这种属性也称为水平扩容。

  • 有向无环结构(DAG)。DAG区块链技术没有区块概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG(有向无环图)。DAG的特点是把数据单元的写入操作异步化,大量的钱包客户端可以自主异步地把交易数据写入DAG,从而可以支持极大的并发量和极高的速度。

  • 离链计算/侧链。在主链之下进行交易,中间交 易不进入主链确认,待最后一 笔交易完成后回归到主链。

    • 什么是侧链?

      侧链本质上是一种跨区块链解决方案。通过这种解决方案,可以实现数字资产从第一个区块链到第二个区块链的转移,又可以在稍后的时间点从第二个区块链安全返回到第一个区块链。其中第一个区块链通常被称为主区块链或者主链,每二个区块链则被称为侧链。最初,主链通常指的是比特币区块链,而现在主链可以是任何区块链。侧链协议被设想为一种允许数字资产在主链与侧链之间进行转移的方式,其实现的技术基础是双向锚定(Two-way Peg),通过双向锚定技术,可以实现暂时的将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放,同样当等价的数字资产在侧链中被锁定的时候,主链的数字资产也可以被释放。双向锚定实现的最大难点是协议改造需兼容现有主链,也就是不能对现有主链的工作造成影响,其具体实现方式可以分为以下几类:单一托管模式、联盟模式、SPV模式、驱动链模式、混合模式。

以太坊构建侧链的方法

在以太坊上构建侧链,我们可以使用到Plasma。Plasma是一种处理链下交易的技术,需要依赖以太坊底层技术去对其安全性进行保障,它可以允许在以太坊主链上创建“子链”,同时这些“子链”也可以创建它们自己的“子链”。

任何人都可以在以太坊主链上创建个人化的 Plasma 智能合约,Plasma智能合约运行在根链(以太坊主网)之上,形成一个可靠的侧链链接网络连接到一个分层和树状结构的根链,强制执行区块链历史和 MapReducible 计算进入一系列的 merkle 证明。同时Plasma 链的一个关键属性是所谓的退出机制,它允许用户放弃子链,一旦出现任何问题时可以将资金提取到根链。所有在 Plasma 链上的交易完成都是依靠加密签章,不需要经过主链的共识,经过一段时间后才批次性的广播并写入主链中。因此大量在 Plasma 上的所有交易最后只会浓缩成少数比交易打包进主链中,大幅度降低区块链膨胀问题。

更加通俗的说明一下Plasma运作:

  • 首先,我们需要在以太坊主链创建一套智能合约,作为服务于我们Plasma子链的Root。Plasma Root包含了子链的基本状态交易规则,记录了子链状态的哈希值,并且让用户在以太坊主链和子链之间转移资产。
  • 然后,在将子链根植于主链上之后,子链就被创造出来了。这个子链拥有自己的共识算法,且独立于以太坊主链。然后,我们就可以依据自己的需求来使用了。

当然现在也有更加好的平台和工具,例如Loom Network,其被称为以太坊上的EOS,其核心产品是一款SDK - Loom SDK。Loom SDK会生成一个称为DApp链的产物(DApp链使用基于Plasma的中继来与以太坊之间来回转移资产),它是一个用以太坊作为基础层的第二层区块链,同时SDK允许开发者选择他们自己的共识算法和规则集。

参考文献