12万BTCのbitfinex盗難事件に学ぶ「ゼロトラスト」|仮想通貨の事件簿
この記事のポイント
- 2016年8月、世界有数の仮想通貨取引所「bitfinex」で時価総額約770億円分のビットコイン盗難事件が発生
- 取引所の秘密鍵の管理体制に問題があった可能性があるが、詳細は未だ闇の中
- 仮想通貨を盗まれないように、ユーザーも取引所も秘密鍵の管理を徹底する必要がある
はじめに
この記事では、海外取引所のセキュリティ脆弱性によって発生したビットコイン盗難事件について、紹介したいと思います。
今回はその代表的な例として、先日のcoincheck事件、Mt.Gox事件に続いて歴史上3番目に大きな損失を出した、bitfinexの大規模盗難事件について振り返ってみたいと思います。
事件の概容
bitfinex盗難事件とは、2016年8月に発生したBTC(ビットコイン)の大量盗難事件のことです。bitfinexという取引所にて発生したことから、この記事ではbitfinex事件という名称を用いて説明します。
bitfinexは、2014年にオープンした海外の大手仮想通貨取引所です。拠点は香港に位置しており、2018年現在でも、仮想通貨の流通量ランキング世界5位を誇る、巨大な取引所です。
bitfinexは2015年に、ブロックチェーンのセキュリティ会社であるBitGo社とパートナーシップを結んだことを発表していました。
BitGo社は、bitfinexに対してマルチシグのウェブウォレット(ビットコインの移動に複数の電子署名を必要とする、セキュリティの高いウェブウォレット)を提供しています。
このパートナーシップを受けて取引所の高い安全性が信じられていたため、盗難事件が発覚した直後は大騒ぎとなりました。
また事件後の取引所の対応方法が問題視され、仮想通貨の管理リスクについて大きな議論が交わされました。
どんな被害が発生したか
2016年8月2日、bitfinexはホームページ上で、自社取引所のセキュリティに侵入者が発生したことを報告しました。
ホームページ上では直接アナウンスされていなかったものの、のちに119,756 BTC(ビットコイン)が盗まれたことが、Reddit上でbitfinexの従業員を名乗る者によって報告されました。
これは当時の金額にして、およそ77億円(盗まれた当時、1BTCあたり約650ドル)に相当する巨大な金額の盗難事件です。
盗難が発覚した直後は、事件の全貌やbitfinexによる損失額の補償に関する情報は出回っておらず、ユーザーの間で急速に不安が広がりました。
結果、市場は突如パニックに陥り、ビットコインの価格が一時20%も暴落したことで大混乱となりました。
上述のBitGo社によってユーザーそれぞれに固有のウォレットを生成されていたため、大多数の人の資産はウォレットに全額保管されたままであったものの、盗難によって一部のユーザーのウォレット残高はゼロになってしまいました。
不透明な初期対応
この事件が起きた経緯については、公式な発表がなされていないため、依然不明な点が多く残されています。
事件直後、bitfinexから発表された情報はごくわずかに留まります。
その情報とは、「ビットコインの損失が発生したこと」「一時取引所の営業を停止すること」「USドルや、他の仮想通貨の残額には影響がなかったこと」のみです。
その後は被害顧客への対応状況についてアナウンスが続けられたものの、事件の発生経緯について不透明なまま、時間だけが過ぎ去ってゆきました。
また事件発生当時、上記の発表と時を同じくした2016年8月3日に、BitGo社はツイッター上で「BitGoのサーバーに侵入者の痕跡はなかった」と発表しました。
そしてそれを後押しするように、bitfinexも「問題発生時にセキュリティは正常に機能しており、BitGo社に問題はなかった」という旨の発言をしました。
どこに問題があったか
さて、この発言が本当に正しいのかどうかは、当のbitfinex以外知る由はありません。
上述した通り、bitfinexはBitGo社より提供を受けていた「マルチシグウォレット」を使用していました。
マルチシグウォレット(multisignature wallet)とは、取引を行う際に複数の電子署名を必要とするウォレットのことです。
たとえ一箇所で不正に署名が行われてビットコインが盗まれそうになっても、仕組み上その他の人も署名を行わなければ資産が移動されないため、高い安全性を持っていると考えられています。
bitfinexでは、2-of-3 マルチシグウォレットが用いられていました。これは、指定された3つの署名のうち2つが行われると、送金処理が実行されるタイプのウォレットのことです。
bitfinexの場合、bitfinexが2つ、BitGo社が1つの鍵(電子署名)を分散所有することで、セキュリティが守られていました。
このbitfinexが所有している鍵のうち一つは、取引所のリスク管理上、オフラインで保管されていましたが、あるきっかけによって鍵が2つともオンライン上で管理されることとなりました。
そのきっかけとは、アメリカのCFTC(米商品先物取引委員会)の注意勧告です。
今回の事件の約2ヶ月前である2016年6月2日、CFTCは、商品取引員の認定を受けていないこと、商品取引所法に準拠していないことを理由にbitfinixに対して75,000ドルの罰金支払いを命じました。
ただしこの支払いを回避する方法として、CFTCはbitfinexに対し「28日以内に、顧客が自分の資産を即時コントロールできる状態にすること」を提示しました。
結果bitfinexは上記の条件を承服し、オフラインで管理していた鍵を、オンライン上へと移行しました。
その2ヶ月後にハッキングが起きたため、一部の被害者はCFTCを問題の原因として糾弾しています。
今回の事件は、bitfinexの秘密鍵が2つ流出したのか、あるいはbitfinexとBitGo社からそれぞれ1つずつ秘密鍵が漏れてしまったのかはわかりません。
他にBitGo社のセキュリティサービスを用いている会社が攻撃を受けていないことから、bitfinexの秘密鍵が2つ流出してしまったと考えている人もいるようです。
いずれにせよ、攻撃者は何らかの手段を用いて秘密鍵を入手し、ビットコインを盗み出したことには間違いありません。
犯人は今日に到るまで見つかっておらず、真相は闇の中です。
bitfinexの対応
さて、bitfinexから大量の資金が盗まれてしまいましたが、その後ユーザーはどのような補償を受けたのでしょうか。
ここがセキュリティに次ぎ、物議を醸してしまったポイントでもあります。
bitfinexは、今回の被害者の損失分を補填するために、全ユーザーの資産から一様に36.067%分を徴収することを発表しました。
この対象には、被害に合っていないユーザーや、資産を全く預けていないユーザーも含まれています。
取引所が大規模な被害に合ってしまったがために、預けていた資産が無理やり徴収されてしまったら、ユーザーとしては堪ったものではなかったでしょう。
bitfinexは徴収した資産の代わりとして、全ユーザーに取引所で交換可能な「BFXトークン」の配布を進めました。
同時に、損失が発生したユーザーにも被害額と同等分のBFXトークンが配布されました。
その後bitfinexは、徐々にBFXトークンを顧客から買い戻すことで、被害額を補償していきました。
ちなみにここで用いられたのが、Tether(USDT)というトークンでした。
Tetherとは、アメリカドルと価格が連動するトークンであり、アメリカドルと同じ感覚で運用することができるトークンです。
最終的にハッキングから244日が発生した時点で、bitfinexは被害顧客のBFXトークンを100%買い戻し、補償が完了したようです。
未然に防げた事件なのか?
さて、今回の事件を回避することは可能だったのでしょうか。
マルチシグウォレットはシングルシグウォレット(電子署名をひとつしか必要としないウォレット)に比べて安全性が高いとはいえ、秘密鍵の管理が行き届いていなければ意味をなしません。
すべての秘密鍵を誰の目にも届かないオフラインの場所に厳重に保管していれば、bitfinix事件は起きなかったかもしれません。
今回の事件の一番の被害者は、取引所に資産を預けていたユーザーすべてといえるでしょう。
直接的に被害を受けていなくとも、中央集権である取引所の意向によって全ユーザーが資産のおよそ36%を徴収されてしまうという、前代未聞の対応策が執行されてしまいました。
訴訟に踏み切ろうにも、取引所に預けている資産が凍結されることを恐れて手を出せず、泣き寝入りする他なかったとインタビューに答えたユーザーの声もあります。
まとめ:私たちはどうするべきか
一見同じ2-of-3 マルチシグウォレットであっても、秘密鍵が3つとも外部によって管理されている状態では確実な安全性は望めません。
この場合、ひとつの秘密鍵をオフラインで管理、もうひとつをオンラインの取引所サーバー、もうひとつをユーザーの手元に保管する方法ならば、安全性が格段に高まります。
自分の手元で秘密鍵を管理できるウォレットに資産を預けない限り、安全性を外部の手に委ねきっているのは事実です。
Mt.Gox事件の場合は取引所のセキュリティに明らかな脆弱性があったため、盗難の被害が発生しました。
しかしこのBitfinex事件は、取引所が安全と主張する秘密鍵の管理体制を構築していたにも関わらず、盗難が発生しています。
ハッカーはわずかな隙も見逃しません。このような盗難事件を防ぐためにも、ユーザーの間で危機管理意識を向上させていくことが重要と言えます。
仮想通貨は、ゼロトラストを前提として管理することが唯一の安全な手法といえるでしょう。