2019年 区块链的分片技术仍只是纸上谈兵吗?
翻译 | Guoxi
编辑 | 波波
根据木桶效应,一个系统的性能取决于它的短板。当下,制约区块链应用大规模落地的短板正是可拓展性问题,因为区块链的底层设计仅支持极低的交易吞吐量,还不及一些传统工具的零头。分片技术的出现给这一问题带来了曙光,以至于有人说分片技术是解决可拓展性问题的灵丹妙药。分片技术是怎样解决问题的?
我们有一句古话:“是药三分毒”,分片技术会给区块链带来那些新的问题?会给区块链的安全性带来哪些影响?如何跨过分片筑起的这一道高高的墙进行交易?我们需要找到分片技术的最佳平衡点,不能被噱头忽悠瘸了。
资深区块链记者 Lucas Mearian 结合对领军人物的采访,为我们带来了这篇分片技术的指南,让我们带着上述的问题在文章中寻找答案。
可拓展性一直是一个制约区块链发展的难题,而在保证隐私性和安全性的前提下提升可拓展性则是难上加难。分片技术正是解决区块链燃眉之急的灵丹妙药,也正是它让去中心化帐本技术如此热门。但美中不足的是,分片技术也还有一些障碍需要解决。
近几年来,区块链技术的试点项目如雨后春笋般不断涌现出来,从跨境金融交易到供应链管理层出不穷,但是,一个严重的问题一直存在:区块链缺乏可扩展性。
随着越来越多的计算机加入到区块链的点对点网络中,整个区块链系统的效率将会不断降低。
目前,业界已将可拓展性认定为比特币和以太坊等加密货币亟需解决的问题。如果去中心化账本技术想要与速度快其数百倍的支付网络竞争以得到金融科技公司的采用,那么它必须找到一种方法来提高可扩展性和吞吐量并解决延迟问题。
走进分片技术
分片技术是开发人员用来提高交易吞吐量的几种常见方法之一。简单地说,分片就是一种在点对点网络中分割计算能力和存储工作负载的分区方式,分片后每个节点不再需要负责处理整个网络的交易负载,而仅需处理其所在分区(或称分片)中的交易。
与当前的区块链相同,分片中包含的信息也是由多个节点共同维护的,从而保证了账本的去中心化和安全性,启用分片后每个人仍然可以看到账本中的所有信息,只不过人们不再需要处理和存储所有的信息。
共识的难题
围绕共识协议的一系列问题一直困扰着所有公链项目,如何与用户就提交的交易是否真实并应添加到去中心化账本中达成协议?当下最流行的以工作量证明机制为代表的共识协议通常都是高度计算密集型的。
在基于工作量证明的区块链中,每个参与的计算机(或称节点)都要记录区块链中的所有数据,这也是共识过程的一部分。在比特币这样的大型区块链中,大多数参与节点都必须验证新交易并在验证通过后将交易加入到区块链中,这使得完成每笔交易都是一个缓慢而艰巨的过程。因此,基于工作量证明的比特币每秒只能处理 3.3 到 7 笔交易,而区块平均每 10 分钟才生成一个,每笔交易可能需要 10 分钟才能完成,为了确保交易成功,还需等待 6 个区块时间。当下另一种流行的区块链账本以太坊,每秒也只能处理 12 到 30 笔交易。
相比之下,Visa 的电子支付网络 VisaNet 平均每秒处理 1700 笔交易。
让每个节点记录区块链中所有信息的好处是数据是无可争议且不可更改的。基于工作量证明的区块链是只写一次的( write-once ),因而区块链中附加的许多应用程序也是不可更改的。
以太坊和 Hyperledger 是世界上领先的区块链平台,许多应用程序将它们用作底层区块链,从简单的以太币等加密货币到复杂的智能合约(区块链上自动执行的合约)。当下,以太坊正在积极探索分片技术,而 Hyperledger 则没有。
全球最具权威的 IT 研究与顾问咨询公司 Gartner 的副总裁兼杰出分析师 Avivah Litan 说:“分片是一个源于数据库水平分区(对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1 个或多个分区))的概念,被以太坊采用。有了分片技术,节点不再需要处理所有的交易,从而提高了区块链的可扩展性。”
去年,在区块链账本和加密货币每天交易量超过一百万笔之后,以太坊开始探索提高区块链性能的方法。
以太坊提出了两种解决思路。一种是“第 2 层”机制,即在链下的标准数据库中处理交易,仅在区块链上记录永久条目,另一种解决思路是分片,从而同时并行处理大量的交易。
第 2 层协议将大多数交易转移到链下,并且仅在进入和退出第 2 层系统时与底层区块链进行交互。第 2 层协议中节点在局域网或相邻的广域网内互相传输数据,从而减轻了点对点的区块链网络的负载。
在启用分片后,区块链的“状态”将被划分给不同的分片(或称分区), Litan 解释说,每个用户帐户也将被划分给不同的分片,而帐户只能与同一个分片上的其他帐户进行交易。 “这样的机制允许交易同时并行发生,” 她说,“然后由以太坊选择的协议来实现跨分片的通信。”
分片安全吗?
除了解决可扩展性问题之外,一些人认为分片还可以维护区块链的本地安全性,正如以太坊创始人 Vitalik Buterin 当时在博客文章中写到的,分片保留了“大部分区块链所需的去中心化和安全属性”。
“从理论上讲,分片数量增加对于交易吞吐量的提升是线性关系。如果启用四个分片,那么吞吐量大约会提高到四倍。我们可以选择任意数量的分片。” Linux 基金会 Hyperledger 区块链项目的安全专家 David Huseby 如是说。
正如中国一句古话:“细节决定成败”,Huseby 指出,为了确保区块链的安全性,你必须警惕分片被接管的现象。根据康奈尔大学发表的研究论文,如果指定分片中的节点被攻击将导致数据的相应部分永久丢失。
因此在以太坊网络的模型中,节点会被随机分配给分片,并在一段时间后重新分配给另一个随机选择的分片。
“这里的想法是让攻击者很难预测或操纵他们(恶意)节点被分配到哪个分片中,因此即使攻击者接管任意一个分片,想要达成共识也并非易事,” Huseby 说。
Huseby 解释说,Hyperledger 区块链是否启用分片技术还未成定局。
“我们( Hyperledger )的区块链通常不像加密货币那样对“地址”进行操作,Hyperledger 区块链专注于维护一个全局状态(可以联想一下数据库),共识机制调节对该状态的更新,同时区块链安全地存储状态更新。” Huseby 说。
Hyperledger 区块链网络可以像以太坊一样垂直分区(通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行),但由于Hyperledger 并没有分割地址空间,因此可以自由尝试不同的分片技术。
“如果不得不对 Hyperledger 区块链网络进行分区,那么我首先会利用Hyperledger交易验证独立于区块生成的优势,” Huseby 说,“交易验证要比区块生成慢得多,所以我采取的第一步行动将是大幅度增加交易验证节点的数量。”
一个次要的挑战来自“瘦”客户端,也称为 SPV (简化支付验证)钱包,我们需要确保在区块链状态已被划分给不同分片后这些瘦客户端还能访问整个区块链的状态。为了解决与分片相关的可见性问题,瘦客户端通过单独的网络进行通信,并维护所有分片上的本地状态副本。
最后,由于每个分片都是一个独立的区块链网络,跨分片的通信也带来了很多挑战。
解决分片通信问题
本月早些时候,初创公司 Devvio 宣布他们已经创建了一个基于分片技术,第2层协议和高效共识机制的高效去中心化账本协议,可以解决区块链网络面临的所有核心问题。 Devvio 表示,其协议每秒可以处理多达 800 万笔交易,从而可以适用于全球金融业务场景。
Devvio 声称:他们使用基于分片技术的独立区块链来实现可扩展性的大幅度提升。如果随着时间的推移需要额外的吞吐量,可以再添加数千个分片,从而最终在全球性的公链上实现每秒数千万笔链上交易的吞吐量。
根据 Devvio 首席执行官 Tom Anderson 的说法, Devvio 公司的 “ Devv ” 协议中,每一个分片就是一个独立的区块链账本,该公司声称随着时间的推移,可以将数千个分片添加到全球性的公链中,最终实现每秒处理数千万笔交易。就比如说,每一个分片都是 Devv 去中心化账本上的一个独立区块链节点,它可以处理多达 3000 笔交易,如果新添加一个节点就会使处理的交易数量翻倍。
每个分片(也被称为加密钱包)作为一个较大网络上的输入,Devvio 将这个网络称为 T1 网络,各个分片可以通过一个名为 T2 的独立交易网络互相通信。
独立技术和市场调研公司 Forrester Research 的首席分析师 Martha Bennett 指出,从原理上来说,几乎所有区块链框架当前使用的或即将使用的分片技术都是完全不同的。
PolyShard 是一种使用了编码理论思想,同时实现安全性保证、存储高效性、计算高效性最优化的分片技术解决方案。其基本的设计理念是节点不应该复制存储数据,而应该存储经编码和线性组合处理后的数据。
例如,由一家名为去中心化技术研究基金会( DTR )的瑞士非营利组织赞助的七所大学(麻省理工学院、斯坦福大学、卡内基梅隆大学、加州大学伯克利分校、南加利福尼亚大学、伊利诺伊大学厄巴纳-香槟分校、华盛顿大学七所顶尖大学)最近宣布他们正在开发一种加密货币网络 Unit-e ,旨在通过分片技术解决区块链的可扩展性和性能问题。
“缺乏可扩展性严重阻碍了加密货币的大规模采用,我们开创性的研究可以解决这个问题,” 去中心化技术研究基金会理事会成员 Joey Krug 说, “ Unit-e 的开发人员正在将这项研究转化为区块链真正的可扩展性实现,大量去中心化金融应用都将从中获益。”
Unit-e 使用被称为“ PolyShard ”的一种全新分片方式:在不牺牲安全性的前提下,为更多用户提高效率的一种存储和计算解决方案。PolyShard 技术的核心类似于服务器和存储系统上使用的虚拟化技术, PolyShard 协议混合了不同用户和不同交易的数据,而这些混合后的数据仍可以精确恢复出原始数据。
然而到目前为止,各种分片机制都仍处于开发和测试阶段,从某种意义上来说都还是纸上谈兵,还只是理论,需要创建能够同时解决可拓展性和安全性问题的标准化方法。只有解决了这一挑战,分片技术才真正可以称得上是一种“解决方案”。
“对于区块链可扩展性问题而言,分片技术并不是一种成熟的解决方案,” Husebuy 说,“分片技术中有许多细节需要推敲,我们需要进行一些实验来验证理论的正确性,只有完成了这些我们才能说分片技术是安全的。而且分片技术在落地时必须谨慎考虑区块链中的各种假设,不能给攻击者留下任何可以绕过安全机制和共识机制的漏洞。”
原文链接:
https://en.wikipedia.org/wiki/Shard_(database_architecture)
https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/
https://arxiv.org/abs/1809.10361
https://www.computerworld.com/article/3336187/blockchain/sharding-what-it-is-and-why-so-many-blockchain-protocols-rely-on-it.html
— END —