区块链概念大热的背后,真正的价值在这里
在金融领域,账本记录了资产和现金等资源的交易情况,是十分重要的财务记录。我们每个人在银行都有相应的流水记录,而每一条记录之间的顺序通常是按时间进行排序和编号的。这种流水式的账本对于有权限的人来说,篡改起来是非常容易的,比如,他们把几条记录里的内容稍做修改,不仔细查看内容很难看出来。
下图就展示了一个例子:有人把第4页的一行内容进行了修改,你可能很难看出前后的区别,因为账本的变化不够显著(参见下图)。很显然,这种普通的账本篡改起来非常简单,而检查是否篡改却十分困难。
根据这一原理,用户的任何篡改都能反映到页码的变化上。为了更便于检测,我们希望即便只是对内容进行了极小修改,页码都能面目全非。这样做的一个好处是篡改者很难掌握页码的变化。那么,如果有一种账本,他把每一页的内容和页码进行关联,不管对第4页的内容进行了何种修改,页码都会发生突变,比如篡改后第4页的页码变成了40,这样的话,篡改行为就能很快被检测出来。这就是区块链防篡改的第一个主要原理:将页面内容和顺序编号进行关联。
但这样也给真实的记账过程带来一个问题--由于页码的不可控制,记账时很难生成连续的页码,那么,账本的顺序该怎样维护呢?区块链中,在新加入一页账本的时候,就把上一页账本的页码写到当前页的开头,这样就能对所有账本页进行排序了,典型的一个区块链就可以表示成下图的形状:
一个有效账本的第一个规则是:必须保证前后两页的页码一致性。一旦出现页面链接不上,说明账目有假。有了这样一个账本之后,怎么样才能得到一个有效的篡改账本呢?
比如,修改第200页上的某一笔交易,很显然,第200页的页码也发生了变化,那么,为了保持整个区块链的一致性,你必须修改第201页头部记录的页码,由于第201页也变了,那么必须修改第202页头部的页码。也就是说,必须把第200页之后的所有账本都修改了。乍听上去,篡改数据只是增加了一些繁琐度,因此我们需要第二条规则。
一个有效账本的第二条有效性规则是:每一个页码都必须小于一个固定数值。符合第二条规则是极为困难的,这是由于区块链从内容到页码的映射过程有很强的不可预测性,篡改者只有不停地进行随机测试,这个计算量非常大,如果运气不好,上亿次的尝试才能改好一页。

-
2018年的五个网络安全预测
2018-01-25网络安全 -
中国公有云幸存者特质分析
-
2018年云计算的6个预测
2018-01-242018年云计算的6个预测