主页 > imtoken苹果版 > 比特币UTXO 中本聪最伟大的创造UTXO

比特币UTXO 中本聪最伟大的创造UTXO

imtoken苹果版 2024-01-03 05:13:42

中本聪有三个天才般的创造,一个是区块链的设计比特币UTXO,一个是UTXO,一个是智能合约。 而这三项设计都极为天才,被斯坦福大学密码学与计算机安全教授丹博内评价为“极其出色”,“必将激发无穷无尽的创新”。

UTXO(未花费的交易输出)

那么UTXO到底是什么?

UTXO是一种前所未有的记账方式。

我们现在使用的计费方式是基于用户的。

UTXO 代表未花费的交易输出。

在比特币社区中,Transaction简称为TX,所以上面的短语简称为UTXO。 一般认为UTXO是比特币区块链设计的一部分,但实际上UTXO与区块链没有必然联系。 您可以在不使用 UTXO 的情况下完全复制比特币区块链。

HyperLedger和Ethereum一开始并没有采用UTXO,现在前者已经切换回UTXO,而后者有意加入这个选项。 我想这也是中本聪擅长的地方——后来者抄袭,中间想做一些小的改进,后来做了之后,发现原来的版本还是很高的,又改回来了相继...

比特币比特币的行情_比特币UTXO_比特币每十分钟产生多少个比特币

那么UTXO到底是什么?

前不久听了《卓老板谈技术》的插曲《比特币》,讲的是比特币的支付流程。 他说他要付给他奶茶妹妹5个比特币,于是系统从他的账户里扣了5个比特币。 ,给奶茶姐姐的账户加5,然后把这笔交易记入区块链账本,完成。 这部剧虽然拍的不错,但是在这一点上,卓总却完全看错了。 他描述的是一种基于账户的方案,而不是比特币实际采用的UTXO方案。

如果要设计一个支付系统,我们肯定会想到和卓老板一起,给张三一个余额为100元的账户,给李四一个余额为50元的账户。 当张三要付给李四20块钱时,进行如下操作:

1、查看张三账户余额是否充足比特币UTXO,如果不足20元,交易将终止,张三会报“余额不足”

2、从张三的账户中扣除20元(假设手续费为零)

3.给李四的账户充值20元

无论是银行、信用卡、证券交易系统,还是互联网第三方支付系统,其核心都是基于账户(account based)设计,以关系数据库为支撑。

数据库必须保证两点。 首先是要保证商业规则的遵守,张三要有足够的余额。 二是保证事务性,即原子性、一致性、隔离性和持久性(ACID)。 这些都是数据库的常识性知识,这里就不赘述了。 这种基于账户的设计简单直观,在IT系统设计中已经使用了几十年,应该说是没有问题的。

但是比特币并不是设计成基于账户的系统,而是发明了 UTXO 方案。

我们假设这样一个场景:张三挖出了12.5个比特币。 几天后,他将其中的2.5付给了李四。 几天后,他和李四各出资2.5个比特币凑成5个比特币支付给王五。

如果是基于账号的设计,张、李、王在数据库中各有一个账号,三人的账号变化如下图所示:

比特币UTXO_比特币比特币的行情_比特币每十分钟产生多少个比特币

但是在比特币中,这个过程是通过UTXO实现的,如下图:

比特币比特币的行情_比特币UTXO_比特币每十分钟产生多少个比特币

每笔交易的输出作为下一笔交易的输入。

只有看懂了上面这句话和上面的交易图,才能看懂UTXO(多看几遍,注意交易号,项目数,行的连接)

你可能会疑惑,一个接一个,那么第一个是怎么来的,当然是挖矿来的。

比特币交易遵循几条规则。

首先,除了coinbase交易(其他数字货币与比特币交易),所有的资金来源都必须来自之前一笔或几笔交易的UTXO,就像水管一样,一个接一个,一个出去一个进去,一进一出,生生不息,资金在交易之间流动。

其次,任何一笔交易中交易输入的总量必须等于交易输出的总量,等式两边必须平衡。

那么,在UTXO方案中,怎么知道一个钱包地址有多少钱呢?

注意,我上面说的是地址而不是人,因为一个人可以有多个地址,而区块链的匿名性决定了无法知道地址对应的是谁。 那么UTXO方案在查看账户余额的时候当然也需要一个数据库,它记录了当前系统中每一笔“还未花费的交易输出”,也就是比特币。

UTXO有什么优势? 传统的关系账户数据库会随着交易量的增加而无限膨胀,而UTXO数据库会小很多。