Shima Capital CTO:Curve事件を振り返り、なぜ私たちにRuntime Protectionが必要なのか?
著者:Carl Hua、Shima Capital パートナー、CTO
最近の Curve の再入攻撃の後、私は JPL NASA での経験を振り返りました。そこで私は、信頼性(reliable)と弾力性(resilient)を備えたソフトウェアを開発するための重要な原則を学びました。暗号業界にとって、これらの洞察は今まで以上に重要です。その理由は以下の通りです:
結局のところ、人々が本当に関心を持っているのは、あなたを殺すことができるソフトウェアと、あなたに損失をもたらすことができるソフトウェアの二種類だけです。
宇宙機の重要なソフトウェアの大部分の予算(80%以上)は、開発自体にではなく、統合とテストに割り当てられています。ソフトウェアに不具合が発生すれば、宇宙機は空から落ちてしまいます------戦闘機、ドローン、宇宙船など。
宇宙ソフトウェアの大部分のコード(重要なモジュールとして分類される場合)は、DO-178 B A レベルのような非常に厳格なテスト/開発基準に従っています。すべてのコード行をテストするだけでなく、ネストされたロジックがある場合は、各ロジック条件も特別にテストされます。
JPL NASA では、先進的な宇宙ソフトウェアを書くという理念は、最も美しく、クリーンなコードを書くことではなく、単体テストを実行しやすいコードを書くことです。なぜなら、宇宙機を宇宙に送るとき、あなたには一度のチャンスしかなく、失敗の可能性が高い状況でリスクを冒したくないからです。これはブロックチェーンの論理と同じで、不可変のコードはそれらの重要な特性であり、私たちも各取引で資金を正しく使用するための一度のチャンスしかないのです。だからこそ、dApp の開発プロセスをもっと真剣に考えるべきではないでしょうか?
厳格な開発、テスト、コード監査のプロセスがあっても、これらの手段はすべてのバグや攻撃を軽減するには明らかに不十分です。実際、テストや監査を通じてすべての実行時エラーを排除することはほぼ不可能です。それでは、私たちはどのようにしてソフトウェアを失敗から守ることができるのでしょうか?
実行時保護(Runtime Protection)
実行時保護は、ソフトウェアアプリケーションが実行時に悪意のある攻撃から保護するためのセキュリティ技術です。その原理は、コードが実際に実行される際にリアルタイムで検出し、プログラムの実際の動作を分析して、悪意のあるデータや攻撃からプログラムを保護することです。
高信頼性ソフトウェアの実行時保護には、大量の投資と設計が必要です。なぜなら、それらはソフトウェアが未知の状態や故障に陥らないことを保証する最後の防線だからです。これは単なる議論ではなく、数十年にわたって検証された実践です。
今日の Web3 では、DeFi アプリケーションも同様の高信頼性が必要であり、同様のアプローチを考慮すべきだと思います。しかし、その潜在的な制限により、EVM は実行時保護のような複雑なタスクを処理するために設計されていません。それでは、私たちはどのようにして実行時保護を提供するのでしょうか?
一つの方法は、Aspect プログラミングを通じて行うことです。Aspects は Artela ブロックチェーンネットワークによって設計されており、任意のスマートコントラクト取引のライフサイクル内で実行コンテキストを切り替え、プログラムのリアルタイム状態を高度にチェックすることができます。Artela は Aspect と EVM 互換の方法を通じて、実行時保護の独自の設計を提供しており、暗号スマートコントラクトのセキュリティの未来の基盤となる可能性があります。
Artela は以下の記事で、Curve の再入攻撃を防ぐための Aspects の具体的な使用法を発表しました。ぜひ一緒に交流しましょう!
《コンパイラの脆弱性は解決できない?Runtime Protection による DeFi のオンチェーンリスク管理の実現》