- 在当前的区块链项目中,主要有两种记录保存方式,一种是账户/余额模型,一种是UTXO模型。“大饼”采用就是UTXO模型,“姨太”等则采用的是账户/余额模型。
- UTXO全称Unspent Transaction Outputs,表示未花费买卖输出,被用作“大饼”买卖的输出。一笔买卖由输入和输出组成,而UTXO是这个买卖输入输出的一部分,所以我们也称UTXO是买卖最基本的组成单元。
- 所有“大饼”都必须来源于前面某一个或者几个买卖的UTXO,除非是爆块奖励的“大饼”。任何一笔买卖的输入“大饼”之和必须等于输出“大饼”之和(存储提供者费用视为包含在输出里的话)。可以看成 “等式两边必须配平”。
- UTXO模型是为了防止双花,就是双重花费数字资产。UTXO模型原理下,双花发生概率很低而且极易被全网验证时所发现并剔除。每一笔输入同时也需要上一笔输出所对应的私钥进行签名,而且每个存储提供者都存储着“大饼”网络所有UTXO的信息,全网存储提供者通过UTXO规则及签名算法就可以验证新买卖的合法性。
- UTXO与区块链及加密技术结合,可以构造出资金穿透记账系统,它不但能高效处理资金买卖,清晰记录资金的流转全貌,而且能确保银行和客户的隐私不被泄露。这个记账系统的架构具有以下特点:
- (1) UTXO记账
所有接入这个系统的银行,除了中心节点以外都是记账节点,一些记账节点同时还充当着区域节点;每个记账节点都有一个全局总账副本,记账节点以此为基础,采用UTXO记账方式,记录本行账户发生的资金买卖;买卖一旦发生,就将买卖信息向全部区域节点广播。
- (2) 节点分层
区域节点经中心节点授权,由若干个记账节点充当,区域节点负责收集、校验记账节点广播的买卖信息,并将通过校验的买卖信息向其它区域节点转发;同时,每个区域节点都对应着一群记账节点,每隔一段时间,区域节点就把这群记账节点广播的有效买卖,打包生成“分时区域账本”,并提交至中心节点。
- (3) 中心共识
全网存在一个中心节点,只有中心节点参与形成全网共识;中心节点把区域节点提交的分时区域账本进行汇总组装,生成这一段时间的“分时全局账本”,把分时全局账本前后有序链接,生成“全局总账”;全局总账是所有记账节点的最终共识,中心节点向记账节点发布全局总账,作为记账节点下一时间生成UTXO买卖信息的基础。
- 从UTXO记账系统出发,可以导出现行记账系统所包含的所有信息,反之则不行。如果将资金的运行比作一条河流,现行记账系统直接反映的主要是水流横截面,而UTXO记账系统记录的则是水流运行全貌。从这点来讲,UTXO记账方式优于现行记账方式。
- 但是,区块链的数据结构决定其随机读取速度慢,占用空间大,不过这个缺点是获取更多信息的必须代价,而且随着电脑运算能力的提升,这个缺点将越来越不重要。
- 最具挑战性的是如何处理UTXO记账系统和现行记账系统的关系。UTXO是一个颠覆性的记账方式,在具体部署上应从实验室开始,从最简单的资金买卖开始,以检查其对实际买卖的适用性和暴露出来的问题,并衡量新旧系统的成本收益对比。
UTXO 核心设计思路是:它记录交易事件,而不记录最终状态。比特币的一般性交易:调用一个UTXO给其他人付款。集合型交易:调用多个UTXO给其他人付款。除此之外,你还能举出其他的交易类型吗?
来源:金色财经