TLDR

  1. 唯一标识并追踪每一枚sat
  2. 给sat附加额外信息
  3. 利用以上功能衍生出NFT、BRC-20等玩法

准备知识

  1. 1 btc = 10^8 sat

  2. Bitcoin UTXO模型:input、output、fee、locking script、unlocking script、sig

    https://medium.portto.com/dive-into-how-bitcoin-ordinals-nfts-work-ca5634da73d

    https://medium.portto.com/dive-into-how-bitcoin-ordinals-nfts-work-ca5634da73d

    https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidoc

    https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidoc

  3. 因为block的size有上限(1 MB),所以矿工会优先打包fee_rate=fee/size高的交易,以获取最高的fee回报

Ordinals

  1. 如何唯一标识每个sat

    1. 以每个sat被挖出的顺序作为序号

      1. 0个block挖出来的第0个sat:https://ordinals.com/sat/0
    2. sat的一些表示方法

      https://docs.ordinals.com/overview.html

      https://docs.ordinals.com/overview.html

  2. sat进入交易后如何追踪

    1. first-in-first-out:[a b] [c] [d e f] → [a b c d] [e f]

    2. fee的追踪

      1. [a b] [c] [d e f] → [a b c d]
      2. coinbase tx: [SUBSIDY] [e f] → [SUBSIDY e f]
    3. 完整例子

      https://medium.portto.com/dive-into-how-bitcoin-ordinals-nfts-work-ca5634da73d

      https://medium.portto.com/dive-into-how-bitcoin-ordinals-nfts-work-ca5634da73d

  3. 衍生玩法:稀有聪(Rare Satoshi)

    1. 一些特殊block被挖出的sat

      https://docs.ordinals.com/overview.html

      https://docs.ordinals.com/overview.html

Inscriptions

  1. 给sat铭刻(inscribe)一段内容
    1. 存储位置:segregated witness (segwit)

      https://www.exodus.com/news/segwit-explained/

      https://www.exodus.com/news/segwit-explained/

      1. tx_size = body_size + witness_size/4
      2. 一个block最多存储不到4 MB的witness
    2. 存储格式:Taproot

      1. 前一笔交易的output,P2TR (Pay-To-Taproot)

      2. 后一笔交易的input,在witness的Taproot script中嵌入特定格式的内容

        https://docs.ordinals.com/inscriptions.html

        https://docs.ordinals.com/inscriptions.html

        1. 通过false判断让这段内容不会被执行
        2. 和http一样,支持各种content type
  2. 比较
    1. 和IPFS相比,数据存在了Bitcoin链上,更安全
    2. 和Arweave很相似,只不过Bitcoin的网络和共识更能保证数据安全
  3. 重复inscribe:只认第一次inscribe的内容,re-inscribe无效
  4. 举例
    1. 文字:https://www.blockchain.com/explorer/transactions/btc/4d2860d82d764502929d29eadd29eaae36a80fa7c5f0c471cbecd4025a6cfef1
    2. 图片:https://www.blockchain.com/explorer/transactions/btc/518d049cf9df009daa943d90b5c21905e682f8e37a4b7a84dfc0f8349b53f045
    3. hex to string:https://codebeautify.org/hex-string-converter
    4. 音频、视频等更多:https://ordinals.hiro.so/explore
    5. 在fee低的时候,一张图片1.8刀,还是可以接受的
  5. 协议本身还有很多地方没说清(比如unlock脚本规范等)。最终一切以开源的indexer代码的接口返回为准:https://github.com/casey/ord

应用1:NFT

  1. 基于Ordinals和Inscriptions,只能实现NFT的mint和transfer