区块链的不可更改性神话

空白的记忆 发布在 区块链 3 5153

Dr Gideon Greenspan是Coin Sciences的创始人兼CEO,Coin Sciences是私有区块链MultiChain平台背后的公司。 

Screen-Shot-2017-05-07-at-9.08.00-PM-e1494205731544

在这篇文章中,Greenspan攻击了区块链系统能够实现真正不可更改性的想法,认为这种特征的一种更加相对的定义可以更好地概括这种技术的能力。

如果你问熟悉区块链的人关于这种技术有哪些特征,那么“不可更改的”这个词总是不可避免地出现在回应中。

直白地讲,“不可更改的”这个词被用于指代某种永远不可修改或变化的东西。对于区块链,这个词是指交易的全球日志,是通过区块链参与者之间达成的共识创建的。其基本概念是:一旦一笔区块链交易获得足够的验证,某种密码学就会确保这笔交易永远不会被替代或逆转。这是区块链不同于那些能够按照意愿编辑和删除的常规文件或数据库的标志,或者说理论上是这么说的。

在区块链争论的喧闹舞台上 ,不可更改性已经成为一种准宗教的教义——一种不得动摇或质疑的核心信念。就像主流宗教中的教义一样,反对阵营成员使用不可更改性作为一种嘲弄和奚落的武器。

过去一年见证了两个突出的例子:

其一,加密货币提倡者声称不可更改性只有通过去中心化经济机制,如工作量证明实现。从这个角度来讲,私有区块链就是可笑的,因为私有链取决于一个已知的验证者团队的集体良好行为——很明显是不可信任的。

一些蔑视直指可编辑的(或可更改的)区块链的想法,这种区块链的交易历史可以在某些条件下被进行一些可追溯修改。嘲笑者提出问题说:“如果区块链的内容能够被轻易更改,那么这种区块链还有什么意义?”

对于我们这些旁观者来讲,看到这些相互揭短的行为确实有趣。不仅是因为这两种批评显然都是错误的。两者对区块链的不可更改性质存在着根本性误解。

长话短说,以下就是本质的原因:

“在区块链中,没有完美的不可更改性这种东西。真正的问题是:在什么情况下,一种特殊的区块链能够或不能够被更改?这些条件与我们正在尝试解决的问题匹配吗?

换句话说,区块链的交易并不是写在上帝的思想中。相反,区块链的行为依赖于有形的计算机系统网络,这种网络总是容易遭受破坏或腐败。但是,在我们详细解释之前 ,让我们先回顾一些区块链本身的一些基层知识。

 

区块链简介

 

区块链是运行在一组节点之上的,每一个节点可以由一个独立的公司、个人或组织来控制。这些节点相互连接在一个密集的点对点网络中,因此没有一个节点会成为一个控制或失败的中心点。

每一个节点能够生成交易并对交易进行数字化签名,这代表着某种账本或数据库的运行,这些交易会被快速传播到其他网络节点,就像传播八卦消息一样。

每一个节点都会独立验证每一笔新进入的交易的有效性,根据以下条件:(a)该交易对区块链规则的遵守性,(b)该交易的数字签名和(c)与之前的交易是否有冲突。如果这笔交易通过了这些测试,它就会进入该节点的本地临时未确认交易列表(内存池),并将被转发给其它节点。

未能验证的交易将会被直接拒绝,而其他评估取决于未看到的交易的交易会被放在一个临时持有区(孤池“orphan pool”)。

在周期性间隔之间,新的区块由网络上的一个“验证者”节点生成,该区块包括一些尚未确认的交易。每一个区块都有一个独一无二的32字节识别符——“哈希”,完全由这个区块的内容确定。每一个区块还包括一个时间戳和一个通过其哈希与前一个区块的链接,这就创建了一条逐个排列的“区块链”。

就像交易一样,区块以一种点对点方式在网络上传播,并且通过每一个节点独立被验证。要想被一个节点所接受,那么一个区块就必须包含一组有效的交易,这些交易不能相互之间不能存在冲突或与之前区块中的交易有联系。如果这个区块能够符合这些条件,那么这个区块就会被添加到这个节点的本地区块链副本中,区块中的交易也会被“确认”为有效。这个节点的内存池或孤池中的任何交易如果与这个新区块中的交易有任何冲突,那么就会被立刻抛弃。

每一条区块链逗号利用某种策略来确保区块是由多个参与者生成的。这就确保了没有个人或小规模节点团体能够控制这个区块链的内容。

大多数公有链(如比特币)都使用工作量证明(PoW),这种算法允许网络上的所有人创建区块,只要他可以解决一个毫无意义的、极其复杂的数学难题。相比之下,在私有区块链中,区块往往是由一个或多个获得许可的验证者来进行签名的,其采用了一种适当的方式来阻止少数人控制。

根据所使用的共识机制,两个不同的验证者节点也许会同时生成相互冲突的区块,同时指向同一个前区块。当这种“分叉”发生时,网络中不同的节点首先将会看到不同的区块,导致它们对该区块链最近的记录历史产生不同的看法。

这些分叉会被这个区块链软件自动解决,一旦一个新的区块出现在其中一个分支,共识将会重新获得。在较短区块链分支上的节点将会自动倒回上一个区块并在较长链上重播这两个区块。如果真的非常不走运,两个分支同时进行扩展,这种冲突将会在其中一个分支的第三个区块之后解决,或者以此类推。在实践中,分叉持续下去的可能性会随着链的增长而呈指数下降。在验证者数量有限的私有链中,这种可能性会在少量区块之后降低到0。

无论怎样,重要的是要记住每一个节点都运行在一个由某个特殊人或组织所有或控制的计算机系统上,所以这个区块链不能强迫它做任何事情。这个链的目的就是为了帮助诚实的节点保持同步,但是如果有足够数量的参与者选择改变这个规则,那么就没有任何力量能够阻挡他们。

这也就是为什么我们不要在问某种区块链是否真的和绝对的不可更改,因为这个答案一直都是NO。相反,我们应该考虑在哪些条件下区块链能够被修改,然后检查这些条件对我们所考虑的用例是否合适。

 

公有链的可更改性

 

让我们回到介绍中引用的那两个例子,其中不可更改性原则已经被用作嘲笑的基础。

我们以一种声称开始:许可式区块链所使用的共识确认流程不能带来公有链所承诺的那种“真正的不可更改性”。

这种质疑最容易解决,只需要通过指出公有链本身弱点即可。例如以太坊区块链在2106年6月份就曾遭受过一场灾难性漏洞。有人在一种叫做The DAO的智能合约中——该项目是目前全球最大的众筹项目,筹集超过1.5亿美元资金——发现了一个代码漏洞,攻击者利用这个漏洞迅速抽取这个项目的资金。尽管这很明显有违合约创建者和投资者的意图,但是该合约的条款依赖于“代码即法律”这个信条。然而,不到一个月之后,以太坊软件就被更新来阻止攻击者提走他们利用这个漏洞所获得的资金。

当然,这次更新不能强制执行,因为每一位以太坊用户控制着他们自己的电脑。然而这次更新受到了以太坊创始人Vitalik Buterin,以及社区中许多其他领导者的支持。结果就是大多数用户都遵从进行了更新,使用新共识规定的区块链继续保持“以太坊”这个名字。少数人并不同意这次更新,所以他们继续使用原始规定的区块链,也就是“以太坊经典(Ethereum Classic)”。一种更准确的命名选择就是“以太坊妥协”和“以太坊纯净”。无论以哪种方式,民主就是民主,(实用的和著名的)“以太坊”如今的价值是(理想主义的)“以太坊经典”的10倍。

现在让我们考虑一种不太仁慈的方式——公有区块链不可更改性能够被破坏。回想一下比特币和以太坊的区块创建或“挖矿”使用了一种PoW方法,这种方法中必须解决一个数学问题从而才能生成一个区块并索取区块奖励。这个奖励的价值不可避免地将挖矿变成了一种军备竞赛,矿工相互竞争谁能更快地解决数学问题。为了抵消,网络周期性地调整挖矿困难以保持恒定的区块创建速率,比特币每十分钟创建一个区块,以太坊每15秒创建一个区块。

在过去5年中,比特币的挖矿难度已经增长了350,000倍。如今绝大多数的比特币挖矿发生在昂贵和专业的硬件设备上,位于气温低且电力成本低的地理位置。

例如,1080美元能够买一台蚂蚁矿机S9,这种矿机的挖矿速度是任何桌面计算机的10000倍,同时消耗电力也高出10倍。这与比特币所创建的那种民主理想相差甚远,尽管这能够使比特币区块链极为安全。

好吧,某种程度上安全 。如果某人想要破坏比特币区块链的不可更改性,以下就是他们如何做。首先,他们需要掌控比其他人加起来还要多的挖矿能力,创造所谓的“51%攻击”。其次,取代公开参与挖矿流程,他们可以挖掘自己的“秘密分支”,包含所有他们批准的交易和审查其他交易。最后,当所需的时间已经过去了,他们将匿名广播他们的秘密分支到网络。由于攻击者拥有比网络其他人加起来还要多的算力,他们的分支将会比公共链包含更多工作量证明。每一个比特币节点都将切换古来,因为比特币的规则声明更困难的分支胜出。任何之前确认过但不存在于这个秘密分支中的交易都将被逆转,他们支付的比特币可能会被发送到其他地方。

讲到这里,大多数比特币信徒都会大笑,因为我写道“掌控比网络其他人加起来还要多的挖矿能力”,好像说的很容易实现似的。他们这么认为也有道理,因为当然这并不容易实现,否则很多人已经这样做了。要做的这一点,你需要大量挖矿设备和电力,任何一项都需要庞大的资金支持。但是很多比特币信徒都忽略了一个事实:对于任何中等国家的政府而言,这些所需的资金仍旧是个小数目。

让我们估算一下要回滚一年比特币交易的51%攻击的成本。按照1500美元的币价以及每10分钟15BTC的区块奖励(包括交易手续费),矿工一年能够赚取大约12亿美元($1500x15x6x24x365)。假如(合理地)他们在整体上将不损失任何钱或者至少不损失那么多,这也就是说矿工总支出必须保持在相同的范围内。(我在这里通过分期支付购买挖矿设备的一次性成本进行了简化,但是你需要购买4000万美元的蚂蚁矿机S9才能匹配目前的比特币挖矿算力)

现在,思考一下那些有关中国居民正在使用比特币用于规避本国资本管制的报道。考虑到中国政府每年的税收收入接近3万亿美元。一个国家会花费本国0.04%的预算来关闭一种流行的用于将资金非法转到国外的方法吗?

我不会断言这个答案肯定是Yes。但是如果你认为答案绝对是NO,那你就有点天真了。尤其是考虑到有报道说中国雇佣200万人来维护互联网内容,如果我们假设这些人多的薪水只有较低的5000美元,那么加起来每年就高达100亿美元。那么投入12亿美元来修改一年的比特币交易也是可以想象的。

这种分析甚至还是低估了这个问题,因为中国政府可以轻易且不费太多代价就可以破坏比特币网络。由于水力发电成本低等因素,全球绝大多数比特币挖矿都发生在中国,中国方面完全可以控制住这些比特币挖矿,并重新审查或反向交易。尽管如果这样做,比特币领域其他人毫无疑问会注意的,但是如果不从根本上改变比特币本身的这种管理结构,他们也无计可施。什么是审查的意外之物?

这些都不应该被理解为对比特币设计的批评,或者一种对网络灾难真的会发生的预测。比特币区块链是一项了不起的工程,也许甚至完美地实现了其创造者的目的。如果我有钱可以投资比特币,那么我会押注中国和其他国家政府也许不会以这种方式攻击比特币,因为这不符合他们的最高利益。他们更有可能会把愤怒发泄在更加不可能被跟踪的加密货币,如达世币、Zcash和门罗币。

不管怎样,这种形式干预的可能性使这种加密货币的不可更改性受到了困扰。比特币区块链及其同类在任何完美的或绝对的意义上都不是不可更改的。相反,只要足够强大,足够富有的人决定不摧毁它们,那么它们就是不可更改的。不过,根据颠覆比特币网络所需要的经济成本,这种加密货币不可更改性已经足以满足那些不想信任政府、公司和银行的人的特殊需求。

这也许并不是完美的,但这是他们能做的最好的。

 

可重写的私有链

 

现在,让我们在谈谈私有区块链,这种设计用来满足政府和大型企业需要的区块链。

首先要指出的是,从政府和企业机构组织的角度来讲,基于PoW的不可更改性是在商业、法律和监管方面无法获得成功的,因为这种不可更改性允许任何(足够富有的)行为者能够攻击这个网络。对于机构而言,不可更改性只能建立在其他类似机构的良好行为中,那些他们能够与之签订合同并且在需要的时候能够起诉的机构。

私有链的优势在于运行的成本要低的多,因为私有链的区块只需要一种来自节点的简单数字签名。只要大多数验证者节点遵循规定,最终就能获得比任何公有加密货币可以提供的更强大和成本更低的不可更改性。

当然,如果某种区块链的所有参与者达成一致共识,不可更改性还是很容易被破坏的。让我们想象一下有一种由6家医院所使用的用于汇集感染数据的私有链。其中一家医院向这条区块链写入了一个庞大的错误数据集,这给其他医院参与者带来了很多不便。经过几次通话之后,所有的医院的IT部门同意“倒回”他们的节点到一小时之前,删除这些有问题的数据,然后让这条链像从未发生过这件事一样继续运行。

如果所有这些医院同意这么做,那么又有谁要去阻止他们呢?确实,除了涉及到的员工,谁又知道发生过什么呢?(需要指出的是,某些共识算法,如PBFT,并不提供一种官方的回滚机制,但这对于治理没有任何帮助,因为节点仍旧可以自由绕过这些规定。)

现在考虑这样一种情况:大多数私有链参与者铜罐驿回滚并移除某些交易,但是一小部分参与者不同意。鉴于每一个组织的节点都是由该组织完全掌控的,所以没有人能够强迫少数体加入这种共识。然而,若是坚持自己的原则,那么这些占少数的用户将会发现自己被其他人抛弃在了一个分叉链上。

就像Ethereum Classic(ETC)的忠诚支持者一样 ,他们在道德上占领了高地。但是从现实角度讲,在决定部署哪条链的共识流程中,他们被排除在外,被完全抛弃。

共识之外的交易的唯一实际应用就是作为法院的证据。

记住这一点,让我们讨论一下第二种情况:区块链的不可更改性原则被用于荒谬的想法。

这里我们要说一下埃森哲(Accenture)使用一种可变化哈希来轻易更改一个深埋链中的区块。据David Treat所描述,这种想法的主要动机是为了能够迅速且高效地移除一个旧的有问题的交易。在这种方案中,如果确实发生了区块替换,那么这个区块将会留下一个所有参与者都能看的的“伤疤”。(需要指出的是,这笔被替换的交易之后任何的交易也将会被移除。)

很难夸大当这种想法被宣布的时候有多少人进行了批判攻击。推特和Linkedln上充满了被这个想法惊呆的言论,我不仅是说那些调侃企业区块链加密社区人群。这种想法还受到了私有链倡导者的广泛批评。

然而,在 适当的条件下,这种允许区块链通过可变化哈希进行逆向修改的想法能够带来完美的意义。要理解为什么这么说,首先我们从一个简单的问题来看:在这种类型的区块链中,究竟谁真正拥有替换旧区块的权力?很明显,不可能是任何不明身份的网络参与者,因为这将使这条私有链不受控制。

答案是这种可变哈希只能被那些持有密钥的人所使用。这个密钥是新区块被交给这个相同可变哈希所需要的。当然,我们可能并不想一个区块链存在中心化控制,所以我们通过让每个区块存在都给可变哈希来说这个方案更加强大,而每一个密钥由不同的参与者持有。或者我们可以使用秘密共享技术来在多个参与者之间划分一个可变哈希。无论哪种方式,这条链都可以被配置,所以只有当绝大多数密钥持有者都批准时才可能出现逆转型区块替代。这是不是开始听起来很熟悉?

请允许我表达的更明确一点。让我们说我们在这些相同的负责创建区块的验证节点之间共享对这些可变哈希的控制权。这就意味着如果绝大多数验证节点同意,那么旧的区块就可以被替换。正如我们之前讨论的那样,任何区块链在绝大多数验证节点同意的情况下都可以通过回滚和重放机制被逆向更改。所以就治理而言,可变哈希与验证者大多数并没有什么不同。

如果是这样 ,为什么还要反对可变哈希?答案是:性能优化,因为可变哈希替换旧区块的效率更高。想象一下我们需要移除一笔处于区块链记录开端(5年前)的交易。也许是由于欧盟的“被遗忘权”立法——允许个人让自己的个人数据从企业记录中被移除。节点无法简单地将违规交易从他们的磁盘中移除,因为这将改变对应的区块哈希并破坏这个链的联系。

等到这个区块链在下一次被扫描或共享时,一切都将土崩瓦解。为了不通过可变哈希就能解决这个问题,节点必须重新编写之前没有问题交易的区块,计算这个区块的新哈希,然后改变嵌入在下一个区块的哈希来进行匹配。但是这还将影响下一个区块自己的哈希,这个哈希也必须重新计算并在接下来的区块中更新,以此推移。

尽管这种方式从理论上讲可行,但是对于一种拥有数百万区块和交易的区块链,这将需要数小时或数天来完成。甚至更糟糕,当进行这种流程时,节点也许不能处理新的网络活动。

所以可变哈希提供了一种计算效率更高的方法来实现相同的目标。如果你想象一笔问题交易像一块埋在地下数英里的石头,那么可变哈希能够将这块石头传送到地面,而不是让我们一点点向下挖,然后拿到石头并回填这个洞。

 

不可更改性非常微妙

 

通过回顾PoW区块链的风险和可变哈希的技术价值,我希望我已经说服你区块链不可更改性要比一个YES或者NO问题更加微妙。

引用一下Simon Taylor对Ian Grigg的引用,问题总是:“你是谁以及你想要实现什么?”

对于那些想要避免政府货币和传统银行系统的加密货币信徒而言,完全有意义去信任一种公有PoW区块链,这种区块链的不可更改性在于经济学而不是受信任的机构。即使他们必须生存在政府(或其他有钱的人)破坏这个区块链网络的可能性下,他们应该感到欣慰的是这种破坏过程需要昂贵的成本投入。毫无疑问,他们希望加密货币只会变得更加安全,因为它们的价值和挖矿能力在不断增长。

在另一方面,对于想要安全地跨组织分享数据库的企业和其他机构而言,PoW不可更改性根本没有意义。这不仅出奇地昂贵,而且这种区块链还允许任何足够积极的参与者匿名地抓住这个链的控制权和审查或回滚交易。这些用户所需要的是基于大多数身份明确的验证者节点(受到合约和法律的支持)的良好行为的不可更改性。

最后,对于大多数许可式区块链使用案例,我们也许并不想验证者节点能够轻易地替换旧区块。

正如Dave Birch所说,“纠正一个错误的缺点的方法就是通过一个正确的信誉。而不是假装这个缺点从未发生过。

不管怎样,对于那些我们需要额外灵活性的案例,可变哈希为区块链带来了一种实用的选择。

发文时比特币价格 ¥10414.68
原文:http://www.coindesk.com/blockchain-immutability-myth/
作者:Gideon Greenspan
译者:空白的记忆
稿源(译文):巴比特资讯(http://www.8btc.com/blockchain-immutablity-math)
版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:3

您需要登录后才可以回复 登录|注册
    +1
    +1
    我要点评

    直白地讲,“不可更改的”这个词被用于指代某种永远不可修改或变化的东西。对于区块链,这个词是指交易的全球日志,是通过区块链参与者之间达成的共识创建的。其基本概念是:一旦一笔区块链交易获得足够的验证,某种密码学就会确保这笔交易永远不会被替代或逆转。这是区块链不同于那些能够按照意愿编辑和删除的常规文件或数据库的标志,或者说理论上是这么说的。

    +1
    +1
    我要点评
    Author Image
    cailaiji 212 天前

    正确的信誉

    +1
    +1
    我要点评