十分钟区块链系列06:比特币交易核心概念之UTXO

作者:爱因斯坦一撇  时间:2019-12-21  分类:区块链知识教程  

  初次看到UTXO你肯定一脸懵逼,啥玩意?事实上UTXO是比特币的一个核心概念,UTXO来源于英文Unspent Transaction Output,Unspent意思是没有用完的,Transaction代表交易、事物,单词连起来就是“未花费交易事物输出”。

  UTXO贯穿整个比特币交易网络,每一笔资产的交易都离不开UTXO,严格来说比特币就是一笔笔的UTXO组成。

日常的转账交易

  生活中,转账交易时时刻刻都在发生,早上起来上班路上买早餐,坐地铁、公交,结算工资时候公司往你卡里打钱,都是转账、交易。

  日常的转账,需要有一个账户,比如你开的招行工资卡,绑定了你的个人信息,你用工资卡的余额去消费。如果你买了一个十块钱的面包,用银行卡结算,面包店就从你的招行卡上面扣除10块钱,划转到对方的账号。

  

比特币网络的交易

  虚拟货币交易所、钱包等转出、转入比特币资产也在不断发生着,但具体是怎么发生的?是不是也是和支付宝转账一样,从对方的账户“扣除”你所需的数量比特币呢?

  结果似乎是这样,但内部实现其实还是有所区别的。比特币交易并不是通过账户的增减来实现,而是通过一个输入/输出关系去实现。

  在比特币网络当中,每一笔交易都对应一个“输入”和“输出”,先花费“输入”,再产生“输出”,也就是UTXO。

  输入

  举个例子,老王是一名比特币矿工,通过挖矿,老王拿到了10枚BTC,这个时候的“输入”就是挖矿奖励。假如老王不是矿工,是一个定投用户,“输入”可以是交易所或者个人账户。

  这些存入老王比特币账户的交易,就是交易的输入源。

  输出

  老王最近手头有点紧,想卖点BTC套现,于是找到了卖家李四,拿到了李四的钱包地址,给李四转账了5个BTC,这个过程就是“输出”。

比特币交易过程

  我们以一个例子解释比特币转账的全过程。

  

  整个过程总共发生了3次交易,每次交易都对应一个“输入”和“输出”,比特币的交易事物数据中,其实就是存储了这样的输入输出,构成比特币的交易账本。

  挖矿得到的12.5个BTC,属于Alice的UTXO,放在了001交易的“输出”部分,Alice拥有这12.5个BTC的所有权,也可以成为下一笔交易的“输入”。

  Bob需要6个BTC,Alice找到自己的UTXO,转账6个BTC到Bob的账户,还有6.5个BTC“找零”给自己,同时把这些信息记录在002这笔交易中。同理可以知道,Bob得到的6个BTC又可以作为自己的UTXO,转账2个给Lily,同时“找零”4个BTC给自己。

  “找零”

  因为比特币交易没有账户的概念(只有“地址”),所以每次转账如果“输入”大于“输出”,就需要“找零”给自己,同时把找零的信息同步到交易中,作为“输出”的一部分。

UTXO所属关系确定

  

  既然比特币交易就是各种UTXO组成,但是没有账户,那么怎么确定某个UTXO属于谁呢?

  在比特币网络中,我们介绍过有很多脚本,对应交易也是通过输入和输出脚本去实现。

  A通过私钥签名解锁自己的UTXO,然后再通过对方B提供的公钥锁定自己的输出,A就把自己的UTXO变成B的UTXO,而如果B想转账给C,则是需要输入私钥解锁自己的UTXO,私钥是唯一的,只有拥有私钥,才能真正掌握资产的使用权。是不是很巧妙呢?

  关于UTXO的介绍就到这里,感谢你的耐心阅读,我是爱因斯坦一撇,欢迎留言、讨论!

版权信息
作者:爱因斯坦一撇
来源:一撇区块链

关于我们

联系我们

作者进驻

公众号

Copyright © 2013 比特巴 www.btb8.com
只为您提供客观公正有用的比特币 区块链 加密数字货币新闻、技术教程、行情分析、行业人物资讯
手机版