比特币交易的不确定性

近段时间培训时,有不少同事问及比特币交易的不确定性,非常好的问题,这说明大家越来越专业了。简单来说,由于比特币的区块链是去中心化的,因此共识是基于大多数节点(算力)工作在最长链上来实现的。但是,理论上,最长链是暂时的,而非永久性“最长”,其被其他分支链超越是一个数学概率问题。

先来回顾一下比特币交易流程:

  1. 新的交易向全网进行广播;
  2. 每一个节点都将收到的交易信息纳入一个区块中;
  3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
  4. 当一个节点找到了一个工作量证明,它就向全网进行广播;
  5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
  6. 其他节点表示他们接受该区块,而表示接受的方法,则是工作在以该区块为末尾的链条上,通过引用该区块的哈希值来制造新的区块

当一个新区块生成并被添加到区块链中时,该区块内所包含的所有交易即被比特币网络确认(Confirmation)。例如,A发送B一笔交易T,交易T的初始状态为未确认,某节点打包了交易T,并且赢得了工作量证明竞赛,创建了包含交易T的新区块,交易T此时拥有了交易确认。

添加到区块链末尾的新区快中的所有交易都被计作1次确认,如,交易T(A -> B)确认次数为1。在该区块之后每生成一个区块,交易确认次数加1。如,在包含交易T的区块后又生成链接了3个区块,那么交易T的确认次数为4。

但由于网络传输延时、节点地域分配不均或恶意攻击行为等,每个交易理论上永远无法确保交易一定被执行。比如,下面的情况,交易T在经过4个确认后依旧有可能被逆转。

因此,比特币交易的确认是基于一定概率的。以下是部分课件内容,供各位参考。

本文为作者原创,转载请注明出处