2023年の秋に発表されたBitVMはいわゆる「ビットコインL2」、その中でも特にzkロールアップと呼ばれる技術を実現する方法としてその後も改良が続けられており、例えば最近のOP_Return騒動で「緩和されたOP_Return制限の想定されるユーザー」として一部のコア開発者に挙げられたCitreaというzkロールアップも利用しています。

OP_Return戦争再び:ブロックチェーンにデータを刻む機能について再燃する議論
今週、ビットコイン関係のツイッターがある話題で持ちきりになっています。GitHubのBitcoin CoreリポジトリにPeter Todd氏が提出した以下のプルリクエストです。 Remove arbitrary limits on OP_Return (datacarrier) outputs by petertodd · Pull Request #32359 · bitcoin/bitcoinAs per recent bitcoindev mailing list discussion. Also removes the code to enforce those limits, including the -datacarrier and -datacarriersize config options. These limits are easily bypassed by…GitHubbitcoin この提案は、現在Bitcoin

なお、この緩和をCitreaが要望したわけでもありませんし、実際に使用するとも限りません

発表当初のBitVMは理屈としては動くものの、実際に利用するにはあまりにも大量のオンチェーントランザクションを必要とする問題がありました。その後、BitVM 2、BitVM 3という改良版が発明されてきており、上記のCitreaもBitVM 2を利用した状態で来月のメインネットリリースを目指しています。

今日はBitVMが初期の状態からどう改善されてきたか、新しく出てきた課題は何なのかを見ていき、使うときはどういう心がけが必要か考えてみます。

BitVMはビットコインのインターオペラビリティを飛躍的に向上させる起爆剤となるか
2023年秋にビットコイン開発者の間でにわかに話題された新しい発明がありました。BitVMです。 This is probably the most exciting discovery in the history of bitcoin script. It seems to knock down practically every door, and gives us access to covenants, sidechains, and powers similar to Liquid or the EVM, all at once with no forks required. I can’t wait to publish

BitVMが当初話題になっていた頃に本稿で紹介した際の記事もあわせてどうぞ。

・BitVM 1→BitVM 2は効率やトラストレス性を大幅に改善

・BitVM 2→BitVM 3はオンチェーンフットプリントを解決するが、大きなトレードオフが発生する

・まだ課題が多く残っている中、使う際に気をつけたいことは?

BitVM 1→BitVM 2は効率やトラストレス性を大幅に改善

冒頭でリンクしたBitVMについての記事でも触れたように、当初のBitVMは多数のトランザクションにまたがるビットコインスクリプトによって論理回路をシミュレーションするものでした。そのため、例えばzkロールアップの強制出金(ロールアップ運営者の協力が得られない、あるいは不正があった場合にユーザーが自力救済する手段)だと1GBものトランザクションが必要になる可能性がありました。

💡
仮にすべてがTaprootのディスカウントを活用できても250ブロックも占有する、安く見積もって数千万円はかかってしまうプロセスです。

それが2024年8月に発表されたBitVM 2においては4MB以内まで圧縮されたので、約1ブロックの占有となりました。手数料相場が高騰していればそれでもかなりの金額になってしまいますが、現在のように閑散としているタイミングなら数十万円で済みそうです。

すべてのレイヤー2は強制出金によってトラストレス性が担保されているため、手数料によって強制出金できない金額はトラストレスとはいえないという考え方もできますが、そういう意味ではBitVM 1ではトラストレスに扱える金額が1人数億円とかのレベルだったのがBitVM 2では1人数百万円のレベルに落ち着いてきたとも言えるでしょう。

そもそもこの告発(強制出金)を誰でもできるようになったのもBitVM 2からで、実はBitVM 1の段階では特定の参加者しか強制出金を発動させることができませんでした。

また、それ以外にもBitVM 1では多数決によるセキュリティモデルだったビットコインとzkロールアップ間のブリッジが、BitVM 2ではブリッジのオペレーターのうち最低1人が正直者である限りはセキュアになりました。

💡
性悪説を信じるならそれでも全員共謀する可能性を考えてしまいます。ただ、このあたりは完全なトラストレス性を追究せず1-of-Nで満足するというのが受け入れられる傾向にあるのが現状です。例えば、Lightsparkが運営するSparkもオペレーターに最低1人の正直者がいることを信用するトラストモデルです。

BitVM 2→BitVM 3はオンチェーンフットプリントを解決するが、大きなトレードオフが発生する

2025年6月に発表されたBitVM 3はさらに強制出金のオンチェーンフットプリントを圧縮し、なんと数百バイトという一般的なトランザクションのサイズにまで小さくすることに成功しました。これまでだと強制出金の妥当性をオンチェーントランザクション(ビットコインスクリプト)によってビットコインノードに計算させていたのを、計算をオフチェーンで行って検証をオンチェーンで行うように整理したためです。

しかし、本来BitVMの特徴は「ビットコインスクリプトには備わっていないzkロールアップの検証処理をオンチェーンで記述できる」というものでした。その状況は変わっていないはずなのに、どうやってオンチェーンで検証するのでしょうか?

そこのカラクリには1982年に発明された世界初のMPCプロトコルである「Garbled Circuits」という秘匿計算の技術が使われているそうです。軽く紹介すると、AさんとBさんがお互いが持っている情報を相手に伝えることなく、その情報を用いた計算処理結果だけを検証できる技術で、簡単に言えばめちゃくちゃ巨大な暗号化された表計算みたいなものです。

しかし、そのためオンチェーンのデータは圧縮できてもこのオフチェーンの「表計算」のデータが膨大なものになってしまいます。一説によると、各BitVMオペレーターは最大5TBものオフチェーンデータを保持する必要があるそうです。いわゆるデータアベイラビリティ問題(レイヤー2から強制出金するために必要なデータを、どうやってパーミッションレスに取得するのか)としては大きめのものだと思いますが、一応これは解決可能という整理になっているそうです。

まだ課題が多く残っている中、使う際に気をつけたいことは?

BitVM自体がまだ新しい技術であり、短所や脆弱性も残っているのでこれからBitVMを使って開発されたプロダクトを使う場合には気をつけたいものです。

ちょうどこの夏にも、BitVM 3のGarbled Circuitsの実装に脆弱性が見つかっています。対処を含めて活発に議論されており、最先端を感じる一方で、資金を預けるという点で見たときにビットコイナーの信用が得られるレベルの信頼性に達するのがいつになるかは不透明です。

上記の脆弱性や前述のデータアベイラビリティ問題の他にも、告発コストの負担者問題(コストが高いので「誰かが告発してくれるだろう」とみんなが様子見してしまう状態にならないか)といった問題があります。

自分も興味があるのでBitVMを使ったプロダクトを試してみようと思っています。一般論にはなりますが、以下のようなところに気をつけたいと思っています:

・できる限りテストネットで触る。メインネットで触る場合は資金を損失してもいい金額に限定する

・なるべく王道プロダクトを触る。泡沫プロダクトはリスクが高い

・目の前の事象がおかしいか、おかしくないのか判断できる程度の技術的知識を身につける。アップデートなどをある程度追う。脆弱性に関する情報に敏感になっておく