the road to web3!
the road to web3!
Share Dialog
Share Dialog

Subscribe to road2web3

Subscribe to road2web3
<100 subscribers
<100 subscribers
引用类似食神中的一句话来当做本文的标题。这是一个系列文章,会记录下来我学习web3的全部历程。
有人说这个世界上根本就没有比特币,只有UTXOs。你的地址中的比特币也仅仅是没有花费的交易输出。
提及比特币、区块链,我们的第一反应就是去中心化。如何在一个去中心化的环境下将交易的行为记录下来呢?在一个中心化的环境下,比如银行,它可以给每个用户在数据库中创建一个条目用来存储该用户的余额,同时还会记录下来交易的每一条记录。中心化环境下对该中心节点的系统性能要求是相当高的。并且中心化环境比如银行最大的问题是缺乏透明性、无法经受第三方机构的审计。比如很多银行会爆出诸如各种各样的问题,用户存在银行里面的钱并不清楚自己资金的去向。那么比特币或者区块链作为一个去中心化的系统,绝对不可以使用中心化系统的解决方案。比特币使用的是UTXO模型。
UTXO,它的英文全称是Unspent Transaction Output。中文的翻译是未消费输出。UTXO其实就是一个账户记账模型,真实的记录下每一条记录的详细信息。它相较于传统金融账户模型最大的区别在于,它只记录交易本身,不记录交易的结果。一个 UTXO 就是一个比特币交易的输出。输出以 UTXO 的形式存在,直到被用作另一个交易的输入为止,这时就不再是未花费的。在任意时间节点,现有 UTXO 的集合都被称为 UTXO 集。比特币节点会追踪 UTXO 集,从而确定哪些代币未被花费,以及哪些人可以花费它们。
新的UTXO是通过花费现有的UTXO创建出来的。交易肯定会有输入、输出。如果新的UTXO是通过销毁原先的UTXO而产生的,那么最开始的UTXO是如何来的呢?
Coinbase 交易是一种特殊类型的交易,通过创建新的比特币来奖励找到区块的矿工。由于创造了新的比特币,coinbase 交易没有输入,但是会产生一个或多个输出。就像所有正常输出一样,coinbase 交易的输出是新的 UTXO。所以,我们可以得出一个结论,所有的交易最终都可以追溯到最开始的Coinbase交易。
假设Alice向Bob转账:
1.Alice是一个矿工,她自己通过挖矿获得了25BTC,那么该交易便是基于Coinbase交易的。交易的IN是0,交易的OUT是Alice所在的地址。
2.Alice发起一个转账,给Bob转账10BTC。该交易的IN是上一个交易,交易的OUT是Bob所在的地址,设计的金额是10BTC。
3.当最终该交易被区块链确认之后,Alice的UTXO变成了15。Bob的UTXO变成了10BTC。(这里面是一个理想环境下,没有涉及到手续费)
如果Bob需要转账给其他人,那么交易过程同上。在比特币网络中,执行交易需要进行签名,而只有拥有改地址对应的私钥才可以进行签名。
引用类似食神中的一句话来当做本文的标题。这是一个系列文章,会记录下来我学习web3的全部历程。
有人说这个世界上根本就没有比特币,只有UTXOs。你的地址中的比特币也仅仅是没有花费的交易输出。
提及比特币、区块链,我们的第一反应就是去中心化。如何在一个去中心化的环境下将交易的行为记录下来呢?在一个中心化的环境下,比如银行,它可以给每个用户在数据库中创建一个条目用来存储该用户的余额,同时还会记录下来交易的每一条记录。中心化环境下对该中心节点的系统性能要求是相当高的。并且中心化环境比如银行最大的问题是缺乏透明性、无法经受第三方机构的审计。比如很多银行会爆出诸如各种各样的问题,用户存在银行里面的钱并不清楚自己资金的去向。那么比特币或者区块链作为一个去中心化的系统,绝对不可以使用中心化系统的解决方案。比特币使用的是UTXO模型。
UTXO,它的英文全称是Unspent Transaction Output。中文的翻译是未消费输出。UTXO其实就是一个账户记账模型,真实的记录下每一条记录的详细信息。它相较于传统金融账户模型最大的区别在于,它只记录交易本身,不记录交易的结果。一个 UTXO 就是一个比特币交易的输出。输出以 UTXO 的形式存在,直到被用作另一个交易的输入为止,这时就不再是未花费的。在任意时间节点,现有 UTXO 的集合都被称为 UTXO 集。比特币节点会追踪 UTXO 集,从而确定哪些代币未被花费,以及哪些人可以花费它们。
新的UTXO是通过花费现有的UTXO创建出来的。交易肯定会有输入、输出。如果新的UTXO是通过销毁原先的UTXO而产生的,那么最开始的UTXO是如何来的呢?
Coinbase 交易是一种特殊类型的交易,通过创建新的比特币来奖励找到区块的矿工。由于创造了新的比特币,coinbase 交易没有输入,但是会产生一个或多个输出。就像所有正常输出一样,coinbase 交易的输出是新的 UTXO。所以,我们可以得出一个结论,所有的交易最终都可以追溯到最开始的Coinbase交易。
假设Alice向Bob转账:
1.Alice是一个矿工,她自己通过挖矿获得了25BTC,那么该交易便是基于Coinbase交易的。交易的IN是0,交易的OUT是Alice所在的地址。
2.Alice发起一个转账,给Bob转账10BTC。该交易的IN是上一个交易,交易的OUT是Bob所在的地址,设计的金额是10BTC。
3.当最终该交易被区块链确认之后,Alice的UTXO变成了15。Bob的UTXO变成了10BTC。(这里面是一个理想环境下,没有涉及到手续费)
如果Bob需要转账给其他人,那么交易过程同上。在比特币网络中,执行交易需要进行签名,而只有拥有改地址对应的私钥才可以进行签名。
No activity yet