首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

比特币交易并不安全!

在了解了如何生成主链之后,我们就可以轻松地了解为什么确认数少的交易并不安全了

普通矿工A按照主链的生成规则不停歇地产生区块或收集区块,直到第20013号区块结束之后,开始计算第20014号区块的过程中,矿工A存储的区块链如下:

此时,假设张三刚支付给李四10个比特币,张三动了歪心思,想再花一次这10个币,于是张三切换为矿工这个身份之后,立即开始计算20014号数学题,并且在自己创建的这个20014号区块中并不把他和李四的交易打包进来。(详见什么是1确认?为什么1确认的交易并不安全?)

在矿工A计算20014号数学题时,突然收到了来自红色矿工的20014号红色区块。红色矿工将张三和李四的交易打包到了红色20014号区块中。查看了区块信息,红色矿工的20014号区块的父区块是白色20013号区块,于是矿工A将红色20014号区块链接到白色20013号区块后面:

此时矿工A马上放弃自己计算的第20014号数学题,并准备开始计算第20015号数学题时,张三的带着歪心思的20014号浅绿色区块、以及其它矿工B的20014号深绿色区块,两个区块也突然传过来了,判断了父区块后,都链接在了白色20010号区块后面:

由于共识的主链选择规则,取最先达到最大难度的那条链作为主链,所以矿工A认为此时主链仍然是“白-红”链:

于是矿工A准备开始以红色20014号区块为父区块,创建20015号区块并计算数学题。在计算的过程中,矿工A发现他突然收到了第20015号的黄色区块,查看父区块后发现是浅绿色20014号区块后面的,于是将此黄色区块链接在了浅绿色后面:

于是,此时“白-浅绿-黄”成为了主链:

于是,此时,全球矿工默认主链从“白-红”链转变为“白-浅绿-黄”链!

所以此时,包含了张三和李四的交易的区块,由原先的被全网矿工认可,变为了不被认可!(原先包含在红色区块中,现在的新主链里不包含红色区块了。)

之前我们了解过什么是1确认,即交易所在的有效区块,后续如果没有区块了,则为1确认;如果所在有效区块后面有n个区块,则为n+1个确认。

所以如果张三所用的钱包是1确认就认为合法交易,并且此时李四用的钱包也是同一款钱包,则在红色区块添加到主链并被认为“白-红”链为主链后,钱包就认为此交易生效了!于是李四自然而然放心地就给张三转账了!

但如果等到20015号区块出来之后,钱包发现主链变更为“白-浅绿-黄”链,则发现张三和李四的交易并不存在于主链上!于是又判定这笔交易无效了!于是张三又多了10个比特币!最终结果是李四付了款,又没得到比特币!

引发这个结果的原因,就是用户所用的钱包在确认数较少的情况下就确认并完成了交易。

那么比特币交易是不是都不安全?

实际并不是的,实际上,我们只要等确认数为6,也就是交易所在区块的后面又连接了5个区块的话,就可以保证交易所在的区块肯定是主链,不会再更改了。

所以,如果钱包的确认数在6以上才认可交易,那么你使用的这个钱包,从交易角度来说就是安全的了。

如果当你看完这篇文章,仍有不懂的地方,请在下方留言,我会尽量解答你的困惑。

关注【通俗易懂区块链】,学懂区块链

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180128G04Q3X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券