区块链学习笔记(3)--交易机制与双花

比特币的交易机制

如何交易:一位所有者(A)利用他的私钥对前一次交易T1和下一位所有者(B)的地址签署一个随机散列的数字签名,A将此数据签名制作为交易单T2,并将交易单T2广播全网,电子 货币就发送给了下一位所有者

■要点:

1.交易发起者的私钥:私钥为个人所知,他人无从知晓

2.前一次交易:前一次交易数据说明了该次交易的货币的来源

3.下一位所有者的地址:即交易接收方的地址,此数据说明了当前交易的目标是谁

4.数字签名:发起方将前一次交易数据和接收方公钥连接起来并对其求Hash值x ,再利用自己的私钥对x加密,便得到了这份数字签名

 

验证交易:

1.利用交易T2中交易的发起方A的公钥对签名进行解密,得到整数X

2.将T1交易数据和B的公钥连接起来,用同样的Hash算法计算Hash值y

3.若x==y,说明:

       a.这笔交易确实是A本人发起的,因为只有A本人的私钥才可以生成此签名( A同时也无

       法否认自己曾签署了此份交易)

      b.交易的目的方确实是B

      c.发起方确实是打算把交易T1中A获得的货币发送给B

双重支付 ( Double Spend )

■二重支付(双花) :指攻击者几乎同时将同笔钱用作不同交易或者抹掉自己曾经发给别人钱的记

双花如何操作 :

■假设现在block高度为100,攻击者给商户发了一个交易10BTC, 记作交易A,通常这笔交易会被收录进高度101的block中,当商户在101 (着急了吧? )块中看到这笔交易后,就把货物给了攻击者■此时,攻击者便开始构造另个高度为 101的block, 但用交易B替换了交易 A.交易B中的输入是同一笔,使得发给商户的那笔钱发给他自己

■同时,攻击者努力计算block 使得他的分支能够赶上并超过主分支,如果最终大家接受其分支为主干分支,这笔钱就成功的完成双重支付

双重支付的难度

区块链--比特币的工作量证明_阿洋太爱大数据的博客-CSDN博客

       双花需要让自己成为最长的链 。其他节点才会切到这个最长链上 来。那么攻击者必须在10分钟内连续创建出6个(商户在101块中看到这笔交易后,继续等待到106出块成功且看到这笔交易没变)合法Block才有可能将原链替换,这意味着攻击者在10分钟内产生的算 力需超过比特币网络其他所有节点在60分钟内算力的总和

面意味着攻击者要能做出比诚实链长出7个区块,才能让其他节点切到这个非诚实链上,仅仅算出比诚实链长出2,3个区块是不够的,因为接受者通常会等6个确认(否则接受者看不到区块中有自己的内容就不会发货)

.比特币网络Block链被增加6个后,Block链被修改的可能性概率基本降为0

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿洋太爱大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值