. 01 .
分片是什么
1.1 分片解决区块链的扩容问题
目前区块链的扩容方案主要分为三个不同的Layer.分片和DAG (有向无环图)同属对区块链本身架构进行改变的Layer 1。分片目前被关注的热度很高,主打分片技术的公链被投资机构热捧, 分片也和Layer 2的侧链、子链、状态通道等方向一起被列入以太坊官方的扩容方案。
1.2 分片的原理
分片其实是一种传统数据库技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分叫做数据碎片。
在公链中,它是通过使用多个网络设备来获得平行处理转账的功能,从而分散那些转账验证的工作量。这样会自动地把网络分成很多更小的部分,或者说进行“分片”处理,从而每一个小网络只需要运行一个更小范围的共识协议。网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。
因此,每个节点只需处理一小部分传入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。
所以,分片技术使用的是平行处理的方式,有越多的节点加入,网络中批准的速度也会加快。简单来说,分片的就是将一个大任务拆分为多个可以并行处理的小任务,从而提升性能。
图中,我们把以太坊的网络分为两部分,左边一部分L1为现有的以太坊主链,右边一部分L2为各个分片,他们各自是一个独立的账户空间。每个分片有专门的节点来维护,就相当于一个个独立的区块链,每个分片将自己的记录汇总发给主链。主链收集各个分片的摘要,然后生成主链区块(N+1)。但是主链收集的是摘要而不是具体的交易细节。
分片方案带来的主要好处是,网络节点进行的冗余计算量大大减少,每个节点只需对自己分片内的交易进行验证,不需要验证分片外的交易。如此可节约大量的时间与网络资源,进而完成更多的交易的处理。
. 02 .
区块链与分片技术
2.1 分片技术的层级
目前主流的分片技术分为网络分片、交易分片和状态分片等三个层级,其技术难度也随之依次递增。主要的核心在于分片内节点需要达到一致,并且防止被恶意攻击者控制,而分片之间需要信息传递机制,保证交易及智能合约的状态在不同分片间达到一致。
1.网络分片
利用随机性,网络可以用VRF方法随机抽取节点形成分片,用以防止恶意节点占据某个分片。分片内节点之间的共识可以通过pBFT等共识机制来实现。
2.交易分片
1)账本分片:在一个基于UTXO的系统内,系统可以根据发送者的地址分配一个分片。这确保了两笔双花交易将在相同的分片中得到验证,因此系统可以很容易地检测到双花交易,而不需要进行任何跨片的通信。
2)跨账本分片:在一个非UTXO的系统里,为了防止双花问题,在验证过程中,分片间将不得不进行相互通信。事实上,由于双花交易可能会在任何分片中出现,因此特定分片所接收到的交易将不得不与其它的所有分片进行通信。这种相互之间的高昂通信成本可能会破坏交易分片的最初目的。
3.状态分片
这一技术的关键是将整个存储区分开,让不同的碎片存储不同的部分;每个节点只负责托管自己的分片数据,而不是存储完整的区块链状态。状态分片一经提出,就伴随着挑战。
在一个状态分片的区块链中,一个特定的分片只会保留一部分状态。假设其中一个账户创建了一笔交易,它将支付另一个账户一笔钱。这笔交易将由第一个分片进行处理,一旦该笔交易被验证,关于第一个账户的新余额的信息就必须与它所在的分片进行共享。如果两个帐户由不同的分片进行处理,那么这可能需要进行频繁的跨片通信和状态交换。确保跨片通信不会超过状态分片的性能收益仍然是一个值得公开的研究问题。
状态分片的第二个挑战是数据的可用性。比如由于某种原因,一些特定的分片遭到了攻击而导致其脱机。由于分片并没有复制系统的全部状态,所以网络不能再验证那些依赖于脱机分片的交易。因此,在这样的情况下区块链基本上是无法使用的。
解决此问题的方法是维护存档或进行节点备份,这样就能帮助系统进行故障修复以及恢复那些不可用的数据。但是,这样就使得节点将不得不存储系统的整个状态,因此这还可能会引发一些中心化的风险。
任何分片机制需要确保分片在抵御攻击和失败时是具有弹性的;网络必须接受新的节点并以随机的方式将这些分配给不同的分片。然而,在状态分片的情况下,重新分配节点是非常棘手的。在一次重新调整网络的过程中,在同步完成前可能会出现导致使整个系统失效的问题。
为了防止系统的中断,我们必须对网络进行逐步调整,以确保每个分片在所有节点被清空前仍有足够多的旧节点。类似地,一旦一个新节点加入了一个分片中,系统就必须确保该节点有足够的时间与分片状态进行同步。
2.2 分片技术的进展
. 03 .
分片项目分析
3.1 分片项目一览
3.2 重点项目对比分析
. 04 .
分片项目的投资逻辑
4.1 技术上实现的可能性
分片的技术难度非常之大,尤其是状态分片尚未在计算机科学理论中得到很好的解决,因此只有世界顶尖的技术团队才有希望进行突破。
4.2 与其它扩容技术的结合
分片可以与DAG、状态通道等互补,各自发挥优势,实现系统整体扩容。
4.3 服务质量是否能达到商业级别
扩容性是否提高最终都需要经过市场的检验。目前大部分分片项目和应用离商业可用性还有很大距离,怎样解决分片项目之间不同区块之间的相互联系,如何制定合理的智能合约。如果能在这些方面设计出比较好的解决方案,即能成为这个行业里具有强竞争力的项目。
4.4 项目的创新性和严谨性
严谨性指的就是要有已发表的学术论文验证,在理论上能通过。如果没有严谨的论文来证明,系统最起码要有一千个节点以上的测试网络,代码也是公开的,这样才会比较有说服力。
. 05 .
分片技术的未来展望
5.1 技术优势
分片与以比特币、以太坊为代表的传统共识机制有本质的区别。对于分片技术来说,在实现了多方共识的同时解决了节点增加导致网络拥堵的问题。比如最近zillqa的一个测试实验显示,仅有3600个节点,6个分片的状态下,就达到了两千笔一秒的交易性能,如果把以太坊的现有矿工移植到Zilliqa来,那么Zilliqa的性能可以达到以太坊的1000倍以上。看似只是从串联到并联的简单跳跃,却给了区块链技术发展提供了更大的优化空间。
5.2 发展阻碍
由于分片技术的优势,越来越多的从业者开始关注和支持分片技术。这一方面推动了分片技术的优化同时也带来了一定的问题。
一方面,分片技术着眼于解决性能问题,而部分参与者却过于执着TPS的竞争,却忽视了其安全性的保证。
另一方面由于分片技术的大火,致使很多人盲目的参与到分片技术的创业之中,但是很多人没有搞清楚分片的治与分的平衡关系,很简单的认为分片的逻辑就是分,这种不严谨不仅会阻碍技术的发展,同时也会伤害到市场对技术的信心,甚至会产生更加严重的后果。
分片技术还处于初级阶段,而市场的浮躁也为技术的发展和落地带来了一定阻碍,技术完善与市场教育依然任重而道远。
. 06 .
附件
参考阅读
20160527 Rootstock发布测试网络 比特币迎来了智能合约
20170528 阿希(ASCH)系统,升级版的以太坊
20170708 Vitalik给R3提供的跨链技术报告
20180109 深度解析:区块链跨链技术
20180304 2018最顶级项目“RSK” 即将上线,热度最高,回报率惊人!
20180308 一站式开发区块链DAPP | Lisk
Vitalik Buterin 《Sharding doc》
Vitalik Buterin 《Chain Interoperaability》
链接:https://www.jianshu.com/p/d96e0597cbd4