前言
在传统的区块链网络中,交易必须经由网络中的每个节点确认,节点间达成共识后才会将交易打包产生新的区块。这个做法最大的优点在于安全性,因为每一个节点都会记录完整的区块链帐本历史,试图攻击区块链网络的黑客很难偷偷地窜改数据而不被发现。
安全性和扩容的平衡仍较难取舍
然而高度的安全性是要付出代价的,节点之间必须频繁地沟通和交换信息,这会占据网络频宽和拖慢交易处理速度。为了防止单一节点的故障造成区块链网络停摆,需要有足够多的节点加入,以增加去中心化程度和分散风险。这些不同的取舍考量又被称作是“不可能三角”,意即无法兼顾区块链网络的扩容性、去中心化和安全性。
图来自 V 神博客
分片技术能有效扩容,同时兼顾安全性及去中心化
分片是一个可以提高区块链网络扩容性却又不必牺牲安全性和去中心化程度的解决方案。分片会将单一的区块链网络划分成多个较小的区块链,每一个小的区块链都分别管理各自的交易记录,唯有必要时才执行不同分片之间的数据交换。这可以让不同分片链的节点能够同步验证交易,每一个节点也只需要验证属于该分片的信息,而不必处理整个区块链网络的数据。
只要每个分片链上的节点数量够多,安全性和去中心化程度就不会受到威胁,因此分片技术的应用可以增加区块链网络的吞吐量,以满足逐渐增加的用户需求,以太坊在升级至 2.0 后也将通过分片来进一步提升其扩容性。
分片是什么?
分片是一种提升数据库存取效能的优化技术,将原始的数据库依照需求条件切割成多个分片,能够分散负载和用户流量,以提供更快的服务。由于区块链网络即为大型的分散式帐本和数据库,因此可以利用分片技术来改善扩容性。
比如,购物网站上有价格不一且数量庞大的商品,消费者在选择时又有不同的需求,有些人想要抢购折扣多且便宜的商品,部分人专买昂贵的高级品,在处理数量庞大的订购单时,就可以用商品价格范围做简单的分流,来加快核对人员处理的速度。
图来自 DigitalOcean
分片对数据进行分流,按不同需求处理以加快速度
若是没有将订购单数据切割的话(分片),每一位核对人员(节点)都需要确认所有的订单信息,这会耗用大量的时间执行重复的工作。把订购单数据切割成数个分片,就可以让不同的核对人员分别处理低价、平价和高价商品的订购单。
每一种类型的订购单都是完整订购单的一小部分,负责不同价格商品的核对人员可以同时作业互不影响,因此分片提供了并行作业的能力;而每一位核对人员都只需要检查部分的订购单,因此分片可以减轻节点的工作负担并加快验证速度。
经过分片技术处理过的数据库就像是一幅拼图画,画中的每一块拼图则代表一个分片。没有使用分片技术的区块链网络,每产生新区块时都要将整幅画重新画一遍(状态复制),然后再修改画中的一小部分(状态更新)。使用分片技术的区块链网络,在添加新的交易纪录时,只要找出整幅画中需要修改的那块拼图(分片),画一块新的拼图替换上去即可。
为什么需要分片?
链上应用更加多元,需求呈指数级增长
在任何系统中,一旦出现显著的用户规模增长,就会需要扩展以适应流量的增加。比如,有一款线上游戏受到玩家热烈的追捧,每天上线的人数从最初的十万增加到百万甚至千万,就需要开新的伺服器分流避免卡顿。现实生活中也可以见到类似的情形,每逢连续假期时,前往著名观光景点的道路就经常堵车,平时只需两小时可以抵达的地点,因为人流增加可能需要多花数倍的时间,解决的方法则是另辟替代道路,以有效舒缓交通的阻塞。
扩容方案瓶颈,尝试开辟“替代道路”
区块链网络的发展也遇到了扩容性的瓶颈,在只有 10 个节点的 P2P 区块链网络中,经过 109 次的节点间沟通就能完成所有的数据交换,然而当节点的数量增加到 100 个时,若没有算法上的优化,需要经过 10099 次的结点间沟通才能完成所有的数据交换。随着区块链网络规模的扩大,每次交易所花费的时间和计算量将以指数的方式增长。
N 个节点的 P2P 区块链网络,每个节点都和其他 N-1 个节点进行数据交换,花费的时间和计算量将随区块链网络的扩大而指数增长。
比特及以太坊虽为主流,但机制仍偏老旧
当前市值最大的比特币和升级前的以太坊都是低速的区块链网络,比特币每秒大约可以处理 7 笔交易,而以太坊每秒可以处理 15 笔交易,早就已经无法满足大量使用者的需求,与信用卡公司 VISA 每秒可以应付高达 24000 笔交易的中心化系统相比更是相形见绌。速度慢除了造成网络拥挤外也会增加交易成本,用户需要支付更高的手续费才能确保自己的交易被优先执行,这使得用户的体验变得更差。
图来自 Etherscan
采用分片技术的区块链网络中,每一个节点不再需要拥有完整的区块链交易历史,只需要保留与所属分片相关的信息,因此分片可以降低架设节点的成本与参与门槛。分片也能协助区块链网络变得更去中心化,不使用分片的话,运行节点所需的硬件设备规格会越来越高,最后只剩下经济条件优渥的参与者能够存活下来。分片将有望使普通的计算机、笔记本电脑、甚至是智慧型手机都成为参与区块链网络的节点,这对区块链网络和去中心化应用程序的大众化普及将有极大的帮助。
以太坊 2.0 的分片运作方式
以太坊主网升级至 2.0 后,将从工作量证明(PoW)转换至权益证明(PoS)的共识机制,原先的以太坊主网则合并至信标链(Beacon Chain)。参与以太坊区块链网络的节点不再需要提供庞大的 CPU 算力才能在链上创建新区块以获得奖励,取而代之的是将持有的以太币质押在智能合约中成为验证人,以取得提交新区块时获取交易手续费的权利。
以太坊 2.0 的分片设计架构是使用 64 条分片链来提升扩容性,其中 1 条称作信标链, 在分片的运作过程中扮演着核心角色,负责协调不同分片间的同步作业与不同分片之间的信息共享,所有参与以太坊 2.0 的网络节点也都会将以太币质押在分片链上,遵从分片链的指挥去处理不同分片上的交易,分片链上的区块只有在信标链批准后才有效。
图来自 Hsiao-wei Wang
分片技术将待处理交易数据进行分流验证
以太坊 2.0 采用分片以后,随机取样算法会将节点乱数分配至各个分片中去验证交易数据,以投票表决的方式确定分片链上的交易排序和有效性,并创建新的分片区块信息添加回信标链中。新的区块若要得到分片链上节点的承认,必须要获得该分片链上超过三分之二的网络节点同意才行。
如下图所示,在一序列的验证人节点集合中赋予每一个节点编号(像是 1~100),随机取样算法会将节点的排列顺序打散,产生没有固定编排顺序的验证人节点集合,可以指定打散后的前 1~10 个节点成为第一委员会,负责处理第一条分片链上的交易,第 11~20 个节点成为第二委员会,负责处理第二条分片链上的交易,其余以此类推。
图来自 V 神博客
验证人节点并不会被固定地指派处理某一个分片链上的交易,每经过一段时间随机取样算法会重新打散节点的排列顺序,因此负责每一个分片链交易的委员会成员不是固定的,这可以避免特定节点长期验证某一个分片链交易所产生的中心化风险,委员会成员的随机性也增加了攻击分片链的难度。
由于分片将使得升级后的以太坊网络吞吐量大增,要让所有节点都同步更新不同分片链上的完整交易数据就变得不可行,因此信息的共享是通过定序头(Collation Header)达成。定序头类似于工作量证明共识机制中的区块头,它包含关于定序的信息和元数据,包括:
- 该定序所属之分片
- 父定序的元哈希码
- 该定序中所有交易的杂凑验证解
- 该定序前和定序后的状态
- 签署该定序的验证节点
图来自 Hackernoon
定序头会提供节点充足的信息作业,只有在必要的情况下才会根据定序头的索引去下载完整的交易记录。
分片的优缺点
替代道路出现,有效分流使用需求,扩容性显著提升
传统的区块链技术要求每一个网络中的节点都必须验证每一笔交易,这就像是 100 万辆车都被迫使用同一条道路从 A 城市移动到 B 城市,路程必定是拥挤和缓慢的。分片将链上的交易数据切割,每一个节点都只需要处理一部分的交易信息,就如同在区块链上开辟了多条高速公路分散流量,用户可以更快地完成交易。
图来自 Genesis Block
减少网络拥塞,并降低使用区块链网络的支出
在升级前的以太坊中,矿工节点是依照使用者愿意支付的手续费高低来打包交易,手续费越高的交易会越快被处理,手续费越低的则延后处理。这造成了病态的手续费竞价现象,用户为了确保自己的交易能够顺利完成,有时必须支付超过 50 美元的手续费用。分片使得区块链网络可以更顺畅地运作,也降低了手续费竞价的必要性,若某一分片出现拥塞状况,使用者可以选择通过另一个分片来完成交易。
运行区块链网络节点的门槛下降,提升去中心化程度和网络安全性
由于每一个节点在同一时间只需要处理一个分片上的信息,不必获取完整区块链网络的数据,架设节点所需的硬件规格变得更低。用户可以用较便宜的设备作为节点,协助验证交易信息和赚取收益,门槛下降也有助于区块链网络的去中心化和普及,以太坊 2.0 的目标是让个人的智慧型手机即可运行以太坊的客户端程序。去中心化附带的好处是提升网络安全性,因为节点越多越分散,攻击区块链网络的难度就越高。
尽管分片的技术承诺了许多优点,但它也引入了一系列的新问题:
1% 攻击的可能性
在区块链领域中,有一种称作 51% 攻击的入侵手法,意思是当攻击者获得了 51% 的节点算力后,就拥有任意窜改交易数据和掌控整个区块链网络的能力。在市值较大的区块链网络如比特币和升级前的以太坊中,发动 51% 攻击的门槛太高,使得通过掌握算力来攻击网络的做法不可行。
然而采用分片后,执行每个分片的节点数量会大幅减少,恶意的攻击者要入侵会变得更加容易。黑客并不需要攻击整个区块链网络才能获利,只要成功地攻击其中一个分片伪造交易信息即可。比如一个包含 1000 个具有相同算力节点的区块链网络,黑客需要控制超过 500 个节点才能对全网发动攻击,然而若这 1000 个节点被分配至 100 个分片中,黑客只需要控制其中一个分片中超过 5 个节点就能窜改数据。
图来自 Genesis Block
智能合约安全漏洞的风险会增加
应用分片的技术需要重新改写区块链网络帐本的数据结构和底层代码逻辑,复杂度的上升将使程序的更新维护变得更困难,智能合约可能会出现安全漏洞与风险,执行程序也可能发生预期外的错误情形。
委员会成员的勾结串通
虽然分片使用随机取样算法去避免相同的节点被分配至固定的分片链去验证交易,但经过足够长的时间,仍然有可能出现重复的相同节点组合共同验证交易的状况,验证分片链的委员会成员可以互相串通,向主链提交恶意的交易信息。
负载不平衡
通过分片方式来提升网络运作效能的前提在于“分片”成功地产生“分流”的效果。假如一个区块链网络在经过 100 个分片优化后,所有使用者仍然都聚集使用特定的某一分片链,那分片对于扩容性的提升就没有太多帮助。这也是以太坊 2.0 升级后可能出现的问题,因为初期的规划并没有赋予每一个分片链执行智能合约运算的功能。
更复杂的区块链浏览器
分片虽然可以提升区块链网络的扩容性,但这是通过在整体区块链网络中添加更多的算法和数据实现的,区块链浏览器需要更强大的效能和处理能力才能有效检索区块链上的信息。
使用分片技术的区块链还有哪些?
Elrond:
Elrond 是旨在提升扩展性、速度和安全性而构建的去中心化公共区块链,并以三个关键技术来达到目标,包含区块链扩展技术的自适应状态分片、确定选择验证者以提高验证速度的安全权益证明(SPoS)以及支持多种编程语言与以太坊 VM 兼容的埃尔隆德虚拟机。
其中 Elrond 独创自适应状态分片技术,结合三种分片形式:
- 网络分片:管理节点分组到分片中,所有分片同时处理不同交易来加速验证环节。
- 交易分片:每个分片按照一定的验证处理程序可同时并行运作。
- 状态分片:将全部帐本储存在各个分片,各分片仅维护各自的帐本信息。
目前可达到 15,000 TPS(一秒的处理笔数),手续费亦低至 0.001 美元,相较以太坊,较低的费用和较高的吞吐量是其优势。
Near:
Near 是一个基于全状态分片、简化开发程序并使用权益证明机制的区块公链,协议目标在于将去中心化应用程序开发提高可扩展性,并意在将困难的区块链技术降低门槛让任何人都可以轻松参与。其采用 Nightshade 算法的 Doomslug 共识机制可轻易扩展至 100,000 TPS 。不同于其他分片公链,Near 的技术架构并不是像信标链由一个链和多个分片链组成,而是分成各个单独的区块,并在区块之间执行分片,每个区块包含全部分片的所有交易,并切分分片状态,验证者被随机分配仅验证该交易的分片相对应状态,以此提高分片的安全性。
Zilliqa:
Zilliqa 是相当早期的区块链,发起 Zilliqa 的目的在于以分片技术来解决当时区块链扩展性差的问题,采用网络分片和交易分片,并使用工作量证明 PoW 和简化复杂度的拜占庭容错共识算法(PBFT)以加快分片内达成共识,因此节点数即使大于 600 也可以快速运行。而不断地扩充致使 Zilliqa 从 2400 TPS 来到 3600 TPS 或更高。
Harmony:
Harmony 是基于状态分片的区块公链,其分片结构由一条信标链与多条分片链建构而成,并在分片里使用拜占庭容错算法(FBFT)以达到深度优化的共识,与通过 BLS 多重签名将多个签名聚合成一个签名,以提高速度。而在分片公链中, 1% 算力即可进行双花攻击,因此 Harmony 使用 EPoS (Effective Proof-of-Stake)有效抵押机制和安全的随机分片技术 (Random Sharding),把大规模抵押的代币分散再随机配置到多个分片里,以降低被攻击风险,提高分片的安全性。亦通过 Kademlia 跨片路由技术来掌握跨片间通信的网络开销,与具备恢复数据功能的纠删码(Erasure Code)技术来优化区块广播过程以执行高效率的横向分片扩展。
总结
由于加密货币使用人口的快速增长和大量去中心化应用程序的出现,一些较传统的区块链网络技术已渐渐变得不堪使用,无法满足日益增加的市场需求,如何在不牺牲去中心化和安全性的前提下去提升区块链网络的扩容性变成了当前区块链产业发展所要面对的一大课题。
分片切割数据,有效分流链上使用需求,提升存取效能
分片是一种提升数据库存取效能的优化技术,通过将区块链上的交易数据切割,由不同节点进行同步处理,就能够达到分散流量且提升速度的效果。尽管分片的技术难度较高,但倘若得以成功实现,其潜在效益相当巨大,是一个备受期待的 Layer 1 扩容方案。目前已经有一些区块链协议应用了分片技术,在即将升级的以太坊 2.0 中,也将利用分片的方式去大幅提升网络效能。
新技术工程难度极高,实际上线前还有许多挑战,但终将克服不可能三角
然而分片也并非毫无缺点,除了工程上的复杂度增加以外,可能会使区块链网络出现更多的漏洞和安全性风险,如何协调不同分片使其有效率地运作也是一门学问,许多开发人员都在持续相关的研究,期待分片技术能帮助区块链协议去挑战安全性、去中心化、和扩容性的“不可能三角”,让各项区块链应用和加密货币能够更进一步地迈向大众化普及。
作者:Piccolo 译者:yulei
文章审校:Hugo , Edward
本文仅代表作者观点,不构成任何交易建议。
本文内容为原创,版权为Gate.io所有,如需转载请注明作者和出处,否则将追究法律责任。