- 1 トロン(TRX)で致命的な脆弱性
- 2 マルチシグネチャ(Multi-Signature)とは?
- 3 マルチシグネチャの仕組みと閾値
- 4 マルチシグ署名検証の手順
- 5 RFC6979と乱数問題
- 6 トロンのマルチシグの脆弱性原因
- 7 2つ目の問題点
- 8 攻撃手法と対策
- 9 まとめ
イーサリアムのフォークであるトロン(TRX)はプロトコル内に致命的なゼロデイ脆弱性があったことが2023年2月19日に判明、現在は修正していると発表されました。本稿ではトロンで見つかったマルチシグネチャ(Multi-Signature)アカウントの致命的な脆弱性の詳細についてわかりやすく解説を行います。
トロン(TRX)で致命的な脆弱性
仮想通貨リサーチ企業の0dによると、
「トロンがネイティブプロトコルとして提供していたマルチシグネチャアカウント(Multi-Signature Account)の署名にバグがあり、約700億円相当のトロン上のTRXやUSDCなどの仮想通貨がリスクにさらされていた」
としており、この脆弱性発見によりバグバウンティ報酬をトロンから受け取ったと発表しているのです。この致命的な脆弱性が発見された後、トロンのデベロッパーは即座に修正のパッチを公開、バリデータがアップデートしたことで現在は影響はないとしています。
またこの脆弱性を利用した悪意ある攻撃は現時点では確認されておらず、被害を未然に防ぐことができたということになります。
マルチシグネチャ(Multi-Signature)とは?
マルチシグネチャ(Multi-Signature)とはその名前の通り”複数人の署名”を意味し、
「本来1アカウントに1つの署名で済むのに対し、マルチシグネチャは2つ以上の設定された秘密鍵での署名が必要になるセキュリティウォレット」
を指します。
例えば秘密鍵を5つ設定し、その設定された5つのうち3つの秘密鍵の署名が必要となるという形式となります。トロンの脆弱性ではこの2つ以上の秘密鍵署名が必要なのに対し、1つの秘密鍵が署名さえすればマルチシグネチャアカウントから仮想通貨を引出しできてしまったというバグとなっています。
マルチシグネチャの仕組みと閾値
ではこのトロンの致命的なマルチシグネチャの脆弱性の理由について見る前に、マルチシグネチャの技術的な仕組みを見ていきましょう、まず重要となるのは
「トランザクションをマルチシグネチャ