敢问路在何方?

Wei
Wei
Sep 6, 2018 · 7 min read

比特币的成功教会世界如何在不需要信任第三方的情况下远距离转移价值,开启区块链 1.0时代。以太坊将区块链技术与智能合约结合,将区块链的应用场景外推、普及,开创区块链 2.0时代。

但是区块链技术,尤其是公链,想要真正落地,做成产业化,最关键就是要解决可扩展性的问题。目前主流的提高区块链可扩展性的手段有侧链(sidechain)、分片(sharding)和有向无环图(Directed Acyclic Graph,DAG)。本文将对这三者进行概述,希望能为大家思考区块链的未来提供思路。

01 为什么需要侧链、分片和DAG等技术?

想象一下:一条繁忙的公路,只有一个收费口会出现什么状况?

此种布局必然导致拥堵,因为所有人只能排队等待通过这唯一的收费口。

有没有什么解决办法呢?

增加辅路的数量,增加收费口的数目,换成地铁等都是值得尝试的办法。

目前的区块链,尤其是公链,便像这条繁忙的公路。侧链好比为此公路增加了多条辅路,分片好比增加此公路的收费口,而DAG好比将公路转化成地铁,这三者都是解决公路拥堵的方法。

02 什么是侧链?

侧链协议是可以让资产在比特币区块链和其他区块链之间实现互转的一种协议。而侧链是是遵守侧链协议的所有区块链的统称。

侧链通过“双向挂钩”的方式与主链相连,资产可以通过“双向挂钩”在主链和侧链之间以预订的速度进行互换。最早的一条区块链称为“主链”,其他链称“侧链”或者“子链”。

用户首先将他们主链上的token发送至一个输出地址,此后此部分token将被锁定,用户无法使用。传输完成,等待主链区块确认后,相同数目的token将在侧链中被释放,允许用户在侧链上使用。Token从侧链回归主链的情况,则恰好与此相反。

每条侧链对自己的安全负责。如果某条侧链缺乏足够的算力保护,它的确可能会被黑客入侵。但是由于每条侧链都是独立的,即使它被入侵或被破坏,损害将被局限于此条侧链,并且不会影响到主链。相反,如果主链遭到攻击,虽然侧链仍然可以运作,但主链和侧链间的“挂钩”机制将失去其价值。

目前知名的侧链项目有比特币的根链(RSK)。根链与比特币区块链有着双向互动的联系,并通过合并的挖矿奖励激励“矿工”。根链可以为比特币区块链增添智能合约,也可以提高比特币的支付速度。

借助侧链,我们可以实现不同数字货币间的相互转化。侧链为整个体系的运转增添了灵活性,允许开发者在将软件推上主链前,先在侧链上完成测试。如果安全性能得到验证,侧链技术的确是提升区块链可扩展性的可行之道。

03 什么是分片?

分片技术是一种基于数据库分片传统概念的扩容技术,它将数据库分割成多个碎片,并将这些碎片放置在不同的服务器上。在区块链网络中,分片指的是将网络中的区块分割成多个子区块链,子区块链中可以容纳交易数据,并最终重新组成区块。

Vitalik Buterin在BeyondBlock区块链技术交流大会上讲到:

“每个分片都像是个独立的宇宙,它具有自己的账户空间。使用者可以在某个宇宙中拥有一个账户,该用户发起的交易也只会对交易相关的宇宙产生影响。”

以以太坊的分片为例,简单地说,分片技术将区块链网络中的每个区块变为多个子区块链,子区块链中可以容纳若干(目前为100个)打包了交易数据的“校验块”,这些“校验块”最终组成在主链上的某个区块;因为这些“校验块”是整体作为区块存在的,所以其数据必定是全部由某个特定的矿工所打包生成,本质上和现有区块没有区别,所以不需要额外的网络确认。这样,每个区块的容量也随着扩大了100倍。

分片的确可以提升区块链的可扩展性,但却也降低了区块链的安全性。从数学上不难证明,将某个具有“恶意”节点的分布式网络分成若干份后,局部的安全性必然不如整体的安全性。如果分片中的节点数目过少,那么攻击者就会更容易控制它。在《A Secure Sharding Protocol For Open Blockchains(公有区块链的安全分片协议)》中,作者证明当每个分片的节点数量不低于600个时,安全性和效率才能够得到较好平衡。

现有的知名分片项目有Zilliqa。Zilliqa是一个高吞吐量的公链平台,已经在AWS EC2服务器上证明了2488tps的运行能力(6个分片,3600个节点),同时它也证明:链上节点越多,将具备越高的tps值。Zilliqa的分片含多个层面,包括网络分片、交易分片和计算分片(network sharding, transaction sharding, and computational sharding)。因为证明了分片技术的可行性,Zilliqa被CrushCrypto选为三月份的”Crusher of the month”项目。

目前,分片技术已被数学和实例证明能提高区块链的可扩展性,但仍存在如何更随机地创建分片、如何保证网络安全性以及不同分片间如何交互等问题。如果这些问题都能解决,分片技术必将在未来大放异彩。

04 什么是DAG?

DAG是一种使用拓扑排序的有向图形数据结构,常常用来解决与数据处理、调度、寻找最佳导航路线和数据压缩有关的问题。 在图论中,图分为有向图和无向图两大类,在无向图中进一步进行约束形成了DAG。

在中本聪的白皮书中,“区块”(block)和“链”(chain)这两个词一块出现。那时它只是叫作“a chain of blocks”,后来被人称作区块链(blockchain)。但事实上,“区块链”并不等于“分布式账本技术”(DLT),区块链只是DLT的一个类别。

最早在区块链中引入DAG概念作为共识算法是在2013年,bitcointalik.org由ID为avivz78的以色列希伯来大学学者提出,也就是GHOST协议,作为比特币的交易处理能力扩容解决方案。

第一个提出使用DAG的社区是NXT。由于区块链只有一条单链,打包出块无法并发执行。但如果将区块的链式结构,转变为DAG的网状拓扑结构,此问题便可得到解决。

以IOTA为例:

“IOTA是一种专为物联网设计的新式的交易结算和数据传输层,具有革命性意义。它以一种新型的分布式账本 — — Tangle — — 为基础,该分布式账本不仅克服了当前区块链设计技术的低效性,同时还在去中心化的点对点系统(即P2P系统)中引入了一种达成共识的新办法。”

IOTA网络由一个名为为 Tangle(缠结)的DAG组成。每笔交易代表一个区块,所有交易构成了IOTA的DAG结构。在IOTA中,每一个交易的确认并不需要全网节点验证,只需要引用过去的两笔交易记录Hash。当前的交易通过证明过去两条交易的合法性,间接地证明之前所有交易的合法性。

但需要指出的是,为了对全网交易进行审查(比如,防止双重支付),IOTA网络中引入了中心化的组件:Coordinator。Coordinator在方便审查交易记录的同时,也为网络带来安全隐患(中心化=不安全)。

DAG具有成为区块链 3.0的潜力,从图论拓扑模型宏观看,从线装进化到网状、从单点跃迁到并发写入,区块链的可扩展性能得到显著提升。

05 小结

综上所述,侧链、分片和DAG在理论上都是值得尝试的提高区块链可扩展性的办法。我相信,在可见的未来,三者会单独或者结合出现在各个区块链项目中,性能和安全性都可以得到检验。值得期待。

敢问路在何方?路在脚下。

微信公众号:知行门诊部
Wei

Wei

Read, think, write and execute. Wechat: pumcguowei.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade