通俗易懂区块链系列——双重支付/双花支付

0

双重支付,又称为双花支付,是指同一笔钱花了两次甚至是多次。不同于实物货币,由于比特币是数字货币,本身就是一些代码,所以具有可复制性,而且由于比特币网络的开放性,任何人都可以将交易自由的广播到比特币网络上,所以不诚实的节点就可能会做出双花支付,不过由于区块链本身所提供的共识机制是完全可以阻止这种情况的出现的,但是如果有人控制了比特币网络中的大量算力,那么双花支付就可能成功

我们首先来看区块链本身是如何解决双花问题的?

假设在比特币网络中,一个不诚实节点发起了双花交易。但是根据区块链的共识机制,网络节点只接受收到的第一个交易,所以第二个交易将被拒绝。不过,由于区块链网络是多点连接,所以有可能出现这种情况,一些节点接受了第一笔交易,另外一些节点接受了第二笔交易,那这种情况如何避免双花交易。

这就需要用到临时分叉的知识了。矿工在挖矿过程中,会将交易打包到区块中,接受了第一笔交易的矿工和接受了第二笔交易的矿工的节点数量肯定会有所不同,所以在后续的挖矿过程中,两笔交易将处于不同的临时分叉链上,最终只有最长链上的交易能够保存下来,这也是为什么在比特币系统中要求一笔交易的确认必须要等待6个以上的区块确定之后才可以的原因。

当然,在区块链还采用了其他的技术来进一步确保双花支付的不会发生,包括时间戳技术、数字签名等等。

虽然区块链本身可以防止双花支付的发生,但是如果攻击者控制了整个网络51%以上的算力,就可以在控制算力的期间,发动双花攻击,我们来看一下整个过程

首先,攻击者在控制算力的期间,把一定数量的虚拟币发送给自己在交易所的钱包,然后,他又发起一交易,把这些虚拟币再发送给另外一个自己控制的钱包,由于区块链默认的情况下只会承认第一笔交易,所以与交易所的交易有很大的概率会得到确认,在这笔交易确认后,攻击者立刻卖掉虚拟币,并且从交易所套现。但是,攻击者在挖矿过程中,故意只打包第二笔交易,并且在第一笔交易之前的区块之后开始挖矿,由于攻击者控制者51%以上的算力,所以在后续的挖矿过程中,攻击者所在区块链的长度会超过另外一条链,从而成为区块链中的主链。所以第一笔交易所在链就成为了临时分叉,从而被抛弃掉,同时原来确认的交易也会被回滚掉。这样,攻击者之前花掉的虚拟币又回到了自己的手中,从而实现了一次双花攻击。

通俗易懂区块链系列——双重支付/双花支付相关推荐

  1. 区块链系列教程——geth命令详解

    本文是区块链系列的第二篇,上一篇区块链系列教程--创建属于自己的区块链大概介绍了区块链的基本内容,并且使用geth客户端创建了私链,给了各位读者较为直观的感受.本文简单介绍geth命令,这对后面的教程 ...

  2. 区块链系列(八)之区块链介绍

    本文个人博客地址:http://www.huweihuang.com/article/blockchain/blockchain-introduction/ 1. 区块链简介 1.1. 区块链的概念 ...

  3. 区块链系列教程之:比特币中的挖矿

    文章目录 简介 比特币的节点构造 挖矿 挖矿节点 创币交易 矿池收入分配 挖矿方向 算力浪费 算力调整 总结 简介 我们知道比特币就是挖矿产生的,那么在比特币网络中,挖矿有什么特点呢?怎么分配挖矿收入 ...

  4. 区块链系列教程之:比特币的世界

    文章目录 简介 比特币的诞生 Satoshi Nakamoto是谁 为什么会有电子货币 比特币的价格 比特币系统 比特币的生态圈 总结 简介 2008年一个化名为中本聪的神秘人第一次以论文的形式提出了 ...

  5. 区块链系列教程之:比特币中的网络和区块链

    文章目录 简介 比特币的网络 网络发现与同步 SPV节点 区块链头 Merkle Tree 比特币中的区块链 区块标识符 创世区块 总结 简介 比特币的底层就是区块链技术,区块链也是因为比特币而广为人 ...

  6. 「区块链系列」区块链技术与应用

    P1 Linux下Go安装 P2 搭建go-ethereum P3 搭建区块链底层技术 P4 区块链技术与应用 P5 搭建Hyperledger Fabric P6 实战区块链落地(研究中) 未来的发 ...

  7. 区块链系列课程——02.电子货币与物理货币的区别?

    第一周第一节第二课--02.电子货币与物理货币的区别? 上一节课讲了物理货币本质是人们在进行交易时对价值契约的追求,随着科学技术的进步,货币的表现形式会变得越来越稳定,这一特点也是货币本身所代表的信用 ...

  8. 【说透区块链系列】区块链有哪些常见误区?

    经过了我前面几篇文章的铺垫讲解,你应该已经对区块链的知识体系已经有了一个基本的了解,但是,区块链是一项新兴的事物,大多数人依然处于知识的迷雾区,对区块链的理解并不是十分透彻. 我在很多场合都做过区块链 ...

  9. 【说透区块链系列】一文读懂什么是Web 3.0

    最近的投融资中 Web 3.0 的趋势直线上升,那么受到众多资本喜爱的 Web 3.0 到底是什么呢? Web 3.0的应用范围很广,大家所在网络上最多听到的应该就是只读.读写.读写权这类比较复杂的阐 ...

最新文章

  1. 关于Unity中自带摇杆与车轮碰撞器的使用
  2. html5 drap 文件夹,带有显示ID的Html5 drap and drop问题
  3. Kafka如何通过精妙的架构设计优化JVM GC问题
  4. 安利一波veronica老师
  5. time,gettimeofday,clock_gettime,_ftime
  6. 'ascii' codec can't encode characters in position 20-24:ordinal not in range(128)报错根本解决办法
  7. chart.js x轴显示不全_机床大讲堂第67讲——基于FANUC系统的数控铣床增加第四轴的方法...
  8. ddos攻击工具_linux下DDoS攻击模拟实战
  9. 《移动应用开发技术——Android》课程报告-个人记账系统
  10. 分享|2022城市大脑发展白皮书(附PDF)
  11. HTML背景渐变圆圈,6种CSS3平滑过渡的渐变背景颜色
  12. MobaXterm上方工具栏显示
  13. ^^^ 存货盘盈盘亏的账务处理 Accounting for Inventory Profit and Inventory Loss with Goods Stock...
  14. 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
  15. nomachine NX 远程连接相关问题
  16. 八大基本数据类型之基本类型与包装类型的区别
  17. 操作系统装完之后,安装几个特别有用的经典软件,都是电脑必备,包含pdf编辑、图片编辑、wiki、压缩、影音等等
  18. IOS成长之路-Nsstring中搜索方法rangeOfString
  19. 11.深入浅出:深度负反馈及放大倍数——参考《模拟电子技术基础》清华大学华成英主讲
  20. 网络推广新手必看!如何以数据手法定义文章标题

热门文章

  1. Jenkins ssh 远程启动 nohup
  2. 基本流水线与记分牌算法和Tomasulo算法
  3. 论文阅读笔记《Principal characteristic networks for few-shot learning》
  4. 企业邮箱的优势有哪些
  5. 银行储蓄系统 类图 顺序图 E_R图 功能结构图 数据流图 系统流图 逻辑结构设计 关系模式 数据关系表
  6. 减法公式运算法则_数学的运算定律
  7. linux 解压rar压缩包
  8. php guzzlehttp,PHP HTTP客户端-Guzzle原理解析
  9. Python爬虫常用库requests、beautifulsoup、selenium、xpath总结
  10. [secureCRT] session log保存 并添加时间戳