autorenew
Ethereumの直せない欠陥:開発者が暴いたReentrancyバグ

Ethereumの直せない欠陥:開発者が暴いたReentrancyバグ

急速に動く暗号資産の世界では、ミームトークンが一夜にして現れて急上昇したり急落したりします。だからこそ、その基盤となる技術を理解することが重要です。最近、暗号の解説者でありマクロアナリスト、計算機科学者でもある MartyParty(@martypartymusic)のスレッドが、Ethereumに長年存在してきた致命的な問題に光を当てました。人気のために多くのミームコインがEthereum上でローンチされることを考えると、スマートコントラクトに潜む潜在的リスクへの警鐘と言えます。

再入(reentrancy)バグとは何か?

簡単に説明します。reentrancyは、Ethereumのスマートコントラクトにおける脆弱性で、攻撃者が最初の呼び出しが完了する前に同じ関数を繰り返し呼び出せるものです。ATMで現金を引き出す際、機械が残高を更新する前に何度も引き出しを許してしまうようなイメージです。これがreentrancyの本質です。

彼のXでのスレッドでは、この問題がどのように発生するかが説明されています。Ethereum上のスマートコントラクトは、他のコントラクトとやり取りしたりETHを送信したりするために call()send()transfer() のような関数を使います。もし外部呼び出しを行う前にコントラクトが状態(例えば残高の減少)を更新していなければ、攻撃者はその間に入り込んで悪用できます。

彼は脆弱なコントラクトのコード例を示しています:

solidity
contract Vulnerable {
mapping(address => uint) public balances;

function withdraw() public {
    uint amount = balances[msg.sender];
    require(amount > 0);
    (bool success, ) = msg.sender.call{value: amount}(""); // External call
    require(success, "Transfer failed");
    balances[msg.sender] = 0; // State update after call
}

}

攻撃者はフォールバック関数を持つ自分のコントラクトをデプロイし、withdraw() を再度呼び出すことで、残高がゼロにされる前に資金を引き出し尽くすことができます。怖い話ですが、この欠陥はブロックチェーン上のエクスプロイトの約80%の原因であり、莫大な損失を招いてきました。

開発者の個人的な悪夢

MartyPartyは単に理論を語っているわけではありません。「これが起きたから知っている」と彼は書いています。彼はEthereumで構築しようと試み、reentrancyを避けるための防御コードを書きましたが、それでも破られました。問題は?それはEthereumのアーキテクチャに組み込まれているということです。あまりにも多くの価値がロックされているため、コアコードをいじるのはリスクが高すぎます。「直せない」と彼は言います。「問題はアーキテクチャ内にあり、コードはあまりにも脆弱で、ロックされた価値が大きすぎて触れられない。リスクが高すぎる。プログラミング言語が悪い。」

代わりに彼は、Rust(Solanaで使われる)やMove(Suiで使われる)のようなモダンな言語への移行を勧めています。「個人的な感情ではなく、ただのビジネスだ」と彼は付け加えます。これには、多くの開発者がEthereumを離れてより安全で高速なチェーンに移ったという現実が反映されています。

ミームトークンにとっての重要性

ミームトークンは盛り上がり、コミュニティ、そして迅速なローンチで成長しますが、多くはEthereum上のシンプルなスマートコントラクトを使っています。しかしreentrancyは、これらをエクスプロイトの格好の標的にします。2016年のThe DAOハックを覚えていますか?あれはreentrancyの典型例で、6000万ドルの窃盗とEthereumのハードフォークにつながりました。その後も同様の問題がDeFiプロトコルやNFTプロジェクトで発生しており、ミームコインのエコシステムにも影響を与えています。

ミームトークンをローンチする、あるいは投資する場合、この脆弱性はリスクを高めます。ラグプルやハックで利益が一瞬で消える可能性があります。だからこそ多くのミームプロジェクトがSolanaへ移行しています。Solanaでは並列処理とRustによりreentrancyリスクが排除され、スピードも速く手数料も低いため、バイラルなミームには理想的です。

Ethereumは自身を「擬似的な価値の貯蔵」と位置づけ、Layer 2トランザクションを7日間のエスクローでまとめています。しかし、MartyPartyが指摘するように、Ethereumがインターネットの実行レイヤーを担うことはないだろうと言います。純粋な価値の保管としてはBitcoinが優位に立ち、実際に構築する場としてはSolanaやSuiが光ります。

暗号開発のより大きな文脈

このスレッドは業界の変化を浮き彫りにしています。エンジニアたちはEthereumのSolidityを離れ、より堅牢な選択肢へ移っています。ミームトークンに関わるブロックチェーン実務者なら、セキュリティを最優先してください。コードではchecks-effects-interactionsパターンを使うか、あるいはこうした落とし穴がないチェーンを検討しましょう。

MartyPartyの見解は?Tom Leeや他のEthereumブースターはこれをあまり語らないかもしれませんが、重要なポイントです。ミームのインサイダーとして、情報を持っていることがこの過酷な暗号世界で「rekt」されないための助けになります。

どう思いますか—Solanaミームに全力で行く時でしょうか?下に感想をどうぞ!

おすすめ記事