Peter Todd は Bitcoin 開発者で、時間制限の提案 BIP 65 の著者、未承認取引の置き換え方針 BIP 125 の共著者、OpenTimestamps の開発者です。それぞれが扱うのは、支出条件、支払いの状態、データの存在証明という別々の確かさです。一つが残りのすべてを保証するわけではありません。
ある契約書の版が、紛争が始まる前から存在していたことを示したいとします。Peter Todd と関わりのある OpenTimestamps は、まさにこのような用途に応えるプロジェクトです。2016 年の当時の発表では公開試験版が紹介され、開発とテストに対して Riccardo Casatta への謝辞が記されています。これは当時の協力関係を示す記録であり、今も試験段階のままだという意味ではありません。Todd は将来の支出条件や、承認待ちの支払いにも取り組んでいます。まずはその二つを見ていきましょう。 [1]
Todd の BIP 65 は OP_CHECKLOCKTIMEVERIFY、略して CLTV を導入しました。この命令により、特定の支出経路を使う条件として、ブロック高や時刻の境界を指定できます。共同の貯蓄に、受取人が後になって使える予備の経路を設ける場面を考えてください。それまでは時間条件がその経路を止めます。条件を満たしてもコインは自動では送られず、有効な取引を作り、署名などほかの要件も満たす必要があります。別の支出経路がある場合はそちらの条件に従うため、すべての使い方が同じ制限を受けるとは限りません。 [2]
時間制限は、ウォレット画面の時計だけを見て動くものではありません。BIP 65 は、支出条件を定める命令であるスクリプトと、取引の nLockTime 項目との関係を確認します。両方が使う境界は、ブロック高か時刻かで一致しなければなりません。また、入力の nSequence が検査を無効にする最終値であってはいけません。これは絶対的な境界であり、出力が承認されてからの相対的な経過時間ではありません。条件を満たしても秒単位の掲載時刻は約束されず、採掘者が有効なブロックに取引を含める必要があります。 [2]
配信された取引は、各ノードが未承認取引を保存する mempool に残ることがあります。手数料が上がったとき、送信者は置き換え取引でより高い手数料を提示したいかもしれません。David A. Harding と Peter Todd は、当初の opt-in 方式を BIP 125 にまとめました。置き換え可能であることは nSequence で示すほか、未承認の祖先取引から引き継ぐ場合もありました。現在の支払いが、その前の取引の出力を使うためです。つまり、単独の支払いだけでなく依存関係も関係します。手数料の増額は役立つことがありますが、即時承認の保証ではありません。 [3]
mempool での置き換えは、ノードが承認候補として保持する取引を変更します。承認済みの履歴を書き換えるものではありません。また、BIP 125 は過去の opt-in 方針であり、すべてのソフトウェアに永遠に適用される規則ではありません。後の Bitcoin Core では、この信号を必要としない置き換えが標準となりましたが、置き換えを受け入れる条件は残っています。受取人にとって大切なのは、信号がないだけでは支払いの確定を証明できないことです。「送信済み」という表示も、承認されたブロックへの収録とは異なります。 [3] [6]
契約書の話に戻りましょう。OpenTimestamps は、特定のデータが証拠で裏付けられた時間境界より前に存在したことを検証できるようにします。内容の短いデジタル指紋である hash と、Bitcoin に結び付けた証明を使います。文書を変えると、検証時の指紋も変わります。しかしタイムスタンプだけでは、著者、内容の真実性、作成の正確な瞬間は分かりません。虚偽の文章にも、早い段階でタイムスタンプを付けられるからです。証明が制限するのはデータが遅くともいつ存在したかであり、それ以前にどれほど長く存在していたかではありません。 [1] [4]
OpenTimestamps のクライアントは、文書そのものをカレンダーサーバーに送りません。指紋をランダムな値と組み合わせ、受信情報からサーバーが内容を推測できないようにします。ここでのカレンダーは、要求を集めて Bitcoin への結び付けを助けるサービスです。ただし内容の保護と完全な匿名性は別です。時刻の近さや、まとめて作った証明から、要求同士の関連が分かる場合があります。.ots ファイルは文書のバックアップではないため、正確な元ファイルと一緒に保存してください。指紋から失った文章は復元できず、編集済みのコピーは別のデータです。 [5]
作ったばかりのタイムスタンプは、まだ承認済みの Bitcoin ブロックに結び付いていないことがあります。.ots ファイルがあるだけでは、完了したとはいえません。OpenTimestamps のクライアントは、待機中の証明と、ブロックまでの経路を含む完全な証明を区別します。ots upgrade は、補足情報が利用可能になったら取得して保存する命令であり、ブロックの採掘を強制するものではありません。その後、元データと Bitcoin のチェーンに照らして検証します。承認待ちの支払いと同じく、ファイルや通知の有無より実際の状態が重要です。 [5]
理解を深めるには、この項目とあわせて次もお読みください Luke Dashjr, Mara van der Laan, Satoshi Nakamoto. 次の項目からも参照されています Luke Dashjr, Mara van der Laan.