LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 巴比特专栏 | 区块链的计算过程可验证性甚于不可删除性

巴比特专栏 | 区块链的计算过程可验证性甚于不可删除性

2020-05-02 玩币族 来源:区块链网络

区块链的本质不是历史记录不可删除的。估计很多人会反对这句话,但我们先看一下案例。比特币并不是不可删除的,白皮书“第7章:回收磁盘空间”明确写了,比特币的历史交易是可以丢弃的。

如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。——《比特币:点对点电子现金系统》7 回收磁盘空间

以太坊同样是可以删除历史交易的,还可以删除账户。Solidity有一个delete操作符,可以用来编写删除历史记录的合约代码,用于回收空间用。为了激励大家释放公共空间,删除还是可以退回gas的。

EoS的智能合约可以使用新的版本对旧版本进行覆盖。EoS还有丢失私钥找回的设计。

可以确定地说,比特币、以太坊和EOS,以及几乎所有的链,严格意义来说历史记录都是可以删除的。这在设计上就保证了历史记录是可删除的。

其实在我们日常生活中,不可删除历史的需求很少。如果把不可删除的特性看成是区块链的本质,那适用范围会相当窄,这样就流行不起来。我们可以重新思考这一特性。

删除历史记录是篡改的子集,篡改还包括了把A直接改成B。

但其实把不可删除,放大到不可篡改,也是成立的。区块链技术可以在业务逻辑上,是可以先把上一笔记录给删除了,退回,再发一笔新的交易。这样就可以在区块链的规则上实现取消交易,或者直接翻转交易。在设计上是完全没有问题的。

如果说不可篡改不是区块链的本质,那区块链凭啥和传统的数据库相比,有啥优势呢?

产品的质量管制有两类思路,一类是结果评估。比如手机,生产出来后,使用各种指标来检测成品,达标后我们就贴上合格标。

还有另一类是过程控制。有些产品是不能对结果进行测量的,否则会造成破坏。比如药,你要进行结果检测就不能吃了。这样的产品可以采用抽样检测,100万个样品,随机抽取1%,样品合格我们就认定整体合格。但还有另外一个质量控制方法,就是对生产过程进行检测。

医药和医械产品,食品等生产,都是要有严格的过程检测的,每一道工序都要符合标准。只有生产工序符合标准,并且还要对成品进行抽样检测,才能合格上市。

区块链的底层运行机制就类似于过程检测。

比特币的每一个矿池节点生产的区块,都是可以被其他节点验证的。其他节点会把组成这个区块的所有交易和区块头,按共识规则一步一步验证。验证区块的过程相当于区块生产的每一道工序,都被验证节点重现一次,看结果是不是和接收到的区块一致。

从区块链的原理来看,你会发现,生产区块的节点和验证区块的节点都和特定的计算机无关的。

工业生产出来的产品,一定是和设备有关的,换一台同样的设备按相同的工艺生产同一产品,最终出来的产品肯定是有差别。就像哲学家说的,世界上没有一片树叶是相同的。

使用过程检测的结果,也无法保证产品100%的同质性。

一直以来,计算机上的软件和数据,也是和特定的计算机有关的。计算机里有一个概念叫可移植性,就是一个程序在一台设备上能跑,在另一台设备上也能跑,并且得出的数据结果无差异。但绝对的数据结果同质,特别是考虑时间因素,是很难做到的。

现在我们为了得到计算结果在多个终端一致,我们都使用云计算。本质上云计算是所有用户终端共同使用的一台设备(云)来完成数据的加工和展示。比如,我们使用多人可编辑的google文档。

区块链这个技术的出现,就实现了一个跨时间和跨计算设备,同质的计算过程。使用区块链技术,可以实现,使用相同的输入,经过计算后,一定得出相同的输出,结果100%同质。这个过程和计算机设备无关,甚至是和时间无关,你可以在做任意时间使用相同的输入得出相同的输出。

也就是说,区块链技术实现了真正的计算过程真实可信。这也是为什么说区块链是信任机器。而区块链之所以要保留历史交易记录,就是为了验证任意时刻的输出结果,提供历史输入信息。

区块链的这种特性,就可以让业务过程可被任意第三方验证,从而自证清白。就像,在以太坊上发ICO,募了多少钱,从哪个地址募来的ETH,代币分发了给哪个地址,都是清晰可以被任意节点验证的。

使用区块链来实现计算过程可验证的产品,和构建不可篡改性的产品,前者可适应的场景要广阔的多。

本文链接:https://www.8btc.com/media/590991转载请注明文章出处

—-

编译者/作者:玩币族

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...