4. 代币(Token)
基于NOTE协议的代币(Token),命名为n20,Payload按照以下规则定义:
- 数据使用msgpack编码的明文进行存储。
- 一个Token包含部署(deploy)、分发(mint)、转移(transfer)等操作的数据结构。
- 所有操作都围绕账户和余额展开。
- 每个操作都需要经过部署时的智能合约进行链下验证,只有验证通过后才对账户余额进行操作。
- 数据格式可以任意扩展,所有的扩展参数将传递给智能合约。
UTXO绑定
代币分为绑定UTXO和非绑定两种状态。在具体的区块链中,例如BTC链上,Token的数量被绑定在UTXO上,在转移和销毁等操作时,Token数量从交易输入转移到交易输出上的新UTXO。 如果需要跨链转移Token,则绑定的UTXO将被消耗并解绑,在新的链上重新绑定于新链的UTXO。
代币的UTXO绑定
比特币的基本交易单位是UTXO,每一个绑定的UTXO通过协议被赋予代币的种类和数量。与染色币(colored coin)不同的是,UTXO中的Satoshi数量与NOTE协议下代币的数量无关,不受Satoshi数量的限制。代币与UTXO绑定后,可以避免比特币的区块重组和RBF(Replace By Fee)带来的各种复杂问题。
代币的UTXO解绑
处于解绑状态的代币无法直接进行转账,需要在特定的区块链上进行绑定。