原題:「視点 | スマートコントラクトに対する検閲攻撃を防ぐには?」 原作者: エド・フェルテン 原文翻訳: IAN LIU & Ajian、イーサリアム愛好家 スマート コントラクト システムの設計では、特定の時点までにクライアントに特定のアクションを実行するよう要求するのが一般的なパターンです。クライアントがこの時点(たとえば、特定のブロックの高さ)を過ぎても応答しない場合、スマート コントラクトはいくつかの代替アクションを実行しますが、これは通常、期限を過ぎたクライアントにとって不利になります。 この記事では、インタラクティブなロールアップ プロトコルで使用される同様のパターンに焦点を当てています。つまり、一方の当事者が「アサーション」を行い、他の当事者がそのアサーションに問題があると判断した場合、「チャレンジ ウィンドウ」内で異議を申し立てることができます。異議申し立て期間中に誰も異議を申し立てなかった場合、その主張は有効とみなされます。 この設計パターンが実際に遭遇する問題は、検閲攻撃です。つまり、攻撃者は時間枠内に他のユーザーがチャレンジを送信するのを阻止します。インタラクティブなロールアップ プロトコルでは、攻撃者はウィンドウ期間中に他のユーザーがチャレンジを開始するのを阻止しながら偽の「アサーション」を行う可能性があり、最終的に偽のアサーションが正当なものになる可能性があります。 また、攻撃者はまず一定額の資金を投資する必要があり、攻撃が失敗するとこの資金を失うことになるものと想定します。この方法では、システムへの攻撃が成功する可能性をゼロにする必要はありませんが、攻撃が成功する可能性が十分に小さい限り、誰もシステム全体を攻撃しようとすることはありません。 以下では、検閲攻撃について私たちが知っていること、それに対抗する方法、そして最後にこのリスクについての私の考えをまとめます。 検閲攻撃の種類 検閲攻撃には主に 4 つの種類があります。 フォーク: マイナーは共謀して(または賄賂を受け取って)通常のチャレンジを含むブロックを破棄し、フォークを通じてチャレンジを含まない別のブロックチェーンが受け入れられます。 回避: マイナーは、通常のチャレンジをブロックに含めないように共謀します (または賄賂を受け取ります)。 干渉: 攻撃者は従来のサービス拒否 (DoS) 攻撃を使用して、他のユーザーがチャレンジできないようにします (チャレンジを含むトランザクションを発行できないようにします)。 スピード攻撃: 攻撃者は短時間に大量のオンチェーンアサーションを行うため、他のユーザーが時間枠内にそれらすべてをチェックして異議を申し立てるには遅すぎます。 一つずつ議論してみましょう。 フォーク攻撃 フォーク攻撃は、攻撃者がプルーフ・オブ・ワーク (PoW) ブロックチェーン上でマイニングパワーの過半数を獲得し、そのパワーを使用して必要に応じてチャレンジを含むブロックを孤立させた場合に発生します。 このタイプの攻撃では、攻撃者がコンピューティング能力の大部分を制御する必要があるため、実行が困難です。攻撃者がコンピューティング能力の大部分を簡単に入手できる場合、ブロックチェーン自体に大きな問題があることを意味します。あるいは別の観点から考えてみると、マイニングパワーの大部分を制御できるカルテルは、一方では人々が自分たちが属するブロックチェーンを信用しなくなる原因となるが、他方では検閲攻撃よりも速くシステムから資金を搾り取る方法があるかもしれない。 待ってください!と言うかもしれません。コンピューティングパワーの独占企業は、大々的な発表は行わないかもしれないが、秘密裏に検閲を実行する可能性がある。攻撃者がそうすることができれば、ブロックチェーン全体の信頼性を損なうことなく、フォークを通じて検閲攻撃を実行できる可能性があります。 ここから最初の疑問が生まれます。検閲攻撃は傍観者にとって簡単に検出できるのでしょうか?フォーク攻撃が明白であることを示すために、フォークをシミュレートしました。攻撃者が計算能力の 60% を制御していると仮定すると、最初の 30 ブロックに、それぞれ長さが 1、6、5 の 3 つの分岐チェーンが出現します。これは一般的なブロックチェーンとはまったく異なります。私は別のシミュレーションを実行しました。今回は攻撃者がハッシュレートの 55% を制御し、以前のフォークは 48 ブロックにも及ぶ可能性があります。単純な数学モデルによれば、計算能力の 60% が独占されると、2.5 ブロックごとにフォークが発生し、フォークによって生じる孤立チェーンの平均長さは 5 になります。計算能力の 55% が独占されると、2.2 ブロックごとにフォークが発生し、フォークによって発生する孤立チェーンの平均長さは 10 になります。 独占計算能力が減少するにつれて、フォークの頻度と孤立したチェーンの長さが増加することがわかります。しかし、フォークがどれだけ長くても、共通しているのは(最初のブロックの共通性です)。分離されたブランチの最初のブロックには有効なチャレンジが含まれている必要があり、最終的にメイン チェーンになるブランチにはこのチャレンジは絶対に含まれません。チャレンジを提案した人は、必ずこれを知るでしょう。 (攻撃者は最初のブロックの共通性を避けるためにさらに分岐を試みることができますが、これにより分岐が長くなりすぎて、結果として生じる孤立した分岐に依然としてチャレンジが含まれます。) そのため、検閲攻撃が発生すると、それが発見されます。 皆さんはどう思われるか分かりませんが、ブロックチェーンに計算能力の独占があり、その独占者がその計算能力を使って時々アプリケーション層プロトコルに干渉しているのだとしたら、私は非常に心配するでしょう。他の人もこの不安を共有した場合、ブロックチェーン全体がユーザーから信頼されなくなります。51% のコンピューティング パワー攻撃はすべてこの結果につながります。 言い換えれば、このタイプの攻撃の問題は、誰かがアプリケーション層のトランザクションを検閲することではなく、あなたが参加しているブロックチェーン上でコンピューティング能力の独占があり、利益のために制限なくルールを破ることができることです。あらゆるブロックチェーン アプリケーションにとって、ウィンドウ期間設計モードを採用しているかどうかに関係なく、このようなコンピューティング能力の独占が発生する限り、それは壊滅的な打撃となるでしょう。 現在使用しているブロックチェーンがフォーク攻撃のリスクにさらされている場合は、別のブロックチェーンに移行することを検討する必要があります。 回避攻撃 コンピューティングパワーの独占企業が簡単に検出できるフォーク攻撃を使用しない場合、他のトリックはありますか?はい、攻撃を回避してください。悪意のあるマイナーは、ブロックを生成するときにチャレンジを含むトランザクションをパッケージ化することを拒否するだけで済みます。チャレンジウィンドウ内で生成されるすべてのブロックが悪意のあるマイナーによって生成されることを保証できる限り、攻撃は成功します。 攻撃をうまく回避できる確率はどれくらいでしょうか?これは次のように説明できます。独占企業が制御する計算能力の割合が f で、チャレンジ ウィンドウ期間が n ブロックの場合、攻撃の成功率は fn です。たとえば、独占企業がコンピューティング能力の 90% を制御し、チャレンジ ウィンドウ期間が 50 ブロックの場合、攻撃の成功率は 0.5% になります (独占企業がコンピューティング能力の 95% を制御し、攻撃の成功率を 0.5% に維持するには、ウィンドウ期間を 100 ブロックに増やす必要があります)。 rolluo プロトコルの設計どおり、攻撃者が失敗した攻撃に対して多額の罰金を支払わなければならない場合、攻撃者が罰を受けずに攻撃する可能性は低くなります。そして、罰金が被害者に返還されれば、人々はこれらの失敗した攻撃をもっと喜んで見るようになるだろう。 したがって、回避攻撃に対処する方法は、チャレンジ ウィンドウが十分に長く、攻撃が成功する確率がユーザーが許容できるほど低くなるようにすることです。許容できる攻撃成功率が r であり、攻撃者が最大 f の計算能力を制御できると仮定すると、安全なチャレンジ ウィンドウは log(r)/log(f) ブロックになります。 この提案は現実的にも合理的です。攻撃者がコンピューティング能力の 99% を独占できると仮定すると、攻撃の成功率を 0.1% まで低く抑えるには、チャレンジ ウィンドウ期間を少なくとも log(0.001)/log(0.99) = 687 ブロックに等しくする必要があり、これは Ethereum の場合 3 時間未満しかかかりません。 干渉攻撃 妨害攻撃では、攻撃者は従来のサービス拒否攻撃を使用して、他者がチャレンジを発行するのを阻止します。つまり、DoS を使用した検閲攻撃です。 妨害攻撃の問題点は、攻撃者はチャレンジを送信する可能性のあるすべての相手をブロックする必要があり、そのような相手が十分にいる場合は妨害攻撃が成功しにくくなることです。攻撃者にとって悪い知らせは、他の利害関係者が密かにウォッチャーを雇う可能性があることです。ウォッチャーとは、密かにプロトコルを監視し、参加者が異議を申し立てるのが遅すぎたり困難だったりする場合に介入して無効な主張に異議を申し立てる仲介者です。攻撃者はこれらの潜在的なモニターを識別する方法がないため、それらに対して DoS 攻撃を開始することはできません。 要約すると、干渉攻撃は攻撃者にとって良い選択肢ではないようです。 クイックアタック 急速な攻撃とは、攻撃者が非常に多くのアサーションを発行し、他の攻撃者がチャレンジ ウィンドウ内でそれらすべてを確認する時間がない場合を指します。 どの Rollup プロトコルにも、急速な攻撃から防御するメカニズムが必要です。これを行う 1 つの方法は、アサーションの頻度を制限して、設定されたチャレンジ ウィンドウ内のどの時点でも、ネットワーク全体が保留中のアサーションまたはチャレンジをチェックするのに十分な容量を持つようにすることです。 このタイプのメカニズムは、Rollup ブロックチェーン上のスマート コントラクトの処理能力に「速度制限」を実装します。大量のアサーションを迅速に実行できる人がいたとしても、他の通常の参加者が追いつくことができるように、最終的には速度を落とさなければなりません。 したがって、Rollup システムのスケーラビリティを測定する場合、セキュリティを確保しながらの最大速度制限が重要な指標の 1 つになります。速度制限は、参加者がアサーションを生成できる最大速度ではなく、システムがトランザクションを安全に処理できる速度を指します。 要約する 要約すると、合理的な設計や実践によって回避できる検閲攻撃には 3 つの種類があります。 回避攻撃を防ぐ: 攻撃者のリソースとリスク許容度を評価し、適切なチャレンジ ウィンドウを設定します。妨害攻撃から保護する: 失敗した場合にあなたに異議を唱えることができる潜在的な監視者を独自に(または信頼できる機関を通じて)雇います。素早い攻撃を防ぐ: Rollup プロトコルをより慎重に設計します。 フォーク型の検閲攻撃は分析がより困難です。なぜなら、ある程度、フォーク攻撃が成功すると、チェーン上にコンピューティングパワーの独占があるという明確な証拠が残り、これらのコンピューティングパワーの独占者は、二重支払いなどのより早く利益を得ることができる他の攻撃をより積極的に受けるようになるからです。計算能力を独占しているブロックチェーンはすでに末期状態にあるのに、なぜこの場合検閲攻撃を心配する必要があるのでしょうか? オリジナルURL: https://mp.weixin.qq.com/s/ScOM8pR61p98MolokOFlpA |
<<: ビットコインが期待通りに普及しない場合、半減期後にマイナーはどうなるのでしょうか?
技術的観点から見ても、マイニングの観点から見ても、2020 年後半はイーサリアムにとって重要な変化の...
昨年半ば以降、ビットコインは中国の投資家の牽引により急騰し始めた。ビットコインは約半年にわたって2,...
SX の公募(私募なし)に素早く参加し、他の人を招待して USDT 報酬を受け取る方法! DAPP:...
レイジ解説:オーストラリアのコモンウェルス銀行と米国のウェルズ・ファーゴ銀行は、どちらもR3CEVブ...
Indianexpressによると、デジタル通貨詐欺に関与したビジェイ・バンゲラという容疑者がインド...
まとめ待望のイーサリアム「コンスタンティノープル」ハードフォークは、イーサリアムブロック高7,280...
2022年4月6日から9日まで、4日間にわたる「Bitcoin 2022」カンファレンスがマイアミ...
ナショナル・オーストラリア銀行(NAB)は本日、イスラエルのBank LeumiとカナダのCIBCと...
出典: Huitong.com日曜日(2月14日)、ビットコインの価格は3.57%増の49,694ド...
学習は永遠のテーマです。古代から現代に至るまで、学ぶことの重要性は自明です。特に今日のインターネット...
DidiとMobikeは、 「シェアリングエコノミー」分野のユニコーンとして、長い間私たちの日常生...
2020年6月1日、BTC.com、Bitmain、Antminer、AntPool、BTC.COM...
著者 |ハシピ分析チーム...
DappRadar が発表した定量分析レポートでは、世界的なデジタル資産の採用行動に関するいくつかの...
ChronoBank は、人々が自分の時間とスキルを取引し、労働時間トークンを使用して取引手数料の問...