什么是UTXO,UTXO模型的好处是什么?
扫描二维码
随时随地手机看文章
比特币网络不是账本/余额模型,而是UTXO模型,UTXO是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。所有的未花费(使用)的输出即整个比特币网络的UTXO。什么是UTXO呢?
TX是Transaction(交易)的缩写,TXO即为 TX output(交易输出):包含一个value值和一段脚本,该脚本规定了谁有权使用这笔交易(比如需要私钥签名)。UTXO就是Unspent TXO(未花费的交易输出),比特币网络规定,只有对“尚未使用过”的交易签名才能是有效签名。每笔交易都有若干交易输入,也就是资金来源,也都有若干笔交易输出,即资金去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是 UTXO。
比特币交易遵守以下规则:
1、所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,历史交易出入相接,生生不息,钱就在交易之间流动起来了。
2、任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配平。
数字货币无法像金属货币(比如黄金)那样,仅靠物理转移即可转移所有权————即当A将一份黄金交给B后,A必然不再拥有这份黄金。
而A将一份数字货币转给(签名)B后,A仍可以把同一笔交易转给C,因为A掌握私钥,这两份签名均为有效签名,这就构成了“双花”。以往的密码学货币无法有效解决双花问题,因而无法摆脱对第三方中心化机构认证的依赖(第三方信任)。因此必须有一种机制来确保每笔交易只能使用一次,即只有对“尚未使用过”的交易签名才能是有效签名。
比特币规定每一笔新的交易的输入必须是某笔交易未花费的输出,每一笔输入同时也需要上一笔输出所对应的私钥进行签名,并且每个比特币的节点都会存储当前整个区块链上的UTXO,整个网络上的节点通过UTXO及签名算法来验证新交易的合法性。这样,节点不需要追溯历史就可以验证新交易的合法性。
UTXO模型的好处是:
可扩展性 - 由于可以同时处理多个UTXO,因此可以实现并行事务并鼓励可伸缩性创新。
隐私 - 甚至比特币也不是一个完全匿名的系统,但只要用户为每笔交易使用新地址,UTXO就可以提供更高级别的隐私。 如果需要增强隐私性,可以考虑更复杂的方案,例如环签名。
相比使用账户/余额模型的以太坊来说,这种模型的复杂度更高,效率也不及后者,但对于双花攻击的抗性更强。目前除了比特币,也有一些其他的区块链开始推广这种模型,例如Hyperledger,理由也正如前述,允许并行处理多个交易,同时可以保护隐私。但反对使用UTXO模型的人认为,UTXO在实际运行中会比理论上产生更大的复杂性,而这可能是没必要的,而且由于其无状态性,和智能合约的契合性不好。