跳转至

可扩展性和其他挑战

虽然区块链技术被誉为重大突破,但它也有自己的问题。区块链技术仍处于发展的早期阶段,出现了许多问题,这些问题仍在等待某种程度的解决。像区块链这样的分散式网络有自己独特的挑战。

在本章中,我们将探讨区块链的以下关键问题:

  • 可扩展性和分散化
  • 可扩展性和成本
  • 可用性
  • 51%的攻击
  • 网络分叉
  • 灾难性的错误
  • 缺乏互操作性
  • 区块链技能的低可用性

可扩展性和分散化

区块链的主要优势之一是分散化,即消除任何控制网络的单一权力机构。不幸的是,这有一个缺点,那就是它对系统性能的影响。区块链系统的工作原理是通过试图达成共识来保持网络的所有节点同步,以便运行区块链的每台计算机都能看到相同的系统状态。网络上的节点越多,集中化程度越低。这也意味着必须做更多的工作来确保所有网络参与者彼此一致,这限制了性能和可扩展性。

大量节点会降低性能,原因有几个:

  • 每个节点通常必须处理所有事务。要处理的事务数量越多,每个节点需要的处理能力和网络吞吐量就越大。随着需求的增加,网络变得越来越分散,因为越来越少的小组能够负担得起在网络上放置必要的机器。在某些地区,带宽可能会受到限制。一旦超过这个有限的带宽,该地区的人们就不能加入网络。
  • 更多的节点也会导致更多的延迟,因为随着每个对等点在网络上传播消息,对等通信的数量也会增加。尽管对等通信在这方面非常有效,但它仍然会导致滞后,并限制最大吞吐量。
  • 许多区块链要求参与节点将整个区块链存储在本地硬盘上。存储要求和从网络下载链所需的极长时间成为参与的障碍,尤其是在网络不太一致的地区。例如,以太坊区块链现在的大小超过 400 GB。如果不进行压缩,这对于大多数个人笔记本电脑和许多老式台式计算机来说都太大了,如果不需要专门的机器来操作区块链,就无法存储。

已经有一些提高区块链系统性能的尝试。其中大部分涉及某种程度的权力下放。例如,Bitshares 衍生的系统集使用一组有限的完整节点,称为见证节点,其中只有 21 个。只有这些计算机用于处理和批准交易;网络上的其他机器只是向网络提交事务或观察。以及 Bitshares 团队进行的许多其他性能优化,他们声称理论吞吐量高达每秒 100,000 次交易。这就引出了区块链的第二个问题,即与传统方法相比的成本。

商界的区块链

虽然 Bitshares 团队建议每秒进行 10 万次交易的理论上限,但他们正在使用 LMAX 交易所的技术和经验,该交易所声称每秒可以处理超过 600 万次交易。大多数区块链没有达到接近理论性能的性能,大多数区块链在实践中达到的性能远低于每秒 1,000 次交易。例如,比特币每秒大约完成 7 笔交易,以太坊每秒大约完成 14 笔交易。一台运行 MySQL 的不错的服务器每秒可以处理 10,000-20,000 个类似复杂度的事务。因此,传统方法比区块链系统更容易扩展到更大的交易量。

传统数据库系统(包括分布式数据库系统)的单位性能成本在各个层面上都比区块链系统便宜得多。对于任何企业来说,为这些系统雇佣有经验的人员都更便宜、更容易、风险更小,因为他们更出名、更有据可查。考虑区块链的企业必须问,一个基于区块链的系统是否以某种方式提供了一个必备的功能,因为如果没有,其他方法更便宜,更容易,更快,或者以上所有。

评估区块链的企业在使用区块链时,应密切关注他们的扩展要求和成本模型。随着时间的推移,成本和性能可能会提高,但如果当前的方法不够充分,就不能保证它们会提高得足够快。

可用性

与其他系统相比,当前的区块链系统相对难以使用。例如,使用任何基于以太坊的 DApp 都需要为 Chrome 安装一个特殊的浏览器或 MetaMask 插件,或者在一个公共市场上购买和转让以太坊,然后学习所需应用程序的界面。所采取的每一个动作都需要以太币的花费,确切的数目不一定事先知道,并且根据网络负载而变化。

一旦设置好,通过基于区块链的系统发送一个值相对容易,但是容易在地址中出错。对于一个人来说,知道他们是将值发送给0x36F9050bb22d0D0d1BE34df787D476577563C4fC还是0xF973EE1Bcc92d924Af3Fc4f2ce4616C73b58e5Cc并不容易。事实上,ICO 已经被攻击者黑进了 ICO 主网站,简单地改变了目的地地址,从而吸走了数百万美元。

一些区块链,如 Bitshares 和 Stellar,为命名账户提供了直观和可读的条款。希望这种趋势会继续下去,可用性会提高。

缺乏保护

当区块链网络遭到黑客攻击时,用户通常没有追索权。无论用户是否有任何过错,都是如此。当集中交易被黑客攻击时,其中一个反应是用户不应该信任一个集中机构。然而,由于平价钱包黑客和 DAO 等事件,即使用户不信任中央权威机构,他们也可能无法获得自己的资金。虽然一个答案可能是他们应该选择一个更好的钱包或项目,但不清楚用户如何才能真正做到这一点。对于任何平价钱包黑客,平价团队涉及以太坊世界最著名的一些开发人员。对这些持续存在的问题,更有可能的回应是不要使用区块链。为了获得主流认可,区块链系统将需要更易于使用,并在遭受攻击、黑客攻击和其他损失的情况下提供某种高级保护。

51%的攻击

所有区块链都可能遭受共识攻击,通常被称为 51%攻击,因为比特币中可能存在原始共识攻击。每个区块链都依赖于其大多数用户或利益相关者是好的参与者,或者至少不与网络的其余部分相协调。如果区块链系统中强大的网络参与者中的大多数(甚至大部分是少数)与其他人合作,他们将能够发起双重攻击,并违背网络的意愿从网络中获取大量价值。

虽然曾经是理论上的,但最近有许多针对不同区块链的成功的 51%攻击,如 Verge(在参考资料中找到链接)。在更集中的系统中,如利益相关者证明系统,其中可能有少数非常大的利益相关者,如果相关的利益相关者有足够的动机,通过简单的几个电话,完全有可能发生类似的协调。这种激励不一定是经济的或连锁的:政治或国际关系可能导致一群爱国的利益相关者串通起来支持或反对其他用户。例如,大量采矿硬件和网络设备源自中国,区块链的许多开发也是如此。如果中国利益相关者发现他们在与地区对手的国际斗争中拥有多数股权,这些利益相关者可能会利用他们的网络力量单方面惩罚属于竞争对手地区的网络用户。

网络分叉

公共区块链的另一个问题是网络分叉的存在。比特币被分叉了两次,分裂成比特币和比特币现金,然后又分裂成比特币黄金。现在有三个独立的网络宣称拥有比特币的所有权。虽然最初的网络仍然是最占优势的,但所有的分叉都是关键网络参与者对技术未来的协议破裂的结果。

以太坊遭遇了类似的命运,分裂为以太坊,以太坊经典如何应对道黑客攻击。大多数人认为道应该恢复被黑的资金,但强烈的少数人不同意,问为什么这个黑客应该得到特殊待遇?。结果是两个网络,一个恢复了被黑的资金(以太坊),另一个无论如何网络协议都是规则(以太坊经典)。

灾难性的错误

不可变账本的好处是没有任何东西可以隐藏或更改。不可变账本的缺点是没有任何东西可以隐藏或更改——包括 bug。在以太坊等网络将智能合约代码写入链本身的情况下,这意味着代码 bug 不容易修复;原始代码将永远保留在区块链上。唯一的解决方法是模块化代码,其中每个部分引用一些其他部分,这些指针有更新的编程方式。这允许 DApp 的作者上传一段新代码并适当地调整指针。然而,这种方法也有问题。进行这些更新需要特定的授权来更新代码。

拥有一个更新所必需的中央权威只会产生新的问题。要么该机构对分散的应用程序进行集中控制(这意味着它不再是分散的),要么必须在区块链上写入一个管理系统。这两种选择都有安全性的权衡。中央管理机构可能会被黑客攻击或其私钥被盗,从而导致系统灾难性的损失。一个分散的管理系统需要更多的代码,而且本身也有被黑客攻击的风险,DAO 黑客攻击就是这样一个事件。

缺乏互操作性

当前的区块链技术不容易互操作。虽然可以编写一个可以与多个区块链通信的应用程序,但是这些区块链并不具备相互通信的能力。在许多情况下,处理事务和治理的基本方法可能不兼容。例如,在以太网中,任何用户都可以向任何其他用户发送任何令牌,不需要接收者的许可。如果接收者愿意,他们可以忽略新的代币,但他们仍然拥有它们(这导致了一些有趣的税务问题)。然而,在 Stellar 网络中,用户必须向另一个用户发布信任线,以便接收该用户发布的自定义令牌。

类似地,许多网络提供多重签名和多用户钱包链。然而,如果没有位于区块链之外的集中式应用程序,用户就无法在一个地方轻松管理所有这些网络。这是集中式交换的吸引力的一部分,无论底层协议是什么,用户都可以获得一个可预测的通用接口,能够发送和接收令牌,而无需考虑底层技术。

区块链技能的低可用性

与任何新技术一样,熟练人员的数量将是有限的。就区块链而言,这种自然秩序因为庞大且不断增长的系统而变得更加糟糕。只看主要链,系统是用 C,C++,Java,Scala,Golang,Python 写的。所有这些系统都有不同的架构和协议。拥有智能合约的区块链有不同的合约模型、合约 API,甚至完全不同的编程语言,如 Solidity 和 Serpent。

在安全方面,每个区块链系统都有微妙不同的安全模式和挑战。系统越简单,这些要求就越容易,但是区块链能做的就越少。此外,由于最近的兴趣激增,区块链技能在公开市场上非常昂贵。特别是,拥有良好记录的顶尖人才非常难找。

隐私

区块链所谓的优势之一是他们可以匿名运营。然而,如果这种匿名性被打破了,不变的账本意味着每一笔交易都可以被完美地追踪。保持完全匿名是非常困难的,即使一个人成功了,如果他们做生意的人也不是匿名的,那么统计技术可以用来大大缩小他们身份的可能性。

虽然许多人认为匿名是为了避免执法或税收,但可能不仅仅是政府对这些信息感兴趣。例如,许多犯罪组织希望能够识别出富有但谦逊的人。组织可以追踪特定人员的大量加密资产持有或交易,并将其用作绑架或勒索的目标方法。加上加密交易的不变性,这可能会使这种攻击非常有吸引力。

有一些项目试图解决这个问题,比如 Zcash 和 Dash,它们隐藏了事务源和端点。希望有更多的系统会添加经过深思熟虑的协议来解决安全和隐私问题。

能耗

一些最大的区块链,如比特币和以太坊,仍然在工作证明模型上工作。工作验证方法非常耗电且效率低下。一则新闻报道称,仅比特币网络就已经消耗了比爱尔兰全国还要多的电力。其他消息来源认为这是一种夸张,但即使如此,它说明了运行这些系统的巨大成本。

然而,由于这个确切的原因,越来越多的系统正从工作证明系统转移到其他系统。新的共识算法,如股权证明和委托股权证明,使这种极端的能源成本变得不必要。

摘要

在本章中,我们讨论了当前使用和实施区块链系统的主要挑战。希望使用区块链的企业应该了解该技术的现状、与其他技术方法相比的成本,以及区块链世界存在的安全和人员问题。

好消息是,这些问题没有一个是不可克服的,其中许多肯定会随着时间的推移而改善。许多项目正在进行中,以提高不同区块链网络的可用性和安全性。额外的工具和培训资源降低了编写新的区块链应用程序的难度。

参考

  1. https://bit shares . org/technology/industrial-performance-and-scalability/
  2. https://news . bitcoin . com/proof-of-work-coins-on-high-alert-following-spate-of-51-attacks/
  3. https://www . the guardian . com/technology/2017/nov/27/比特币-采矿-消费-电力-爱尔兰

我们一直在努力

apachecn/AiLearning

【布客】中文翻译组