为了账号安全,请及时绑定邮箱和手机立即绑定

中本聪最伟大的创举UTXO

2018.06.14 10:51 239浏览
字号
大字 中字 小字
中本聪有三个天才般的创举,一个是区块链的设计,一个是UTXO,一个是智能合约。而这三个设计是极为天才的,被斯坦福大学密码学和计算机安全教授 Dan Boneh 评价为“extremely brilliant”,“必将激发无穷的创新”。UTXO (Unspent Transaction Output)那么到底什么是 UTXO 呢?UTXO是一种前所未有的记账方式。我们现在采用的记账方式是基于用户的。
UTXO 代表 Unspent Transaction Output。
在比特币社区里,Transaction 被简称为 TX,所以上面这个短语缩写为 UTXO。一般会认为 UTXO 是比特币区块链设计当中的一部分,但事实上 UTXO 和区块链没有必然的联系,你可以完全照搬比特币区块链,但不使用 UTXO。
HyperLedger 和Ethereum 一开始并没有采用 UTXO,现在前者已经切换回 UTXO,后者打算增加这个选项。我觉得这也是中本聪的过人之处——后来者照着临摹,中间想搞点小改进,结果做到后面,发现还是人家原版的水平高,纷纷又改回来…..


那么到底什么是 UTXO 呢?
前不久我听“卓老板谈科技”里“比特币”那一集,里面讲到比特币的付款过程,说他要给付给奶茶妹妹5个比特币,于是系统在他的账户里减掉5,在奶茶妹妹的账户里增加5,然后把这笔交易记入区块链总账,完成。虽然这个节目做得不错,不过在这一点上卓老板完全搞错了,他描述的是基于账户的方案,而不是比特币实际采用的 UTXO 方案。
如果让我们设计一个支付系统,一定会跟卓老板想到一起去,给张三一个账户,里面有余额 100 元,李四有一个账户,里面有余额50元。当张三要付给李四20元时,做以下操作:
1. 检查张三账户余额是否充足,如果不足20元就终止交易,向张三报“余额不足”2. 在张三账户里减去20元(假设零手续费)3. 在李四账户里增加20元
现在的银行也好、信用卡也好、证券交易系统也好,互联网第三方支付系统也好,其核心都是基于账户(account based)的设计,由关系鸿运国际hv128支撑。
鸿运国际hv128要确保两点,第一是你要确保业务规则得到遵守,张三的余额充足。第二是确保事务性,也就是原子性、一致性、隔离性、持久性(ACID)。这些都是鸿运国际hv128的常识性知识,这里不赘述。这种基于账户的设计,简单直观,而且在 IT 系统设计里用了几十年,应该说没有什么问题。
但比特币没有设计成基于账户的系统,而是发明了 UTXO 方案。我们假设一个这样的场景:张三挖到12.5 枚比特币。过了几天,他把其中 2.5 枚支付给李四。又过了几天,他和李四各出资 2.5 比特币凑成 5 比特币付给王五。
如果是基于账户的设计,张、李、王三人在鸿运国际hv128中各有一个账户,则他们三人的账户变化如下图所示:
但在比特币中,这个过程是通过 UTXO 实现的,图示如下:
每一笔交易的输出作为下一笔交易的输入。理解上面这句话,看懂上面交易的图,你才能理解UTXO(多看几遍,注意交易号,第几项,线的连接)你可能会疑惑,一个接一个,那么第一个怎么来的,当然是挖矿来的。比特币交易遵守几个规则。第一,除了 coinbase 交易之外(其他数字货币与比特币进行交易),所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了。
第二,任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配平。那么,在UTXO方案中,是怎么知道一个钱包地址有多少钱呢?注意我上面说的是一个地址而不是一个人,因为一个人可以有多个地址,而区块链的匿名性决定不知道地址对应的人是谁。所以当查一个账户余额时,UTXO 方案当然也需要一个鸿运国际hv128,这个鸿运国际hv128记录着当前系统里每一笔“没有花出去的交易输出”,也是就比特币。UTXO有什么优点呢?传统关系型账户鸿运国际hv128,随着交易量的增加会无限膨胀,而UTXO 鸿运国际hv128体积会小很多。
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
5人推荐
若觉得本文不错,就分享一下吧!
看过此文的用户,还看了以下文章
正在加载中
  1. 评论
  2. 收藏
  3. 共同学习,写下你的评论
意见反馈 常见问题 APP下载
官方微信
举报
0/150
提交
取消
hv128