Opentimestampsはブロックチェーンを用いたタイムスタンプを実現する方法の共通規格です。遊びで作ろうと思っているライトニングノードを使ったオフチェーンNFTのようなものを作る上で調べていたので紹介してみようと思いました。
一般的なタイムスタンプサービスとの比較と合わせてどうぞ。
一般的なタイムスタンプ
従来のタイムスタンプは「時刻認証局(TSA)」と呼ばれる特定のサーバーが、ある時刻にあるハッシュ値に対応するデータが存在したことを保証する電子証明書でした。すなわち、タイムスタンプを発行してもらいたい人は検証する人が信用する時刻認証局を利用する必要があるというトラストベースの仕組みです。もちろん、現在も広く利用されています。
ビットコインの誕生によって、ブロックチェーンを使えば特定の時刻にデータが存在したことの証明を特定の権威サーバーの必要なしに実現できるようになりました。例えばビットコイントランザクションもデータであり、ブロックチェーンに取り込まれた時点で存在していたことは明らかです。同様にブロックチェーンに任意のデータが書き込めるOP_RETURNという機能を使ってハッシュ値を書き込むことでタイムスタンプと同じことが実現できます。
時刻認証局は仕組み自体は誰にでも作ることができますが、サービスの品質などにトラストが必要な業務なので日本では総務省と日本データ通信協会が求める要件に沿って認可されている5局が提供しているようです。お試しのようなインターフェイスはなく、BtoBという印象です。一方アメリカには同様の認可の仕組みは見当たらず、無料で利用できるサービスもありました。
FreeTSA:https://www.freetsa.org/index_en.php
マークル木でデータを圧縮
さて、OP_RETURNで1つ1つデータを書き込んでいては将来的にタイムスタンプあたりのコストが膨大になってしまいます。参考として日本の認可事業者のアマノタイムスタンプサービスではタイムスタンプサービス1回あたり8円ですが、1入力1出力+1件のOP_RETURNをもつビットコイントランザクションを一番安い手数料で通せても同じくらいかかります。手数料が高騰しているときに急いでいれは100倍くらいかかるかもしれません。
また、タイムスタンプあたりの手数料を下げる工夫として1つのトランザクションにOP_RETURNを複数含めても大した節約にならないばかりか、そのようなトランザクションは他のノードに伝播されないのでこの手法はマイナーに直接頼む必要が出てきます。