zerodot618
@39696134
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 里面。有可能是不想花,也有可能是把密钥丢了。

Arweave TX
cdys8VtwIsyf2tBUSTnHTXG9d7yIveCoEPv_YHP3yGY
Content Digest
969f5b554c8802ee8d51b238bf16865a6a27f891549b23d6b36a1165269a41c1
- 90.0 % More to go -
Pay 0.0000060 BTC (≈$0.3798) to continue reading
and receive early reader revenue (Rules)
This post is a virtural product selling on Quill, IT WILL NOT REFUND once paid. Please pay with caution.
Pay to Read
Already paid? Try to Login
0 : 0
1 times bought, 0 times reward
Comments
zerodot618
@39696134
Subscribing: 0 Subscribers: 2
Subscribe
Related Posts
Defi乐高之借贷协议(2)--MarginFi 隐身3个月通关编程实战项目,升级进取型思维分享。 macOS系统多开Google Chrome浏览器 从小白到科学家(二)之脱胎换骨 Invoke the closed source contract tutorial with MetaMask
Rules Stats Help Github Twitter Discord
zerodot618
@39696134
Subscribing: 0 Subscribers: 2
Subscribe
Related Posts
Defi乐高之借贷协议(2)--MarginFi 隐身3个月通关编程实战项目,升级进取型思维分享。 macOS系统多开Google Chrome浏览器 从小白到科学家(二)之脱胎换骨 Invoke the closed source contract tutorial with MetaMask
Rules Stats Help Github Twitter Discord