解读Layer 1 Sharding (分片) 的利与弊

近日,几位来自社区的小伙伴和IoTeX联合创始人Raullen、商务负责人Larry在社区论坛里深度探讨了Layer 1分片的利与弊,观点新颖且深入浅出,非常具有参考价值,特此翻译出来分享给社区的小伙伴。

No_One (IoTeX社区成员):

很多业内人士不认可Layer 1 Sharding,认为这种方式无法带来真正可信且安全的可延展性。我不是研究分片的专家,但是基于我对分片的了解,我对此观点持反对意见。

我仔细观察过一些使用Layer Sharding的区块链项目,得出以下结论:

  1. 我对Seele (元一) 项目进行了大量的测试。Seele目前有4个Sharding。从交易处理的角度来看,Sharding内部以及不同Sharding之间的可靠性给我留下了深刻的印象。不论我在哪一个Sharding发送和接收交易,所有的交易都会被安全的执行。当我支付更多的交易费用时,交易执行的速度会更快。

  2. 如果我们从智能合约的角度来探讨规模,就能看到Seele的弱点;目前,Seele无法在网络中不同的Sharding之间使用智能合约。这就说明,可延展性确实会受到限制。但是,同样是使用Sharding技术,MultiVac宣称可以在不同Sharding之间使用智能合约。在MultiVac发布他们的测试网3.0之后,我会去测试这一功能,现在我暂且相信其可行性。

  3. 由于Seele是一个Layer 1 Sharding的平台,所以它的安全性应该不会受到限制或影响。理论上来说,安全性应该会更好,因为攻击者需要接管多个Sharding来控制网络,而这似乎比无Sharding网络的51%攻击更加困难。

简单的抛砖引玉,希望大家可以分享不同的想法。

Larry Pang (IoTeX商务负责人):

感谢你提出了这么一个非常有意义的话题。在我看来,Sharding更侧重于可用性和实用性,而不是理论。短期内,Sharding不会像其他可延展性方案那样有前途。目前,关于可延展性的讨论主要分成两个阵营——链上(例如Sharding)和链外(例如状态通道、侧链)。你可以通过这篇文章详细了解链外的可延展性: Difference between SideChains and State Channels | HackerNoon

IoTeX网络所看重的功能,比如即时确定性,是很难通过Sharding或其他链上延展技术来实现的。但就像你所说的,链上和链外的延展性都取得了很大的进展。从长远来看,我相信链上和链外的可延展性可以协同工作,但目前更实际和可靠的方法仍然是通过链外提高延展性。

Raullen、Qevan,可以分享下你们的观点么?

JoeGoodman (IoTeX社区成员):

目前区块链的成功是基于低处理速度、高安全的平衡系统以及去中心化的特征。因此,区块链的主要用途是价值储存、跨境支付和投资交易。

未来,基于去中心化和安全性的区块链技术将会建立一个新的价值网络,改变用户交互的方式。目前,我们仍需要强大的可延展性,逐步让区块链技术走进千家万户。

IoTeX为区块链所面临的困境带来了一个可行的解决方案:一个先进治理架构的多链解决方案,具备强大的可延展性和极高的安全性。一环一环,或者说一个链一个链地增长。同时,这个方案也有着很强的“包容性”——越来越多的用户和团体作为新的链加入IoTeX网络。这一概念需要时间来实现,但潜力不可限量。

对我来说,关于技术的讨论才刚刚开始,但我敢打赌,下一个赢家将是那些在实际用例上实现真正增长的平衡型解决方案,不论他们采取哪一种方法来解决可延展性的问题。

  1. 我没有使用“性能”或“Sharding”,而是使用“可延展性”。性能和Sharding只是技术手段,人们需要的是应用于真正实用案例的可延展性。
  2. IoTeX还具备强大的“隐私保护”功能和“面向物联网”的特性。

Raullen (IoTeX联合创始人)
这些可以归结为你如何看待区块链,你是把它看作一个分布式系统/基础设施,还是当成一个独一无二的整体状态机。当然,真正的答案应该是二者的混合。

许多人把区块链当成一个分布式系统/基础设施,并将很多分布式系统领域中有价值的理论/技术应用在区块链上,Sharding就是一个很好的例子。Sharding起源于数据库,几乎所有市面上知名的数据库(例如cassandra、gfs)都使用了Sharding。当然这是一个非常棒的技术,是计算机科学中“分而治之”思想的典型应用。Sharding可以提高区块链的交易处理速度,带来更高的吞吐量,甚至是更好的用户体验。缺点则是其实现的复杂性。顺便说一句,由于区块链的去中心化特征,FLP和CAP的理论是适用的,也就是V神所说的“不可能三角”。

有些人认为区块链更像是一个独一无二的整体状态机,保存着这个世界、这一代人最有价值的信息。从这个角度来说,区块链的防篡改(安全性)、反审查(去中心化)的特性展示了公链的真正价值主张,而这两个特性是那些兼具高性能和实用性的数据库、分布式文件系统所不能满足的。

IoTeX不是一个简单的分布式基础设施,而是一个真正的公链。我们认为安全性和去中心化远比可延展性重要,只有当layer 1可靠地、持续地提供安全性和去中心化特征时,可延展性才会发挥作用。此外,可延展性可以通过多种方式来实现:

链上——基础层次结构,和layer 1一起运行的多侧链架构
链外——具备或不具备rollup的ZKP,状态通道,plasma (只对UTXO有效)

从技术的角度来看,Sharding本身也极具挑战性:

  1. 增加系统的复杂性:实现Sharding架构是一项复杂的任务。如果处理不当,Sharding的过程可能会破坏整个网络状态,造成严重的后果。

  2. 重新平衡数据并不是一件简单的事:当一个Sharding超过其他Sharding并变得不平衡时 (也称为热点),Sharding所带来的优势将荡然无存。分类帐需要重新Sharding以使数据分布恢复平衡。将数据从一个Sharding转移到另一个Sharding需要处理协议层面的复杂问题 (可能会影响安全性) 和宕机时间 (可能会影响去中心化特征)。

即使在Ethereum 2.0中,State sharding在很大程度上也是一个悬而未决的问题,目前它还处于研究阶段,不能用于实际案例。

总的来说,我的观点是:“Sharding技术不适用于layer 1”。

No_One (IoTeX社区成员):

感谢Raullen和我们分享这些非常有意义的观点,尤其是Sharding在技术层面所面临的挑战,侧链应该是layer 1和链上的最佳选择。

英文原贴,请见:Layer 1 Sharding - Pros vs Cons - #5 by No_One

2 Likes