ビットコインのコベナンツという機能の実現が再び議論されています。

コベナンツは特約条項という意味です。

ビットコインは使用のための条件というのはいろいろ指定することができます。タイムロックを掛けたり、マルチシグにしたり、作ろうとおもえば複雑な条件を見たなさないと利用できないコインというのを設定することができます。

しかしながら、送金先についての制限はまったくありませんでした。コインの使用条件さえ満たせば、どのアドレスにでも送ることができたのです。

コベナンツの機能は、送金先を制限したコインを設定することを可能にするものです。

これにより、万が一秘密鍵を盗まれても、自分が管理する別のウォレットにしか送れないようにすることもできます。

もしくは、もっと複雑な条件をつけて、たとえば盗まれてから一定期間は、リカバリーキーみたいなのを使えばコインを取り戻せたり。またそのリカバリーキーが盗まれたときも無効にできたりなど。

元々は、2016年のスケーリングビットコインで提案されましたが、その後あまり話題になりませんでした。実現方法に一長一短があり、なかなか議論がすすまなかったのです。

今回の提案は、Shnorr署名と、Taprootの組み合わせの中に、コベナンツを実現するOPコードを組み込むことで、それ以外の仕組みに想定外の影響が及ぶことなく、実装ができるという感じです。過去の提案よりスマートです。

具体的な使いみちですが、やはり取引所などのセキュリティが求められる部分でのコイン管理を高度化させることができます。Taproot等の条件設定もスマートコントラクトを記述できますし、マルチシグ、タイムロックなどと合わせて、非常に多様な権限設定や、コンプライアンスの実現などが見込まれます。今後、法人むけのカストディやウォレットプロバイダーはこうした高度な管理機能を提供していく形になるでしょう。

こうした方向性は理にかなっています。もちろん法律による規制は必要ですが暗号通貨の場合、いくら法律の規制をしても、ハックがおきてしまったら戻ってこない。官僚がいくら締め付けても、ユーザーは守れないのです。やはりプロトコルレベルで対処するというのが正しく、こうした技術が進展していくにつれて、大規模なハックが過去の時代のものになることを期待したいです。

ほかにもコベナンツの応用で、輻湊制御や、コインジョイントランザクションの効率化、チャネルファクトリーへの応用など、多くの実用例が考えられているようです。

なお、提案はドラフト段階で、前提となるShnorr署名+Taprootもまだ先ですので、仮に実現するとしても、1年以上は最低でもかかると思われます。

詳しい技術解説はいつものとおりに安土さんのブログが参考になります。