Bitcoin有那些Pool?

在读完"Mastering Bitcoin"这本书之后,我发现Bitcoin Network里有许多不同种类的Pool:
  • UTXO Pool
  • Pool of Address
    • Vanity Pool
  • Transaction Pool
    • Orphan Transaction Pool
  • Orphan Block Pool
  • Mining Pool
    • Managed Pool
如果我们无法很清楚地了解这些Pool的含义及差异,表示我们对于Bitcoin Network的认知还不够。因此,这里试图为大家介绍这些Pool。但不能保证因此而了解整个Bitcoin Network的运作。大家还是要下功夫去学习,求学问,很少能一步登天。要不断地:思考、思考、再思考……。

首先,我们来了解UTXO Pool

UTXO全名是Unspent Transaction Outputs,意思就是尚未花费的Bitcoin。将所有UTXO的值加起来,就是整个Bitcoin的市值。Bitcoin Client会有一个Persistent Storage记录UTXO Pool。

Transaction Pool v.s. Orphan Transaction Pool

每次新产生的Transaction,被Node验证后,会先存放在Transaction Pool。Transaction的每一个Input,都要指向一个Parent Transaction。但如果有两个Transaction,tx1与tx2同时产生, tx1是tx2的父亲,如下图左所示。

Bitcoin有那些Pool?

图右表示Orphan Pool和Transaction Pool的关系:

(1) 若tx2先进入某一个Node,验证后,发现tx2的父亲还没进来,那么,该Node会将它视为孤儿(Orphan),于是就将它放到Orphan Transaction Pool。 (2) 直到tx1进来后,(3) Node找到了tx2的父亲,就将tx2从Orphan Transaction Pool移到Transaction Pool。

总结:

Bitcoin有那些Pool?

存放在UTXO Pool的Transaction都是被验证过的(Confirmed),并且是以Persistent Storage形式永久存放的。

存放在Transaction Pool或Orphan Pool是尚未被验证过的(Unconfirmed),是暂时存在Memory里。

至于其它Pool,留待下篇讲解。

-Count