根据中国人民银行等机构公开的信息,央行数字货币较大可能会采用 Token 范式的 UTXO 模型。本文从离线支付角度,认为 UTXO 模型比余额模型更适合央行数字货币。 余额模型在处理离线条件下的二次流转时,有严重的兑现次序问题。例如,某商户账户上原有 50 元钱,先离线收了顾客甲支付的 100 数字货币(顾客甲签名的支付承诺),然后又向供应商 A 离线支付了 120 元数字货币的货款(商户签名的支付承诺)。 倘若商户尚未恢复联网的时候,供应商 A 先联网并向央行提交了商户签名的 120 元货款的支付承诺,这时央行账本上该商户只有 50 元钱,无法完成 120 元的付款。解决该问题的方法是,商户将顾客甲支付 100 元的已签名支付承诺一并给到供应商 A,供应商 A 先将顾客甲的已签名支付承诺提交给央行,再将商户的已签名支付承诺提交给央行。 然而这并不完美,当顾客和供应商很多时,离线交易次数很多时,要求多方互相协商已签名支付承诺向央行的提交顺序,这在实践中是难以操作的。 而 UTXO 模型的支付过程是围绕每个数字货币进行的。UTXO 模型下,数字货币多次离线流转过程,实际是该货币在流转过程中的各次属主,依次对其支付承诺签名,并连同之前的各次已签名支付承诺一起转交给下一属主。只要各次签名能连续向前追溯,且最前面的签名与央行数字货币登记系统中所记录的属主一致,那么这枚数字货币就能被兑现给最后一个已签名支付承诺中指定的收款人。任何人离线收到的数字货币都可以在联网时去兑现,与其他人无关,也没有任何兑现次序要求。因此,从离线支付角度看,UTXO 模型比较适合央行数字货币。 货币标识和货币面额UTXO 根据面额是否固定,细分又有不定面额 UTXO 和固定面额 UTXO 两种子模型。 比特币采用不定面额 UTXO 模型。当一个或多个 UTXO 在一笔交易中被花费时,它会分裂成给一个或多个收款方的一个或多个 UTXO、找零给自己的一个 UTXO (如果有找零的话),以及给矿工的交易费三部分,这三部分的金额之和等于被花费的 UTXO 金额之和。 在该模型下,UTXO 不是永久存在的,UTXO 存续期间有唯一属主(即上一属主所签名的交易中指定的收款人)且属主不可变更,它一旦被花费就会被销毁,同时诞生新的 UTXO,新的 UTXO 的属主又是在当次交易中被指定的。UTXO 由产生该 UTXO 的交易来标识。例如,比特币用交易报文的散列值加上该 UTXO 在该交易中的输出序号来标识该 UTXO。 固定面额 UTXO 模型则与纸钞非常相似。该模型中,每个 UTXO 在发行时,编有永久唯一标识,账本维护了每个标识的 UTXO 的属主是谁。在消费时,与纸币一样,固定面额 UTXO 只能按其面额参与交易,如果交易金额不等于面额,那要么用多个不同面额的 UTXO 来凑到交易金额,要么收款方找零。如果收付双方都没有足够的零钱,那么交易可能就无法进行。 (责任编辑:admin) |