見出し画像

ブロックチェーンゲームのコントラクトオーナー権が奪われたら何が起こるか?

取引所を対象にした仮想通貨ハッキングはこれまでいくつも起こってきました。今年も国内では取引所に対して35億円程度のハッキングが行われました。

ブロックチェーンゲーム、つまりNFTを扱うコントラクトがハッキングの対象とされる可能性もこれからあるかもしれません。単純な額で言えば取引所の方が大きな額を扱いますが、それでも数億円程度の被害になる可能性はあります。また、ゲームが注目を浴びるに連れて、世間を騒がせたいという攻撃のインセンティブも生まれるかもしれません。

今回、Ethereum上で運営されているブロックチェーンゲームにおける攻撃と対策を考えてみます。

コントラクトの「秘密鍵」の概念

まず、前提としてEthereumのコントラクトアドレスには秘密鍵は存在しません。代わりにスマートコントラクトで権限を制御する概念が存在し、ゲーム管理用アドレスにだけゲーム内トークンを発行する権限を与えるなどの制御をします。

コントラクトの攻撃で起きうる被害と対策を考える

起きうる被害と対策を考えると、例えば以下3つなどが考えられます。

・コントラクトの削除やNFTのバーンをして、発行済トークンの価値を無に帰す
・コントラクトにデポジットされている通貨(ゲームでの課金収益など)を不正に引き出す
・コントラクトからNFTを不正発行して、即時に換金する

この記事で3つの攻撃を考察していきます。

コントラクトの削除やNFTのバーンをして、発行済トークンの価値を無に帰す 

スマートコントラクトにはselfdestructという、コントラクトをブロックチェーンから除外してしまうオプションがあります。

ウォレット関連ではParityのマルチシグウォレットを実装していたコントラクトで、脆弱性をついてコントラクトを削除するという事が行われました。

ゲームトークンのコントラクトでこれを行うと、管理していたデータも無効になるため、トークンの価値がなくなります。また、selfdestructを行えなくても、ユーザーから預かっているNFTがあればバーンすることで不正にNFTを削除する攻撃もありえます。

事後対応としては、昔の時点のコントラクトからデータをコピーして別コントラクトとして復旧する事が考えられます。

コントラクトにデポジットされている通貨(ゲームでの課金収益など)を不正に引き出す

ブロックチェーンゲームでは、ゲームの課金やゲーム内の手数料などでコントラクトにEtherなどの通貨が溜まる事があります。

手数料が溜まる例はCryptoKittiesの以下ノートでも書きました。

これらの溜まった通貨を引き出せる権限は、ゲームの管理用アドレスにスマートコントラクトで割り当てられます。ゲーム管理用アドレスの秘密鍵を盗み出した攻撃者が、コントラクトに通貨が溜まっているときに引き出して不正に通貨を取得する事が考えられます。

攻撃に対しては、安全な鍵管理に加えて、コントラクトに一定以上の金額が貯まったら小まめに引き出して現金などに換金するなど、内部統制を適切に行う事が対策として考えられます。

コントラクトからNFTを不正発行して、即時に換金する

NFTを扱うブロックチェーンゲームには、多くの場合NFTを新規発行(mintする)権限が存在します。特定のゲーム管理用アドレスからのみ新規発行可能なようにスマートコントラクトで制御されています。

ゲーム管理用アドレスの秘密鍵を奪って、NFTを不正発行してOpenSeaなどのマーケットで売却する攻撃が考えられます。市場価格で1体50万円もするNFTが販売されている事を鑑みるに、大量にNFTを不正発行して格安で販売できれば数億円程度の売上になる可能性があります。(NFTはERC20等の通貨ほど流動性があるわけではないので、マーケットですぐに換金できるかは不明ですが)

対策として、権限を持つアドレスの鍵を必要な時以外は安全な場所で管理する事が考えられます。NFTの発行総額が大きくなると、コールドウォレットでの管理なども検討の必要が出てくるかもしれません。

事後対応として、まず鍵を不正取得されたアドレスを発行権限を持つ対象から外す事。不正発行に対しては、攻撃を受ける前の過去の状態を再現した新しいコントラクトを作成する事は考えられます。

ただし、外部マーケットで不正発行されたNFTを善意の第三者が知らずに購入していると事後対応の困難性が上がるため、インシデントの検知を早めにする事で事後対応の素早さを上げる事が重要だと考えられます。

こちらはCGTFが出している暗号通貨カストディ業務に対してのセキュリティ対策の考え方ドキュメントです。取引所などの業務にも適用するためボリューム多く書かれていますが、ブロックチェーンゲームのセキュリティにも適用できる部分はあるでしょう。

今回は少し趣向を変えてブロックチェーンゲームのセキュリティについて考察しました。まだ取引所ハッキングほどのインパクトはないでしょうが、NFTを扱うブロックチェーンゲームが盛り上がってくる中で、このような観点も今後必要になる可能性があり、気をつけていきたいところです。

このノートではブロックチェーン、Dappsについてデータやスマートコントラクトから読み取った解説記事を書いていきます。気に入ってくださった方は、↓からスキ、フォローをお願いします。

この記事が気に入ったらサポートをしてみませんか?