深入理解铭文(二)
February 2nd, 2024

声明

当你完成了BRC-20的mint之后,你是不是就以为自己可以交易了?当你在OK钱包中点击你的代币准备交易的时候,你会惊讶地发现:我亲手mint的代币,tm居然还不能转账?还有没有王法?

从人类能懂的逻辑来看,我铸造了2000个代币,那么这2000个代币就是我的了,我爱给谁给谁。没毛病吧?

OK钱包说,对不起,你mint的代币,关我transfer什么事?

带着这个问题,我们先接着往下走,我们先铭刻(Inscribe) 444个代币,这时候transferable数量变成了444个:

可以查看到这笔交易里携带了这个信息:

也就是说,我把444个代币转给了自己。这时候我的的UTXO集里包含了这两个UTXO:

  1. 代表mint 2000个代币的铭文

  2. 代表transfer 444个代币的铭文

完成了这个铭刻之后,再回到钱包中就可以发送这444个代币了。

发送的话很简单,就是把这个UTXO转出去就可以了。下面这笔转账的内容:

同理,我们可以把mint的这个铭文整体转出去。你可以这么理解,不管是mint还是transfer的铭文,他们都是一个“包含了n个代币”的NFT,而当我铭刻(inscribe)了444个代币的时候,这444个代币就是FT。

参考自:https://twitter.com/hiCaptainZ/status/1752934168072441945
参考自:https://twitter.com/hiCaptainZ/status/1752934168072441945

市场交易

除了转账之外,还接下来,我们把这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:

最后再来回答这笔交易中,除了买方和卖方之外,这个第三方的地址是什么:

参考

Subscribe to 大白话web3
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from 大白话web3

Skeleton

Skeleton

Skeleton