Shima Capital CTO: Curve イベントを振り返って、なぜランタイム保護が必要なのでしょうか?

原著者: Carl Hua、Shima Capital パートナー兼 CTO

最近の Curve の再入可能エクスプロイトの後、私は JPL NASA で過ごした時間を振り返り、そこで信頼性と回復力のあるソフトウェアを開発するための重要な原則を学びました。暗号通貨業界にとって、これらの洞察は今まで以上に重要になっています。その理由は次のとおりです。

結局のところ、人々が本当に気にするソフトウェアは 2 種類しかありません。それは、あなたを死に至らしめる可能性のあるソフトウェアと、あなたにお金を失わせる可能性のあるソフトウェアです。

航空宇宙機器の重要なソフトウェアの予算の大部分 (80% 以上) は、開発自体には割り当てられず、統合とテストに割り当てられます。ソフトウェアに障害が発生すると、戦闘機、ドローン、宇宙船などの飛行物体が空から落ちてきます。

航空宇宙ソフトウェアのほとんどのコード (重要なモジュールとして分類されている場合) は、DO-178 レベル BA などの非常に厳しいテスト/開発標準に準拠しています。コードのすべての行をテストする必要があるだけでなく、入れ子になったロジックがある場合は、各論理条件も個別にテストされます。

JPL NASA では、高度な宇宙飛行ソフトウェアを作成する哲学は、最も美しくクリーンなコードを作成することではなく、単体テストが容易なコードを作成することです。なぜ?それは簡単です。宇宙船を宇宙に送り出すとき、チャンスは 1 回だけです。失敗する可能性が高いリスクを負いたい人はいません。これはブロックチェーンと同じロジックです。不変のコードがブロックチェーンの重要な機能であり、各トランザクションで資金を正しく使うチャンスは 1 回しかありません。それなら、dApps の開発プロセスをもっと真剣に考えるべきではないでしょうか。

厳格な開発、テスト、コード監査プロセスにもかかわらず、これらの手段ではすべてのバグや攻撃を軽減するには明らかに十分ではありません。実際、テストと監査を通じてすべてのランタイム バグを排除することはほぼ不可能だからです。では、ソフトウェアを障害から保護するにはどうすればよいでしょうか?

ランタイム保護

ランタイム保護は、ソフトウェア アプリケーションの実行中に悪意のある攻撃から保護するセキュリティ技術です。その原理は、コードが実際に実行されているときにリアルタイム検出を実行し、プログラムの実際の動作を分析して、悪意のあるデータや攻撃からプログラムを保護することです。

高信頼性ソフトウェアの実行時保護は、ソフトウェアが未知の状態になったり失敗したりしないようにするための最後の防御線であるため、多大な労力と設計が必要です。これは単なる議論ではなく、数十年にわたる実証済みの実践です。

今日の Web3 では、DeFi アプリケーションにも同様の高い信頼性が必要であり、同じアプローチを検討する必要があると思います。ただし、潜在的な制限があるため、EVM はランタイム保護などの複雑なタスクを処理するように設計されていませんでした。では、実行時保護を提供するにはどうすればよいでしょうか?

1 つの方法は、Aspect プログラミングを使用することです。Aspects は Artela ブロックチェーン ネットワークによって設計されており、スマート コントラクト トランザクションのライフサイクル中に実行コンテキストを切り替えて、プログラムのリアルタイム状態の高度なチェックを実行できます。 Artela は、アスペクトと EVM の互換性を通じてランタイム保護の独自の設計を提供しており、暗号化されたスマート コントラクト セキュリティの将来の基盤となる可能性があります。

Artela は、Curve の再入攻撃を防ぐための Aspect の具体的な使用方法を次の記事で発表しており、一緒にコミュニケーションを図っていきたいと考えています。

「コンパイラの脆弱性は未解決? Runtime Protection は DeFi チェーン上のリスク制御と保護を実現します》

元のリンク

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)