Cover photo

bitcoin ordinals的常识性错误

不论是否赞同,Ordinals生态系统正在逐渐完善。一旦时机成熟,Ordinals定将迸发出巨大的潜力。但与此同时,Ordinals相关的资料和文档还十分不完善。在不少介绍Ordinals的文章中,甚至在主流的Ordinals项目的文档里也存在一些常识性错误。本文将列出一些常见的错误,并对其作出详细的解释。

只有PT2R(bc1p)地址才能接收inscriptions

正确描述:任何正常的btc地址都可以接收inscription。

一些提供inscribe服务的产品要求用户使用pt2r地址接收inscription。同样很多科普文章里也提醒用户使用pt2r地址,否则将无法接收inscription。 例如下列文章质疑TwelveFold项目方不做地址审查,导致14个使用非pt2r地址的成功的竞标者无法接收inscription。实际上这些inscription已经正常转入了竞标者提供的“非兼容”地址。

https://www.theblockbeats.info/news/35385

为什么会有人认为必须使用pt2r地址接收inscription?因为Inscription利用了taproot的某些相关功能来“mint” NFT。Inscription的content数据是作为taproot spend scripts写入交易的witness。因此,很多人错误地的认为只有使用taproot地址来接受inscription。 但是一个完整的“mint”需要发送两个交易上链:

  1. Commit: 创建一个taproot输出。

  2. Reveal: 花费上述交易生成的UTXO,由于此时必须将包含mint内容的脚本作为输入来解锁上述UTXO,因此就在链上揭示了mint的内容。

Reveal交易的输出地址就是最终接收inscription的地址,对其格式没有特别限制。Commit的输出和reveal输入必须是taproot地址。在官方的实现代码中,每次会生成一个临时的taproot地址来完成commit & reveal 交易。因此,用户并不需要准备PT2R地址来保存inscription。但为了避免在日常转账中误将inscription转出,一般需要使用特定的地址来专门收集和保存inscription。

Inscription不可篡改

正确描述:Inscription可以修改。

很多介绍Ordinals 的文章都将inscription不可篡改和永久保存视为最基本的特性。实际上不可篡改并不属于sat inscribe共识。目前官方提供的inscribe代码实现会检查该sat是否曾经被Inscribe过。如果该sat已经拥有inscription将拒绝inscribe操作。其他版本的实现可能会允许在拥有inscription的sat上重新inscribe。就像BTC矿工可以自定义消息打包规则一样,是否允许re-inscribe并不会破坏Ordinals的inscribe共识。

Inscription的content size不能大于4MB

正确描述:Inscription的content size不能大于400KB。

虽然BTC 理论上的最大block size为 4MB,但是bitcoin core 会将大于 400,000 weight units(400KB)的交易标记为非标准交易并拒绝转发。当然,如果有人直接联系矿工将这个交易打包在一个区块中,那么其他节点就必须接受这个区块中的交易,因为它符合共识规则。不过在实际操作中,大于400KB的inscription将很难正常mint。

转让Inscription只要将对应的sat转出即可

正确描述:需要转出包含该sat的大约几千个sat。

过小的交易金额将会被判定为粉尘交易,最终会被网络拒绝。Ordinals的官方实现默认保留10000个sat用于保存inscription,并将Inscription数据关联到第一个sat。