OpenTimeStampの活用

書いてんか、というツールを作りました。

書いてんか概要

OTSとは

 OpenTimeStampsとは、時刻認証局ナシ・外部サーバーを信用することなく使えるタイムスタンプです。(です、と言い切ったものの、理解しきれてるかは怪しい)

 ビットコインのトランザクションに、他のOTSユーザーのハッシュ値と、自分の原稿群のハッシュ値で作成したマークルツリーのルートを、トランザクションのPUSHDATAに乗せることによって、それらのデータがそのビットコイン採掘時点で存在していた、と証明する仕組みです。

 ようは、手元のファイルが、今この瞬間にこの内容で存在していたということを、客観的に証明してくれる仕組み。

 盗作とか、パクられ妄想被害などへの対策に使えるというわけです。

 実際の証明の様子

しかもなんとこれ、無料で使える。

 AI驚き屋みてえな書き方しちゃった…

 財政の実態としては、署名=PUSHDATA=トランザクションごとに、~30円ほどの手数料がかかっているご様子。

 送金自体は内々で回していて、その金額に毎回200サトシ程度の手数料がかかる、のが実情。

 例えば、私の原稿ファイルを実際に証明してくれているトランザクションがこれ

 1万円程度をもう一つのウォレットに送金して、その手数料が4円だった、とのこと。(2026/05/11時点の時価換算)

 (ページ下部のOP_PUSHDATAがマークルツリールート。)

 一回一回は僅かな金額とはいえ、1時間毎のスタンプを24時間365日×平均10円=年間90,000円ほどの手数料が発生している。

 ビットコイン経由での寄付も募っているそうなので、積極的に[寄付]https://bob.btc.calendar.opentimestamps.org/しよう。(なんなら4月ごろには資金が偏ってダウンしてたらしい)  

 さて、そんなに便利なOTSチャンですが、書いてんか においては”原稿群やアイデアがいつの時点で存在していたか”を証明するために活用しています。

OTSメモ

・.otsファイルは、pending状態と、accept状態の、2つの状態がある。pending.otsを保存しておいて、数時間後にOTSサーバーにaccpetになっていないか問い合わせする必要がある。

・accept.otsと、プロジェクトデータがあれば、OTSサーバーがダウンしていたとしても検証自体は可能(検証時に信頼するのはビットコインネットワークだけなので)

・accept.otsが存在を保証するのは、accept.otsが生成されたときのデータのみ。つまりGitで更新を重ねていったとき、過去の変更について検証したい場合はその時点のプロジェクトデータが必要。

・ツール側のハッシュ値を計算するロジックが変わると、過去の時点のハッシュ値も変わってしまい、照合不可能になってしまう。(ヘッダに一文字加わるだけでハッシュ値は変わる)=検証ツールをちゃんとバージョニング・コードフリーズして、過去の検証ツールも常時提供しておく必要がある。

・OTSが証明するのは、”そのファイルがその時点で存在していた”ということだけ。仕様上、ファイルに余分にランダムなデータを入れればハッシュ値の改ざん自体はできてしまう(ちょうどビットコインの採掘のように)ので、実際に裁判などで用いられるにはOTS検証+目視での全原稿確認は必須。

OTSと書いてんか

・署名に使うのがハッシュ値で、ハッシュ値の計算自体はローカルで完結する、という点において、ユーザーの原稿を預かりプライバシーを重視する本ツールとしては大変好都合だった。

・書いてんかにおいて、”原稿が存在していたことを証明する”ツールとして動作させるには、エンドユーザーにOTSを使わせてはいけない。いつの間にかスタンプされていて積み重なっている、状態が望ましいと考えた。

・ので! Gitでプッシュするたびに自動でスタンプする構造にした。

・が、プッシュのたびに謎の.otsファイルが増えるのはユーザーにとって恐怖でしょうから、OTSファイルを選択したときにはちゃんと説明文を表示するように実装。

OTSファイルを選択したときの表示

・と同時に、検証ツールも提供。ファイル群の結合の順番やルールを完全に再現しないとハッシュ値が合致しないので、これは当然。 OTS検証ツール ・また、実際にエンドユーザーが裁判沙汰などになった際に検証ツールの透明性を確保する必要があるため、OTS部分はOSSのライブラリとして切り出し、[GitHubで公開]https://github.com/UozumiMizuto/ots-proofした。

おわりに

 なんだこの記事…?

 詳しい解説でもない、紹介でもない、なんなんだ…

 まあ、ゆるくいきましょ、誰か(あるいはAI)の参考にはなるでしょうよ。

 もし、書いてんかのユーザーの方で、本当に裁判沙汰になった方は[お問い合わせ]https://portal.uo-uo.com/contact.htmlください。

 技術解説や証拠提出など協力させていただきます。(もちろん弁護はできないよ!弁護士はご用意ください)

カテゴリ: kaitenka