详情描述:
我们都知道区块链防篡改是区块链技术的一大优势,那么区块链技术是怎么在交易数据中做到防篡改的呢?下面就简单的讲解一下。 《区块链是如何做到交易数据防篡改的》?这个话题属于数据安全领域的问题,如果完全展开来说,涉及到的面非常广;那我们依然按照之前的原则,一次只讲一个核心点,掰开了揉烂了说;在讲解的过程中呢,我会结合一小部分代码,但我会尽量讲的浅显直白一些,让大家不仅感到到区块链防篡改的特性,也展示一下它到底是如何实现的,是不是真的如他一直宣称的那样实现了数据的防篡改?下面就让我们开始; 在这之前,让我们先回忆下在传统互联网或移动互联网行业,大家是怎么存数据的? 通常的做法是,使用关系型数据库,例如mysql、oracle,建一条数据记录,将我们的各种属性值存在里面,现在我们挑一个大家敏感的字段,账户余额来聊; 现在给大家举两个可怕的例子,个是:如果有人在后台程序里,留了后门,可以直接注入一段脚本代码,操作数据库,修改账户余额,然后进行非法提现或者商品买卖;第二个,公司里有的同学有数据库权限,可以直接登进数据,然后直接update操作,把账户余额改掉;这两个例子,是不是非常刺激? 如果,是使用区块链系统,来存储数据资源,就不会出现这种情况。即使出现了这种情况,也会被区块链系统自动检测到,然后把这笔被篡改的记录从链上踢掉,然后从其他的存储节点,把健康的交易数据同步过来; 下面我们看下,区块链是如何做到的?我们还是以BTC系统为例来说。 在这之前,先给大家介绍下BTC系统的账户模型;在BTC里,它是没有用户资产记录这样的概念,不会像在mysql里那样,用一条数据存储记录表达;它的资产,是通过把所有的交易记录串联聚合之后,得到的;而且,区块链系统明确表达了,账户里的资产来源,你可以一直向上追溯,一直追到创世块,也就是挖矿时的所得; 这里面有两个问题:1 为什么需要改这么多人的数据?这是由于,前面说了,区块链系统会记录每笔自己的详细来源,在交易验证的时候,发现数据不对,会不断向前回溯验证的; 2 为什么要私钥?这个我们需要配合交易的数据结构来说,还是看下面这张图的后一个数据结构TxOut 该数据结构表示,用户的交易输出,例如小张50元的来源是小李的20,小王的30,那这20和30分别对应的是小李的交易输出;大家注意了,这个TxOut里有个PkScript字段,专业的说法是锁定脚本;意思是,如果想花掉这笔钱,或者动这笔钱,需要有相应的解锁脚本和锁定脚本做匹配;否则就会失败,就会被系统发现;这个锁定脚本,通常是用户的公钥,解锁脚本是用户的私钥;简单理解,就是非对称加密验证的意思;所以说,如果用户想篡改资金额度,不仅要控制全网51%以上的节点,还要窃取很多相关人的密钥,其难度可想而知。 区块链项目开发,数字资产开发,数字资产交易系统开发,币币交易系统开发,OTC场外交易系统开发,胡顾问:138-2880-8271。
| 联系人 | 胡顾问 |
|---|