美文网首页
比特币本质其实是UTXO

比特币本质其实是UTXO

作者: 暴走的K哥哥 | 来源:发表于2018-03-02 14:43 被阅读0次

其实并没有什么比特币,我们在交易所里或者钱包里显示的比特币余额其实是UTXO。那到底什么是UTXO呢,UTXO的全称为Unspent Transaction Output,翻译过来就是未被花费的交易输出。

好像觉得还是不太理解。。。。?

在比特币区块链账本上记录了一笔一笔的交易,每一笔交易都有若干个交易输入(转账者),也就是资金来源,同时也有若干个交易输出(收款者),也就是资金去向。每一笔交易都要花费一笔输入,产生一笔输出,而产生的这笔输出,就是UTXO。

举个简单的例子:
A地址下有1个btc,A要把1个btc转给B,则账本上交易的输入就是A,输出为B的地址,这时脚本会校验A地址是否有1个btc(余额都不够怎么会给你转),即在某一笔输出(UTXO)中查询到了A确实有1个btc。所以A可以作为输入转给B一个btc,这时就有一笔价值1个btc的输出指向B地址,直到B进行下一次转账前这笔交易都是B未被花费的输出(UTXO)。后续B要转给C时又重复A转B的操作。

再来一个复杂一点的例子:

  • 第一个交易#1001号是张三挖矿所得的coinbase交易,coinbase交易就是挖矿交易,当矿机找到一个合格的区块后,它就获得一个特权,能创造一个coinbase交易,并且把交易输出写上自己的地址,张三通过挖矿获得了12.5个btc,即价值12.5个btc的UTXO指向的是他的地址。
  • 第二个交易张三转账2.5个btc给李四,张三就发起了#2001号交易,资金的输入为#1001(1),而在本次交易输出的UTXO中,把2.5个btc的收款人地址为李四。但是这笔交易必须把上一个UTXO全部消耗,所以还剩下的10btc的交易输出的收款地址为张三自己。
  • 第三个交易张三和李四一起转给王五5个btc,张三或李四发起#3001号交易,输入来源有两个部分,一个是#2001(1)和#2001(2),输出为王五的收款地址。并且张三还剩下的7.5个btc输出到自己的地址。后续王五如果需要花费他的5个btc,输入就需要为#3001(1)

一笔交易数据例子

如上图是一笔交易,有多个输入TxIn和多个输出TxOut。

  • prev hash,表示该输入是在哪个交易hash输出的。
  • index,表示在prev hash的那个交易的索引。
  • btc,到账btc个数
  • pkScript,即publicKey Script,锁定脚本,花费该UTXO时需要执行。

第一行挖矿收入交易通常被称为coinbase,它没有输入,所以TxIn的hash被标记为00000...000,index为ffff。
从第二行开始都是一些转账交易,任何一个TxIn都会唯一追溯到区块链上在本区块之前的某个交易hash,以及索引。

上图通过交易hash和索引(从0开始),即可唯一确定一个未花费的交易输出,这样每一个Tx In都和之前某个TxOut 关联起来。其中pkScript为锁定脚本,使用该UTXO时需要验证通过该脚本才能花费这笔UTXO。

验证交易脚本是如何进行验证的?

总结

比特币并不是基于账户的方案,而是基于UTXO方案。这个和传统银行账户的思维完全不一样。张三拥有10个btc,其实就是当前区块链账本中,有若干笔交易的输出(UTXO)收款人都是张三的地址,而这些UXTO的总额为10。这个地址一共收了多少UTXO,则是要通过比特币钱包代为跟踪计算,所以钱包里显示的余额其实是有多少价值btc的输出指向你的地址。

相关文章

  • 以太坊入门介绍

    在之前比特币本质其实是UTXO的文章中介绍了比特币的不是一个基于账户的概念,而且UTXO。但是在以太坊中,就是基于...

  • 比特币本质其实是UTXO

    其实并没有什么比特币,我们在交易所里或者钱包里显示的比特币余额其实是UTXO。那到底什么是UTXO呢,UTXO的全...

  • 【区块链】UTXO是何方神圣呢?

    在《精通比特币》提到: 在比特币的世界里既没有账户,也没有余额,只有分散到区块链里的UTXO。 UTXO(Unsp...

  • 反常识的UTXO

    理解UTXO是什么并不难,难在理解为什么比特币要用UTXO。 1、什么是UTXO UTXO是“未花费的交易输出”。...

  • 【浅聊】比特币是如何完成记账的

    货币的本质是一种记账方式。在比特币的交易机制中有一种独特的记账方式称为UTXO,UTXO 是一种全新的记账方式,是...

  • 比特币UTXO模型介绍

    比特币与UTXO模型 UTXO全名是Unspent Transaction Outputs,未花费交易输出,相比于...

  • 比特币交易脚本是什么

    比特币基于UTXO模型,记住这一点在理解比特币各个环节都大有裨益。 UTXO是指未花费的交易输出(Unspent ...

  • 你的比特币地址里没有余额,只有UTXO?

    最近,无意中在网上看到这句话:现实世界中没有比特币,只有UTXO。那UTXO又是什么意思呢? 比特币的交易由交易输...

  • 以太坊,区块链之光

    1、开创先河的比特币 上篇我们讲了货币的价值,讲了比特币。比特币,用区块链的结构保证了记录不被篡改,用UTXO来做...

  • 区块链100讲:UTXO-你的比特币钱包里永远没有钱

    比特币交易,是比特币系统中最重要的部分,在比特币交易过程中,有一个词经常被提及“UTXO”,有一种说法:你的比特币...

网友评论

      本文标题:比特币本质其实是UTXO

      本文链接:https://www.haomeiwen.com/subject/vacbaxtx.html