关注我们有助于升职加薪噢!
区块链蓝图
公众号ID:BlueBlockchain
金钱是一种观念,如果你想要更多的钱,只需改变你的思想。
文 | Blue
图片来源 | Unsplash
我们知道,在比特币中,是不存在一个中心化的机构对比特币的交易进行结算清算的,自然也就没有中心化的数据库对用户的账户进行管理。事实上,在比特币系统中是没有账户这个概念的,取而代之的是UTXO(Unspent Transaction Output),即未消费的交易输出。这是中本聪的一个极其天才的设计。通过UTXO方案,比特币的交易得以在一个无第三方的系统中完成。
在了解比特币的UTXO模式之前,我们先来看一下基于账户模式的银行、证券等系统是如何处理用户交易的。
假设A、B在某银行各拥有一个账户,现在A需要转账100元给B。那么银行将执行:
1. 检查A账户余额是否充足,如果不足100元就终止交易,向A报“余额不足”
2. 如果余额充足,那么在A的账户里减去100元
3. 在B账户里增加100元
这一切都是在银行的中心数据库中完成的。
现在我们就来看看没有中心化数据库的比特币,是如何通过UTXO,取代账户模式进行交易记录的。
我们先抛出UTXO模型的三个原则:
1.所有交易始于coinbase交易(即始于挖矿奖励所得)
2.除了coinbase交易之外,所有的交易输入都必须来自于前面一个或者几个交易的UTXO输出(就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了)。
3.每一笔的交易支出总额等于交易收入总额。
这里只需要有一个简单的概念,然后我们结合实例,具体来体会这一过程。
要理解UTXO,最简单的办法就是把一枚比特币从诞生到在商海中沉浮的经历描述一下。我们假设一个这样的场景:张三作为矿工挖到12.5 枚比特币。过了几天,他把其中 2.5 枚支付给李四。又过了几天,他和李四各出资 2.5 比特币凑成 5 比特币付给王五。
下面我们看一下,这几个交易是怎么通过UTXO实现的:
我们先回顾一下区块链的区块结构:
图一中的交易信息,就是记录在图二区块结构中的交易字段
然后我们结合UTXO的三个原则和图片,继续进行解读。
1.我们之前已经学过,挖矿是比特币产生的唯一途径。每个区块的第一个交易叫做Coinbase交易。每一个区块的奖励就在这里产生,指向矿工(张三)的地址,即矿工挖矿的收入为12.5BTC。
2.现在张三想把自己的12.5枚比特币转账2.5枚给李四。注意,在传统账户模式中,只需要在各自的账户进行增减就可以了,而UTXO的机制是不同的。每一个UTXO都是一个整体,是不能分割的(类比一个UTXO就是一个硬币,不管面值多少,必须全部花出去),也就是系统默认的一个找零机制。
即张三地址中的12.5枚比特币全部转出,其中2.5枚转到李四的地址,剩余10枚比特币转到张三的地址。(这个地址可以是新地址,也可以是原地址,需要你的转账的时候备注,如果不填写的话,剩余的比特币可就全部成为矿工的手续费了)。
有人会问,为什么要多此一举,直接转2.5枚出来剩下的不动不就行了吗?这就是UTXO和账户模式的区别,除了coinbase交易之外,所有的交易输入都必须来自于前面一个或者几个交易的UTXO输出,且每一笔的交易支出总额等于交易收入总额。
注意观察:每一笔转账前面都是有资金来源标注的。也就是说,在比特币系统中是没有余额的概念的,获取一个用户余额的方法就是把当前用户地址全部的UTXO加起来。这样做的目的,有很多优点,比如安全性、隐私性更高,而且也有效防止了双花攻击等等。
3.同理,张三和李四准备各出2.5枚BTC转给王五。那么张三或李四发起 #3001 号交易,在交易输入部分,有两个资金来源,分别是#2001(1) 和 #2001(2),代表第 #2001 号交易的第 (1) 和第 (2) 项 UTXO。然后在这个交易的输出部分里如法炮制,给王五5比特币,把张三剩下的 7.5 比特币发还给自己。以后王五若要再花他这5比特币,就必须在他的交易里注明资金的来源是 #3001(1)。
截止到这里,我们就明白了UTXO究竟为何物,一枚BTC从挖矿产生,到不停地被交易,其实整个体系中存在的就是很多个UTXO。也有这么一句话:其实就没有什么比特币,有的就是UTXO。这么说其实是对的,因为这就是比特币交易的方式。比特币没有实物,只有数据,UTXO就是它的存在形态。
参考文章:
http://www.yopai.com/show-2-182646-1.html
https://new.qq.com/omn/20180309/20180309G10YO0.html
本文仅代表作者个人观点,不代表本公众号的立场,不构成投资建议,内容仅供参考。
发文时比特币价格:$8291
本 公 众 号 接 受 BTC 打 赏
B T C 地 址
1EBV1P12EkZZTXMJVHy5nnKcYKXgbsdLi2
知识科普 新鲜资讯 专业解读
尽在区块链蓝图
公众号ID:BlueBlockchain
喜欢本篇内容请给我们点个在看~