比特币系统

Account-based ledger

系统显示记录每个账户有多少币,如:以太坊。

 

Transaction-based ledger

比特币采用基于交易的账本模式,每个区块记录交易信息,但是系统上没有记录某个账户有多少余额,只能通过交易记录推算。

比特币全节点要维护UTXO(Unspent Transaction Output)的数据结构:还没被花出去的交易的输出。

                                                  比特币系统_第1张图片B花出去了,C没花。

UTXO集合中的每个元素要给出产生这个交易的输出的哈希值,以及它在这个交易中时第几个输出。

作用:防止双花。只有币在这个集合里,才是合法的,否则可能以及被花了。

每个交易可以有多个输入和输出,但是 total inputs = total outputs。

 

问:发布区块的节点,为啥愿意打包别人的交易?

答:因为有交易费,很小,total inputs > total outputs。

 

挖矿公平性的保证:progress free

比特币系统_第2张图片

平均出块时间是十分钟,但是已经挖了快十分钟还没出块,并不代表马上就要出了,平均出块等待时间还是十分钟。

 

比特币越来越难挖到,是因为出块奖励不断减少。比特币的稀缺性是人为造成的。

挖矿时猜测随机数的过程是没意义的,但是比特币的安全性由挖矿保证,按算力投票。

 

 

 

 

 

 

 

 

你可能感兴趣的:(bitcoin)