
Shima Capital CTOによるCurveへの反省:なぜ我々はRuntime ProtectionとAspectを必要とするのか?
TechFlow厳選深潮セレクト

Shima Capital CTOによるCurveへの反省:なぜ我々はRuntime ProtectionとAspectを必要とするのか?
実行時の保護はどのように提供されますか?
執筆:Carl Hua、Shima Capital パートナー、CTO
翻訳:BlockBeats
最近のCurveにおける再入攻撃(リエントランシー攻撃)を受けて、私はかつてJPL NASAで学んだ経験を振り返りました。そこでは、信頼性(reliable)と回復力(resilient/レジリエント)を持つソフトウェアを開発するための基本原則を学びました。暗号業界において、これらの知見は今こそこれまで以上に重要です。その理由は以下の通りです。
結局のところ、人々が真剣に気にするのは2種類のソフトウェアだけです。人を殺す可能性のあるソフトウェアと、お金を失わせる可能性のあるソフトウェアです。
航空機や宇宙船などの重要なシステムにおいて、ソフトウェア開発の予算の大部分(80%以上)は開発そのものではなく、統合およびテストに割り当てられます。ソフトウェアに障害が発生すれば、戦闘機であろうと無人機であろうと宇宙船であろうと、空中から墜落してしまうからです。
JPL NASAでは、宇宙ミッション向けに開発される多くのコード(特に重要なモジュールと分類されるもの)は、DO-178BレベルAといった極めて厳格なテスト・開発基準に従っています。単にすべてのコード行をテストするだけでなく、ネストされた論理構造がある場合は、個々の条件分岐までもが徹底的に検証されます。
JPL NASAでの先進的な宇宙ソフトウェア開発の考え方とは、最も美しく洗練されたコードを書くことではなく、ユニットテストを容易に実行できるコードを書くことにあります。なぜでしょうか? 理由は簡単です。宇宙探査機を宇宙に送るとき、成功させるチャンスは一度きりです。誰も大きな失敗リスクを冒そうとはしません。これはブロックチェーンのロジックとまったく同じです。不変性(イミュータビリティ)がその重要な特徴である以上、私たちも各トランザクションにおいて資金を正しく扱う「一度きり」のチャンスを持っているのです。それならば、なぜdApp開発というプロセスに対して、より真剣に取り組まないといけないのでしょうか?
厳しい開発プロセス、テスト、コード監査を実施してもなお、それらだけではすべてのバグや攻撃を防ぐことはできません。実際、テストや監査によってすべてのランタイムエラーを排除することは事実上不可能だからです。それでは、私たちのソフトウェアを故障から守るために、どうすればよいのでしょうか?
ランタイム保護(Runtime Protection)
ランタイム保護とは、ソフトウェアアプリケーションが実行中に悪意ある攻撃から守られるようにするセキュリティ技術です。その仕組みは、コードが実際に動作しているときにリアルタイムで検出を行い、プログラムの実際の挙動を分析することで、悪意あるデータや攻撃からアプリケーションを防御することにあります。
高信頼性ソフトウェアにおけるランタイム保護は、多大な投資と設計が必要です。なぜなら、それはソフトウェアが未知の状態に陥ったり故障したりするのを防ぐ最後の防衛ラインだからです。これは単なる理論ではなく、何十年にもわたって実証されてきた実践です。
今日のWeb3において、私はDeFiアプリケーションも同様の高信頼性を必要としており、同様のアプローチを採用すべきだと考えます。しかし、EVMには潜在的な制限があり、ランタイム保護のような複雑なタスクを処理するために設計されていません。では、どのようにしてランタイム保護を提供できるのでしょうか?
一つの方法として、「アスペクト(Aspect)プログラミング」があります。アスペクトはArtelaブロックチェーンネットワークが設計したもので、任意のスマートコントラクトトランザクションのライフサイクル内で実行コンテキストを切り替えることが可能であり、プログラムのリアルタイム状態に対する高度なチェックを実現できます。Artelaは、アスペクトとEVM互換性を活かして、ランタイム保護を実現する独自の設計を提供しており、暗号スマートコントラクトのセキュリティの将来における基盤となる可能性を秘めています。
以下に紹介する記事で、ArtelaはアスペクトがCurveの再入攻撃を防ぐ具体的な使い方を公開しています。ぜひ議論を深めましょう!
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














