区块链开发笔记——提高区块链系统性能和可扩展性的方法,侧链技术

通过阅读相关论文(参考文献在备注里,包括但不限于参考文献)总结当前区块链研究中用于提高区块链系统性能和可扩展性的方法。并详细说明侧链技术,以及通过以太坊构建侧链的方法。

一.背景

当前区块链的性能十分低效,无论是比特币还是以太坊的处理事务的能力非常低效,在以太坊上存在着一个“三元驳论”,意思是说区块链领域不可能在同一时间、同一层面从去中心化、安全性和可扩展性三个方面做到提升。所以,在提高区块链系统性能和可扩展性方面,人们还在不停地进行探索。


二.扩容方法

目前在区块链的扩容方案里,可扩展性有四种方法:利用DAG数据结构、生成侧链、利用共识创新和分片技术。

1.DAG方法

DAG方法是利用了有向无环图的特点,在DAG这个网络里面,每一个这样的节点只是一笔交易,不是一个块的概念。后面的一笔交易通过一定的策略,会连到前面的多笔交易上面去,并且会对前面这样一个交易做一个验证。这样做的好处,就是它把这样一个原来同步的存储改成了异步,理论上来说是支持无限的扩展。TPS也可以无限的大,但是它有一个问题,就是如果有一个节点,后面没有人链接到他,相当于没有人验证他这一笔交易的有效性,就永远得不到确认。另外由于没有使用强一致性,尤其是智能合约运行的时候,它运行一段时间有可能会导致出现“双花”、不一致的现象,安全性并没有得到广泛的验证。另外在DAG里,每一笔交易之间的溯源,因为它的图复杂度极高,和区块链里单链的结构来比,它的复杂度极高。

2.共识创新

共识创新方面是通过改变共识算法来提高性能与扩展性,从PoW到PoS再到DPoS和各种BFT类算法,共识机制不断创新,区块链平台性能也得到大幅提升。这里,我查到了一个新的公链设计方案,共识算法采用了VRF+POS+BA*的算法。它的设计的思路是,比特币和以太坊里每一笔交易要全网广播、全网做验证,这里只是随机选出来一小部分节点,让一小部分节点去做出块的提名人、验证人和出块节点。共识的范围降到了几个节点之间,用一些算法保证节点选取的随机性,得到了一定的安全保证,所以说加快了交易的吞吐量。

3.分片技术

分片技术是指把分片用在区块链里面,通过一定的机制和方法,将整个区块链网络分成若干的共识组,每个共识组交易量之和,就是整个这条链的整体吞吐量。以太坊的分片,简单来说就是将区块链网络划分成若干能够处理交易的较小组件式网络,以实现每秒处理数千笔交易的支付系统。

4.侧链技术

什么是侧链技术?简单来讲,以比特币区块链作为主链(Parent chain),其他区块链作为侧链,二者通过双向挂钩(Two-way peg),可实现比特币从主链转移到侧链进行流通。即可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。
侧链可以是一个独立的区块链,有自己按需定制的账本、共识机制、交易类型、脚本和合约的支持等。侧链不能发行比特币,但可以通过支持与比特币区块链挂钩来引入和流通一定数量的比特币。当比特币在侧链流通时,主链上对应的比特币会被锁定,直到比特币从侧链回到主链。可以看到,侧链机制可将一些定制化或高频的交易放到比特币主链之外进行,实现了比特币区块链的扩展。侧链的核心原理在于能够冻结一条链上的资产,然后在另一条链上产生,可以通过多种方式来实现。


三.以太坊构建侧链

至于通过以太坊构建侧链,这里要用到论文所说的Plasma技术。Plasma 与其他侧链/链外技术的基本扩展概念都一样,交易节点在主链外有另行通道,在另行通道完成的交易不用每笔都需经过链上网路全节点共识,而是批次性的上传写入主链帐本中,因此可达到高并发。Plasma 为了确保运作侧链的节点有持续动力可自动自发的维持与主链链上的连接,将导入奖励机制让节点可被激励来建立自己的 Plasma 链。

任何人都可以在以太坊主链上创建个人化的 Plasma 智能合约,这些部署在以太坊主链上的 Plasma 智能合约就为 Plasma 的根链 root chain,这些 Plasma root chain 以树状的结构管理着 Plasma 的子链 child chain。Plasma 链上的交易都以哈希值的形式纪录在子链的区块头 (block head),广播交易纪录写为主链帐本时,主链会稽核从子链提交哈希区块头,当主链判定交易有诈欺嫌疑时,随时有权力将交易退回并惩罚区块的创建者。所有在 Plasma 链上的交易完成都是依靠加密签章,不需要经过主链的共识,经过一段时间后才批次性的广播并写入主链中。因此大量在 Plasma 上的所有交易最后只会浓缩成少数比交易打包进主链中,大幅度降低区块链膨胀问题。

你可能感兴趣的:(Blockchain)