Размышляя о событии Curve, почему нам нужна Runtime Protection

Автор оригинала: Карл Хуа, партнер и технический директор Shima Capital.

После недавнего эксплойта повторного входа в Curve я вспоминаю время, проведенное в Лаборатории реактивного движения НАСА, где я изучил ключевые принципы разработки надежного и отказоустойчивого программного обеспечения. Для криптоиндустрии эти идеи сейчас важны как никогда, и вот почему:

В конце концов, есть только два типа программного обеспечения, которые действительно интересуют людей: программы, которые могут вас убить, и программы, которые могут заставить вас потерять деньги.

Большая часть бюджета (более 80%) критического программного обеспечения любой аэрокосмической машины выделяется не на саму разработку, а на интеграцию и тестирование. При сбое программного обеспечения с неба падают летательные аппараты — истребители, дроны, космические корабли и т. д.

Большая часть кода аэрокосмического программного обеспечения (если оно классифицируется как критический модуль) соответствует чрезвычайно строгим стандартам тестирования/разработки, таким как DO-178B Level A. Необходимо тестировать не только каждую строку кода, но при наличии вложенной логики также специально тестируется каждое логическое условие.

В JPL NASA философия написания передового программного обеспечения для космических полетов заключается не в том, чтобы писать самый красивый и чистый код, а в том, чтобы писать код, который легко тестировать. Почему? Все просто: отправляя космический корабль в космос, у вас есть только один шанс, и никто не хочет рисковать с высокой вероятностью неудачи. Это та же логика, что и у блокчейнов, поскольку неизменяемый код является их важной особенностью, и у нас есть только один шанс правильно потратить наши средства в каждой транзакции, так почему бы нам не отнестись к процессу разработки dApp более серьезно?

Несмотря на строгие процессы разработки, тестирования и аудита кода, этих средств явно недостаточно для устранения всех ошибок и атак, поскольку на самом деле практически невозможно устранить все ошибки во время выполнения посредством тестирования и аудита. Так как же нам защитить наше программное обеспечение от сбоев?

Защита во время выполнения

Защита во время выполнения — это метод обеспечения безопасности, который защищает программные приложения от вредоносных атак во время их работы. Его принцип заключается в обнаружении в реальном времени во время фактического выполнения кода и анализе фактического поведения программы для защиты программы от вредоносных данных и атак.

Защита во время выполнения для высоконадежного программного обеспечения требует значительных усилий и проектирования, поскольку является последней линией защиты, гарантирующей, что программное обеспечение не войдет в неизвестное состояние или не выйдет из строя. Это не просто аргумент, а проверенная десятилетиями практика.

Я думаю, что сегодня в Web3 приложения DeFi нуждаются в такой же высокой надежности и должны использовать тот же подход. Однако из-за своих потенциальных ограничений EVM не был разработан для решения сложных задач, таких как защита во время выполнения. Итак, как нам обеспечить защиту во время выполнения?

Одним из способов является программирование Aspect. Aspect разработан сетью блокчейнов Artela, которая может переключать контекст выполнения в течение жизненного цикла любой транзакции смарт-контракта для выполнения расширенных проверок состояния программы в реальном времени. Artela предлагает уникальный дизайн защиты во время выполнения за счет совместимости с Aspect и EVM, и у него есть возможность стать будущей основой безопасности зашифрованных смарт-контрактов.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить