BTC 如何达成共识
- pow 共识机制
- 最长合法链
- UTXO
- 出块奖励
前言
分布式账本如何达成共识,需要解决以下几个问题:
- 谁有记账权?
- 如何判断账本内容为真?
- 参与这个账本有什么好处?
pow 共识机制
上图是btc的区块结构,pow 共识机制,就是通过大量运算,找到一个值,这个值符合一些特定条件。具体是找到一个随机数加入块头中,计算区块的块头的哈希值,使得计算的哈希结果小于或等于块头中目标值,公式如下: H(block header + nonce) <=target而算出这个值的节点,拥有记账权。(本文不讨论具体的hash算法,需要可自行google) 算出这个值的节点,拥有记账权。这样可以避免任何想参与的记账节点无成本的参与,也有效的劝退了大量恶意节点。
UTXO
我们知道btc是基于交易的模型,eth 是基于账户的交易模型。
UTXO(Unspent Transaction Output):是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,也就是比特币公链上存储的是一笔一笔的交易,而不是一个一个的账户。
每个交易都有输入部分和输出部分,而输入部分的BTC会略微大于输入部分的BTC,主要是产生了交易费。输出(output)部分都会保存在UTXO集合中,只要输出部分的这个比特币没有花费掉,就一直会保存在UTXO中,所以UTXO的集合是不断变大的。
UTXO集合存储于全节点中,可以迅速验证交易的有效性,进一步帮助验证区块的合法性。
最长合法链
当全网中有两个节点同时计算出正确的nonce值,随着时间推移,这两个节点形成了两条分叉链,比特币采用相对较长的链为主链的原则,避免分叉越来约严重。
出块奖励
比特币系统中规定,只要工作量证明在全网达成共识并加入到区块链中后就可以获得比特币,比特币的来源就是通过出块奖励(block reward)产生,也是比特币增多的唯一来源。
结论
比特币系统通过 pow 共识机制,UTXO模型,最长合法链原则,出块奖励制度,共同作用使得全网所有节点达成共识。比特币自2009年诞生起到现在,其出色的表现已经证明了其安全性和有效性。
|