侧链、闪电网络、RSK、DAG、分片究竟是什么

转载
2467 天前
13269

如果你经常浏览区块链相关的信息,你一定知道比特币交易开始变得拥堵,在社区中对于是扩容还是侧链的讨论喋喋不休。你肯定也知道就连以太坊也因《CryptoKitties》这款养猫游戏没能逃掉网络拥堵的命运。

摆在我们面前的,是区块链技术发展到现在终会遇到的一个关键瓶颈——区块链(特别是公链)想要真正做到更深度化的应用和普及,关键就是要解决交易的吞吐量和交易的速度问题,这在区块链中也被称作“可扩展性”。

幸运的是大多数团队都很有预见性的提出了相应的解决方案,并已开始付诸实施,只不过作为一名非区块链技术领域的萌新小白,在面对侧链、闪电网络、RSK、DAG、分片(Sharing)时经常会搞得一头雾水,不知道是什么意思,更不知道它们之间是一个什么样的关系——猫叔今天简单做了一个梳理,希望大家至少可以从宏观上比较清楚的了解对于区块链可扩展性上的问题,各团队是在如何解决。

如前边提到,区块链可扩展性的核心是为了解决交易的吞吐量和交易的速度两个方面,核心指标通常用TPS(transaction per second)来表达,即每秒执行的事务数量。比如比特币TPS是7,以太坊TPS是30-40等。

从现有技术实现的角度来说,基本分为三种,分别是侧链、分片、DAG,但因一些实现的技术角度和细节不同,各团队给出的命名也不一样。我给出下面这张图你可能就会有一个比较清晰的概念了:

区块链可扩展性解决方案


1.侧链

侧链(SideChains)因为最早是这对比特币提出,所以这个概念后期也更多的是在描述比特币相关的扩容,它的定义是:可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。

我们以闪电网络(Lighting Network)为例:它指的是A和B两人可以把比特币放到一个多重签名钱包中锁定(链下),然后进行交易签名更改双方各自能取回的比特币数量。交易参与方可以随时关闭交易通道,最后一笔经过签名且包含最新余额动态的交易最终将会被广播并写入比特币区块链(回归链上)。

另一种情况是涉及更多的第三方,比如已知C想和A交易,但双方没有建立支付通道,不过A和B、B和C都各自建立了支付通道,这时C就可以通过B和A达成交易,B其实在整个交易过程中充当着一个网关的角色。整个过程实际上不需要在主链确认,因为都是几方之间倒来倒去的”数字游戏“,因此交易速度会非常迅速。只有当关闭交易通道时,才会最终确定各自的余额并写进主链区块。

RSK其实也是侧链的框架,你可以理解为闪电网络解决的是比特币支付问题,而RSK则是通过侧链为比特币创建了一套类似以太坊的图灵完备的智能合约平台。

2.分片

分片(Sharing)其实是一种传统数据库的技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分叫做数据碎片 (Vitalik Buterin称它为宇宙Universes) ,不过应用到区块链当中会相当复杂。

以太坊的分片,简单来说就是将区块链网络划分成若干能够处理交易的较小组件式网络,以实现每秒处理数千笔交易的支付系统。

“设置一个区块链,在这个区块链系统中有一百个各自不同的宇宙,每一个宇宙都是一个独立的账户空间。使用者可以在某个宇宙中拥有一个账户,该用户发起的交易也只会对交易相关的宇宙产生影响。”

——Vitalik Buterin在BeyondBlock区块链技术交流大会的演讲

是否似曾相识?听上去是不是和侧链很像?

是的,如果说侧链是通过“外部嫁接”到主链,那分片就是将主链进行“内部分割”,显然后者的实现难度要比前者复杂的多!也因此很多人都认为V神把事情复杂了……其具体为何要如此实现V神自有他的道理,不在本文讨论,但基本可以确定的是,即使是分片,也会为效率牺牲一定程度的“去中心化”。顺带一提,EOS也有分片,叫Region。

3.DAG

DAG 是有向无环图(Directed Acyclic Graph)的缩写,这是一种有顶点和边的图结构。它可以保证从一个顶点沿着若干边前进(有向),但永远不能回到原点(无环)。

在IOTA这个项目中,提到的Tangle(缠结)就属于DAG的一种数据结构,真正意义上讲,IOTA已不属于“区块链”,你可以理解为如果比特币、以太坊使用的是底层数据结构是BlockChain,而IOTA的底层数据结构则是DAG,但它依然属于“去中心化”的范畴。


在 IOTA 里发起一笔交易的流程如下:

你需要先找到网络里的两笔交易,验证它们的合法性,然后做微量的POW计算,把自己的交易与它们绑定,再广播到网络。你的交易会被后来的交易以相同的方式验证。

如果验证你交易的其他交易越多,则你的交易的确定性越高。当达到一个临界值时,就认为这个交易被确定了,这和比特币6个区块确定交易状态的思想一致。简单来说,IOTA是把算力作为交易的一部分。只要你想加入这个网络,那必须先成为Mini版矿工,做出微量的POW贡献,也因此它是去中心化的。

DAG的优势可以做到高并发,理论上是无限多的并发,意味着它可以大幅提升交易速度。

以上就是关于可扩展性相关技术的一些简单概括和介绍,实际应用的技术细节和命名方式可能会有很多,但从目前来看,大体都脱离不了侧链、分片、DAG三类的范畴。

从目前来看,无论何种技术的解决方式都是在从“更高的效率”和“去中心化”二者之间寻找一个平衡,想要效率就要中心化,想要安全就要去中心化,也因此,现有解决方案也都在引发一些“不是去中心化”的质疑声。

其中争论最激烈的就是比特币Core派和BCH派之间,Core派的解决方案是侧链,BCH就抨击侧链最终会沦为中心化的银行。BCH的解决方案是大区块,Core派就抨击BCH本身就是以矿霸为核心的中心化代表。

猫叔认为有争论,就意味着本身就还没有唯一的答案。这反而证明了我们正处于一个区块链刚刚起步发展的黄金时代,也是区块链现阶段的魅力所在,百家争鸣、各抒己见……投身此间,我倍感庆幸。

参考资料:

[1] Vitalik Buterin 《Sharding doc》

[2] Preethi Kasireddy《Fundamental challenges with public blockchains》

[3] IOTA WhitePaper