分片(Sharding):以太坊区块链扩容加速解决方案
比特币(Bitcoin)和以太坊(Ethereum)区块链网络同样存在处理速度偏慢的问题。分片(Sharding)技术简单而言即是将网络挖矿运算程序,划分为小型的分片(shard),每个分片能够并行处理交易。分片= 速度!
区块链快速扩充能力(Scalability)
什么是分片区块链网络目前在大规模应用方面的樽颈,就是缺乏快速扩充容量的能力、而且大多数网络根据设计本身,都只能每秒处理数宗交易:比特币每秒只能处理5笔交易(transaction per second,TPS),以太坊则每秒只能处理大约12宗交易。相比现有的中心化(centralized)解决方案,例如支付领域的Visa、云端运算领域的AWS,区块链网络仍然缺乏竞争力。举例,随着区块链游戏《CryptoKitties》在2017年在数字货币社群流行,虽然游戏只有几千名用户,但已经大大降低了以太坊网络的运作速度,这对于使用以太坊区块链提供服务的公司来说是一大问题。
当前,维护比特币和以太坊网络的每部电脑,都在同一公共账簿(public ledger)上工作。换句话说,每个节点都必须处理每宗交易。将更多电脑或运算力添加到网络中,只能提升安全性、而不能提高交易处理效率。这涉及到所谓区块链「三难困境」(Blockchain Trilemma),即是目前没有一个区块链可以同时实现快速扩充(scalaibility)、安全性(security)和去中心化(decentralization)。
比特币和以太坊区块链网络,主要靠工作量证明(Proof-of-Work,PoW)机制,维持网络安全,交易由位于全球各地数十万部专门挖矿的电脑和设备共同处理。作为点对点(P2P)现金系统或所谓「世界电脑(World Computer)」,比特币和以太坊区块链,能够实现安全、去中心化的功效,但是这两大区块链不能迅速扩充容量。为了提高网络扩展的能力,许多解决方案已经提出。例如,Bitcoin Cash(比特币的分叉,BCH)增加区块的大小,让每个区块可以处理更多的交易;第二层(Layer-2)解决方案闪电网络(Lightning Network),则利用链下支付途径来减轻主链的运算负担。至于分片,则是另一种正在急速发展的解决方案,获得以太坊、Zilliqa、Quarkchain等区块链项目采用。
分片(Sharding)技术解释
分片是一种横向进行的分区(partitioning)设计,作为一种数据库设计原则,主要用于分隔数据库服务器以分散运算负担,让区块链解决扩充能力偏低、交易处理延迟的问题。
在区块链中实施分片技术,即是将网络分为不同的片区(shards),并行处理交易。每个节点将只有区块链网络的部分数据、而非全部数据,可以同时处理更多交易。例如,假设一个具有1,000个节点的网络,可以将网络划分为10个片区,每个片区由100个节点组成,如此而来整体网络的处理速度应增加10倍。
一个具有1,000个节点的网络,可以将网络划分为10个片区,如此而来整体网络的处理速度应增加10倍。
单片区接管攻击(Single-Shard Takeover Attack)
实施分片的网络会产生新的运作风险,包括单片区接管攻击。
单片区接管攻击,即是指网络当中一个片区被恶意节点控制,该片区的交易可能会被篡改。
防止单片区接管攻击,应对方法是防止攻击者将其哈希运算能力(hash-power)集中到单一片区。
将节点分配到不同片区的方法是当中关键。以太坊(Ethereum)的分片解决方案,会在每个片区上随机抽出验证者(validators)。足够的随机性可以确保验证者不会知道他们将预先进入哪个片区。同样,以太坊分片要求每个片区的三分一验证者,来确认区块的正当性。
除此之外,分片在设计上应该限制每个片区的最小验证者数量规模,以减少将恶意节点分配给同一片区的可能性。综合上述措施,区块链网络的效率会大幅提升,同时不会牺牲安全性。
总结
私有系统通常会使用分片技术,将数据库或搜索引擎作横向分隔、减轻负载,但是将其实施到公共区块链中仍然是一项挑战。要维持系统去中心化、运作机制透明,会使同时保持系统安全水平变得困难。除了单片区接管攻击外,分片技术的开发人员还面临例如跨片区资料传输等其他问题。
分片被视为解决区块链运作难题最可行的解决方案之一。假如分片技术成功实施,网络交易成本将会大幅降低,并且让程式开发者可以建立更复杂的去中心化应用程式(DApp)。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。