2019年6月8日から9日にかけて、アムステルダムでBreaking Bitcoinというカンファレンスが行われました。
本コラムは、公開された動画や書きおこしをもとに、その発表内容を追いかけ、ビットコインのセキュリティに関する取り組みの最先端を知ろうという試みです。
発表内容を日本語で、かつ実際の事例などを交えて解説することで、少しでも皆様がビットコインの仕組みや最新の研究について詳しくなるための一助になれることを願います。 今回は、mempoolの研究を行なっているKalle Alm氏の講演についてです。
発表内容に興味がある方は、ぜひスライド資料もお読みいただくと良いと思います。開発された MFFというツールの性能評価、実装の詳細なども図示されています。
- 関連記事はこちら
- ビットコインコミュニティで提示される改善リストBitcoin Improvement Proposals(BIP)の中で、コードサイズの最適化について掲載。無駄を省きながらもセキュリティを高めていくためにはどのようなコード開発が必要か、最新情報を紹介していますのでぜひご覧ください。 コードサイズの最適化とは?最新の暗号化について紹介
なぜプールについての分析を行うのか
興味深い事実がありました。antpoolは有名なマイナーですが、手数料の置き換えトランザクションを扱いません。つまり、もしあなたが一度トランザクションを送信したのち、より高い手数料で(より早く)トランザクションを完了させようとしても、antpoolはそれを無視します。
数年前にプレゼンテーションを行って以来、mempoolを使って手数料の予測ができないかを考え続けていました。mempoolを観測しつづけるのは簡単ではないため、Bitcoin Coreにパッチを当て、観察を続けました。しかし、1日分のデータを取得するのに1日かかり、あまり効率の良い方法ではなかったのです。
またその反面、必要なデータは失われ続けるという難しさもあります。より高い手数料で置き換えたトランザクションが書き込まれると、最初のトランザクションを見つけることは困難になります。そのため、mempoolを記録し続け、その記録を再生し、さまざまな分析をしたいと思うようになりました。
Mempool File Format(MFF)は、確認や失敗を時間軸に沿って記録することをサポートします。つまり、トランザクションを記録し続けるのです。
ブロックがマイニングされると、ブロックチェーンに書き込まれて保存されます。もしマイニングされなかった場合は、ブロックが存在しないことがツールでわかります。この記録はブロック単位、あるいは高さで検索できます。効率的な実装ではありませんが、珍しいケースを除けば十分実用的と言えるでしょう。
ツールMFFを利用することで手数料の予測が可能に
コードはC++で書かれており、あくまで実験的な位置づけとして作られています。 データの保存先としてCQDB(シーケンシャルデータベース)という実装を利用しており、一般的なデータベースとは異なるようですので、野心的な取り組みと言えるでしょう。CQDBは書き換えができず追記専用で、時系列での情報管理のためのものとされています。
ライトウォレットのようなクライアントはブロックをダウンロードしますが、保存することはありません。したがって、データはフルノードから取得する必要があります。完全なフルノードには確認済みブロックのすべてと、未確認のトランザクションが格納されています。
MFFはこれらをダウンロードし、すべてのブロック、未確認のトランザクション、そして無効化されたトランザクションを、出現順序を保ちつつ保存します。この挙動により、フルノードが保管しない、「無効になったトランザクション」を後から追跡することが可能になります。
使うための資料やドキュメントも十分とは言えないため、このツールをそのまま何かの用途で転用するのは難しいと思われます。
しかし一方で、ビットコインでは無効化されたトランザクションを後から追うことはできないため、コミュニティの一部でこういった情報を追跡することには価値があると言えます。データベースに一般的なソフトウェアが使えるようになるか、あるいはCQDBに似たサービスを使えるようにできれば、クラウド環境にも配置できる見込みが立つでしょう。
無効化されたトランザクションが追跡できるようになれば、より高い手数料でトランザクションを置き換えるユーザーの傾向分析、手数料の予測、ユーザーの活動が活発な時間など、さまざまな面での活用が期待できます。
まとめ
Twitterでは、過去の無効化されたトランザクションデータを公開してはどうかという議論も見られましたが、プライバシーに影響がある可能性を懸念する声もあり、現時点では公開はされていません。
2019年時点では、マイニング報酬の金額自体がまだまだ高いため手数料がそれほど注目されていないこと、手数料を置き換える処理による情報の漏洩を気にする声も少ないため、今のところこういった追跡を問題と捉える向きは少ないでしょう。
しかし、”Breaking Bitcoin Privacy“という講演でも示されたように、手数料の置き換えを行った場合、お釣りアドレスの追跡が容易になってしまいます。
あくまで一つの影響の例ではありますが、こういったプライバシーへの影響が目に見える形になってきた場合は、より広い範囲での議論を呼ぶことになるかもしれません。
以上、今回はKalle Alm氏の講演をまとめました。
なお、記事中の表現については講演資料を筆者なりに読み解きつつ、前後で独自の解説を加えておりますが、なにぶん新しい技術に関する内容ですので、もしも間違いなどございましたらお気軽にご指摘くださいませ。(特に技術的な指摘は大歓迎です)