当前位置:首页 > 比特币新闻 > 正文

比特币的交易确认

来源: 互联网时间:2018-06-22 17:07:56

A君给B君转1个比特币,除了要输入交易金额1个比特币外,还需要设置一定量的矿工费,在输入秘钥并点击发送之后,需等待交易打包和6个区块确认,才能完成这笔转账,而这个过程大概需要花费30分钟~1小时。

那么这个交易确认一个什么样的过程呢?为何需要6个区块确认?

比特币交易确认过程

1钱包创建交易

钱包软件通过收集UTXO、 提供正确的解锁脚本、 构造支付给接收者的输出这一系列的方式来创建交易。 产生的交易随后将被发送到比特币网络临近的节点, 从而使得该交易能够在整个比特币网络中传播。

2交易独立效验

每一个收到交易的比特币节点将会首先验证该交易,有效的交易将被传递到临近的节点,这将确保只有有效的交易才会在网络中传播, 而无效的交易将会在第一个节点处就被废弃。

3验证的交易添加到交易地

验证交易后, 比特币节点会将这些交易添加到自己的交易池, 用来暂存尚未被加入到区块的交易记录。

4节点确认交易

假设有个比特币网络节点A,其收集到了区块277,314。

接下来A节点做两件事:1.尝试挖掘新区块;2.监听其他节点是否挖出新的区块。 如果A节点监听到了区块277315,则标志着277,315区块竞争结束。与此同时开启区块277,316的竞赛。

A节点在接收并验证区块277,315后,会检查内存池中的全部交易, 移除已经在区块277,315中出现过的交易记录,确保任何留在内存池中的交易都是未确认的,等待被记录到新区块中,而被移除的交易记录获得一次确认交易。把包含在区块内且被添加到区块链上的交易称为确认交易。

6个确认

比特币网络上有很多节点,假设B和C节点在短时间差内都计算出工作量证明解,然后把自己挖到的区块传播到网络中,先传播给邻近节点,而后传播到整个网络。

B和C矿工的区块数据是不一样的,但都是正确的,因此在这一刻出现了两个都满足要求的不同区块,B和C附近进的D、E、F等等矿工在监听到这个两个区块时,是有先后顺序区别的。怎么办,先入为主,节点把先监听的区块复制过来,然后开启新区块的挖矿工作。

那这个时候不同节点,同时有不同版本的区块链,而这两个版本的区块链,都被矿工们继续开采。但是两个版本的区块链其增长速是不一样的,总有一条链的长度要超过另一条链。当D、E、F等等矿工发现全网络中有一个条更长链的时候,他们会抛弃当前较短的链,转到更长链上进行挖矿。

而那些被矿工成功挖掘的块,因为不是在最长链上而被抛弃了,他们叫过时块。这些过时块中的数据,又需要等待重新被写入区块中。

当一笔交易获得6个区块确认后,从而以确认该交易是在最长分支的区块链里,不可篡改,此时阿呆才能够花费小星转他的比特币。

兴趣是成功的基石,想要了解更多更丰富的币圈知识,可以关注微信公众号:老韭菜日记

还有免费糖果可领取哦! 糖果: www.candy365.io

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。

你可能感兴趣