2022年11月11日 3 min read

Bitcoin Core 24.0からのFull RBF既定化についての議論まとめ

Bitcoin Core 24.0からのFull RBF既定化についての議論まとめ
Photo by David Dibert / Unsplash

この1週間ほど世間の話題はFTXの信用不安問題で持ちきりですが、ビットコイン開発者の多くは全然違う論争に巻き込まれていました。Bitcoin Coreの次期リリースである24.0において、ノードのポリシーとしてFull RBF (mempoolfullrbf)というものが導入される予定のところ、これに反対する意見が出たためです。

結果的には導入継続という流れになりましたが、このように誰でも意見・議論できることがビットコイン開発における健全性維持の1つの仕組みです。

それでは議論の内容を見ていきましょう。

RBFとは

RBFとはReplace-by-Feeの略で、配信したがまだブロックに取り込まれていないトランザクションを、より高い手数料を払って置換することをいいます。トランザクション作成時にそのトランザクションにRBF有効のフラグが立てられている場合、同じコインを使用する別のトランザクション、つまり相反するトランザクションを配信して古いものを置き換えることができます。(置換されるトランザクションより手数料が高いこと、置換されるトランザクションがまだブロックに取り込まれていないことが条件)

一部のウォレットではRBFが既定で有効になるようにトランザクションを生成していて、ブロックに取り込まれるまでの間に自分に送るトランザクションで上書きすることで送金を「キャンセル」したり、あるいは手数料が低すぎてなかなか取り込まれない場合に手数料を追加することができます。これはビットコインウォレットのユーザービリティ向上につながる機能です。

ちなみに実はRBFが有効になっていなくても同様のことを行うことは理論上できます。なぜなら、ブロックに取り込まれていないトランザクションの扱いはコンセンサスの問題ではなく、各ノードに任されているポリシールールと呼ばれるものだからです。ただ、既定の設定ではビットコインノードはRBFが有効になっていないトランザクションについて相反するトランザクションを受信した場合、最初に受信した以外を無視してしまう(First-seen rule)ため、当該トランザクションがマイナーの元に届きにくいです。

例えば相反するトランザクションが順を追って2つ配信されたとして、必ずしも同じ順番で自分のノードまで伝播されるとは限りません。したがって、「どちらが先だったか」について合意は得られません。ビットコインのユーザーから見れば単にブロックに片方だけが取り込まれれば問題ないのです。
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.