04-BTC-实现
2022-12-05 04:04
Words count:
5551
北京大学公开课《区块链技术于应用》笔记,由肖臻老师讲授,主要讲解区块链的基本概念和实现原理。
UTXO
区块链是去中心化的账本,比特币使用的是基于交易的这种账本模式——基于交易的账本(transaction based ledger),系统当中并不会显示每个账户有多少钱。
比特币系统的全节点要维护一个叫 UTXO(unspent transaction output,还没有被花出去的交易的输出)的数据结构。区块链上有很多交易,有些交易的输出可能已经被花掉,有些还没有被花掉。所有没有被花掉的输出的集合就叫做 UTXO。
一个交易可能有多个输出。假如 A 给 B,5 个比特币,B 花掉了。A 也给了 C,3 个比特币,C 没有花掉。这时 5 个比特币就不算 UTXO,而 3 个比特币算。UTXO 集合当中的每个元素要给出产生输出的交易的哈希值,以及它在这个交易里是第几个输出。这两个信息就可以定位到 UTXO 中的输出。
要 UTXO 集合有什么作用? 为了检测是否双花(double spending),即检测新发布的交易是否合法。因此全节点要在内存中维护 UTXO 这样一个数据结构,以便快速检测双花(double spending)。
每个交易要消耗掉一部分输出,也会产生新的输出。还看上面的例子,B 花掉的 5 个比特币,虽然不在 UTXO 里面,但如果他转账给 D,而 D 没有花掉,那么这 5 个比特币又要保存在 UTXO 里面。如果 D 始终不花,那么这个信息要永久保存在 UTXO 里面。有可能是不想花,也有可能是把密钥丢了。
1
times bought,
0
times reward

Comments