可乐公开课第52期| 比特币如何转账?

七月 30, 2019

author:

可乐公开课第52期| 比特币如何转账?

当你发起一笔比特币转账到另一个地址,这中间发生了什么?为什么有时候会等很久?今天我们就来说一下这个话题。

转账的这个过程发生了什么?

  1. A发起转账,转账到B地址
  2. 交易信息在比特币网络进行全网广播
  3. 挖矿节点将该交易放入本地内存池进行一些基本验证,比如确认该笔交易花费的比特币是否是未被花费的交易。如果验证成功,则将其放入“未确认交易池”(Unconfirm Transaction),等待被打包;如果验证失败,则该交易会被标记为“无效交易”(Invalid Transaction),不会被打包。
  4. 每隔10分钟,矿工将比特币网络中未被记账的交易打包进一个区块,矿工则通过工作量证明机制竞争获得记账权。
  5. 矿工将打包好的区块广播给网络,获得6个节点确认后,网络将接收最新区块,并打上时间戳。
  6. 交易完成,金额到账。矿工获得区块奖励。

为什么有时候交易要等很久?

第一可能是因为“未确认交易池”中的交易笔数太多,而每个区块能记录的交易笔数有限,这时候就会造成区块拥堵。还有一个原因可能是你的“手续费”没给够,手续费是发起交易的节点决定给的,和小费性质一样,在区块内存固定的情况下矿工会优先选择小费高的交易打包。

结语:交易处理是支付系统的重要组成部分,高效、低费率的转账体验是很重要的。比特币单个区块所能容纳的交易较少,因此造成的网络拥堵问题一直被认为是大规模使用的限制因素之一,区块链扩容也成为各个技术想要解决的重点,主要方向有提升区块大小、分片、闪电网络等,我们在扩容系列课程中也有讲解。