不可篡改

文章正文
发布时间:2024-08-05 00:45

区块链技术刚出来的时候,目的就是为了防篡改的。而区块链技术及应用发展至今,包括其被用于银行安全结算等,都是因为其对外号称是不可篡改的,即安全的。不可篡改是指记录的信息的没有被改变过。

简介

哈希算法就是上面提到的区块链中保证交易信息不可篡改的单向密码体制。该算法的思想是接收一段明文,以一种不可逆的方式将它转化成一段长度较短、位数固定的输出散列。这个加密过程是不可逆的,这就意味着无法通过输出散列的内容推断出任何与原文有关的信息。任何输入信息的变化,哪怕仅仅是一位数字的更改,都将导致散列结果的明显变化。基于输出散列与输入原文一一对应的特性,哈希算法可以被用于验证信息是否被修改。

通过哈希算法可对一个交易区块的所有交易信息进行加密,并把记账内容压缩成一串数字和字母组成的字符串,这个字符串无法反推出原来的内容。区块链的哈希值可以唯一、准确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。如果想要确认区块的内容是否被篡改,那么利用哈希算法重新进行计算,记账信息没有变化,计算出的哈希值也将不会产生变化。

在区块链中,通常使用SHA一256的哈希算法进行区块的加密,该算法的输出长度为256位.即生成长度为32字节的随机散列。

以比特币为例,它采用的是SHA256算法,本质上是一种加密算法,这个算法基于的数学原理导致其是随机分布的,即每一个节点“散落”在不同的网络里。1

就像你抓起一把红豆,然后将其洒在盘子或者饼上,每一颗红豆都是随机出现,并且是分散在整个饼上的。

因而理论上,世界上的所有人都可以持有比特币节点(算力)。

但是,这个原理在真实实现的过程中,并没有完全吻合理想状态。

比特币选择的算法被攻击的可能性是存在的,且破解比特币的挖矿程序也是存在的,但是挖矿是靠交易链来保证的,交易一旦确定,要靠伪造的交易链来实现,必须保证在新的交易产生之前能快速的运算出结果,但是现有的计算机是不可能做到的。

举例来看,现在每1秒都有新的交易产生,所以破解算法的人就要在1秒内,趁着新的交易没有产生的那一瞬间,快速运算出破解程序的结果,从而实现篡改。

而以目前计算机的能力来看,攻击所用的时间比正常的交易时间多得多,所以基本不可能伪造成功。除非利用量子计算机,可以实现对现有计算机算力的“碾压”,从而实现篡改。

于是现在,另一种可行的篡改比特币的方式,就是伪造假冒比特币算法,而要实现算法的伪造,持有者必须拥有全部节点中超过51%个节点的部分。

中本聪认为这是很难的一件事,事实上,要把随机散落在各个网络中的节点找到并收集一半以上,这确实是很难的一件事,尤其对于最早发行的比特币来说。

所以是不是现在就没有人拥有超过50%以上的算力呢?

答案是否定的,以比特大陆这家公司为例,它有几万台矿机,能够挖出大量的比特币,因此它拥有现在全球最多的比特币算力,不过对于比特币而言,超过50%很难。

但是,区块链技术是可以延伸的,所以比特大陆沿用了原来的算法,然后在其基础上开发新的货币,如比特现金。

比特现金是比特币的分支,但是因为它们基于的算法原理都是一样的,所以我们可以认为是一种算法,两种币。

因此,在比特现金这个数字货币算力的持有上,因为比特大陆集中了很大的算力去挖比特现金,所以比特现金超过一半的算力在比特大陆手上,因而比特大陆就拥有篡改比特现金的能力。

解释

什么是区块链的不可篡改性,通过下面的例子就会明白。

微信群里记录的是聊天记录,聊天记录不可篡改。而区块链也是存着一些特定的“聊天记录”,这些记录在区块链世界里有独特的名字——交易。这些历史交易使用区块链的方式保存就不可篡改。

其原理是和微信群是一样的,就是所有玩这个区块链的人(被称为节点钱包)都完整地保留一份交易的历史记录。这样任何单个人想修改这些历史记录,别的人都可以拿出自己的那一份备份,来证明这些心怀不轨的人试图作弊。只要发现这样作弊的人,其他人就会将这个人孤立掉,直接踢出这个网络。

本词条内容贡献者为:

肖志勇 - 副教授 - 江南大学