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

比特币的“交易确认”的过程具体是什么?

假如A给B发送1个比特币的交易,那么需要6个“确认”,这个0.999个比特币才能到达B的账户并可以使用。为什么是0.999个而不是1个比特币呢,那0.001个比特币是用来支付交易手续费的。

那么这个确认一个什么样的过程呢?

钱包创建交易

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

交易独立校验

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

验证的交易添加到交易池

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

节点确认交易

假如D节点的区块链已经收集到了区块277,314, 那么D节点会继续监听网络上的交易, 在尝试挖掘新区块的同时, 也监听着由其他节点发现的区块。 当D节点在挖掘新区块时, 它从比特币网络收到了区块277,315。 这个区块的到来标志着终结了产出区277,315竞赛, 与此同时也是产出区块277,316竞赛的开始。

D节点在接收并验证区块277,315后,会检查内存池中的全部交易, 移除已经在区块277,315中出现过的交易记录,确保任何留在内存池中的交易都是未确认的,等待被记录到新区块中,而被移除的交易记录获得一次“确认”交易。

把包含在区块内且被添加到区块链上的交易称为“确认”交易, 交易经过“确认”之后, 当达到6个“确认”数后,认为交易是安全不可更改的,新的拥有者才能够花费他在交易中得到的比特币。

比特币交易没有过期和超时

一笔交易现在有效,那么它就永远有效。如果一笔交易只在全网广播了一次, 那么它只会保存在一个挖矿节点的内存中,一旦这个节点重新启动, 内存池中的数据就会被完全擦除。如果一笔有效交易被传播到了全网,但长时间未处理,它将从挖矿节点的内存池中消失。

交易本应该在一段时间内被处理而实际没有,那么钱包软件应该重新发送交易或重新支付更高的矿工费。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券