• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > 区块链是如何做到交易数据防篡改的

区块链是如何做到交易数据防篡改的

作者:头条号-区块链饭桌 字体:[增加 减小] 来源:互联网 时间:2018-11-03

头条号-区块链饭桌向大家分享了区块链是如何做到交易数据防篡改的,其中包含区块链,交易数据防篡改等知识点,遇到此问题的同学们可以参考下

各位朋友大家晚上好,我们又见面了。今天和大家分享的主题是《区块链是如何做到交易数据防篡改的》?这个话题属于数据安全领域的问题,如果完全展开来说,涉及到的面非常广;那我们依然按照之前的原则,一次只讲一个核心点,掰开了揉烂了说;在讲解的过程中呢,我会结合一小部分代码,但我会尽量讲的浅显直白一些,让大家不仅感到到区块链防篡改的特性,也展示一下它到底是如何实现的,是不是真的如他一直宣称的那样实现了数据的防篡改?下面就让我们开始;

在这之前,让我们先回忆下在传统互联网或移动互联网行业,大家是怎么存数据的?

通常的做法是,使用关系型数据库,例如mysql、oracle,建一条数据记录,将我们的各种属性值存在里面,现在我们挑一个大家最敏感的字段,账户余额来聊;

现在给大家举两个可怕的例子,第一个是:如果有人在后台程序里,留了后门,可以直接注入一段脚本代码,操作数据库,修改账户余额,然后进行非法提现或者商品买卖;第二个,公司里有的同学有数据库权限,可以直接登进数据,然后直接update操作,把账户余额改掉;这两个例子,是不是非常刺激?

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

下面我们看下,区块链是如何做到的?我们还是以比特币系统为例来说。

在这之前,先给大家介绍下比特币系统的账户模型;在比特币里,它是没有用户资产记录这样的概念,不会像在mysql里那样,用一条数据存储记录表达;它的资产,是通过把所有的交易记录串联聚合之后,得到的;而且,区块链系统明确表达了,账户里的资产来源,你可以一直向上追溯,一直追到创世块,也就是挖矿时的所得;

例如,你收到了小张50元的转账;小张转给你的50元里,有20元是来自小李的,30元是来自小王的,小李的20元有3元是来自小刘的,17元是来自小孟的......,这个资金的流动传递会在链上完整的表达出来;下面看下区块链系统是如何做的:

所谓资金流转就是一次交易,因此比特币系统,设计了一个非常核心的数据结构,大家看下下面这张截图:

MsgTx就是表达一次交易,这个交易结构体里,有个切片字段TxIn,完整的定义是紧挨着MsgTx的下一个结构体。这个结构体里,有个PreviousOutPoint,它表示的意思,就是这笔输入的来源地址;这样一笔交易信息,会先封到一个block结构体里,然后经过验证存到数据库里;前一个交易记录里,同样也会有一个PreviousOutPoint继续向前指;这样是不是就比较清楚每笔资金的具体从哪里来的了,如果你比较感兴趣,可以在数据库里一直向上追溯,直到创世块;

下面来看下防篡改;就以上面小张账户的50元说起;在这里要把P2P网络提一下,这是区块链的运转起来的基础;区块链系统是一个完全松散自治的P2P网络,这个网络,每时每刻都会有节点加入,有节点离开;而且没有中心节点来管理,每一个节点都靠算法来维护自身的数据块信息;

现在来看小张的账户;如果小张想把自己的50元账户,改成50万;他要做的第一件事情是控制全网51%以上的节点,这个从概率上来推算基本是不可能的,可以认为失败是必然的(概率上的极大似然估计法);假设一个人的运气非常好,他真的控制了全网51%的节点;下面有另外一个更严峻的挑战:拿到用户的私钥;上面我们说了,小张要把这50改成50万,需要把小张之前的小李的,小王的,小刘的,小孟的...总之和这50元相关的所有的人的私钥都窃取到,然后把数据篡改掉,才能骗过区块链系统;

这里面有两个问题:1 为什么需要改这么多人的数据?这是由于,前面说了,区块链系统会记录每笔自己的详细来源,在交易验证的时候,发现数据不对,会不断向前回溯验证的; 2 为什么要私钥?这个我们需要配合交易的数据结构来说,还是看下面这张图的最后一个数据结构TxOut,

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何学习区块链
  • 区块链物联网概念项目介绍
  • 区块链内容版权概念项目介绍
  • 区块链支付概念项目介绍
  • 区块链IFO概念项目介绍
  • 区块链与加密货币34个权威术语
  • 58 BaaS API使用指南
  • 区块链共识类型:PoW, PoS, DPoS, PoST
  • 区块链共识类型:POC、DBFT、POA、POB
  • 区块链共识类型:消逝时间证明、权威证明、带宽证明

相关文章

  • 2018-11-03比原链 | Equity 语言入门
  • 2018-11-03香港数字货币交易所Gatecoin教程
  • 2018-11-03深度分析Raft的主要特点
  • 2018-11-03如何创建比特币纸质钱包或纸质账单
  • 2018-11-03ERC-20 Token合约详解
  • 2018-11-03以太坊交易的生命周期
  • 2018-11-03Cobo钱包使用教程(双语版)
  • 2018-11-03四个问答让你秒懂区块链原理及应用
  • 2018-11-03区块链中的随机性
  • 2018-11-03如何用架构师思维解读区块链技术?

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 数字货币与加密货币之间的关系
    • 区块链落地从p2p这几个应用方向出发
    • 比特币分叉解读
    • 区块链是如何做到交易数据防篡改的
    • 区块链中的挖矿原理(POW算法)
    • 区块链(Blockchain)深入介绍
    • 最佳辅助-DMI(动向指标)策略
    • 互操作性的区块链系统设计理念
    • 为什么比特币矿工要花时间挖空块
    • 从零开始,创建自己的区块链

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有