ビットコインの開発者は、取引の迅速化に役立つ便利な機能が不要になり、かつ特定の“指紋”として追跡される可能性があることから、ウォレットソフトからReplace-By-Fee(RBF)の明示的なシグナルを削除する動きを見せている。
現在、フルRBFが標準ポリシーとして採用されているため、旧来のオプトイン形式のRBFシグナルは冗長となっており、その廃止が検討されている。
これまでビットコインのブロックチェーン上で取引処理を迅速化したいユーザーは、「後で手数料を追加してこの取引を差し替える可能性がある」と示す任意のシグナルを活用してきた。しかしこの機能は、かつての有用性を失い、小規模ながらプライバシー問題もあることから、一部の開発者がシグナルの廃止を議論している。
まずはReplace-by-Fee(RBF)シグナルの概要を説明し、その後で開発者の提案について見ていく。
Replace-by-Fee(RBF)シグナルとは
郵送で小切手を送る場面を想像してほしい。郵便システムが混雑し、支払いが遅れる恐れがある場合、小切手には「遅延した場合はキャンセルして手数料を増額した新しい小切手を発行する権利を留保する」と記載されたチェックボックスがある。増額手数料は郵便システムに優先処理を促すインセンティブとなる。
同様の仕組みがビットコインではReplace-by-Fee(RBF)と呼ばれている。長年にわたり、ビットコインユーザーはウォレットで後から手数料を上乗せし取引を差し替えられる可能性があることをネットワークに示すスイッチを利用してきた。
しかし現在では、この任意シグナルは標準のネットワークポリシーとなり、ユーザーのオプトインにかかわらず全取引がデフォルトで差し替え可能とみなされている。
そのためネットワーク全体で差し替え取引が自動処理されるようになり、ウォレットにおける明示的な「差し替え可能」シグナルは冗長になり、取引に関わるウォレットの不要なデジタル指紋を残す遺物となっている。
このため開発者はウォレットソフトからこのシグナル機能を取り除くコード変更を提案している。
開発者のrkruxは開発者メーリングリストで、「PRが提出されている取引に対するBIP 125のRBFシグナルの削除をbitcoin coreウォレットで検討している。主な理由は、フルRBFが標準ポリシー化して以来、このシグナルが冗長になったためだ」と説明している。
カモフラージュの課題
実装には細心の注意が必要だ。異なるウォレットが差し替え機能を異なる方法で削除すると、それらのウォレットを介した取引がオンチェーン上で異なる様相を示し、追跡が容易になる恐れがあるからだ。
シグナルの削除は単純にボタンを消すような話に思えるが、ビットコインではこのシグナルが必須フィールドであり、必ず何らかの値を設定しなければならない。
コミュニティ参加者のMurchは、差し替え可能性のシグナルを止めることが単なる指紋の除去のように聞こえる一方、実際には送信者全員が各入力に対してシーケンス番号を選ぶ必要がある点を指摘している。
つまりウォレットは「何もない」状態を許容できず、必ず数値を設定しなければならない。Murchは現在、約75%の取引が特定のコード、主にMAX-2を用いているため、それに合わせるのが最も目立たずに隠蔽できる方法だと述べている。
またrkruxは、「デフォルトの入力シーケンス番号は、広範なウォレットコミュニティがベストプラクティスとして合意したものを用いるべきだ」と語っている。