こんにちは、ちびくじらです。
今日は、エンジニアとしては夜も眠れなくなるような重大なバグが起きてしまったので、それをこちらの記事にまとめています。
こちらのページでは、
▶イーサリアム(Ethereum)のスマートコントラクトの重大なバグについて知りたい人
に向けて、
▶重大なバグが及ぼしている価格・チャートへの影響
▶重大なバグの概要
▶重大なバグがどうして発覚したのか?
▶重大なバグの今後の対応について
について、元上場企業でシステムエンジニアをしていた管理人が説明をしていきます。
*仮想通貨のトレード・投資を始めたい初心者の方向けに勝率があがる情報を次の記事にまとめています。参考にしてみてください。
*イーサリアムの特徴について次の記事にまとめています。参考にしてみてください。
イーサリアム(Ethereum)スマートコントラクトの重大なバグのニュースの影響
仮想通貨の価格が暴落
まず、4/24はBTCの価格が1万ドルに届くか届かないかというところで、このニュースが入って、仮想通貨は10%以上の暴落になりました。
*2018/4/25の価格
ERC20ベースのQASHトークンの取り引き停止
また、QUOINEXからは2018/4/26 0:34 頃に以下の内容のメールが送られてきて、イーサリアムのERC20ベースで作られたQASHトークンは取引停止の処置となりました。
ERC20ベースのトークンの取り引き停止(海外取引所)
ポロニエックス、OKEx、HitBTCなどの大手海外取引所もイーサリアムERC20ベースの仮想通貨について入出金を停止するなどの措置をしています。
イーサリアム(Ethereum)スマートコントラクトの重大なバグについて
重大なバグの概要について
まず、イーサリアムのスマートコントラクトの重大なバグは、イーサリアムのERC-20(規格)のプラットフォーム上の、いくつかの大きなプロジェクト内で使われていたコードで、batchOverFlowという障害が発覚したというもの。batchOverFlowはシステムの範囲外の数値を入力したらシステムが誤作動をしてしまうという類のものです。
理屈をわかりやすくドラクエに例えて説明すると、ファミコン版ドラゴンクエストⅣで「にげる」を合計で8回すると、以降の攻撃がすべて会心の一撃になるというタイプのバグですね。ゲームのレベルコントロールがおかしくなって、ラスボスのデスピサロも余裕で倒せますしね。
特に今回はめちゃくちゃ重大なことが起きています。その誤作動というのが、「ERC-20ベースのプラットフォームで特定のコードを使用した仮想通貨でトークンを無料で作ることができて、そのトークンをウォレットに移すことができる」という無限にお金を刷ることができるという、打ち出の小槌のようなバグなんですよね。この話を聞いたときは、「エンジニアとして情けないバグ出してんじゃねぇぞ」と呆れました。このバグはさすがにヤバいぞと誰もが思ったのでしょう。仮想通貨は強気モードから一転、マイナス10%となり、ERC-20トークンの該当コードを含んでいる仮想通貨、ならびにその疑いがある仮想通貨については各取引所で取り引きを一旦中止にするという暫定措置をしていますね。
補足しておきますと、影響範囲は、該当のコードを使っているプロジェクトになります。ERC-20自体に重大なバグがあるのではなく、そのプロジェクト上で使い回されていたコードに重大なバグがあったということになります。そのコードを使っていないプロジェクトは問題なく稼働しています。
*例:COMSAトークン(ERC-20で作成)
一部のERC20トークンで脆弱性が発見されておりますが、CMS:ETHには問題がないことを確認しております。
お客様のCMS:ETH(ERC20トークン)は安心してお取引いただけますので、ご安心ください。— Zaif – 暗号通貨取引所 (@zaifdotjp) 2018年4月26日
スマートコントラクトの重大なバグの問題発覚について
では、どうしてこの問題が発覚したのかを説明していきます。発端は世界第3位の香港取引所のOKExで、最近AirdropもあったBeautyChainという仮想通貨がこの脆弱性を突かれて攻撃をされたことですね。このBeautyChainは現在取り引きを停止していますが、ロールバックするにもまだ影響範囲の特定ができていないという状況らしいです。
ちなみに、このBeautyChainですが、管理人はAirdropで18BEC持っているんですよね。OKExにはないのですが、まさか自分がもっている仮想通貨が、直接的な被害にあってるとは夢にも思わなかったですね。
*MyEatherWallet内のBeautyChain
スマートコントラクトの重大なバグの今後の対応について
現在、出ている状況で管理人が把握しているのは、
▶OKExでイーサリアムのERC-20で使用されているコードのバグの脆弱性を突かれた
▶ERC-20上で使用されているコードのバグの解決方法については現在検討中
▶事態が収集するまでは、バグの疑いのあるERC-20の仮想通貨は取引停止にする
という形です。エンジニア的にはコードをチェックをする前に取り引きを中止するという傷口を広げないための暫定的な対応をしているんですよね。そのため、イーサリアムの団体は、影響のある仮想通貨に対して緊急でメールを送っているのではないかと思いますね。
技術的な話をすると、今後は、batchOverFlowバグの修正と、それに関する検証が必要ですよね。どれくらいの工数になるかは不明ですが、早期に解決するのではないかな?と思います。ただ、今回の問題はでかいですよね。
仮想通貨の基となるイーサリアム(ERC-20)のコード(一部プロジェクト)がこんな状況で大丈夫なの?と思っちゃいますよね。あとは、エンジニアとしては、重大なバグが他にも潜んでいるリスクを考えますよね。少なくとも今回使っているロジックは、全部見直さないといけないです。
それにしても、QUOINEX(QASH)の動きがめちゃくちゃ速いなと感じましたね。管理人は、QASHのこのスピード感は凄いなと感じましたね。現在、取引は停止中ですが、逆に本ニュースの影響はないと考えると値段は下がらないかと思います。
*参考
1日も早い問題の解決を願っています。イーサリアムはこの逆境をバネに、より品質を強化してほしいです。