区块链是如何做到交易记录不可被篡改的
假如你手里有比特币,而且知道你手里的比特币就像银行卡里的钱一样,邦定了你的卡号(比特币地址),只有你才能用手里的密码(比特币私钥)签名授权一笔交易。唯一与银行不同的是其他人能看见你所有的资产,不过其他人没有办法调动一丝一毫,除非拿到那个密码——私钥。
可是,既然区块链本质上是个公开的、人手都可以一册的大账本,如果有人篡改了我的某个交易怎么办?如果有人改掉了我的25天前那笔支付给我25比特币,找零回去0.25比特币的交易,改成了支付给我0.25比特币,找零25比特币,那我岂不是要损失好几十万?
这个担心一定很多人都有,目前却一次都没有发生,而且越研究比特币的区块链技术你就会越不担心这件事。
那么,区块链这项技术是如何做到把一个账本明明白白摆在所有人面前,却没人能能够修改里面哪怕一个标点符号的呢?
要想理解区块链为什么无法被篡改,首先要先了解下面两个与区块链相关的非常重要的概念:
SHA256
一种国际公认的优秀加密算法,输入是任意长度的数据,输出总是256位的值,这个值通常我们称之为哈希值,输入值的任何微小的变化都会产生不同的输出。
举个例子,比如说这个256位的哈希值大小代表你跟某样东西之间的距离。原始的哈希值是你跟前面那颗树的距离,你小小的修改了一笔交易的数据,把划给你的值增加了1聪,也就是10的负8次方那么小,结果新生成的哈希值会变成你跟土星环上一颗陨石之间那么远。实际上这个变动会更夸张,弄不好要跨越整个银河系。
注:当下文提到”某某的哈希“时,指的是以某某为输入,经过SHA256算法后生成的256位哈希值。
梅克尔树
一种树状数据结构,比特币的区块链使用了二叉树。
这个二叉树的每个节点都对应一个哈希值:最底层的节点是每笔交易的哈希,第二层的每个节点都是它下方两个哈希拼接后经过SHA256算法后生成的哈希,依次类推直到最顶端只剩一个节点,我们称这个节点为梅克尔根。
回顾下SHA256算法的特性,任何微小的输入变动都会引起输出值剧烈的变化。也就是说,交易记录中的任何变化,哪怕只把输出值增加了1聪,都会引起那次交易哈希翻天覆地的变化,这个变化会影响到第二级的哈希,进而一级一级顺着梅克尔树传递到梅克尔根。
为什么会说篡改很难?
首先,从数据结构上看。
大致上一个区块包含了区块大小、区块头、交易数量、交易数据四个部分。其中交易数据被组织成了梅克尔树结构,区块头中包含了上一个区块的区块头部哈希和本区块中的梅克尔根。
由于区块拥有了这样的组织结构,区块内部的任何交易信息的改动,总会引起梅克尔树根的哈希值变化,进而包含了梅克尔根的区块头会发生变化,最终导致区块头的哈希发生变化。
如果进行了篡改,下一个区块中包含的前一个区块哈希将会跟篡改后的值不匹配。为了不让人发觉本区块的篡改,他必须修改掉后一个区块的头部信息。后一个的后一个头部信息也将需要修改,依次类推,一旦修改了某个区块,后续所有的区块都需要修改才能确保修改的不会被发现。
每一个区块的修改都是是一个非常艰巨的过程,因为区块的生成还需要一个非常特别的东西:工作量证明。
什么意思呢?就是说区块的生成是要消耗工作量才能完成的,实际上这个消耗非常巨大。
那么这个工作量证明到底是怎么回事?
你可能还记得区块头的哈希值这个概念,区块链技术对这个256位哈希值会有一个要求,就是这个值必须小于某个上限。回顾SHA256这个算法的概念,你会发现,输出的哈希值是非常随机的,如果需要把结果落入特定的范围,需要不停的修改输入进行尝试,直到输出满足要求。在区块链中,在区块的头部有一个32位的随机量可以修改,以完成调整最终哈希的目的。
当前,满足小于这个上限值要求的难度有多大呢?一个专用的顶级矿机(一种专门用来计算哈希的计算设备),需要平均工作14个月才能找到一个合适的目标哈希。每修改一个区块,中间消耗的电量和时间估计都会超出被修改的账单中的获益,更不用说还需要修改很多个。
甚至,这个修改完成后,还有一个更艰巨的任务,就是黑掉全世界51%以上的区块链备份电脑。否则,即使你的账本修改的很完美,但是跟其他大部分人的不一致,那这个修改也毫无作用。
那么,篡改交易信息的意义又是什么?
你可能感兴趣的文章
-
比特币挖矿是怎么进行的呢
-
比特币挖矿是怎么进行的呢
具体的流程如下,当某一个矿工监听到这笔交易时,首先会对交易信息进行验证。通过验证的交易则会被矿工记录下来,保存在自己的数据库里面。全世界可能有成千上万个矿工在进...
2024-10-16
比特币实时交易信息,如何购买比特币
-
比特币实时交易信息,如何购买比特币
在欧易OKX上不仅可以法币直接购买比特币,也可以选择币币交易、合约交易等多种高效的交易产品来获利
2024-10-15
深入浅出从一笔比特币交易的生命周期看懂区
-
深入浅出从一笔比特币交易的生命周期看懂区
为什么要写这篇文章?最近看了许多解释区块链的文章,发现很多文章要么过于概念化或谈及一些应用前景和行业判断,要么又过于专业晦涩,使得很多没有技术底子的小伙伴难以真...
2024-10-10
比特币钱包注册流程分享:硬钱包和软钱包的区别
-
比特币钱包注册流程分享:硬钱包和软钱包的区别
四、总结 总之,选择适合自己的比特币钱包需要考虑多个因素,包括安全性、使用体验、灵活性以及价格等
2024-10-07
如何理解区块链构建的信任?
-
如何理解区块链构建的信任?
时至今日,关于区块链定义的解释依旧是五花八门,层出不穷。对于很多普罗大众而言,还没有分清楚什么是区块链,什么是比特币的时候,就已经高喊“ALL IN”口号,一股...
2024-09-30
矿工怎么赚钱?区块链转账转的是代码?
-
矿工怎么赚钱?区块链转账转的是代码?
随着区块链的普及和实体的运用,区块链资产的转账还有不少小伙伴不熟悉,本期就为大家分析一下数字资产的转账原理。01区块链资产怎么转账?生活中我们都有自己的银行账户...
2024-09-29
让小白也能轻松看懂“区块链”的基础知识
-
让小白也能轻松看懂“区块链”的基础知识
其实关于“区块链”的基础知识普及,网上已经有了各种版本不同的解读,或许有人认为“区块链”距离最终用户比较遥远,但看看你身边的人,应该已经有人开始与“区块链”及相...
2024-09-27
区块链是如何做到交易记录不可被篡改的
-
区块链是如何做到交易记录不可被篡改的
假如你手里有比特币,而且知道你手里的比特币就像银行卡里的钱一样,邦定了你的卡号(比特币地址),只有你才能用手里的密码(比特币私钥)签名授权一笔交易。唯一与银行不...
2024-09-27
图解区块链、比特币
-
图解区块链、比特币
比特币的交易信息都会记录到一个去中心化的账本上,这个账本就是区块链,如果我们把区块链类比成一个实体账本,那么每个区块就相当于这个账本中的一页,每十分钟生成一页新...
2024-09-09
如何解决区块链的隐私保护问题?
-
如何解决区块链的隐私保护问题?
谈及区块链,大家总会给它贴上“数据透明、共享”的标签。但是,对某些企业而言,数据就是自己保持旺盛竞争力的法宝,将数据分享出去,有可能就是自找苦吃。因此,区块链在...
2024-09-07