ここ数日で話題になっているビットコイン上のプロジェクトに、OrdinalsというフルオンチェーンNFTプロトコルがあります。
個人的には直接ブロックチェーンを利用するNFT自体が無駄という意見なので、フルオンチェーン(紐づけるファイルのデータを全てブロックチェーン上に記録する)は愚かとさえ感じますが、もちろん対価となる手数料さえ払えば何を記録するのもユーザーの自由なので今日はそこを議論するつもりはありません。
Ordinalsがどういう仕組みなのか、特にCounterpartyやRGBなどビットコイン上でNFTを扱うことのできる他のプロトコルとどう違うかに焦点を当てていきます。
Ordinal Theoryとは
Ordinal Numbersとは序数、つまり順番の番号(何番目)を指す言葉で、Ordinal Theoryは「ビットコイン上で発行された全てのsatoshi (sats)に固有番号を振るシステム」というような意味を持ちます。具体的にどういうことでしょうか。
例えばビットコインの最初のブロックで50BTC、すなわち50億satsが発行されたとき、そのsatsに0,1,2,3,...,4999999999と順番を振ります。そして以後のトランザクションにおいて入力されるsatsと出力されるsatsの対応関係についてルールを定めることで特定のsatを「採掘から最後のトランザクションまで」追跡することができます。
例えばその50BTCを25BTCと25BTCに分割して送金する際に、0番目の出力には0~2499999999番目、1番目の出力には2500000000~4999999999番目のsatsが割り振られるなどの決まりが定められています。
実際には最初のブロックで採掘されたコインは送金不可能です。また上記の例は単純化されていますが、実際は手数料として一部のsatsがマイナーに渡ることなどを考慮した仕様になっています。
つまり、ビットコインの全てのsatsに通し番号をつけ、その移動を記録する1つの方法としてOrdinal Theoryというものは提案されました。紙幣の記番号ですね。
キリ番など珍しいsatsをたまたま持っている場合もあるかもしれません。それを面白がって作ったようなページもあります。
紙幣でもキリ番や小さい番号、ゾロ目などでコレクター価値がついているものがありますね。珍しいものでは額面の数十倍で取引されることもあるようです。(珍しい1 satが50 satで買えるわけにはいかないように思いますが!)
全てのsatsに通し番号を振るOrdinal Theoryについて詳しくは以下のページにまとまっています。
Ordinalsでは特定のsatにデータを付加できる
さて、特定のsatに固有番号を振って追跡する方法としてのOrdinal Theoryが何に使われるために生まれてきたのかというと、その特定のsatにデータを付加してNFTのように扱うため、というのが実際のところと思われます。メーリスの投稿には他にも使い方の例がありましたが、ウェブサイトは明らかにNFT色が濃く出ているためです。
特定のsatにデータを付加することをInscribe、付加したデータをInscriptionと表現しており、データが付加されたsatsはその後移転してもデータが付加された時点まで遡って参照することができます。
Ordinalsの2大特徴はOrdinal Theoryとこのデータの保存方法だと思います。