2018.04.25 (Wed) news

過去の失敗から学ぼう!GOX事例集13選

Written by おくなも

仮想通貨や暗号資産が所有者の意志に反して消滅、凍結もしくは流出し、使用できなくなることを称して「GOX(ゴックス)」という。これは仮想通貨界隈のスラングだが今回はあえてそのまま使用しようと思う。全く新しい事象が現れた時には無理に古い言葉を当てはめるよりも、新しく名前を付けた方が意味が正しく伝わるからだ。

仮想通貨の短い歴史の中で、すでに秘密鍵が失われたビットコインは2018年3月現在の時価で3兆円前後であると推定されている。これは将来的に発行されるものも含めた全ビットコインの16~22%に当たる1。普及が進み仮想通貨を使用するユーザーが増えれば今後さらにGOXが増えることは明らかで、仮想通貨経済への影響も無視できない。また、取引所のセキュリティ対策のノウハウが固まればクラッキングの主な対象が個人へと移っていくことも予想できる。

「仮想通貨で儲かった」などの成功体験は吹聴されやすく、人々もすぐに飛びつき拡散されるが、失敗の体験は語られることが少ない。仮想通貨界隈では、「失敗は全て自己責任だ」と考える傾向も強い。

しかし、新しい技術を使いこなせないのは単に学ぶべき歴史がそれほど蓄積されていない面もあるかもしれない。

例えば自動車免許を取得するときには、教習所で事故の実例をこれでもかというほど見せられる。過去の事故を知ることは将来の事故を防止することにつながるからだ。そこで今回、これまでに見聞きした事例や実際に自分がやってしまった失敗を元に(一部アレンジして)「よくあるGOXの実例」をまとめた。ぱっと思いつく対策も併記したので参考にして欲しい。

GOXの分類

GOXは規模と種類でいくつかに分類できる。

大規模

  • 取引所
  • スマートコントラクト
  • クライアント、ソフトウェアのバグによるもの

小規模

  • 秘密鍵の紛失・流出
  • 取引所の個別アカウント
  • 送金ミス
  • ウォレットのトラブル
  • ベータ版の技術の使用によるGOX

大規模なGOX

取引所

GOXの語源となったMt.Goxの事件や最近のコインチェックのNEM盗難事件のように取引所がクラッキングの被害を受け資産が盗まれる事例。盗まれた仮想通貨は凍結されないが不当に犯人の所有になってしまうため間接的に仮想通貨の価値を毀損する。またコインチェックのように盗まれた仮想通貨がユーザーにほぼ全額補償される例は稀で、取引所に仮想通貨を預けていたユーザーの資産も失われてほとんど帰ってこない場合が多い。

1.スマートコントラクト(Dappsなど)

分散型アプリケーション(Dapps)のコードに不備があり資産が流出する事例。2016年のTheDAO事件が代表的な例だ。イーサリアム上のDappsが本格的に稼働し始めるとされる2018年に大きな事件が発生する可能性は十分にある。

2.ソフトウェアのバグによるGOX

ソフトウェアの脆弱性をついた大規模なGOXとしてとしてイーサリアム用のParityウォレットのマルチシグのバグによる資金の盗難事件がある。原因はクライアントソフトのコードの1行のミスだったとされる。

対策

  • ユーザーが大規模なGOXを防ぐために積極的にできることは殆どない。せいぜいセキュリティの低い取引所やDappsを避けることしかできない。コインチェックの事件ではセキュリティの専門家が事件の解析に関わっており、今後クラッキングへの対策や取引所に必要なセキュリティ要件などが公表され共有されることは期待できそうだ。
  • しかし、万全の対策をとっていたとしても資産を狙う人間がいる以上はGOXの可能性をゼロにはできない。したがって、そもそも多額の資産を取引所などの他人に預けるべきではないと考えなければいけない。
  • スマートコントラクトやクライアントのセキュリティに関して不安がある場合は、ベストプラクティスに基づいているのか、外部機関の監査を受けているのかなどを開発者に確認することも効果的だろう2。またParityのマルチシグウォレットの様に発展的な機能をスマートコントラクトで実装したウォレットは、リスクと必要性を天秤にかけ、通常のウォレットに保管することも検討するべきだ。

小規模GOX

仮想通貨が第三者機関を介さない電子キャッシュシステムとして生まれた以上、ユーザーのミスをソフトやツール、ブロックチェーン側で100%カバーすることは不可能だ。そのためユーザーにはある程度仮想通貨に対するリテラシーが必要になる。仮想通貨の仕組みについて深く知ることが一番の対策になるが、初心者としてはどういう失敗が起こるのかを知っておくだけでも違うだろう。

秘密鍵の紛失・流出

3.秘密鍵のバックアップ忘れ

仮想通貨のウォレットを作成した際に秘密鍵やニーモニックフレーズのバックアップをしていなかった。ウォレットソフトがアップデートされた際にソフト側の記録が消えたため入力を求められたが復旧できなかった。ウォレットに入れていた仮想通貨が全て動かせなくなった。

4.秘密鍵がはいったパソコンを棄てた/解約した

数年前にビットコインをマイニングしていたパソコンを破棄した。あとで調べてみると数億円の価値があることがわかったが、すでにゴミ処理場に行っており、回収できなかった。

対策

  • 秘密鍵やシード、ニーモニックフレーズのバックアップを徹底する。ペーパーウォレット(紙に書いて保存すること)やクリプトスチールなどのハードウォレットへのバックアップを行うのが良いだろう。クラウド上や自分のパソコンへの保存は盗難や紛失のリスクが高いため行ってはならない。

5.フィッシング詐欺による秘密鍵の漏洩

トークンのエアドロップのお知らせのメールが来ていたため、メールのリンクを開いたところCoindeskを模したフィッシングサイトに誘導された。そこから更にMyEtherWallet.comを模したフィッシングサイトに誘導され秘密鍵を入力して、ログインしてしまった。その後すぐ、犯人にウォレットの中身を全て送金された。

対策

  • 怪しいメールのリンクを開かない。MetaMaskやEtherAddressLookupなどのフィッシングサイトを検出するアドオンをブラウザに導入するなどフィッシング詐欺対策を行う。
  • Web上にクライアントがあるタイプのウォレットで多額の仮想通貨を利用しない。この事例の場合ではMyEtherWalletのコードをGithubでダウンロードし、ローカル環境で使用していれば防ぐことができた。

(編注)MyEtherWalletがDNSハイジャック3を受け、正確なドメイン「myetherwallet.com」から攻撃者のフィッシングサイトにリダイレクトされる状況があったと公式からの報告があった。Webホスティング型のサービスは、秘密鍵を預けてなくともこのような事態が起こる。

取引所の個別アカウントの事例

6.2FA認証の端末が故障しアカウントにアクセスできなくなる

Googleの2段階認証(2FA)を使用して取引所のアカウントにアクセスしていたが、端末が故障し認証できなくなった。海外の取引所だったためサポートに英語で連絡したが返事が来ず、アカウントに残っていた仮想通貨残高を使用できなくなった。

対策

  • 2段階認証はハードウェアが壊れた時のバックアップ方法を必ず確認し、またAuthyやIIJ Smartkeyなどバックアップ可能なアプリを使用する。
  • 特に未認可の海外の取引所を使用する際は完全に自己責任であることを認識しておく。もちろん返事がなくても辛抱強く何度も問い合わせを行えば対応してくれる場合が多いので、諦めないでトライすることをおすすめする。

7.フィッシングサイトによってアカウントを乗っ取られる

取引所からのメールを装ったフィッシングメールから偽の取引所のホームページにログインしてしまった。2段階認証を設定していたがフィッシングサイトに2FAトークンを入力してしまい、トークンの期限が切れる前にクラッカーにアカウントに侵入され、設定等を変更されてしまいアカウントを乗っ取られた。その後自分の意図しない取引が行われたり犯人のアカウントに出金されたりした。

対策

  • 取引所などへは必ず自分のブラウザのブックマークからアクセスするようにする。取引所の名前で検索して上部に表示されるPRがフィッシングサイトへのリンクになっていたこともあるため検索結果を盲目的に信じるのも危険だ。
  • 繰り返しになるが、怪しいメールのリンクを開かない。MetaMaskやEtherAddressLookupなどのフィッシングサイトを検証するアドオンをブラウザに導入するなどのフィッシング詐欺対策を行う。
    そもそも、取引所のアカウントに大金を入れない。

送金ミス

8.送金アドレスの入力ミス

取引所から自分のウォレットに送金する際にアドレスを手入力したところ間違えた。取引所のアカウントの残高から消えてしまいウォレットには入金されなかった。

送金先のアドレスをコピーアンドペーストしてウォレットから送金したつもりが、クリップボードに残っていた別のアドレスに送ってしまった。

対策

  • 高額の仮想通貨を送金する場合は手数料が二重にかかるがケチらずに一度少額で送金テストを行ってから送金するのが常識だ。
  • 入力したアドレスは必ず複数回確認する。
  • 誤送金をしてしまった場合は取引所や間違って送ってしまった相手が対応してくれる場合もあるので連絡しよう。任意のアドレスを所有する個人を特定するのは非常に難しいが、アドレスをWebで検索したり、取引履歴を調べて日本人の可能性が高いならばネットで呼び掛ける、NEMなどのメッセージ機能のある仮想通貨であれば相手のアドレスにメッセージ付きの空トランザクションを送るなどの方法がある。

9.送金額と送金手数料を取り違えて送金してしまう

ウォレットの送金手数料を入力する欄と送金額を入力する欄を取り違えて送金してしまった。多額の仮想通貨がマイナーに手数料として徴収されてしまい戻ってこない。

対策

  • 手数料として払ってしまった仮想通貨を取りもどすことはまずできない。最近は手数料を利用者にいきなり入力させるウォレットはあまりなく、自動で適切な手数料が設定されるものが多い。そのため普通に使用していればそこまで注意する必要はないが、間違えやすいUXのウォレットは使わないようにしよう。

10.取引所に送金する際の設定ミス

自分のウォレットから取引所に送金する際に仮想通貨のメッセージ機能に指定されていた識別コードを入力するのを忘れた。もしくは、マルチシグアドレスなどの特殊なアドレスから送金してしまった。ブロックチェーンを確認すると送金は完了しているが取引所のアカウントには反映されない。

対策

  • 取引所の入出金はそれぞれ独自のルールがある場合が多いので説明をよく確認する必要がある。事前に送金テストを行うのが確実だ。失敗してしまった場合は取引所に問い合わせよう。

ウォレットのトラブル

11.マルウェアによる送金先の改竄

ハードウェアウォレットのLedgerNanoSから送金しようとしたところ、マルウェアによって送金先のアドレスを改ざんされ犯人のアドレスに送ってしまった。マルウェアはユーザーのパソコン画面では本来の送り先を表示していたが、実際には違うアドレスに送っておりデバイスの画面では犯人のアドレスが表示されていた。マルウェアには一定額以下の場合は正しい送り先に送金される設定があり、テスト送金した人も引っかかってしまう巧妙な仕掛けになっていた4

対策

  • 仮想通貨の情報サイト、仮想通貨関連の掲示板などからマルウェアに感染する可能性がありセキュリティソフトによる予防にも限界がある。
  • ハードウェアウォレット販売元公式のセキュリティ情報をチェックし、マルウェアの種類を確認し対策(今回の事例では必ず送金先アドレスを確かめる、など)を行うこと。また常に最新のファームウェアに更新しておく。
  • よほど高額の仮想通貨を管理する場合で、もし専用のパソコンが用意できるのであれば、普段使いのパソコンを使用しないでそちらを使用するのが間違いないだろう。

12.ウォレットに脆弱性がありハッキングされる

Jaxxのデスクトップ版ウォレットにパスフレーズが暗号化されないで保存されているという脆弱性があり、端末にクラッカーからアクセスされパスフレーズが盗まれ仮想通貨を送金されてしまった5

対策

  • 今のところ脆弱性を修正したという事実は確認できないためJaxxの利用は推奨できない。どうしてもデスクトップ版のJaxxウォレットを使用したい場合はサンドボックス化した仮想OS内などの暗号化された環境で動かすこともできるが、そこまでやるなら他の安全なウォレットを探して使用したほうがよい。
  • ただし暗号化されていた場合でもクラッカーに不正アクセスを受けるような状態であれば、キーロガーなどを仕込まれて暗号化鍵(PIN)を盗まれ結局パスフレーズを復元されてしまう。したがってセキュリティソフトやファイヤーウォールなどで不正アクセス対策を行うことが重要だ。
  • 一般的にJaxxのようなホットウォレット(秘密鍵やパスフレーズを持った状態でネットワークに繋がれたウォレット。スマートフォン用のアプリを含む)は最悪の場合ソフトウェアの脆弱性により秘密鍵を盗まれる危険性がある。ホットウォレットには失ってもよい金額を入れるようにし、資産の大部分はペーパーウォレットやハードウェアウォレットに保管する。

ベータ版の技術の使用によるGOX

13.オフチェーントランザクションの失敗

ビットコインのライトニングネットワークの送金テスト中にクライアントのバグでビットコインが凍結される、等。

対策

  • ライトニングネットワークに限った話ではなく、新しい仮想通貨や仮想通貨の新技術がリリースされた時はまずはテストネット版を使用するのが原則だ。メインネット版で行う場合は失ってもいい金額で行う。リリースした開発側もベータ版であることを明記していたり、多額の資産を投入することを警告している場合がほとんどであり、完全に自己責任の世界だ。

終わりに

いろいろな実例を上げたがGOXはその結果において資産を「取り戻せる可能性が事実上ゼロ」という点で、物理世界の事故や紛失、盗難と異なる。

例えば財布などを紛失した場合、なくした場所を探して見つかったり誰かに拾われて戻ってくる可能性がある。しかし、ウォレットの秘密鍵を紛失してしまうと、世界中のスーパーコンピュータの計算力を総動員しても戻ってくることはない。

現金の札束を盗まれた場合と比較すると、犯人と紙幣が物理的な存在である以上、紙幣のまま地球の反対側まで持ち運んで逃げるには少なくとも数日はかかるだろう。もちろん電子マネーなり仮想通貨なりに換金すれば逃げおおせるのも可能だ。しかし大金を換金すれば足がつく。

一方で盗難された仮想通貨が地球の裏側まで送金されるには数秒で十分である。(注:トランザクションの承認が確定するには通貨によって、10~60分かかるが盗難された側が予め犯人の使用するノードをコントロールしている可能性は極めて低く、トランザクションがノードに到達した時点で事実上不可逆的な取引となる) それに加えて盗難に物理的な接触が伴わなければ足がつく可能性も極めて低い。

仮想通貨を扱う際にはその性質を知る必要がある。アーリーアダプターたちは失敗を繰り返し経験としてそれを学んできた。今後はそれらの失敗を蓄積し、賢明な新規ユーザーが歴史から学べるようにしていくべきだろう。


  1. http://fortune.com/2017/11/25/lost-bitcoins/ 
  2. https://consensys.github.io/smart-contract-best-practices/ 
  3. https://twitter.com/myetherwallet/status/988787116015415296 
  4. https://twitter.com/LedgerHQ/status/959766958601273344 
  5. https://www.ccn.com/users-report-losing-400000-due-to-jaxx-wallet-vulnerability/ 

無料メールマガジン

BTCNの最新ニュースを毎日お昼ごろお届けします!


まだデータがありません。