専門家はまだいます。今回、イーサリアム上でバイナンスがどのようにハッキングされたのかを分析していて、今は理解できたと思います。

今回のハッキングは秘密鍵ではなく、署名の段階で起きました。

イーサリアムには7702という機能があり、通常のウォレットで委任に署名し、アカウントの管理をスマートコントラクトに引き渡せます。

まるで委任状を書くようなものです。「今日から、別の人のプログラムがこのアカウントを管理し、入金があるたびに外部へ送金する」と書くようなものです。

権限委任に署名すると、そのアカウントはもはやあなたの管理下にはなくなる。

この権限委任は、特定の番号で有効になる。

各ウォレットにはnonceと呼ばれるカウンターがあり、トランザクションを送信するたびに1ずつ増える。

権限委任は特定の番号にひも付けられており、アカウントがその番号に達したときにのみ有効になり、一度使われると無効になる。

当時、バイナンスのウォレットがどの番号に達していたかを攻撃者は把握していなかった。ウォレットは絶えずトランザクションを送信していたからだ。

そこで攻撃者は、正しい番号に当たることを期待して、バイナンスに50件の連続した権限委任を一度に、順番に署名させた。

50件の権限委任のうち一つでも現在の番号と一致すれば、有効になる。

そして、実際にそうなった。

さらに深刻なのは、バイナンス自身がこの50件の権限委任に署名したことだ。

連続した番号はオンチェーンで確認でき、非常に短い時間のうちに一括で署名されたことを示している。

Blockaidは、今回の出来事は鍵の盗難というより、鍵の悪用に近いと見ている。

秘密鍵は今もバイナンスの手元にある。しかし攻撃者は、署名システムにこの50件のトランザクションは署名に値すると判断させた。

権限委任が有効になると、そのウォレットはもはや普通のウォレットではなくなった。

攻撃者のコントラクトへの入口になった。そのコントラクトの機能はただ一つ、1 ETHだけを残して、すべてのトークンとETHを引き出して送金することだった。

アカウントからトランザクションを送信できる状態を保つため、1 ETHが残された。誰かがさらに資金を送ると、同じ方法で引き出された。

一度きりの盗難ではなく、資金を継続的に引き出す仕組みだった。

その一方で、複数のチェーンにあるバイナンスのホットウォレットから、資金が流出し続けていた。

つまり、攻撃者が手に入れたのは特定のウォレットではなく、複数のウォレットに同時に影響を及ぼせる署名能力だった。

過去10年間、取引所のハッキングは、秘密鍵やシードフレーズの流出、あるいは内部関係者の関与によって起きてきた。

しかし今回は、何も盗まれていない。システムそのものが署名したのだ。

7702以降、1回の署名で、単なる1回の送金をはるかに超えることができるようになった。

50件の権限委任のうち一つでも現在の番号と一致すれば、有効になる。

そして、実際にそうなった。

さらに深刻なのは、バイナンス自身がこの50件の権限委任に署名したことだ。

連続した番号はオンチェーンで確認でき、非常に短い時間のうちに一括で署名されたことを示している。

Blockaidは、今回の出来事は鍵の盗難というより、鍵の悪用に近いと見ている。

秘密鍵は今もバイナンスの手元にある。しかし攻撃者は、署名システムにこの50件のトランザクションは署名に値すると判断させた。

権限委任が有効になると、そのウォレットはもはや普通のウォレットではなくなった。

しかし、攻撃者のコントラクトへの入口になった。そのコントラクトの機能はただ一つ、1 ETHだけを残して、すべてのトークンとETHを引き出して送金することだった。

アカウントからトランザクションを送信できる状態を保つため、1 ETHが残された。誰かがさらに資金を送ると、同じ方法で引き出された。

一度きりの盗難ではなく、資金を継続的に引き出す仕組みだった。