ここ半年の間、ビットコイナーの間で(何の生産性もない)議論を巻き起こしているOP_Returnに関するポリシールール緩和ですが、緩和する理由としてもはやポリシールールの既定値に関わらず迂回されてしまっていること、迂回のためのインフラがビットコインの公平性を歪めたり(マイニングの中央集権化につながる)使い勝手を悪くする(手数料推定の正確性を毀損する)ことが挙げられます。これを元に緩和してしまったほうが良いというのがBitcoin Core開発陣の多数の判断です。

💡
実際に緩和したところで、大きなデータの記録にはOP_Returnを使うより安い方法があるので大した影響はないと予想されます。そういう意味でも本当に不毛な議論です。

さて、ポリシールールには色々ありますが、その中の1つにダストリミットがあります。これはトランザクション出力について、アドレスタイプごとに「最小金額」を決めています。前提として、「使うのに必要な手数料より少ない金額のUTXOは非経済的であり、正当な使い道はない」という発想があります。(使おうとするとむしろマイナスになる!)

アドレス形式 ダストリミット(sats)
P2PKH (1~) 546
P2SH (3~) 540
P2WPKH (bc1q~) 294
P2WSH (bc1q~) 330
P2TR (bc1p~) 330

そして実際のところ、ダストリミットより少ない金額のトランザクション、例えば0 satsや1 satsのUTXOはかなり少ないです。1 satのものに関してはOrdinals関連で存在することにはしますが、0 satのものは2023年12月に安土さんが調べた記事によると1.5万個ほどのようです。

レイヤー2プロトコルの実装に役立つ「Pay to Anchor(P2A)」とは?
最近はビットコインの手数料相場が低めで推移しているため、送金が詰まってしまったという方は少ないかもしれません。しかし、ギリギリの送金手数料でトランザクションを配信した後、手数料相場が上昇してしまって送金が取り残されるという経験をしたことがあるビットコイナーは多いはずです。 個人の送金であれば、同じトランザクションの手数料を増やして再配信することができます。このReplace-by-feeという挙動が既定になって数年が経ちました。 Bitcoin Core 24.0からのFull RBF既定化についての議論まとめこの1週間ほど世間の話題はFTXの信用不安問題で持ちきりですが、ビットコイン開発者の多くは全然違う論争に巻き込まれていました。Bitcoin Coreの次期リリースである24.0において、ノードのポリシーとしてFull RBF (mempoolfullrbf)というものが導入される予定のところ、これに反対する意見が出たためです。 結果的には導入継続という流れになりましたが、このように誰でも意見・議論できることがビットコイン開発における健全性維持の1つの仕組みです。 それでは議

Pay to Anchorは0 satのアウトプットを、セットとして提出する次のトランザクションで消費することを条件にポリシールール内で有効と認める進展

なぜクソデカOP_Returnはそれなりに存在するのに、同じくポリシールール違反であるダスト未満のUTXOは少ないのでしょう?今日はその理由を考え、OP_Return同様に迂回することができるこのルールも緩和すべきなのか考えてみます。

・コンセンサスルール、ポリシールールよりも強力な「第ゼロの関門」

・ダストリミットの存在意義とOP_Returnの関係

・こちらのほうが開発者の間で意見が分かれそうな予感

コンセンサスルール、ポリシールールよりも強力な「第ゼロの関門」

ビットコイントランザクションの正当性を決めるルールとして、コンセンサスルールとポリシールールについておさらいしましょう。

コンセンサスルールとは、ブロックチェーンに取り込んでいいトランザクションやブロックの形式を決めたもので、各ビットコインノードが新しく配信されてきたブロックとその中のすべてのトランザクションについて検証します。もしコンセンサスルールに違反していたら、そのブロックやトランザクションは無効であり、ブロックチェーンに追加しません。

💡
ちなみにトランザクションはピアから受信してメモリプールに追加した段階で検証しているので、新しいブロックが発見されたときに既知のトランザクションで埋め尽くされていれば検証にかかる時間は短いです。逆に、初見のトランザクションが多いと検証に時間がかかってしまいます。

ポリシールールは、(ノード実装ごとに既定値こそありますが)各ビットコインノードが定めるルールで、ブロックに取り込まれる前のトランザクションに関するものです。自分のノードのポリシールールに合致していないトランザクションはピアから伝播されてきても削除し、自分から他のノードには配信しません。ただし、ブロックチェーンに追加されたらコンセンサスルール違反でない限り、改めて検証し保管します。

💡
OP_Returnの制限緩和はポリシールールに関する議題です。

さて、ここからは私の意見ですが、なぜコンセンサスではなくポリシールールに制限されるダストリミット未満のUTXOが少ないかというと、「ウォレットが対応していないから」(ウォレット独自のバリデーションが入っている)ことが一番大きいのではないでしょうか。

これはOP_Returnについても言えることですが、大半のユーザーは自分のノードを使っていません。つまり、トランザクションを作るときはノード内蔵のもの以外の何らかのウォレットを使っていますが、大半のウォレットは非標準TX(ポリシールールの既定値に違反するトランザクション)を作らせてくれません!例えばOP_Returnのアウトプットを自分で作れるウォレット自体、片手に数える程度しかない気がします。ダスト未満のUTXOについても同様です。

すると、その非標準TXを意図的に作るためのウォレットが存在しないと増えないわけですが、それがOP_Returnの場合はCounterpartyだったり、めちゃデカWitness領域の場合はOrdinals Inscriptionsに対応したウォレットだったわけです。そして、ダストリミット未満のTXには今のところ単純にそういう需要(投機需要)がなかったのでしょう。見方によっては「ウォレットの対応」が最大の関門になっているのかもしれません。

ダストリミットの存在意義とOP_Returnとの関係

さて、ダストリミットの存在意義は明確で、ビットコインのUTXOセットを爆発させるDoS攻撃を防ぐために存在しています。仮に0 satのUTXOをいくつでも作れるとしたら、オンチェーン手数料さえ払えば無限にUTXOを作れてしまいます!

今のところ1億ほどしか存在しないUTXOセットですが、それでも肥大化が弱小ビットコインノードにとっては大きな運用負担になっています。例えば一時期流行っていたRaspberry Pi 4などではビットコインノードを同期できるか性能がかなりギリギリになってきています。

本来はこのようなルールはコンセンサスルールにしなければならないでしょう。なぜなら、オンチェーン手数料さえ手に入るならマイナーは0 satのUTXOしかないブロックでも喜んで採掘してくれるからです。ここはコンセンサスとポリシーを中途半端に分けてしまったサトシの失策だったといえます。

閑話休題、ダストリミットは「不要なUTXOを作らせない」ために存在する防壁なわけです。そして、今回話題になっているOP_Return制限の緩和も「不要なUTXOを作らなくてもよい」環境に近づけるためにあります。違いとしては、ダストリミットは緩和すると不要なUTXOが爆発的に増えるリスクが増大するかもしれません。否、緩和しなくてもそのリスクはすでにあります。

こちらのほうが開発者の間で意見が分かれそうな予感

OP_Returnの緩和が必要だったかについても議論が紛糾しましたが、じゃあ例えばダストリミットをどうするかについても議論が巻き起こったとしましょう。個人的にはOP_Returnの緩和(ポリシールールをコンセンサスルールに近づける)についてはそれほど大きなイシューではないと見ている開発者が多い印象ですが、ダストリミットについてポリシーとコンセンサスを近づける場合はどちらに寄せるかで意見が分かれそうな気がしています。

ここまでの説明で受ける印象だと、どちらかというとUTXOセット肥大のリスクを防ぐためにコンセンサスルールでダストリミットを強制しようというアプローチを考えたくなるかもしれませんが、それには案外ダウンサイドや現状の方針との矛盾があります。

例えばビットコイン価格がここから100倍になったとき、ダストリミットの数百satsが単位として大きくて困るようなことがあるかもしれません。実際、最近のポリシールールの緩和には、これまでトランザクション手数料の最低水準が1 sat/vbyteだったのを0.1 sat/vbyteに引き下げるものがありました。ダストリミットの固定はそれとは逆行する方針です。

オンチェーンの送金手数料がさらに安くなった理由とその影響は?
最近mempool.spaceをご覧になった方は気づいているかもしれませんが、ビットコインの手数料相場がこれまでより1桁安くなっていることが出てきました。従来であればトランザクション手数料の下限は1 sat/vbyteだったので、どれだけトランザクション需要が少ないタイミングでもそれだけ手数料を払う必要がありました。しかし、最近では0.1 sat/vbyteのトランザクションすら見られます! 今日はこの変更がどういう経緯で行われたのか、そしてどういう影響が見込まれるかを解説します。 ・Bitcoin Core 30において規定値が変更予定。それに先立ち対応するマイナーも ・1 sat/vbyteが手数料相場の「下限」だった理由と、制限緩和のメリットデメリット ・前もって対応しているマイナーは損をしているのではないか?

また、冒頭でも触れたようにPay to Anchorのようなケースにおいては0 satのアウトプットがレイヤー2の設計に非常に有用だったりします。ダストリミットをコンセンサスルールで強制してしまうと、ビットコインの新しい使い方の芽を摘むことになるかもしれません。(無論、UTXOセットの肥大につながらないPay to Anchorのみ除外というやり方はできますが)

コンセンサスルールで強制してUTXOセットの肥大化を確実に予防するのか、それとも(OP_Returnの場合と同じくデメリットがある)現状を問題視して制限の緩和を行うのか、はたまた現状維持するのか。 果たして議題に上がるのかはわかりませんが、めちゃくちゃ難しい問題だと思います。