搜索
NFT元宇宙Web3
近期热门

区块链是去中心化的吗?分布式账本中的非预期中心化(一)

波动

编写人::Evan Sultanik, Alexander Remie ,Felipe Manzano ,Trent Brunson ,Sam Moelius ,Eric Kilmer,Mike Myers,Talley Amir,Sonya Schriner

这是一篇关于区块链去中心化的研究报告,由Trail of Bits发布。因为篇幅关系,本报告将在公众号老雅痞和FastDaily 和网站上分为几期连载。

Trail of Bits简介

Trail of Bits成立于2012年,总部设在纽约。为一些世界上最有针对性的组织提供技术安全评估和咨询服务。著名的客户包括HashiCorp、谷歌、微软、西部数据和Zoom。Trail of Bits还经营着一个区块链安全的卓越中心。

本报告将包括以下几个主题的讨论:

区块链是去中心化的吗? 中心化的来源; 主要发现和收获;审视区块链”攻击;分布式组织和权力法则;网络中心性;软件中心性等。

下面开始报告全文。

摘要

在过去的一年里,Trail of Bits受美国国防部高级研究计划局(DARPA)的委托,对区块链的真正去中心化程度进行了调查。我们主要集中在两个最流行的区块链上,比特币和以太坊。我们还调查了股权证明(PoS)区块链和拜占庭式容错共识协议。本报告对学术文献的结果进行了高层次的总结,以及我们对软件中心性和比特币共识网络拓扑结构的新研究。

区块链是去中心化的,对吗?

分布式账本技术(DLT)——特别是区块链——被用于各种场合,如数字货币和区块链。分布式账本技术(DLT)——特别是区块链——被用于各种场合,如数字货币、去中心化的金融,甚至是电子投票。虽然有许多不同类型的DLT,每个DLT的设计都有本质上的不同,但DLT和区块链的首要价值主张是,它们可以在没有任何集中控制的情况下安全运行。

  1. 启动区块链的密码学基元 。区块链的加密基元在这一点上是相当强大的,而且人们通常认为这些基元是理所当然存在的。基元使区块链是不可变的(不容易改变)。本报告将举例说明,这种不可更改性是如何被打破的,不是通过利用密码学的漏洞,而是通过颠覆区块链实现的属性来打破这种不变性。
  2. 网络和共识协议的特性。我们发现,一个参与者的子集可以获得对整个系统的过度的集中控制权。
  3. 中心化的来源。本报告涵盖了DLT的控制权可以被集中的几种方式。
  • 权威中心化。破坏系统所需的最小实体数量是多少?这个数字被称为中本聪系数。这个值越接近1,系统就越集中。这也经常被称为 “治理中心性”。
  • 共识中心性。与权威中心性类似,在多大程度上是指共识的来源(例如,工作证明[PoW])的集中程度?一个单一的实体(如 矿池)是否控制了网络的大量散列能力?
  • 动机中心化:如何抑制参与者恶意的(例如,发布错误的或不正确的数据)行为?在何种程度上,如何实现激励措施集中控制?如何撤销一个恶意参与者的权利?
  • 拓扑中心性:共识网络对破坏的抵抗力如何?、是否有一个子集的节点在网络中形成了一个重要的桥梁,没有它 网络会不会分叉?
  • 网络中心性。节点在地理上是否足够分散,是否均匀地分布在互联网上?如果一个恶意的互联网服务提供商(ISP)或国家决定阻止或过滤所有的 DLT流量怎么办?
  • 软件中心化。DLT的安全性在多大程度上取决于其运行的软件的安全性?它所运行的软件的安全程度又如何?软件中的任何错误(无论是无意的还是有意的)都可能使DLT的不变量失效。如果DLT的规范有歧义,两个独立开发的软件客户端可能会有分歧,从而导致了DLT的不确定性。开发的软件客户端可能会产生分歧,导致区块链的分叉。两个客户端共享的依赖性中的上游漏洞也会类似地影响到他们的操作。

主要发现和启示

以下是我们研究的主要发现:

在报告的其余部分,我们将更详细地解释这些发现。

  • 使用区块链的挑战是,人们必须(a)接受其不变性,并相信程序员没有引入错误,或者(b)允许可升级的合约或链外代码,它们与集中式方法具有相同的信任问题。
  • 每一个广泛使用的区块链都有一组有特权的实体,可以修改区块链的语义。区块链的语义,从而有可能改变过去的交易。- 足以扰乱区块链的实体数量相对较少:比特币是4个,以太坊是2个,而大多数PoS网络的实体数量不到10个。
  • 绝大多数的比特币节点似乎不参与挖矿,而节点的操作者也不会因为不诚实而受到明确的惩罚。运营商没有面临不诚实的明确惩罚。
  • 区块链矿池内协调的标准协议,Stratum,是不加密的。未加密的,而且实际上是未经认证的。当节点对网络有一个过时的或不正确的看法时,这就降低了执行标准51%攻击所需的hashrate百分比。此外。只有矿池运营的节点需要降级来进行这样的攻击。例如,在2021年上半年,对51%的攻击的实际成本比特币的实际成本更接近于49%的哈希值。
  • 为了使区块链达到最佳分布状态,必须有一个所谓的Sybil成本。目前还没有已知的方法在无权限的区块链中实施Sybil成本。区块链,如比特币或以太坊,如果不采用中心化的可信第三方 党(TTP)。在发现没有TTP的情况下强制执行Sybil成本的机制之前。无权限区块链几乎不可能实现令人满意的 去中心化。
  • 一个密集的、可能是无规模的、由比特币节点组成的子网络似乎在很大程度上负责达成共识并与之沟通。负责达成共识并与矿工沟通——绝大多数的节点都没有意义。绝大多数的节点对网络的健康发展没有任何意义。
  • 比特币的流量是不加密的——节点之间的网络路线上的任何第三方 (例如,ISP、Wi-Fi接入点运营商或政府)可以观察并选择 放弃任何他们想要的信息。
  • 在所有的比特币流量中,60%的流量只穿越了三个ISP。
  • Tor现在是比特币中最大的网络供应商,为大约一半的 比特币的节点。这些节点中有一半是通过Tor网络路由的,而另一半则是通过.on.com网络到达的。另一半是通过.onion地址到达的。下一个最大的自治 AS)——或网络供应商——是来自德国的AS24940,只占节点的10%。的节点。恶意的Tor出口节点可以修改或放弃流量,这与ISP的情况类似。
  • 在比特币的节点中,21%的节点正在运行旧版本的比特币核心客户端,该版本 已知在2021年6月有漏洞。
  • 以太坊生态系统有大量的代码重复使用:最近部署的90%的 部署的以太坊智能合约至少有56%彼此相似。

审视区块链的不变性

每个区块链都有一组有特权的实体,可以修改区块链的语义,从而有可能改变过去的交易:即软件的作者和软件的维护者。许多区块链都有一个建立在虚拟机(VM)之上的,或者说有时甚至集成到他们的共识协议中。比特币和它的衍生产品有一个用于解释交易输出脚本的虚拟机。以太坊使用一个虚拟机来执行其智能合约。区块链的虚拟机经常根据对新功能的需求和对安全缓解措施的需要而发展。为了防止拒绝服务攻击,新的虚拟机操作码经常被添加,执行某些操作的成本经常被调整。

在某些情况下,区块链的开发者或维护者会故意修改其软件,使区块链的状态发生变化,以恢复或减轻攻击——这是以太坊对2016年DAO黑客事件的回应。但在大多数情况下,区块链的变化是另一个变化的无意或意外的结果。例如,以太坊的君士坦丁堡硬分叉降低了某些操作的gas成本。然而,一些在硬分叉之前部署的不可更改的合约,依靠着旧的成本来为了防止某类被称为 “重入 “的攻击。2021年, Polkadot区块链平台因用于构建节点的Rust编程语言编译器的更新而导致的节点故障而暂时瘫痪。在2021年8月底,一个与最流行的以太坊客户端的变化有关的共识问题被利用,导致了该加密货币的硬分叉。

部署在区块链上的数据——甚至是更重要的代码——在语义上都不一定是不可更改的。区块链的状态不仅可以通过修改来改变,而且单个交易的语义也可以改变。个别交易的语义也会在交易启动时和在最终被挖到的区块链上时发生变化。在它最终被挖到区块链上之前,由于中间的软件变化,单个交易的语义可能发生变化。在这期间。一些区块链平台,如Polkadot和Substrate还允许某些参数和代码可以通过链上治理程序进行更新。

不一定需要改变软件本身来影响DLT的安全属性。例如,虽然比特币的历史不到15年,但其协议设计时的许多基本假设已经过时。当比特币最初被构想时,中本聪认为共识网络中的每个节点都会参与挖矿。然而,随着采矿难度的增加, 矿池”(将采矿能力和奖励集合在一起的集体)的出现降低了获得采矿奖励的概率。矿池”(将挖矿能力和奖励组合在一起的集体)作为一种获得稳定利润的手段变得越来越流行。今天,四个最流行的矿池占到了比特币总量的51%以上。每个矿池都有自己专有的中心化协议,并只通过一个网关节点与公共比特币网络互动。换句话说,实际上只有少数几个节点代表网络中的大多数人参与共识网络。这为控制这些节点提供了一个可能的手段。至少可以拒绝为其组成的hashrate提供服务。这打破了原来的所有比特币节点都有经济动机(通过采矿)来保持诚实的假设,。如果一个节点操作员的自身利益是不诚实的,那么就没有明确的惩罚。此外,执行51%的攻击所需的实体数从整个网络的51%(我们估计为 约59,000个节点)减少到只有四个最流行的矿池节点(不到 0.004%的网络)。

最后,任何支持链上执行的区块链(如Ethereum, Hyperledger和Tezos)将不能完美的执行语义不变性。原因就是因为这种区块链不能防止合约的可升级性。例如,Alice可以提交交易到在该交易被开采之前,该合约可以被升级为具有完全不同的语义。该合约将被执行为新的合约。可升级的合约模式在以太坊中已经变得非常流行,因为 它们允许开发者在部署后绕过不可更改性来修补错误。允许开发者在后门打补丁,也就意味着能够携带合约资产潜逃。使用区块链的挑战是,人们必须(a) 接受其不变性并相信程序员没有引入错误,或者(b) 允许可升级的合同或链外代码的存在,这种方案与集中式方法有相同的信任问题。

 

编辑于 2022-06-21 22:56
「 真诚赞赏,手留余香 」
赞赏

发表评论已发布0

手机APP 意见反馈 返回顶部 返回底部