ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UTXO模型

2021-11-24 17:03:08  阅读:148  来源: 互联网

标签:UTXO Unspent script 模型 比特 Alice 交易


一、简介

UTXO全名是Unspent Transaction Outputs,相比于账户模型来说没那么直观。
       它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。
       比特币中并没有一个纪录所有帐户余额的帐本,要确定一个地址有多少余额,简单的说,就是要回顾这个地址所有的交易,并且找到所有发送给这个地址的比特币,再把他们全都加起来就是当前余额。

二、基于UTXO的交易

比特币交易遵守几个规则:

  1. 除了 coinbase交易之外,所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了。
  2. 任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配平。

交易的数据结构:

  1. 交易输出[amount : xxxxx , locking script:xxxxxxxx , metadata:xxxxxxx]

amount表示要转移的金额,locking script表示对满足条件的进行编码,为了使金额得以认出,metadata泛指其他所有需要使用的元数据。

  1. 交易输入[Tx hash : xxxxxxxxxx , output index : xxxxx , unlocking script:xxxxxxxx , metadata:xxxxxxx]

Tx hash表示交易的哈希,output index指明引用的交易从哪个UTXO中提取 ,unlocking script表示对引用UTXO的locking script进行解码,metadata泛指其他所有需要使用的元数据。

比特币中的一笔「交易」过程

假设Fred给了Alice 2个BTC,Ted给了Alice 3个BTC,我们把这两笔寄给Alice,总和为5的BTC称为Unspent Transaction Outputs:也就是说现在Alice拥有了两笔Unspent Transcation Outputs,可以当作他未来转钱给别人的input。如果现在Alice想要转5 BTC给Bob,他要将前面两笔总和刚好为5的UTXO当作这笔交易的输入。而矿工要验证的就是并没有其他交易在先前的区块当中,已经使用过这笔Unspent Output。如果同一笔输出已经被发送过,那它就不是Unspent了,这就是比特币预防Double Spending的方法。

标签:UTXO,Unspent,script,模型,比特,Alice,交易
来源: https://blog.csdn.net/qq_41084082/article/details/121518509

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有