比特币钱包是如何把交易信息告诉矿工的
扫描二维码
随时随地手机看文章
比特币钱包是如何帮助用户完成一笔交易的?
回答此问题,我们需要解答下面两个问题,便自然了解了。
1.矿工在交易过程中做了什么事?
现实生活中,银行是一个大的记录账本的中心机构(对银行是个大账本的比喻如果有不懂的用户,请浏览第一课课后辅导①:区块链到底是什么?存储在哪里了?)。如果我们用现金进行交易,其实是没有经过银行的,也就是说,银行并没有把你和别人的现金交易记录在案。但是一旦涉及到银行卡转账,或者网上银行转账,每一笔交易都会被银行这个中心大账本所记录。
在比特币的世界里,由于每笔交易都是在网上操作的,并且中本聪在设计整个机制时规定了,如果有交易,就必须要被记录、被验证,否则这笔交易无效。所以,每笔交易都需要记录在案。于是中本聪在设计整个机制时,设立了“接收交易、验证交易并打包收录交易”这一角色,我们把这个角色叫做“矿工”。每笔交易都需要矿工来负责记录,不仅要收录,还要对这笔交易做验证。所以,如果不告诉矿工,矿工是不能确认这笔交易的合法性的:
2.钱包是如何把交易信息告诉全球矿工的?
首先,我们需要知道的是,用户的比特币并不是一个整体,而是多个地址所保存的比特币的总额。我们可以把多个地址想象成多个银行账号。也就是说,假设张三有13个比特币,他有8个比特币存在银行账号A中,有3个比特币存在账号B中,有2个比特币存在账号C中。
接下来,张三在钱包软件中输入了10,并输入了李四的收款地址(收款的银行账号),点击发送时,钱包就知道了张三要发送10个比特币。然后钱包找到了属于张三的地址A、地址B、地址C,从地址A中取了5个币,从地址B中取了3个币,从地址C中取了2个币。但是张三只想发10个币,地址A中最后还剩3个币,仍然存放在地址A中吗?
钱包的开发团队在设计钱包的交易机制时,为避免安全风险,每次交易找零的比特币,都将找零存放到新地址中。我们可以理解为,钱包为张三新创造了一个银行账号D,银行账号A中在交易时如果有剩余,则将剩余的比特币全部存放在银行账号D中。
于是有了如下的交易信息:
交易流水单号由钱包自动生成。
接着,钱包将这个交易信息通过互联网网络,发给与此钱包邻近的几个矿工,矿工验证交易没问题后,再发送给与这几个矿工邻近的其他矿工,使这笔交易迅速扩散。一会儿的功夫,这笔交易信息便传播到了全球的各个矿工那里。
后面的流程,在通俗易懂第一课 | 简单了解比特币交易过程简单讲解过,某个矿工争得了将新区块加入主链的权力,顺便将此交易打包到新区块中,广播给了全球所有矿工,每个矿工将此新区块记录在自己的硬盘中,到此,此交易便可以被认为是已被确认的交易了。