在 UTXO 模型的区块链上,资产可以类比为真实世界里钱包里面的硬币,每个硬币都是独立的,与之相应的,一个人可能同时持有很多个 UTXO,且每个 UTXO 都可以使用不同的密钥。

这就给数字货币钱包提出了挑战,不能再通过简单地转移一个私钥,来转移用户的全部资产。我们迫切需要一种新的格式,来确切地描述一个 UTXO。

以比特币为例,花费一个 UTXO 时我们需要以下信息:

  1. previous_txid 产生此 UTXO 的交易
  2. previous_index 此 UTXO 的位置
  3. lock_script 此 UTXO 的锁定脚本
  4. unlock_script 解锁此 UTXO 的脚本

所以如果用json格式来表示一个 UTXO,它可以是这样的:

{
  "txid": "...",
  "index": 0,
  "lock": "...",
  "unlock": "..."
}

有人说可以把 merkle proof 也加入到这个结构中,这样结合 Block Header 服务,就可以验证此 UTXO 是否(曾经)在链上。

但如果仅仅是用于在不同钱包之间转移 UTXO,我认为这样就已经足够了。


Ljzn
399 声望102 粉丝

网络安全;函数式编程;数字货币;人工智能