ChatGPTと一緒に仮想通貨泥棒について考察してみた

ChatGPTと一緒に仮想通貨泥棒について考察してみた

北朝鮮のハッカーがビットコインを盗んでいたという報道があり、そもそもそんなことが可能なのかどうかと、ブロックチェーン技術について改めて確認をしてみました。

北朝鮮のハッカー集団は、2021年だけで総額450億円相当もの仮想通貨を盗んでいた

ブロックチェーンの脆弱性について考えられることを教えてください

ブロックチェーン技術にはいくつかの脆弱性があります。以下はいくつかの主要な脆弱性です:

  1. 51%攻撃:単一のノードまたはグループがブロックチェーンの51%を支配する場合、不正なトランザクションを実行したり、正当なトランザクションを拒否することができます。
  2. アカウントハッキング:ブロックチェーンアカウントに保存されているデジタル資産を盗むことができます。
  3. スマートコントラクトの脆弱性:スマートコントラクトはプログラムによって管理されていますが、プログラム内のバグや攻撃者の攻撃によって問題が発生する可能性があります。
  4. 暗号化の脆弱性:暗号化アルゴリズムは継続的に改良されていますが、今後発見される脆弱性もあります。

これらはブロックチェーン技術に含まれるいくつかの主要な脆弱性であり、攻撃者が利用することができます。適切なセキュリティ対策が必要です。

実際にある脆弱性について的確に答えてくれています。難しい説明と感じる人もいるので一つずつ解説します。

51%攻撃について

まず、ブロックチェーンのブロックについて知らなければなりません。ブロックチェーンとは、トランザクション(処理)をまとめたもの(ブロック)をつなぎ合わせてチェーン上にしたもを言います。

このトランザクションは、履歴です。銀行でいうところの入金、出金の台帳のようなものです。入金したり出金した履歴が残されていきます。いわゆる取引データです。

図1「ブロックチェーン」の基本概念図

この概念については、NTTテクノクロスのページに掲載されていた図がわかりやすかったので引用させて頂きます。

本題は、51%攻撃についてですが、ノードかもしくはこれらのグループが51%の割合でブロックチェーンを支配している場合、そのノードやもしくはそのグループを乗取ってしまえば、ブロックチェーンに対して自分に都合の良い取引履歴を改ざんできてしまうということです。

アカウントハッキング

最もオーソドックスなやり方です。大量に暗号資産を保有しているアカウントをそのまま乗取ってしまうか、その情報を盗み、手動で資金を移動するというやり方です。

特に説明はいらないかと思います。

スマートコントラクトの脆弱性

この脆弱性を解説する前に、スマートコントラクトとはそもそも何かの説明が先です。

これも、NTTテクノクロスのページに掲載されていた図がわかりやすかったので引用させて頂きます。

図3 スマートコントラクトの例

簡単に言えば、自動販売機です。入金・出金を自動的に行なってくれるプログラムのことをいいます。このプログラムの特徴は、契約時における中央管理者が必要ないところにあります。しかも、公正かつ自動的な契約の作成、実行、管理を実現することができます。自動取引システムのことをスマートコントラクトと思えばいいです。

このスマートコントラクトはプログラムなので、バグがあったり脆弱性を見つけられてそこから攻撃されたりすると自動販売機がお金がどんどん漏れ出てしまうようなものです。たとえば、自動販売機にコイン受け取り口にちょっと手を伸ばしたら小銭がじゃんじゃん出てきてしまうような作りだった場合、それに気づいた人は、手を伸ばして取ってしまうわけです。

スマートコントラクトの脆弱性をつくやり方は、最もハッカーらしいやり方だと思います。プログラム脆弱性をついて侵入するやり方こそがハッカーの本懐です。

今回の北朝鮮のハッキングによる被害もこのスマートコントラクトの脆弱性をつかれていたようです。

特に、イーサリアム資産の高騰に加えて、そうした成長のおかげで育った新興企業が、狙われてしまったということです。

これらの対策を確実に行っている取引所はどこですか?

このような詳細な情報は正確には判断できませんが、信頼性が高いとされている取引所は以下のようなものがあります。

  • Coinbase
  • Binance
  • Bitstamp
  • Kraken
  • Bittrex

ただし、このような情報は常に変化することもありますので、最新の情報を確認することが重要です。また、市場の状況や利用目的に応じて適切な取引所を選ぶことが重要です。

信頼性が高い取引所について聞いてみたら、正確には判断できないとしながらも、5つの取引所を上げてくれました。ただ、信頼性が高いとされているという情報だけでも十分です。

暗号化に関する脆弱性

今のところ、大問題に発展するような暗号化アルゴリズムの脆弱性は見つかっていません。しかし、ハッカーとセキュリティは常にイタチごっこで、セキュリティが高ければ高いほど、そのセキュリティを超えてくるハッカーはいます。逆にハッカーに一度超えられてしまえば、二度と同じ手は通用しなくなるのもセキュリティ対策です。今回の事件も、スマートコントラクトの脆弱性によるものだと判明しているため、今後はその経路からの被害はすくなるなるでしょうし、しっかりと対策は取られて行くはずです。

ただ、この先、根本的な技術的問題が発見されないとも限りません。その事をChatGPTは警鐘しています。

ブロックチェーンの脆弱性を回避するためには、次のような方法があります。

  1. 強固なコンセンサスアルゴリズム: 全てのノードが同じ結果を生成することを保証する、強固なコンセンサスアルゴリズムを採用することが重要です。
  2. 暗号化: ブロックチェーンに保存されているデータを暗号化することが重要です。これにより、不正アクセスからデータを保護することができます。
  3. 分散型アーキテクチャ: ブロックチェーンは、分散型アーキテクチャを採用することで脆弱性を回避することができます。このアーキテクチャは、全てのノードが等しい権利を持ち、データを互いに照合することができるようになっています。
  4. スマート契約: スマート契約を採用することで、ブロックチェーンの脆弱性を回避することができます。スマート契約は、特定の条件が満たされた場合にのみトランザクションを実行することができるようにすることができます。
  5. トレーサビリティ: トレーサビリティを採用することで、ブロックチェーンの脆弱性を回避することができます。トレーサビリティにより、トランザクションの履歴を追跡することができます。これにより、不正アクセスからデータを保護することができます。

脆弱性回避のための方法もついでに聞いていてみました。

先程問題となっていた部分に対しての対策と、トレーサビリティを含めることで、不正アクセスからのデータ保護ができると述べています。

割と適切な指摘だと思います。ブロックチェーン技術のベースにはP2P技術が大きく関与しています。P2P技術が理解できると、ブロックチェーンの説明で出てくるノードや分散型アーキテクチャなどの概念がわかりやすくなると思います。

ブロックチェーン技術はP2Pの技術が元になっていますか?

はい、ブロックチェーン技術はP2P(Peer-to-Peer)の技術が元になっています。P2Pネットワークは、参加者間でデータを直接交換することができる通信方式であり、ブロックチェーンはこのP2Pネットワーク上に構築された分散型データベースです。この分散型データベースには、参加者間の信頼関係が不要であり、データの一貫性を保証する技術が備わっています。

日本で開発されたWinnyというP2P技術とブロックチェーンの技術には共通点はありますか?

WinnyというP2P技術とブロックチェーン技術には一部の共通点がありますが、大きな違いもあります。

Winnyは、P2Pのファイル共有システムであり、ユーザー同士が直接ファイルをやり取りすることができるという特徴があります。これに対して、ブロックチェーン技術は、分散型のデータベースシステムで、トランザクション履歴などの情報を安全に保存することを目的としています。

このように、Winnyとブロックチェーン技術は持つ特徴や目的が異なるため、共通点はあるものの、それは大きく異なるものとなっています。

Winnyでは個人間でのファイルのデータをやり取りする際に、そのパソコンで利用するノードが割り当てられており、ノードを辿ってファイルを取りに行くという流れでした。ユーザー同士が直接ファイルをやり取りできた理由はこのノードにあります。このノードがわからないとデータのやり取りができないため、初期ノードというものが用意されており、その初期ノードを始めに設定すれば、その先に進めるような作りだったのです。オープンなネットワークというよりかなりクローズドなネットワークな印象があります。

ノードに対する基本的な考え方は一緒で、ブロックチェーンでは、ファイル共有ではなく、トランザクション履歴のみに限定した点にあります。ブロックチェーンに関する論文を見た人の中には、仮想通貨の実現がすぐにわかった人もいたと思います。