FC2ブログ

batchOverflowとは何だったの?

どうも、ぺろりんです。

4月の後半くらいに、batchOverflowという脆弱性が界隈で話題になりました。
Ethereum(イーサリアム)のスマートコントラクトに関する重大なバグが発見されたとのことで、仮想通貨取引所ではメンテナンスのため取引が一時停止されたりしました。

私自身はまだ勉強中なので素人目にですが、どんなものか調べてみたのでここにまとめてみます。


いつ見つかったの?

発端となったのは、4/22に掲載されたMediumの「New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018–10299)」という記事のようです。

別記事で拙訳を作ってみたので、よろしければご参考ください。


どういう内容?

原文からすると、「batchTransferという関数の中にある積計算をするときに整数値のオーバーフローを起こすことで、大量のトークンを不正に取引できる」という内容のようです。

今回の脆弱性はERC20(日本語訳した記事の注2をご参照ください)そのもののバグではなく、Ethereum自体の不具合ではないようです。
ERC20というのに準拠したトークンのうち、batchTransferという関数が実装されたものが対象です。

解決策としては、オーバーフローが起きる計算をするときにエラーになるような処理にすることだそうです。

技術的な詳細に関しては参考に挙げた記事で尽きているかと思いますので、そちらに譲らせていただきます。

(参考)
ERC20トークンに起きた脆弱性問題について (BatchOverFlow)(Gunosy Blockchain Blog)
ERC20のバグと誤報されたBatchOverFlowを体験してみる(アルゴリズムとかオーダーとか)


仮想通貨取引所の対応

先日ワールドブックのβ版を公開したQUOINEX(コインエクスチェンジ)では、4/25-26時点で以下のような対応が実施されました。













まとめ

バグの内容としては、関数batchTransfer中の計算でオーバーフローを起こして不正なトークンを取引できるものです。
影響範囲はEthereumすべてではなく、batchTransferという関数が実装されたトークンに限るようなものでした。

大手取引所でも対応されているようですし、調べてみた感じだとイーサリアム自体や多くのトークンではあまり気にしなくてもよさそうです。

コメントの投稿

Secret

プロフィール

ぺろりん

Author:ぺろりん
最近仮想通貨が楽しくなってきました。
基本的な技術をちゃんと知りたいなぁと思いつつ、まったりお勉強していこうかと思います。

twitter:ぺろりん@ぶろっくちぇーん

カテゴリ
最新記事
最新コメント
月別アーカイブ
カレンダー
10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
メールフォーム

名前:
メール:
件名:
本文: