Shima Capital CTO: Curve 사건을 반성하며, 왜 우리는 Runtime Protection이 필요한가?
저자:Carl Hua, Shima Capital 파트너, CTO
최근 Curve 재진입 취약점 이용 사건 이후, 저는 JPL NASA에서의 경험을 되돌아보았습니다. 그곳에서 저는 신뢰할 수 있고 회복력 있는 소프트웨어를 개발하는 핵심 원칙을 배웠습니다. 암호화 산업에 있어 이러한 통찰력은 지금보다 더 중요할 수 없습니다. 그 이유는 다음과 같습니다:
결국 사람들은 두 가지 유형의 소프트웨어에만 진정으로 관심을 가집니다: 당신을 죽일 수 있는 소프트웨어와 당신에게 돈을 잃게 할 수 있는 소프트웨어입니다.
모든 우주 비행기에서 중요한 소프트웨어의 대부분 예산(80% 이상)은 개발 자체에 할당되지 않고 통합 및 테스트에 할당됩니다. 소프트웨어에 결함이 발생하면 비행기는 하늘에서 떨어질 수 있습니다------전투기, 드론, 우주선 등.
우주 소프트웨어의 대부분 코드(중요 모듈로 분류되는 경우)는 DO-178 B A급과 같은 극도로 엄격한 테스트/개발 기준을 준수합니다. 모든 코드 라인을 테스트해야 할 뿐만 아니라, 중첩된 논리가 있는 경우 각 논리 조건도 별도로 테스트됩니다.
JPL NASA에서 고급 우주 소프트웨어를 작성하는 개념은 가장 아름답고 깔끔한 코드를 작성하는 것이 아니라 단위 테스트를 쉽게 수행할 수 있는 코드를 작성하는 것입니다. 왜 그럴까요? 간단합니다: 우주선 하나를 우주로 보낼 때, 당신은 단 한 번의 기회만 가집니다. 실패 확률이 높은 상황에서 위험을 감수하고 싶어하는 사람은 없습니다. 이는 블록체인의 논리와 동일합니다. 불변의 코드는 그들의 중요한 특성이며, 우리는 각 거래에서 자금을 올바르게 사용할 수 있는 단 한 번의 기회만 있습니다. 그렇다면 왜 dApp 개발 과정을 더 진지하게 대하지 않을까요?
엄격한 개발, 테스트 및 코드 감사 프로세스가 있음에도 불구하고 이러한 수단만으로는 모든 오류와 공격을 완화하기에 명백히 부족합니다. 사실, 테스트와 감사를 통해 모든 런타임 오류를 제거하는 것은 거의 불가능합니다. 그렇다면 우리는 소프트웨어를 실패로부터 어떻게 보호할 수 있을까요?
런타임 보호 (Runtime Protection)
런타임 보호는 소프트웨어 애플리케이션이 실행 중 악의적인 공격으로부터 보호하는 보안 기술입니다. 그 원리는 코드가 실제로 실행될 때 실시간으로 감지하고 프로그램의 실제 행동을 분석하여 악의적인 데이터와 공격으로부터 프로그램을 보호하는 것입니다.
고신뢰성 소프트웨어의 런타임 보호는 막대한 투자와 설계가 필요합니다. 이는 소프트웨어가 알 수 없는 상태에 들어가거나 고장나는 것을 방지하는 마지막 방어선입니다. 이는 단순한 주장이 아니라 수십 년 동안 검증된 실천입니다.
오늘날 Web3에서, 저는 DeFi 애플리케이션이 동일한 고신뢰성을 필요로 하며 동일한 접근 방식을 고려해야 한다고 생각합니다. 그러나 잠재적인 제한으로 인해 EVM은 런타임 보호와 같은 복잡한 작업을 처리하도록 설계되지 않았습니다. 그렇다면 우리는 런타임 보호를 어떻게 제공할 수 있을까요?
한 가지 방법은 Aspect 프로그래밍을 통해 이루어집니다. Aspects는 Artela 블록체인 네트워크에서 설계되었으며, 이는 모든 스마트 계약 거래의 수명 주기 동안 실행 컨텍스트를 전환하여 프로그램의 실시간 상태를 고급 검사할 수 있습니다. Artela는 Aspect와 EVM 호환 방식을 통해 런타임 보호의 독특한 설계를 제공하며, 이는 암호화 스마트 계약 보안의 미래 기반이 될 기회를 가지고 있습니다.
Artela는 아래의 기사에서 Curve 재진입 공격 방지에 있어 Aspects의 구체적인 사용법을 발표했습니다. 함께 논의해보길 바랍니다!