区块链是怎么样做到交易数据防篡改的

当前位置:首页 > 币圈百科 > 区块链是怎么样做到交易数据防篡改的

区块链是怎么样做到交易数据防篡改的

2022-11-14币圈百科832
朋友们,晚上好。我们又见面了。今天和大家分享的主题是《区块链是怎么样做到交易数据防篡改的》?本课题属于数据安全领域。如果得到充分发展,它将涵盖广泛的问题。那还是按照以前的原则,我们一次只讲一个核心点,破了就破了;在讲解的过程中,我会结合一小部分代码,但我会尽量简单明了,让大家不仅能感受到区块链的防篡改特性,还能展示它是如何实现的。是否真的如他一直宣称的那样做到了数据防篡改?让我们现在就开始;

在此之前,我们先回忆一下传统互联网或者移动互联网行业,人们是如何存储数据的。

通常的做法是使用关系数据库,比如mysql和oracle,建立一个数据记录,并在其中存储我们的各种属性值。现在,让我们挑选最敏感的领域,账户余额,来谈谈;

现在我给你举两个可怕的例子。第一种是:如果有人在后台程序中,留了后门,可以直接注入脚本代码,操作数据库,修改账户余额,然后进行非法提现或者商品交易;二是公司有些同学有数据库权限,可以直接登录数据,然后直接更新数据来更改账户余额。这两个例子是不是很刺激?

如果使用区块链系统存储数据资源,就不会出现这种情况。即使出现这种情况,也会被区块链系统自动检测到,然后被篡改的记录会被踢出链,然后健康的交易数据会从其他存储节点同步;

下面我们来看看。区块链是怎么做的?我们以比特币系统为例。

在此之前,我先给大家介绍一下比特币系统的账户模型;在比特币中,它是一个没有用户资产记录的概念,不会像mysql中那样用一个数据存储记录来表示;其资产是通过将所有的交易记录串联起来而获得的;此外,区块链制度明确规定,账户中的资产来源可以一直追溯到创世区块,即采矿收入;

比如你收到小张转账50元;小张转给你的50元中,20元是小李的,30元是小王的,小李的20元是小刘的,17元是孟晓的.................我们来看看区块链体系是如何运作的:

所谓资金循环,就是交易。所以比特币系统设计了非常核心的数据结构。请看下面的截图:

MsgTx是表达一个交易。在这个事务结构中,有一个切片字段TxIn,是完整的。 在这个结构中,有一个PreviousOutPoint,表示这个输入的源地址;这样的交易信息会先被密封在一个块结构中,经过验证后再存储在数据库中;在之前的交易记录中,也会有一个指向前方的PreviousOutPoint是否清楚每笔资金的来源?如果感兴趣,可以追溯到数据库中的创建块。

蓑衣网小编2022

我们来看看防篡改;先说50元来自上面的张账户;在这里,我想提一下P2P网络,它是区块链运营的基础;区块链系统是一个完全松散自治的P2P网络。在这个网络中,节点会一直加入和离开;而且没有中心节点来管理,每个节点依靠算法维护自己的数据块信息;

现在我们来看看小张的账户;如果小张想把自己的50元账户换成50万元;他首先要做的是控制全网51%以上的节点。从概率上来计算这个基本不可能,可以认为失败是不可避免的(概率中的最大似然估计法);假设一个人非常幸运,他真的控制了全网51%的节点;这里还有一个更严重的挑战:获取用户的私钥;上面我们说了,小张要把这50换成50万,要在小张之前把小李的,小王的,小刘的,孟晓的都换了.简而言之,就是盗取与这50元相关的所有人的私钥,然后篡改数据来糊弄区块链系统;

有两个问蓑衣网小编2022题:1为什么需要改那么多人的数据?这是因为,如前所述,区块链系统将记录每个自己的详细来源。交易验证时发现数据有误,会继续回去验证;2为什么需要私钥?对于这个数据结构,我们需要看下图最后一个数据结构TxOut,

。这个数据结构表示用户的交易输出,比如小张的50元的来源是小李的20和小王的30,所以这20和30分别对应小李的交易输出;大家注意了。此TxOut中有一个PkScript字段。专业术语是锁脚本;意思是,如果你想花这笔钱,或者动这笔钱,你需要有相应的解锁脚本和锁定脚本来匹配;否则会失败,被系统发现;这个锁定脚本,通常是用户的公钥,而解锁脚本是用户的私钥;简单意味着非对称加密验证;因此,如果用户想要篡改资金数额,不仅需要控制全网51%以上的节点,还需要盗取很多相关人员的密钥。难度可想而知;

蓑衣网小编2022

说到这里,我觉得基本清楚了,区块链是如何实现数据防篡改的;虽然我尽量说白话文,但是在这个过程中,还是不可避免的夹杂了一些专业术语

区块链是怎么样做到交易数据防篡改的 | 分享给朋友: