ホワイトハット開発者の0xflorent氏は5月31日、2016年以来凍結されていた1,003.62ETH(時価3億円相当)の暗号資産(仮想通貨)イーサリアムを回収することに成功したと報告した。
このイーサリアムは、2016年に「HongCoin」という分散型ベンチャーキャピタルを目指したプロジェクトのICOで集められたものだ。資金調達目標額には届かなかったため、本来であれば、当該コントラクトは投資家全員にイーサリアムを自動的に返金するはずだった。
しかし、返金機能のバグにより、資金がスマートコントラクトに閉じ込められてしまっていた。今回、0xflorent氏は9年間閉じ込められていたイーサリアムを救出。「HongCoin」に資金を投じていた投資家48名が、資金を請求できるようになった。
これまで返金できなかったのは、このコントラクトが「誰がETHの返金を受けられるか」を判断する際に、誤った数値を参照していたことが原因である。
0xflorent氏は管理者用関数に存在していた整数オーバーフローの脆弱性を利用してロック解除を行う方法を見出して検証、これを「HongCoin」のチームに共有した。チームはマルチシグを使って管理者機能を実行し、41件のロック解除トランザクションを行った。
残り7件については残高が小規模だったために、こうした方法を取ることなく返金することができた。資金返還用のウェブサイトによると、記事執筆時点で、すでに2つのアドレスに合計96.5 ETHの返金が完了している。
一方で、オンチェーンセキュリティ企業BlockSecの共同創設者であるアンディ・ヤジン・チョウ氏は、このような資金回収の成功事例は特別であると指摘。たまたま利用できる脆弱性が存在したために可能になったが、つねにこうした方法が可能とは限らないとの見解を示している。
0xflorent氏は今回の件とは別途で5月25日にも、2件で合計19.329 ETH(時価610万円相当)のロックを解除し、元の所有者に返還したと報告していた。
1件目は、2018年1月に失敗に終わったICOのコントラクトに資金が閉じ込められていたものだった。この件ではコード内に返金関数が実装されていたが、これまで一度も呼び出されていなかったものだ。0xflorent氏はこれを実行して資金を解放した。
2件目は、2019年から2022年にかけて約2,400回のクロスチェーン・アトミックスワップを行っていたLiquality Walletのユーザーに関するものだった。
このうちの一部は、相手方が資金を受け取らないままタイムロック期限が切れたため失敗している。本来ならユーザーは手動で資金を回収できたが、その手続きを行っていなかった。0xflorent氏は返金関数を実行して資金を回収している。
このように仮想通貨では、実際に資金がコントラクト内に残っているが、誰も正しい関数を呼んでいないだけだったというケースも時折見られる。