声明
当你完成了BRC-20的mint之后,你是不是就以为自己可以交易了?当你在OK钱包中点击你的代币准备交易的时候,你会惊讶地发现:我亲手mint的代币,tm居然还不能转账?还有没有王法?
从人类能懂的逻辑来看,我铸造了2000个代币,那么这2000个代币就是我的了,我爱给谁给谁。没毛病吧?
OK钱包说,对不起,你mint的代币,关我transfer什么事?
带着这个问题,我们先接着往下走,我们先铭刻(Inscribe) 444个代币,这时候transferable数量变成了444个:
可以查看到这笔交易里携带了这个信息:
也就是说,我把444个代币转给了自己。这时候我的的UTXO集里包含了这两个UTXO:
代表mint 2000个代币的铭文
代表transfer 444个代币的铭文
完成了这个铭刻之后,再回到钱包中就可以发送这444个代币了。
发送的话很简单,就是把这个UTXO转出去就可以了。下面这笔转账的内容:
同理,我们可以把mint的这个铭文整体转出去。你可以这么理解,不管是mint还是transfer的铭文,他们都是一个“包含了n个代币”的NFT,而当我铭刻(inscribe)了444个代币的时候,这444个代币就是FT。
市场交易
除了转账之外,还接下来,我们把这444个MING list到unisat市场上。值得注意的是,list到市场上这个动作会做一个授权,但是不会上链。
我们用另一个账号买这444个代币,这笔交易的内容为(先忽略买家和卖家之外的第三个地址,最后会解释):
看一下input的第三个UTXO的id,
可以看到这个txid,正是这个铭刻了transfer的id:
看到这里你可能会有疑问。在整个过程中,买方只进行了一次签名(没有上链),等到有人买了这个代币之后,就会实现“我把2000sats给你,你把1000sats给我”的交易。从结果上来看,买方在没有把交易上链,就完成了对“如果有人给我2000sats我就把这1000sats给他”这个行为的“授权”。我们知道,比特币中是没有智能合约的,只有转账。那么这个是如何实现的?
这就要提到比特币的PSBT签名。卖家先将自己要卖出的铭文所在utxo作为input,要得到的btc数量左右output签名,并将签名提交给平台,平台可以在签名上继续添加自己需要收取手续费的签名,然后买家从平台市场中获取到PSBT签名后,将自己需要支付价格的utxo作为input继续签名,然后将这一笔多方签名的交易广播出去。(https://learnblockchain.cn/question/5309)
关于更多PSBT,可以参考这篇文章:
当你unlist的时候,就要把这个签名消耗掉(转给自己)
对应的就会有这两条数据,这4个代币从transferable变成available:
最后再来回答这笔交易中,除了买方和卖方之外,这个第三方的地址是什么:
参考