区块链不变性神话

源节点: 1738527

灵活的思想胜于教条主义

“最高的商品是区块链,这是最高的商品,因此是一成不变的商品,因此是真正的永恒和真正的不朽。”
—圣奥古斯丁,德纳图拉·博尼,一世,公元405年(略有修改)

如果您向某人了解区块链的特性,那么响应中将始终出现“不变”一词。 用简单的英语来说,这个词用来表示永远不能修改或改变的东西。 在区块链中,它指的是全球交易日志,它是由链参与者之间的共识创建的。 基本概念是这样的:一旦区块链交易获得足够的验证水平,某些加密技术将确保它永远不会被替换或逆转。 这标志着区块链不同于常规文件或数据库,在常规文件或数据库中,可以随意编辑和删除信息。 大概理论就这样了。

在区块链辩论的喧闹舞台上,不变性已成为一种准宗教主义,这是不可动摇或质疑的核心信念。 就像主流宗教中的教义一样,反对派的成员使用不变性作为嘲弄和嘲笑的武器。 过去一年见证了两个突出的例子:

  • 加密货币的倡导者声称,不可变性只能通过分散的经济机制(例如工作量证明)来实现。 从这个角度来看,私有区块链是可笑的,因为它们依赖于一组公认的验证者的集体良好行为,这些验证者显然是不可信任的。
  • 轻蔑地提出了可编辑(或可变)区块链的想法,其中可以在某些条件下对交易历史进行追溯修改。 模拟者提出了一个问题:如果可以轻松更改其内容,那么区块链的意义可能是什么?

对于那些在场上的人来说,观看混战很有趣。 尤其是因为这两种批评都是错误的,并且源于对区块链(乃至任何计算机系统)不变性本质的根本误解。 对于那些时间短的人,这里是底线:

在区块链中,没有完美的不变性。 真正的问题是:在什么条件下可以更改特定的区块链,不能更改? 这些条件是否符合我们要解决的问题?

换句话说,区块链的交易没有被写入上帝的脑海(上面对奥古斯丁表示歉意)。 相反,链条的行为取决于有形计算机系统的网络,该网络将始终容易受到破坏或损坏。 但是在详细介绍如何做之前,我们先回顾一下区块链本身的一些基础知识。

区块链简介

区块链运行在一组节点上,每个节点都可能在单独的公司或组织的控制下。 这些节点在密集的对等网络中相互连接,因此没有单个节点充当控制或故障的中心点。 每个节点都可以生成交易并对其进行数字签名,这些交易代表某种账本或数据库中的操作,并且这些交易以类似于八卦的方式迅速传播到网络上的其他节点。

每个节点根据以下方面独立验证每个新传入交易的有效性:(a)遵守区块链规则,(b)其数字签名,以及(c)与先前看到的交易有任何冲突。 如果事务通过了这些测试,它将进入该节点的临时未确认事务的本地列表(“内存池”),并将转发给其对等节点。 失败的交易将被完全拒绝,而其他评估取决于看不见的交易将被放置在临时的暂挂区域(“孤儿池”)中。

网络上的“验证器”节点之一会定期生成一个新块,其中包含一组尚未确认的交易。 每个块都有一个唯一的32字节标识符,称为“哈希”,该标识符完全由块的内容确定。 每个块还包括一个时间戳和一个通过其哈希值链接到前一个块的链接,从而创建了可以追溯到最开始的文字“块链”。

就像事务一样,块以对等方式在网络中传播,并由每个节点独立验证。 要被节点接受,一个块必须包含一组有效的事务,这些事务不会相互冲突,也不会与之前链接的块中的冲突。 如果某个块通过了此测试和其他测试,则将其添加到该节点的区块链本地副本中,并“确认”其中的交易。 节点的内存池或孤立池中与新块中的那些冲突的任何事务都将立即被丢弃。

每个链都采用某种策略来确保区块由其多个参与者生成。 这确保了任何单个节点或小组节点都无法抓住对区块链内容的控制权。 诸如比特币之类的大多数公共区块链都使用“工作量证明”,这使得互联网上任何能够解决毫无意义且极难的数学难题的人都可以创建区块。 相比之下,在私有区块链中,块倾向于由一个或多个允许的验证者签名,并使用适当的方案来防止少数群体控制。 我们的产品 多链 使用一种称为“挖掘多样性”的技术,该技术要求最小比例的允许验证者参与以创建有效链。

根据所使用的共识机制,两个不同的验证器节点可能同时生成冲突的块,这两个块均指向相同的先前块。 当发生这种“叉子”时,网络中的不同节点将首先看到不同的块,从而导致它们对链的近期历史有不同的看法。 这些分叉由区块链软件自动解决,一旦新的区块到达其中一个分支,就重新获得共识。 较短分支上的节点会自动倒回其最后一块,并在较长块上重放这两个块。 如果我们真的很不幸,并且两个分支同时扩展,则将在一个分支上的第三个块之后或之后的那个块上解决冲突,依此类推。 在实践中,叉子持续存在的可能性随着其长度的增加而呈指数下降。 在验证器数量有限的私有链中,在少量的块之后,可能性可以降低为零。

尽管如此,重要的是要记住每个节点都在由特定个人或组织拥有和控制的计算机系统上运行,因此区块链不能 它无所不能。 该链的目的是帮助诚实节点保持同步,但是,如果有足够多的参与者选择更改规则,则没有尘世的力量可以阻止它们。 这就是为什么我们需要停止询问特定区块链是否真正且绝对不变的原因,因为答案将始终是“否”。 相反,我们应该考虑 条件 在这种情况下可以修改特定的区块链,然后检查我们是否满足这些条件 对于我们考虑的用例.

公共链中的可变性

让我们回到引言中引用的两个例子,其中不变性学说被用作嘲笑的基础。 我们将从声称许可的区块链中使用的共识验证程序无法带来公共链所承诺的“真正的不变性”这一主张开始。

通过指出公共区块链本身的脆弱性,最容易解决这种批评。 例如,以太坊区块链遭受了 破坏性的攻击 2016年250月,有人在名为“ DAO”的智能合约中发现了一个编码漏洞,已投资了近XNUMX亿美元,并开始迅速消耗其资金。 尽管这明显违反了合同创建者和投资者的意图, 条款和条件 依靠“代码就是法律”的口头禅。 无论是否合法,不到一个月后,以太坊软件都进行了更新,以防止黑客撤回“赚取”的加密货币。

当然,由于每个以太坊用户都控制自己的计算机,因此无法执行此更新。 但是,它得到了以太坊创始人Vitalik Buterin以及许多其他社区领导人的公开支持。 结果,大多数用户都遵守了,采用新规则的区块链保留了名称“以太坊”。 少数人不同意更改,并按照其原始规则继续使用区块链,并获得了“以太坊经典”头衔。 更准确的名称选择可能是“以太坊受损”和“以太坊纯”。 无论哪种方式,民主就是民主,(实用主义和流行的)“以太坊”现在的价值(理想主义的但被边缘化)“以太坊经典”的价值是其十倍以上。

现在,让我们考虑一种可以降低公共区块链不可变性的较不仁慈的方式。 回想一下,比特币和以太坊中的区块创建或“挖矿”使用工作量证明方案,在该方案中必须解决数学问题才能生成区块并要求其奖励。 这种奖励的价值不可避免地将采矿变成了军备竞赛,矿工竞相更快地解决问题。 为了进行补偿,网络会定期调整难度以维持恒定的区块创建速度,比特币每10分钟一次,以太坊每15秒一次。

在过去的5年里, 比特币的困难 增长了350,000倍。 如今,绝大多数的比特币开采都在天气寒冷,电价便宜的地方使用昂贵的专用硬件进行。 例如,$ 1,089将为您购买 Antminer S9,它的排雷速度是任何台式计算机的10,000倍,并且耗电多10倍。 这距创建比特币的民主理想还有很长的路要走,即使它确实使区块链极为安全。

好吧,有点安全。 如果有人想破坏比特币区块链的不变性,这就是他们的做法。 首先,他们将安装比网络其余部分总和更多的挖掘能力,从而造成所谓的“ 51%攻击”。 第二,他们不公开参与采矿过程,而是开采自己的“秘密分支”,其中包含他们批准的任何交易并审查其余交易。 最终,当经过了所需的时间后,他们将向网络匿名广播其秘密分支。 由于攻击者具有比网络其余部分更大的挖掘能力,因此其分支机构比公共分支机构包含更多的工作量证明。 因此,每个比特币节点都将切换,因为比特币规则规定,较困难的分支将获胜。 任何先前不在秘密分支机构确认的交易都将被撤消,他们花费的比特币可以发送到其他地方。

到现在为止,大多数比特币信徒都会大笑,因为我写的“安装的挖矿能力比网络中其余部分的总和还多”,这似乎微不足道。 他们有一个观点,因为这当然不是 ,否则很多人已经做到了。 您需要大量的采矿设备和大量的电力来为其供电,而这两项都需要花费大量资金。 但这是大多数比特币刷卡者不便的事实: 对于任何中型国家的政府而言,所需资金仍然是很小的变化。

让我们估计一次51%攻击的成本,该攻击会逆转一年的比特币交易。 以目前的比特币价格1500美元和每15分钟10比特币的奖励(包括交易费),矿工每年可赚取约1.2亿美元(1500美元×15×6×24×365)。 假设(合理地)他们没有总体上亏损,或者至少没有亏损太多,这意味着矿工的总支出也必须在同一范围内。 (我在这里通过分摊一次性购买采矿设备的成本来简化,但是400亿美元将为您购买足够的Antminer 9s,以匹配当前比特币网络的采矿能力,因此我们处于正确的位置。)

现在想想 报告 中国公民正在使用比特币来规避其国家的资本管制。 并进一步考虑中国政府的税收收入约为3美元 每年。 一个非民主国家的政府会否花费其预算的0.04%,以关闭一种流行的非法从该国提取资金的方法? 我不会说答案是 一定 是。 但是如果您认为答案是 无疑 不,您不仅仅是天真。 特别是考虑到据报道中国 拥有2万员工 警察互联网内容,如果我们假设工资为10美元,则每年总计5,000亿美元。 这就算出了逆转一年比特币交易的1.2亿美元成本。

即使是这种分析也没有充分说明这个问题,因为中国政府可以更轻松,更便宜地破坏比特币网络。 看来大多数比特币采矿 发生在中国,由于低成本水力发电等因素。 只要有几个坦克和排,中国军队就可以实际占领这些比特币采矿业务,并将其重新用于审查或撤消交易。 虽然更广阔的比特币世界无疑会引起人们的注意,但如果不从根本上改变比特币本身的治理结构(以及本质),它是无能为力的。 审查免费资金是什么?

这些都不应该被解释为对比特币设计的批评,或者对网络灾难将实际发生的预测。 比特币区块链是一项了不起的工程,甚至对于其创建者所想到的目的而言,甚至是完美的。 而且如果我不得不花钱,我敢打赌中国和其他政府 大概 不会以这种方式攻击比特币,因为这样做并不符合他们的最终利益。 他们更有可能将愤怒集中在Dash,Zcash和Monero等更难以追踪的表兄弟身上。

尽管如此,这种干扰形式的可能性仅仅是把加密货币不变性学说放在其位置上。 比特币区块链及其同类产品在任何完美或绝对意义上都不是一成不变的。 相反,只要没有足够大和足够富裕的人决定消灭它们,它们就不会改变。 不过,依靠 经济 颠覆网络的成本,加密货币不变性满足了那些不想信任政府,公司和银行的人们的特定需求。 这可能并不完美,但这是他们所能做到的。

可重写的私人链

现在让我们进入为政府和大公司的需求而设计的私有区块链。 我们可以首先指出,从这些组织的角度来看,基于工作量证明的不变性是 商业的, 法律监管 非入门级,因为它允许任何(足够富裕的)参与者匿名攻击网络。 对于机构而言,不变性只能建立在其他类似机构的良好行为基础上,它们可以与它们签定合同并在必要时提起诉讼。 另外,私有区块链的运行成本要低得多,因为区块只需要来自批准它们的节点的简单数字签名即可。 只要大多数验证者节点都遵循该规则,最终结果将比任何公共加密货币都能够提供更强大和更便宜的不变性。

当然,如果链中的所有参与者决定一起这样做,不变性仍然很容易被破坏。 让我们想象一下,六家医院使用私有区块链来汇总感染数据。 一家医院的程序向链中写入了大量错误的数据集,这给其他参与者带来了不便。 几个电话后,所有医院的 IT 部门都同意将他们的节点“倒回”一小时,删除有问题的数据,然后让链继续运行,就像什么都没发生一样。 如果所有医院都同意这样做,谁来阻止他们? 的确,除了涉案人员,谁会知道这件事的发生? (需要注意的是,一些共识算法如 PBFT 没有提供官方的回滚机制,但这对治理无济于事,因为节点仍然可以绕过规则。)

现在考虑一种情况,其中大多数私有区块链参与者同意倒带并删除一些交易,但有少数人拒绝了他们的同意。 由于每个组织的节点都在其最终控制之下,因此没有人可以强迫少数人加入共识。 但是,通过坚持自己的原则,这些用户会发现自己陷入了被其他所有人忽略的情况。 就像以太坊经典的忠实拥护者一样,他们在天堂的地位也可以得到保证。 但是回到地球上,它们将被排除在部署该链的共识过程之外,并且可能会完全放弃。 共识之外交易的唯一实际应用是作为法院的证据。

考虑到这一点,让我们讨论第二种情况,在这种情况下,使用区块链不变性学说来嘲笑思想。 在这里,我们指的是埃森哲的 使用变色龙哈希 使埋在链条深处的积木易于更换。 主要动机 由David Treat描述,是为了快速有效地删除有问题的旧交易。 根据该计划,如果确实发生了块替换,则会留下一个“疤痕”,所有参与者都可以看到。 (应该注意,任何以后依赖于已删除事务的事务也都需要删除。)

宣布这个想法时,很难高估多少人对此表示蔑视。 Twitter和LinkedIn令人震惊和困惑。 我不仅在谈论加密货币人群,它在嘲笑与企业区块链相关的任何事物时都倍感愉悦。 私有区块链拥护者也广泛抨击了这个想法。

然而,在适当的条件下,允许通过变色龙哈希追溯修改区块链的想法很有意义。 为了理解为什么,我们从一个简单的问题开始:在这种类型的区块链中,谁真正有能力替换旧块? 显然,它不能是任何身份不明的网络参与者,因为那样会使链不可管理。

答案是,变色龙哈希只能由持有其秘密密钥的人使用。 需要密钥,以使具有不同事务的新版本块具有与以前相同的变色龙散列。 当然,我们可能不希望在区块链中进行集中控制,因此我们可以通过在每个块中具有多个变色龙哈希来使该方案更强大,每个哈希键的密钥都由另一方持有。 否则我们可能会使用 秘密分享 在多方之间划分单个变色龙哈希键的技术。 无论哪种方式,都可以对链进行配置,以便仅在大多数密钥持有者批准的情况下才可以进行追溯块替换。 开始听起来很熟悉吗?

请允许我将并行渲染更明确。 假设我们在负责块创建的相同验证节点之间共享对变色龙散列的控制。 这意味着只有在大多数验证节点同意的情况下才能替换旧块。 但是,正如我们之前所讨论的, 任何 区块链可以 已经 多数验证节点通过倒带和重播机制追溯修改。 所以就治理而言 受验证者多数约束的变色龙哈希值没有任何区别。

如果是这样,为什么还要打扰他们呢? 答案是: 性能优化,因为变色龙散列比以前更有效地替换链中的旧块。 想象一下,我们需要从已经运行了5年的区块链的开始删除交易。 也许这是由于欧盟的 被遗忘权 立法,允许个人从公司记录中删除其个人数据。 节点不能只是从磁盘上擦除有问题的事务,因为这会更改相应块的哈希并中断链中的链接。 下次扫描或共享区块链时,一切都会崩溃。

解决这个问题 也完全不需要 变色哈希,节点必须重写没有问题事务的早期块,计算该块的新哈希,然后更改嵌入在下一个块中的哈希以进行匹配。 但这也将影响下一个块自己的哈希,必须在后续块中重新计算和更新该哈希,以此类推。 尽管从原理上讲这种机制是可行的,但要在具有数百万个区块和交易的区块链中完成可能要花费数小时或数天。 更糟糕的是,在进行此过程时,节点可能无法处理新的传入网络活动。 因此,变色龙散列提供了一种计算效率更高的方法来实现相同的目标。 如果您想象一个不好的交易,例如一块岩石被埋在地下数英里之内,那么变色龙哈希可以将岩石传送到地面,而不是让我们一直向下挖掘,找回岩石并填充孔。

不变性细微差别

我希望通过回顾工作量证明区块链的风险和变色龙散列的技术价值,使您确信,区块链不变性比“是或否”问题更细微差别。 报价 西蒙·泰勒(Simon Taylor)引用伊恩·格里格(Ian Grigg),问题必须始终是“你是谁,你想达到什么目标?”

对于想要避免政府发行的货币和传统银行系统的加密货币信徒来说,相信一个公共的工作量证明区块链是完全明智的,其工作的不变性取决于经济而不是受托方。 即使他们必须忍受大型政府(或其他富有的行动者)关闭网络的可能性,他们也可以从这将是痛苦且昂贵的行动中得到安慰。 毫无疑问,他们希望随着其价值和采矿能力的持续增长,加密货币只会变得更加安全。

另一方面,对于想要跨组织边界安全共享数据库的企业和其他机构,工作量证明的不变性根本没有意义。 它不仅非常昂贵,而且还允许任何有足够动力的参与者匿名夺取对链的控制权,并检查或逆向交易。 这些用户需要的是不可变性,其基础是大多数已确定的验证者节点的良好行为,并以合同和法律为后盾。

最后,对于大多数许可的区块链用例,我们可能不希望验证者节点能够轻松,廉价地替换链中的旧块。 饰演Dave Birch 当时说,“纠正错误借方的方法是正确借方”,而不是假装借方从未发生过。 尽管如此,对于那些我们确实需要额外灵活性的情况,变色龙哈希有助于使区块链成为实际选择。

请发表任何评论 在LinkedIn.

时间戳记:

更多来自 Multichain