区块链落地面临的关键问题及其解决方案

策划|Tina

编辑|安翔

目前区块链平台所面临的最大问题可以通过一个简单的比喻来说明。

互联网的网速在本世纪初期是非常缓慢的。用户访问你的博客是一件既费时又费钱的事情。

即使用户对互联网缓慢的缺点心知肚明,他们也并未抛弃互联网,因为他们认为互联网潜力无限且大有可为。为了解决这个问题,他们不断改善互联网的设计方法和基础设施建设。与此同时,他们构建了性能更强的硬件来运行当今互联网的重要组件。

得益于持续不断的改进,互联网变得越来越快,访问网站的成本也变得越来越低。如今互联网的速度已经很快且仍在不断扩展,它让从前想都不敢想的事情逐渐变得可能。以往的开发人员只能创建单个网页。而如今,开发者可以在不断改进的基础架构上构建出诸如 Facebook、Google 和 Twitter 这样的大型网站。

如今,区块链交易面临着与曾经的互联网类似的阻碍:速度慢,成本高。

区块链公司正在努力提供可扩展的基础架构,期待区块链平台在未来成为主流。目标一旦实现,人们不仅可以使用区块链进行支付,还可以在区块链上创建类似 Google 和 Facebook 的应用程序。

Zilliqa 就是正在尝试解决这个问题的公司之一。本站(Tech in Asia)采访了 Zilliqa 公司的技术总监 Yaoqi Jia(https://www.zilliqa.com/)。

区块链的可扩展性问题

为了更好地解释区块链的可扩展性,我们首先得明白吞吐量的概念。

举例说明。假设你在火车站候车,候车室总共有 11 个人。火车每隔一小时一班,一次只能上 10 人。火车装满 10 人就走,第 11 名候车人就只能等下一趟。

我们把这个例子中的乘客比作交易。像比特币和以太坊这样的主流区块链平台平均每秒可以处理大约 10 次交易。

相比之下,像 Visa 这样的支付公司平均每秒可以处理大约 5,000 到 8,000 笔交易。

处理交易的速度称为吞吐量。与 Visa 这样的支付平台相比,目前区块链平台的吞吐量非常低。

现在假设候车人数增加到 100。火车到站之后,售票员对候车的人们说:“一次只能上 10 个人,谁付钱更多谁就先上车。” 你正好公务在身,非常繁忙,因此你为了上车便支付了巨额的票款。

区块链平台的吞吐量非常有限,而交易费用却异常高昂。例如,你原本只需 10 美元就可完成交易,由于区块链平台拥挤不堪,于是你不得不额外增加 2 美元的交易费用“走后门”。

因此,低速率和高成本是当今主流区块链交易平台的巨大障碍。

提升可扩展性

主流的区块链平台都需要扩展。区块链公司已经为此提出了几种解决方案。

1. 增加块容量

最直接的解决方案就是增加块容量。

回到火车站的例子,增加块容量也就是增加火车的座位数量,比如从 10 个增加到 20 个。这样一来,每趟火车就可以搭乘更多的乘客并缓解车站的拥堵。

目前比特币的块容量为 1 MB。假设将其扩大到 2 MB 的话,那么每秒处理的交易数量即可翻倍。块容量越大,每秒处理的交易数量也就越多。

理论上貌似可行,但在实践中仍然存在问题。

Zilliqa 的 Jia 对此做出过解释,他说:“假设你将块容量从 1 MB 增加到 1 GB。那么当你创建这个块时,需要将它发送给网络中的其他人。”

他继续说:“如果你使用 Gmail 发送这个大文件,由于网络无法快速处理如此巨大的文件,因此传输这个文件需要耗费很长的时间。显然,增加块容量的做法是存在问题的。你不能无限制增加块容量,所以这个解决方案的扩展是有限制的。”

2. 链外交易

第二种可能的解决方案是链外交易,比如比特币的闪电网络、以太坊的雷电网络和 Neo 的 Trinity。

使用当前的方法,你每次进行交易时都需要获得网络中所有节点的批准。(节点是运行交易算法的计算机。)

举个例子。假设你每天都会从一家喜欢的咖啡店购买一杯咖啡。一杯咖啡的价格是 1 美元,但是你并不想每天都付钱。因为每交易一次,你就得给区块链平台支付一次交易费用。

于是你和咖啡店老板签了一份合同。合同规定,你每天用价值 1 美元的虚拟币来支付咖啡。30 天之后,你为这 30 个虚拟币一次性支付 30 美元。咖啡店老板则用你支付的 30 个虚拟币提取 30 美元的现金。这样一来,原本一天一次的交易就变成了 30 天一次。

因为这是发生在区块链网络之外的私人协议,所以它们被称为链外交易。

这个系统同样存在缺点,交易过程将集中在链外交易服务器的周围。这些链外交易网络也是黑匣子,这种解决方案的透明度和安全性值得怀疑。

3. 授权共识协议

目前区块链网络上的交易依赖所有节点,假设网络中有一千个节点,那么每次交易都必须经过这一千个节点的处理,因此交易速度很慢。

就好像有一个 1000 人的小组,每项决定都需要所有人的同意。那么这个过程就会非常漫长,并且非常混乱。

相反,如果你从团队中挑选出 10 名成员,并将他们任命为团队的管理人员,然后让这 10 个人进行投票表决。很显然,由于人数减少,达成共识就会更容易,更快捷。

同样,你可以委托一组节点运行协议并就交易达成一致。他们的协议将被视为该团体共识的代表。

大多数可扩展的区块链项目都使用该协议。为了进入“管理机构”或联盟,小组成员必须注册他们的兴趣并进行某些测试,证明利益或证明权力。如果他们注册成功,将获得加入联盟的证书并运行共识协议。

然而这个问题同样存在问题,因为协议集中在运行它的委托节点组的周围。

4. 分片

分片也就是把链上网络进行分割。

分片的概念在数据库领域已不再新鲜。分片会将大型数据库分为更小、更快、更易于管理的数据分片部分。

Loi Luu、Prateek Saxena 及其团队在他们的研究论文 Elastico 中研究了分片的概念,并将之应用到区块链。Saxena 是新加坡国立大学计算学院的助理教授,同时也是 Zilliqa 公司的首席科学顾问。Luu 则是该校的博士生,同时在 Zilliqa 公司担任顾问。

Zilliqa 的解决方案称为网络分片。

为了描述它的工作流程,我们举例说明。假设你有一个问题,需要五个步骤来解决。

假设一个班级里有 10 个学生。而解决这个问题的五个步骤没有先后顺序要求,可以并行解决。于是你将学生分成五个小组,每个小组两名学生,每个小组负责解决一个子任务。第一组解决第一个子任务,第二组解决第二个子任务,依此类推。

一旦其中一个小组完成了自己的子任务,它就会将完成信息报告给老师。老师将汇总五组的信息,并将完整信息告知每个小组。这样一来,即使每个小组并不清楚其他组的工作细节,但却知道其他组的工作进度。

本例中的学生也就是 Zilliqa 平台上的节点。“班级”包含了网络中的所有节点,“小组”也就是碎片。“老师”代表目录服务委员会,它本身也是一个碎片。

相比之下,比特币网络的“学生”需要自己去解决五个步骤的问题。这种方法需要更长的时间,同时“学生”的任务也更繁重。

当你使用 Zilliqa 的网络分片,如果有 10,000 个节点,这些节点将通过称为工作证明的过程被随机分成 10 个组。每个组都称为碎片。

每个碎片负责处理一组不同的交易,并提出一组大家都同意的交易。然后,他们将这些交易的摘要报告给一个名为 DS 委员会的碎片,该委员会将汇总来自不同组的摘要,并将它们组合成称为最终块的更大实体。整合后的信息将被发回给所有组。

以上过程称为网络分割。目前 Zilliqa 是唯一一家正在开发这项功能的公司。网络分片是一种去中心化且安全的线上解决方案,能够提供线性可扩展性。也就是说,你拥有的节点越多,获得的吞吐量就越高。目前 Zilliqa 每秒可以处理 2,488 笔交易,并且计划在未来将每秒的交易数提升到 10,000。

以太坊正在研究一个与之类似但又稍有区别的分片过程,成为状态分片。在网络分片中,并非每个节点都必须处理每个交易,但每个节点都必须存储网络中其他分片正在发生的事情的状态信息。通过状态分片,每个节点将只存储他们处理的信息的子集。虽然这减轻了每个节点的负担,但是碎片之间的通信变得复杂。

分片的理论固然好,但是设计和实现存在复杂性。

Jia 说:“我们在 2015 年便开始研究,如今仍在进行分片实验。实现一个简单版本的分片很简单,但想要完全保证其正确性和安全性很困难。因此尝试开发这项功能的团队少之又少。”

他继续说:“相比之下,增加块容量的做法非常简单。你仅仅需要调整一个参数,增加块容量和吞吐量即可。而分片就不是那么简单了,需要考虑的东西很多。如何正确选择每个组员?如何分配任务?所有这些都给系统带来了复杂性。扩容之后,你的系统将是分散和安全的,并且支持吞吐量的线性动态增长。”

带宽和存储限制是最常见的瓶颈,不仅是分片,对于所有的区块链扩展方案都是如此。

这对于比特币和以太坊这样的主流区块链平台来说还不算什么问题,因为它们的吞吐量很低。

Jia 说:“比特币和以太坊每秒处理 10 笔交易。按照目前的速度,一年的总交易也就几 GB。但是,当每天的交易数达到数亿甚至数十亿时,就会出现大量数据,为了存储这些交易数据,我们必须找到更好的存储解决方案。这是网络分片无法直接解决的问题。”

运行公开测试

Zilliqa 公司内部已经成功开发了网络分片。

该团队希望公众在 3 月底能够在其测试网络上试用该功能。

测试网络基本上是正式网络的一个复制系统,团队可以在上面进行运行和测试。

Zilliqa 测试网络的试用主要针对 Zilliqa 的支持者,比如对协议感兴趣的开发人员和社区成员,以及对分片概念感兴趣的区块链开发人员。

在测试网络中,用户可以观察区块链系统的状态,例如正在处理的翻译数量。与此同时,用户可以使用钱包创建有效帐户,用来发送和接收测试令牌中的交易。

目标

Zilliqa 正计划推出区块链系统和智能合约平台,这将有助于在区块链上运行应用程序。下一步的目标是实现分散式应用程序(或者简称为 dApps)在平台的发布。你可以将之视为类似 Google 和 Facebook 的应用程序,只是在分散式区块链平台上发布而已。这些应用程序可以帮助 Zilliqa 占据行业主导地位。

Jia 说:“如果将区块链比作操作系统,我们希望 Zilliqa 成为未来的 Android 或 iOS 平台。我们希望普通人能够轻松地使用和开发 dApps,并且注意到他们最喜欢的应用程序是建立在 Zilliqa 上的。”

未来,Zilliqa 还希望解决区块链中的开放问题,例如可扩展性解决方案、隐私和存储。

Jia 说:“这些问题不仅仅在行业内存在,学术界也同样存在。未来我们希望提供一个可扩展的区块链平台。同时,我们也希望进行研究并发表论文,多方位支持区块链产业发展,从而解决当前问题,共筑网络美好未来。”

今日荐文

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331G0ZO5W00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券