時価総額: $2.8313T 0.35%
ボリューム(24時間): $138.9602B -22.27%
恐怖と貪欲の指数:

26 - 恐れ

  • 時価総額: $2.8313T 0.35%
  • ボリューム(24時間): $138.9602B -22.27%
  • 恐怖と貪欲の指数:
  • 時価総額: $2.8313T 0.35%
暗号
トピック
暗号化
ニュース
暗号造園
動画
トップクリプトスペディア

言語を選択する

言語を選択する

通貨の選択

暗号
トピック
暗号化
ニュース
暗号造園
動画

リエントランシー攻撃とは何ですか?契約でそれを防ぐにはどうすればよいですか?

Reentrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to drain funds by re-entering functions before state updates—highlighted by the $60M DAO hack.

2025/11/10 16:20

スマートコントラクトにおけるリエントランシー攻撃を理解する

1. 再入攻撃は、最初の実行が完了する前に、悪意のあるコントラクトが脆弱な関数を繰り返しコールバックするときに発生します。この再帰的な動作は、スマート コントラクト内の外部呼び出しと状態変化の順序を利用します。

2. 中心的な脆弱性は、内部状態を更新する前に資金を送信したり、外部呼び出しを行ったりするコントラクトにあります。攻撃者はこのウィンドウを利用して、出金機能を再入力することで資金を複数回引き出すことができます。

3. 最も悪名高い例の 1 つは、2016 年の DAO ハッキングで、リエントランシーの欠陥により 6,000 万ドル以上相当のイーサが流出しました。攻撃者はフォールバック関数を使用して、引き出しメカニズムを再帰的に呼び出しました。

4. これらの攻撃はイーサ転送に限定されません。適切な保護策が講じられていない場合、ユーザー制御のコントラクトへの外部呼び出しは潜在的に武器化される可能性があります。

5.再入可能性は、分散型アプリケーション、特に多額のユーザー資金を扱う DeFi プロトコルにおいて、依然として最も重大なセキュリティ リスクの 1 つです。

再入可能を可能にする一般的なパターン

1. 「最初に呼び出し、後で更新」パターンに従う契約は本質的に影響を受けやすいです。ユーザーの残高を減らす前にイーサまたはトークンを送信すると、攻撃者は元の金額を反映した更新された残高で再侵入することができます。

2. 適切なチェックを行わずにcall()delegatecall() 、またはsend()などの低レベルの呼び出しに依存する関数は危険にさらされる可能性が高くなります。これらのメソッドは、受信者のフォールバックまたは受信機能をトリガーしますが、これには悪意のあるロジックが含まれる可能性があります。

3. プルオーバープッシュ支払いモデルの不適切な使用はリスクの一因となります。トランザクション中に積極的に資金を送信するプッシュベースのシステムは、再帰的な悪用の余地を生み出します。

4. 複数のインターフェースにわたる複雑なコントラクトのやり取りにより、危険が増幅されます。あるコントラクトが別のコントラクトを呼び出し、両方のコントラクトが可変状態である場合、実行フローの追跡が困難になり、見落としの可能性が高くなります。

5.状態の更新がアトミックではなく、外部との対話後に発生する場合は、一見安全なコードでも危険にさらされる可能性があります。

効果的な予防戦略

1. Checks-Effects-Interactions (CEI) パターンを厳密に適用します。常に入力を検証し、内部状態変数を更新してから、外部呼び出しを実行します。このシーケンスにより、再入場ウィンドウが排除されます。

2. OpenZeppelin のReentrancyGuardなどのライブラリによって提供されるミューテックス ロックまたは再入ガードを使用します。これらは、すでに実行中の関数が再入力されるのを防ぐロック メカニズムを強制します。

3. 低レベルの呼び出しの使用を制限します。 transfer()のような、再帰的な実行を防ぐガス給費制限などの保護機能が組み込まれた高レベルの転送関数を優先します。

4. 直接支払いの代わりに引き出しパターンを実装します。ユーザーが別の機能を通じて資金の取り出しを開始できるようにすることで、機密性の高い操作中の外部呼び出しの数を最小限に抑えます。

5.定期的な監査ツールと静的分析ツールを開発ライフサイクルに統合して、展開前に潜在的な再入ベクトルを検出する必要があります。

よくある質問

リエントランシー攻撃におけるフォールバック機能の役割は何ですか?フォールバック機能は、コントラクトがデータなしの Ether を受信すると自動的に実行されます。攻撃者は、脆弱な機能を再度呼び出す悪意のあるフォールバックを作成し、元のトランザクションが完了する前に資金を枯渇させるループを作成します。

同じ契約内の異なる機能間でリエントラントが発生する可能性はありますか?はい。関数間の再入は、ある関数が同じコントラクトの別の関数に戻る外部呼び出しを行い、更新されていない共有状態を利用するときに発生します。このような経路をブロックするには、適切な状態管理とガードが不可欠です。

プロキシ契約はリエントラントの影響を受けませんか?いいえ。ロジック実装にチェックされていない外部呼び出しが含まれている場合、プロキシ コントラクトは依然として脆弱である可能性があります。プロキシは呼び出しをアップグレード可能なロジック コントラクトに委任するため、再入性を含むロジック層の欠陥は依然として悪用可能です。

ガス制限は再入試行にどのような影響を与えますか?初期の防御の一部は、再帰をブロックするために利用可能なガスをすべて消費することに依存していました。ただし、最新の攻撃は、正確なガス推定を使用してこれを回避します。ガス制限のみに依存するのは信頼できません。構造的なコード パターンにより、より強力な保護が提供されます。

免責事項:info@kdj.com

提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。

このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。

関連知識

現在の流動性の急増中に DeFi 契約を取引するにはどうすればよいでしょうか?

現在の流動性の急増中に DeFi 契約を取引するにはどうすればよいでしょうか?

2026-02-01 07:00:25

DeFiプロトコルにおける流動性のダイナミクスを理解する1. DeFiにおける流動性の急上昇は、多くの場合、イールド・ファーミング・インセンティブ、トークンの排出、クロスチェーン・ブリッジング活動からの調整された資本流入によって引き起こされます。 2. 自動マーケットメーカーは、大規模な流動性プール...

暗号通貨契約価格発見にボリュームプロファイルを使用するにはどうすればよいですか?

暗号通貨契約価格発見にボリュームプロファイルを使用するにはどうすればよいですか?

2026-02-01 09:39:59

ボリュームプロファイルの基本を理解する1. 出来高プロファイルは、定義された期間にわたる特定の価格レベルでの取引活動を視覚的に表現したもので、各価格ポイントでどれだけの取引が行われたかをチャート上に表示します。 2. 暗号通貨契約市場において、機関投資家の注文が集中している場所、特に大規模ノード (...

初めて Bybit で暗号通貨契約を取引するにはどうすればよいですか?

初めて Bybit で暗号通貨契約を取引するにはどうすればよいですか?

2026-02-01 04:00:10

Bybit アカウントのセットアップ1. Bybit の公式 Web サイトにアクセスし、ホームページの右上隅にある「サインアップ」ボタンをクリックします。 2. 有効な電子メール アドレスを入力し、大文字、小文字、数字、特殊文字を含む強力なパスワードを作成します。 3. CAPTCHA 認証を完了...

スリッページの低い高レバレッジの暗号通貨契約を見つけるにはどうすればよいでしょうか?

スリッページの低い高レバレッジの暗号通貨契約を見つけるにはどうすればよいでしょうか?

2026-02-01 04:19:41

高レバレッジの仮想通貨契約を見つける1. トレーダーは、50 倍を超えるレバレッジを提供する無期限先物契約を求めて、分散型取引所と集中型取引所をよく調べます。 Binance、Bybit、OKX には、分離マージン モードで最大 125 倍のレバレッジを持つ複数の BTC、ETH、および SOL ペ...

暗号通貨契約取引の建玉を分析するにはどうすればよいですか? (プロ戦略)

暗号通貨契約取引の建玉を分析するにはどうすればよいですか? (プロ戦略)

2026-02-01 06:20:01

建玉の基礎を理解する1. 建玉は、決済またはクローズされていない未処理のデリバティブ契約 (先物や無期限スワップなど) の合計数を表します。 2. 特定の時間枠にわたる活動を測定する出来高とは異なり、建玉は、任意の瞬間におけるすべての市場参加者にわたる累積的なポジションエクスポージャーを反映します。...

暗号契約計算ツールを使用して損益を見積もるにはどうすればよいですか?

暗号契約計算ツールを使用して損益を見積もるにはどうすればよいですか?

2026-02-01 09:20:13

暗号契約計算ツールについて1. 暗号契約計算ツールは、実行前に先物または永久スワップ ポジションの潜在的な損益を計算するように設計されたツールです。 2. エントリー価格、エグジット価格、ポジションサイズ、レバレッジ、契約タイプ (リニアまたはインバース) などの入力が必要です。 3. 計算機は、取...

現在の流動性の急増中に DeFi 契約を取引するにはどうすればよいでしょうか?

現在の流動性の急増中に DeFi 契約を取引するにはどうすればよいでしょうか?

2026-02-01 07:00:25

DeFiプロトコルにおける流動性のダイナミクスを理解する1. DeFiにおける流動性の急上昇は、多くの場合、イールド・ファーミング・インセンティブ、トークンの排出、クロスチェーン・ブリッジング活動からの調整された資本流入によって引き起こされます。 2. 自動マーケットメーカーは、大規模な流動性プール...

暗号通貨契約価格発見にボリュームプロファイルを使用するにはどうすればよいですか?

暗号通貨契約価格発見にボリュームプロファイルを使用するにはどうすればよいですか?

2026-02-01 09:39:59

ボリュームプロファイルの基本を理解する1. 出来高プロファイルは、定義された期間にわたる特定の価格レベルでの取引活動を視覚的に表現したもので、各価格ポイントでどれだけの取引が行われたかをチャート上に表示します。 2. 暗号通貨契約市場において、機関投資家の注文が集中している場所、特に大規模ノード (...

初めて Bybit で暗号通貨契約を取引するにはどうすればよいですか?

初めて Bybit で暗号通貨契約を取引するにはどうすればよいですか?

2026-02-01 04:00:10

Bybit アカウントのセットアップ1. Bybit の公式 Web サイトにアクセスし、ホームページの右上隅にある「サインアップ」ボタンをクリックします。 2. 有効な電子メール アドレスを入力し、大文字、小文字、数字、特殊文字を含む強力なパスワードを作成します。 3. CAPTCHA 認証を完了...

スリッページの低い高レバレッジの暗号通貨契約を見つけるにはどうすればよいでしょうか?

スリッページの低い高レバレッジの暗号通貨契約を見つけるにはどうすればよいでしょうか?

2026-02-01 04:19:41

高レバレッジの仮想通貨契約を見つける1. トレーダーは、50 倍を超えるレバレッジを提供する無期限先物契約を求めて、分散型取引所と集中型取引所をよく調べます。 Binance、Bybit、OKX には、分離マージン モードで最大 125 倍のレバレッジを持つ複数の BTC、ETH、および SOL ペ...

暗号通貨契約取引の建玉を分析するにはどうすればよいですか? (プロ戦略)

暗号通貨契約取引の建玉を分析するにはどうすればよいですか? (プロ戦略)

2026-02-01 06:20:01

建玉の基礎を理解する1. 建玉は、決済またはクローズされていない未処理のデリバティブ契約 (先物や無期限スワップなど) の合計数を表します。 2. 特定の時間枠にわたる活動を測定する出来高とは異なり、建玉は、任意の瞬間におけるすべての市場参加者にわたる累積的なポジションエクスポージャーを反映します。...

暗号契約計算ツールを使用して損益を見積もるにはどうすればよいですか?

暗号契約計算ツールを使用して損益を見積もるにはどうすればよいですか?

2026-02-01 09:20:13

暗号契約計算ツールについて1. 暗号契約計算ツールは、実行前に先物または永久スワップ ポジションの潜在的な損益を計算するように設計されたツールです。 2. エントリー価格、エグジット価格、ポジションサイズ、レバレッジ、契約タイプ (リニアまたはインバース) などの入力が必要です。 3. 計算機は、取...

すべての記事を見る

User not found or password invalid

Your input is correct