首页 > 其他 > 详细

比特币中的交易过程

时间:2020-04-04 18:56:55      阅读:49      评论:0      收藏:0      [点我收藏+]

下图是比特币系统中简单的交易示意图。

技术分享图片

 

  这里需要注意的一点是比特币系统中有两种哈希指针,一种是连接各个区块来把它们构成一个链,另一种是指向前面某一项交易以此来说明币的来源,这样以来不但可以防止凭空造币还可以防止双重支付。

  比特币系统中每个交易都包含输入和输出两个部分,输入部分要说明币的来源,输出部分要给出收款人公钥的哈希。我们已A--->B的交易为例,A给B转钱,A需要知道B的地址,B需要知道A的公钥,因为A的公钥代表A的身份,样就可以证明钱是从哪里来的。其实不只是B需要知道A的公钥,所有节点都需要知道A的公钥,因为区块链中有的节点是有恶意的,所以每个节点都需要独立验证交易的合法性。不过这样做会带来一个问题是怎样才能知道A的公钥。A的公钥是在A--->B这个转账交易中自己宣称的,被包含在当前交易的输入部分当中。这样就会有一个安全漏洞。因为A的公钥是自己给出的,那么完全有可能会存在一个B‘伪造一个A--->B的转账交易B‘使用它自己的公钥替换掉当前交易中输入脚本中A的公钥,然后用自己的私钥进行签名,那么其它节点用这个假造的公钥来验证签名就是合法的,这就相当于把A账户上的钱给偷走了。

技术分享图片

   那么如何来避免这个问题呢。如上图所示,在一个交易的输出部分会包含收款人的公钥哈希,也就是说在交易1中的输出部分会存有A的公钥,所以在交易2中A给B转账中A的公钥要与交易1中输出部分A的公钥一致才可以。

 

比特币中的交易过程

原文:https://www.cnblogs.com/yishi-san/p/12632720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!