-
Bitcoin
$94,496.6631
0.13% -
Ethereum
$1,806.7469
-0.45% -
Tether USDt
$1.0002
-0.01% -
XRP
$2.2703
3.55% -
BNB
$606.1188
-0.39% -
Solana
$149.4259
0.44% -
USDC
$0.9998
-0.03% -
Dogecoin
$0.1819
0.61% -
Cardano
$0.7150
1.29% -
TRON
$0.2473
-2.06% -
Sui
$3.6274
3.93% -
Chainlink
$14.7452
-0.72% -
Avalanche
$22.0881
-0.49% -
Stellar
$0.2865
-1.33% -
Toncoin
$3.3538
0.52% -
UNUS SED LEO
$9.0805
0.27% -
Hedera
$0.1912
0.16% -
Shiba Inu
$0.0...01367
-3.02% -
Bitcoin Cash
$350.1477
-1.88% -
Litecoin
$86.5356
-1.19% -
Polkadot
$4.1341
-3.50% -
Hyperliquid
$17.7313
-0.54% -
Dai
$1.0000
-0.01% -
Bitget Token
$4.3815
-0.79% -
Ethena USDe
$0.9994
-0.01% -
Pi
$0.6361
-2.28% -
Monero
$229.8848
0.35% -
Pepe
$0.0...08900
-2.44% -
Uniswap
$5.5885
-3.58% -
Aptos
$5.4402
-2.85%
ブロックチェーンに対する再突入攻撃はどのように発生しますか?
再入国攻撃は、取引が完了する前に機能を繰り返し呼び出すことにより、スマートコントラクトの脆弱性を活用し、適切に保護されていないとファンドの排水を危険にさらします。
2025/04/11 20:21

再突入攻撃の紹介
再突入攻撃は、ブロックチェーンのスマートコントラクト、特に金融取引を処理するスマートコントラクトで発生する可能性のあるエクスプロイトの一種です。このタイプの攻撃は、契約のコードの脆弱性を利用して、攻撃者が最初のトランザクションが完了する前に関数を繰り返し呼び出すことができます。これらの攻撃がどのように発生するかを理解することは、開発者とユーザーが資産を保護し、ブロックチェーンの整合性を維持するために重要です。
再突入攻撃のメカニズム
再突入攻撃は通常、資金の譲渡を伴うスマートコントラクトを対象としています。この攻撃は、契約のロジックの欠陥を活用して、契約が内部状態を更新する前に外部住所に資金を送信します。これがどのように機能しますか:
- 最初の呼び出し:攻撃者は、攻撃者の住所に資金を送るように設計された脆弱なスマートコントラクトの関数を呼び出すトランザクションを開始します。
- 外部呼び出し:契約が内部状態を更新する前に(たとえば、送信者の残高を減らす)、攻撃者の住所に資金を送ります。
- 再入国:攻撃者の住所は、資金を受け取ったときに同じ関数を再度自動的に呼び出すように設定されているため、最初の取引が完全に処理される前に契約に再び入ります。
- ループ:このプロセスは複数回繰り返すことができ、攻撃者は契約のロジックが最終的に州の更新または資金がなくなるまで契約の資金を排出できるようにします。
脆弱なスマートコントラクトコード
再突入攻撃をどのように実行できるかを理解するために、Solidityで書かれた脆弱なスマートコントラクトの簡略化された例を見てみましょう。
contract VulnerableContract {
mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); // Update the balance balances[msg.sender] -= amount; } function deposit() public payable { balances[msg.sender] += msg.value; }
}
この例では、 withdraw
関数は最初に資金を発信者に送信し、次に残高を更新します。このシーケンスにより、攻撃者は残高が更新される前に契約に再び入ることができます。
再突入攻撃の実行
再入国攻撃を実行するには、攻撃者が資金を受け取ったときに自動的にwithdraw
関数を呼び出すことができる悪意のある契約を設定する必要があります。このような悪意のある契約の簡略化された例は次のとおりです。
contract AttackContract {
VulnerableContract public vulnerableContract; constructor(address _vulnerableContractAddress) { vulnerableContract = VulnerableContract(_vulnerableContractAddress); } function attack() public { vulnerableContract.withdraw(vulnerableContract.balances(address(this))); } receive() external payable { if (address(vulnerableContract).balance >= msg.value) { vulnerableContract.withdraw(msg.value); } }
}
- 攻撃契約の展開:攻撃者は
AttackContract
を展開し、VulnerableContract
のアドレスで初期化します。 - 攻撃を開始する:攻撃者は
AttackContract
のattack
関数を呼び出し、それはVulnerableContract
のwithdraw
関数を呼び出します。 - 再入国ループ:資金を受け取ると、
AttackContract
のreceive
機能は自動的に再びwithdraw
呼び出し、VulnerableContract
を排出するループを作成します。
再突入攻撃の防止
再突入攻撃を防ぐために、開発者は、外部呼び出しが行われる前に契約の内部状態が更新されることを確認する必要があります。再突入攻撃に耐性のあるVulnerableContract
の更新バージョンは次のとおりです。
contract SecureContract {
mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Update the balance first balances[msg.sender] -= amount; // Then send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); } function deposit() public payable { balances[msg.sender] += msg.value; }
}
この安全なバージョンでは、資金が送られる前に残高が更新され、再入国の試みが妨げられます。
再突入攻撃の実際の例
再突入攻撃の最も悪名高い例の1つは、2016年のイーサリアムブロックチェーンのDAOハックです。DAO(分散型自律編成組織)は、ベンチャーキャピタルファンドとして運営するように設計されたスマートコントラクトでしたが、上記の脆弱性が含まれていました。攻撃者は、この脆弱性を悪用して、DAOから約360万人のETHを排出し、攻撃を逆転させるためにイーサリアムブロックチェーンのハードフォークにつながりました。
もう1つの例は、2017年のパリティウォレットハックで、攻撃者がパリティマルチシグネチャウォレットの再入国脆弱性を悪用し、150,000を超えるETHの盗難をもたらしました。
よくある質問
Q:ブロックチェーンで再突入攻撃をリアルタイムで検出できますか?
A:ブロックチェーンの分散型の性質により、リアルタイムで再突入攻撃を検出することは困難です。ただし、一部のブロックチェーンプラットフォームとセキュリティ会社は、高度な監視ツールと異常検出アルゴリズムを使用して、再突入攻撃を示す可能性のある疑わしいパターンを特定します。これらのツールは、重大な損害が発生する前に、ユーザーと開発者に潜在的な脆弱性を警告することができます。
Q:すべてのスマートコントラクトは、再入国攻撃に対して脆弱ですか?
A:いいえ、すべてのスマートコントラクトが再突入攻撃に対して脆弱であるわけではありません。資金の譲渡を伴わない、または外部通話を行わない契約は、一般に影響を受けやすくありません。ただし、内部状態を更新する前に資金を外部住所に送信する契約は危険にさらされる可能性があります。
Q:再入国攻撃から身を守るために、ユーザーはどのようなステップを踏むことができますか?
A:ユーザーは、スマートコントラクト、特に多額のお金を処理するものとのやり取りに慎重になることで、自分自身を守ることができます。彼らは契約のコードと監査のレポートを調査し、評判の良いプラットフォームを使用し、資金を安全なウォレットに保持する必要があります。さらに、スマートコントラクトセキュリティにおける一般的な脆弱性とベストプラクティスについて情報を提供することは、ユーザーがより安全な決定を下すのに役立ちます。
Q:開発者は、スマートコントラクトが再突入攻撃に対して安全であることをどのように保証できますか?
A:開発者は、「チェックエフェクトインタラクション」パターンなどのベストプラクティスに従うことにより、スマートコントラクトが安全になることを保証できます。このパターンでは、外部呼び出しが行われる前に契約の内部状態が更新されます。また、徹底的なコード監査を実施し、正式な検証ツールを使用し、ブロックチェーンスペースの最新のセキュリティガイドラインと脆弱性について最新の状態を維持する必要があります。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- 暗号通貨は見出しに戻ってきました
- 2025-04-28 05:50:13
- 暗号価格操作とは何ですか?
- 2025-04-28 05:50:13
- Web3 AI:暗号ユーザー向けの最初のオールインワンAIスタック
- 2025-04-28 05:45:13
- ソーシャルメディアインフルエンサーが暗号通貨市場をどのように形成するか
- 2025-04-28 05:45:13
- このドッグコインの競合他社は、ビットコインの価格が回復するにつれて牽引力を獲得しますが、なぜ
- 2025-04-28 05:40:12
- Cold Walletは、0.007ドルの事前販売製品で長期的な暗号投資家の注目を集めています
- 2025-04-28 05:40:12
関連知識

ブロックチェーンの乱数生成とは何ですか?なぜそれが重要なのですか?
2025-04-27 21:07:29
ブロックチェーンテクノロジーのコンテキストでの乱数生成(RNG)は、さまざまなブロックチェーン操作のセキュリティ、公平性、および予測不可能性を確保する上で重要な役割を果たす重要なコンポーネントです。 RNGは、暗号化キーの生成、ユニークなアドレスの作成、証明のようなコンセンサスメカニズムの促進など、ブロックチェーンエコシステム内のさまざまなアプリケーションで使用されます。この記事では、ブロックチェーンの乱数生成、それが重要である理由、およびそれがどのように実装されるかを掘り下げます。ブロックチェーンの乱数生成とは何ですか?ブロックチェーンの乱数生成とは、ランダムな偶然よりも合理的に予測できない数値またはシンボルのシーケンスを生成するプロセスを指します。これらの数値は、さまざまな暗号化機能とブロックチェ...

ブロックチェーンのDAG構造は何ですか?ブロックチェーンとどう違うのですか?
2025-04-27 20:56:51
指示された非環式グラフ(DAG)構造は、暗号通貨エコシステム内の従来のブロックチェーン技術の魅力的な代替品を表しています。 DAGは、スケーラビリティとトランザクション速度を高めるためにいくつかの暗号通貨で使用されるデータ構造の一種です。ブロックの線形チェーンに依存する従来のブロックチェーンとは異なり、 DAGはより複雑で相互接続されたトランザクションネットワークを採用しています。この記事では、DAG構造の詳細、ブロックチェーンとの違い、および暗号通貨操作への影響について説明します。 DAG構造を理解する直接性環境グラフ(DAG)は、エッジに方向があり、サイクルがないグラフデータ構造です。暗号通貨のコンテキストでは、グラフ内の各ノードはトランザクションを表し、指向されたエッジはトランザクション間の値の...

ブロックチェーントリレマとは何ですか?トレードオフをする方法は?
2025-04-27 20:15:02
ブロックチェーントリレマは、暗号通貨とブロックチェーンテクノロジーの世界における基本的な概念です。これは、スケーラビリティ、セキュリティ、および分散化という3つの重要なプロパティを同時に達成するという課題を指します。これらの3つの側面は、あらゆるブロックチェーンネットワークの成功と広範な採用に不可欠です。ただし、3つすべてを高レベルで達成することは非常に困難であり、多くの場合、トレードオフを行う必要があります。この記事では、ブロックチェーンのトリレマの詳細を掘り下げ、さまざまなブロックチェーンプロジェクトがこれらの課題にどのように対処するかを探り、関係するトレードオフについて議論します。ブロックチェーントリレマを理解するブロックチェーントリレマは、イーサリアムの共同設立者であるVitalik Bute...

ブロックチェーン用のステートレスクライアントとは何ですか?ストレージの負担を減らす方法は?
2025-04-27 20:01:18
ブロックチェーン用のステートレスクライアントとは、ブロックチェーン全体を保存する必要なく、ブロックチェーンネットワークと対話するタイプのソフトウェアを指します。このアプローチにより、個々のノードのストレージ負担が大幅に削減されるため、リソースが限られているデバイスがネットワークに参加するためのデバイスがより実行可能になります。この記事では、Statelessクライアントの概念を調査し、ブロックチェーンシステムのストレージ負担を減らすためのさまざまな戦略について説明します。ステートレスクライアントの理解ステートレスクライアントは、最小限のローカルストレージで動作するように設計されています。ブロックチェーンの状態の完全なコピーを維持する代わりに、これらのクライアントは外部ソースに依存して、必要なデータをオ...

ブロックチェーンの楽観的な展開とは何ですか?どのように機能しますか?
2025-04-27 16:56:32
ブロックチェーンの楽観的なロールアップとは何ですか?楽観的なロールアップは、基礎となるブロックチェーンのセキュリティと分散化を維持しながら、ブロックチェーントランザクションのスループットを増やすように設計されたレイヤー2スケーリングソリューションです。 「楽観的」という用語とは、トランザクションがデフォルトで有効であるという仮定を指し、紛争の場合にのみ、メインチェーンで確認されています。このアプローチは、メインブロックチェーンの負荷を大幅に削減し、1秒あたりのトランザクションを処理できるようにします。楽観的なロールアップはどのように機能しますか?楽観的なロールアップは、複数のトランザクションをオフチェーンでバッチし、これらのトランザクションの概要をメインブロックチェーンに送信することにより機能します。...

ブロックチェーンのチェーンガバナンスとは何ですか?オフチェーンガバナンスとどう違うのですか?
2025-04-28 00:42:47
ブロックチェーンのチェーンガバナンスとは何ですか?オフチェーンガバナンスとどう違うのですか?ブロックチェーンガバナンスの紹介ブロックチェーンガバナンスとは、ブロックチェーンネットワーク内で決定が下され、実装されるメカニズムとプロセスを指します。これらの決定は、プロトコルのアップグレード、コンセンサスルールの変更、またはリソースの割り当てに関連する可能性があります。ブロックチェーンのガバナンスは、ネットワークがその整合性とセキュリティをどのように進化させ維持するかを決定するため、重要です。オンチェーンガバナンスの理解オンチェーンガバナンスは、意思決定プロセスと投票メカニズムがブロックチェーンプロトコルに直接統合されるシステムです。これは、変更の提案、投票、決定の実施など、ガバナンス関連の活動がすべてブロ...

ブロックチェーンの乱数生成とは何ですか?なぜそれが重要なのですか?
2025-04-27 21:07:29
ブロックチェーンテクノロジーのコンテキストでの乱数生成(RNG)は、さまざまなブロックチェーン操作のセキュリティ、公平性、および予測不可能性を確保する上で重要な役割を果たす重要なコンポーネントです。 RNGは、暗号化キーの生成、ユニークなアドレスの作成、証明のようなコンセンサスメカニズムの促進など、ブロックチェーンエコシステム内のさまざまなアプリケーションで使用されます。この記事では、ブロックチェーンの乱数生成、それが重要である理由、およびそれがどのように実装されるかを掘り下げます。ブロックチェーンの乱数生成とは何ですか?ブロックチェーンの乱数生成とは、ランダムな偶然よりも合理的に予測できない数値またはシンボルのシーケンスを生成するプロセスを指します。これらの数値は、さまざまな暗号化機能とブロックチェ...

ブロックチェーンのDAG構造は何ですか?ブロックチェーンとどう違うのですか?
2025-04-27 20:56:51
指示された非環式グラフ(DAG)構造は、暗号通貨エコシステム内の従来のブロックチェーン技術の魅力的な代替品を表しています。 DAGは、スケーラビリティとトランザクション速度を高めるためにいくつかの暗号通貨で使用されるデータ構造の一種です。ブロックの線形チェーンに依存する従来のブロックチェーンとは異なり、 DAGはより複雑で相互接続されたトランザクションネットワークを採用しています。この記事では、DAG構造の詳細、ブロックチェーンとの違い、および暗号通貨操作への影響について説明します。 DAG構造を理解する直接性環境グラフ(DAG)は、エッジに方向があり、サイクルがないグラフデータ構造です。暗号通貨のコンテキストでは、グラフ内の各ノードはトランザクションを表し、指向されたエッジはトランザクション間の値の...

ブロックチェーントリレマとは何ですか?トレードオフをする方法は?
2025-04-27 20:15:02
ブロックチェーントリレマは、暗号通貨とブロックチェーンテクノロジーの世界における基本的な概念です。これは、スケーラビリティ、セキュリティ、および分散化という3つの重要なプロパティを同時に達成するという課題を指します。これらの3つの側面は、あらゆるブロックチェーンネットワークの成功と広範な採用に不可欠です。ただし、3つすべてを高レベルで達成することは非常に困難であり、多くの場合、トレードオフを行う必要があります。この記事では、ブロックチェーンのトリレマの詳細を掘り下げ、さまざまなブロックチェーンプロジェクトがこれらの課題にどのように対処するかを探り、関係するトレードオフについて議論します。ブロックチェーントリレマを理解するブロックチェーントリレマは、イーサリアムの共同設立者であるVitalik Bute...

ブロックチェーン用のステートレスクライアントとは何ですか?ストレージの負担を減らす方法は?
2025-04-27 20:01:18
ブロックチェーン用のステートレスクライアントとは、ブロックチェーン全体を保存する必要なく、ブロックチェーンネットワークと対話するタイプのソフトウェアを指します。このアプローチにより、個々のノードのストレージ負担が大幅に削減されるため、リソースが限られているデバイスがネットワークに参加するためのデバイスがより実行可能になります。この記事では、Statelessクライアントの概念を調査し、ブロックチェーンシステムのストレージ負担を減らすためのさまざまな戦略について説明します。ステートレスクライアントの理解ステートレスクライアントは、最小限のローカルストレージで動作するように設計されています。ブロックチェーンの状態の完全なコピーを維持する代わりに、これらのクライアントは外部ソースに依存して、必要なデータをオ...

ブロックチェーンの楽観的な展開とは何ですか?どのように機能しますか?
2025-04-27 16:56:32
ブロックチェーンの楽観的なロールアップとは何ですか?楽観的なロールアップは、基礎となるブロックチェーンのセキュリティと分散化を維持しながら、ブロックチェーントランザクションのスループットを増やすように設計されたレイヤー2スケーリングソリューションです。 「楽観的」という用語とは、トランザクションがデフォルトで有効であるという仮定を指し、紛争の場合にのみ、メインチェーンで確認されています。このアプローチは、メインブロックチェーンの負荷を大幅に削減し、1秒あたりのトランザクションを処理できるようにします。楽観的なロールアップはどのように機能しますか?楽観的なロールアップは、複数のトランザクションをオフチェーンでバッチし、これらのトランザクションの概要をメインブロックチェーンに送信することにより機能します。...

ブロックチェーンのチェーンガバナンスとは何ですか?オフチェーンガバナンスとどう違うのですか?
2025-04-28 00:42:47
ブロックチェーンのチェーンガバナンスとは何ですか?オフチェーンガバナンスとどう違うのですか?ブロックチェーンガバナンスの紹介ブロックチェーンガバナンスとは、ブロックチェーンネットワーク内で決定が下され、実装されるメカニズムとプロセスを指します。これらの決定は、プロトコルのアップグレード、コンセンサスルールの変更、またはリソースの割り当てに関連する可能性があります。ブロックチェーンのガバナンスは、ネットワークがその整合性とセキュリティをどのように進化させ維持するかを決定するため、重要です。オンチェーンガバナンスの理解オンチェーンガバナンスは、意思決定プロセスと投票メカニズムがブロックチェーンプロトコルに直接統合されるシステムです。これは、変更の提案、投票、決定の実施など、ガバナンス関連の活動がすべてブロ...
すべての記事を見る
