인기 스타에서 DeFi 고위험 지역까지, 오라클 보안 문제는 어떻게 예방해야 할까요?
이 글은 2020년 12월 14일 WebX 연구소에 발표되었으며, 저자는 W ebX 연구소
하나하나씩, Compound의 수천만 달러 자산 청산 사건이 폭로되면서 한때 존경받던 오라클이 모두의 표적이 되었습니다. 게다가 플래시 론 공격 시리즈 사건은 외부에 점점 더 심각한 악성 사례를 형성했습니다. 일련의 사건을 살펴보면, 재진입성 취약점 이용은 지난 몇 년간 감소했지만, 오라클 가격 조작 기반의 취약점 이용률은 현재 상승하고 있습니다. 오라클은 고위험 지역이 되었습니다.
왜 오라클은 DeFi에서 중요한 역할을 할까요?
오라클은 블록체인 프로토콜이 제3자 출처에서 데이터를 신뢰할 수 있고 신뢰할 수 있는 방식으로 수집한 다음, 이 데이터를 고도로 네트워크화되고 자동화된 분산 애플리케이션 Dapp 및 스마트 계약에 피드백하여 체인 외부 세계의 정보 출처와 데이터 출처의 소통을 구축하여 체인 상의 권위 있는 사실을 세우는 방식으로 주로 구성됩니다.
이러한 외부 데이터의 도입은 체인 상의 스마트 계약을 트리거하는 중요한 근거로 작용합니다. Compound를 예로 들면, 그들은 대출 능력과 담보 요구 사항을 결정하기 위해 오라클의 가격이 필요하며, 계좌 가치를 계산하는 모든 기능에 사용되어 이 계좌의 자산을 청산하여 담보 요구를 충족해야 하는지를 판단합니다. AMM 솔루션을 사용하는 DEX의 경우, 거래 규모가 작고 깊이가 부족하여 시장 가격이 대규모 거래의 영향을 받아 급격한 변동이 발생하기 쉬우므로, 이러한 급격한 변동을 피하기 위해 오라클이 주요 거래소 데이터를 제공해야 합니다.
여기까지 들으면 오라클이 단순한 보조 장치일 뿐 외부 데이터의 도입 역할만 할 것이라고 생각할 수 있습니다. 사실은 정반대입니다. 오라클의 가격 제공 기능이나 데이터 소스의 신뢰할 수 있는 지원은 매우 초기 형태일 뿐이며, 장기적으로 오라클은 현실 세계의 다양한 데이터, 정보, 신용, 자산 등의 요소를 집대성하는 역할을 하게 될 것입니다. 데이터나 정보의 정확도, 기술 구현의 분산 정도, 모듈 스크립트의 지능화 정도는 모두 미래의 블록체인 세계와 현실 세계의 연결에 중대한 영향을 미칠 것입니다.
인기 스타에서 고위험 지점으로의 오라클
올해 DeFi가 폭발적으로 성장한 여름 동안 오라클은 Chainlink, NEST Protocol 등과 같은 프로젝트를 포함하여 시장의 주목을 받는 스타 프로젝트가 되었습니다. 그러나 초기의 열기와 최근 한 달 간의 여론 방향은 극명한 대조를 이루며, 오라클은 다른 방향의 풍파에 휘말리게 되었습니다.
그 원인은 오라클이 점점 더 플래시 론 공격, Compound 청산 등의 사건의 돌파구가 되고 있기 때문입니다. Compound CEO Robert Leshner는 "Compound 프로토콜 자체는 손실을 입지 않은 것 같고, 오라클 공격이 고의적인 것인지 우연인지, 아니면 두 가지 모두인지 알 수 없다"고 응답했습니다.
이전 Synthetix 공격 사건을 돌아보면, 그 핵심 논리는 Synthetix에서 사용자가 다른 통화 자산을 합성할 수 있다는 것입니다. Synthetix는 (당시) 맞춤형 오프체인 가격 제공 메커니즘에 의존하여 비밀 가격 집합에서 총 가격을 계산하고, 고정된 시간 간격으로 체인에 게시했습니다. 그런 다음 계산된 가격에 따라 사용자가 자산에 대해 롱 또는 숏 거래를 할 수 있도록 허용했습니다.
Synthetix MKR 조작의 시연
그런데 2019년 6월 말, Synthetix가 의존하던 가격 제공 채널 중 하나가 잘못된 한국 원화 가격을 보고하여 실제 환율보다 1000배 높은 가격을 제시했습니다. 이 가격은 시스템에 의해 수용되어 체인에 게시되었습니다. 한 거래 봇이 sKRW 시장에서 신속하게 매수 및 매도를 진행하여 이익 환율 차이로 막대한 수익을 올렸습니다. Synthetix는 여러 출처에서 가격을 추출했지만, 하나의 잘못된 가격 제시로 인해 전체 플랫폼이 파괴적인 타격을 입었습니다.
이전의 플래시 론 공격 원리는 매우 간단합니다. 즉, 악의적인 사용자가 플래시 론에서 대량의 자금을 대출하여 깊이가 부족한 거래소나 풀에서 사용하고, 이로 인해 짧은 시간 내에 자산 가격이 조작되는 상황이 발생합니다. 이러한 비현실적인 조작된 데이터 변동은 오라클에 잘못된 입력과 출력을 초래하며, 악의적인 사용자는 이러한 잘못된 입력과 출력으로 인해 쉽게 이익을 얻을 수 있습니다. 더 직접적으로 말하자면, 공격자는 거래 과정에서 가격을 거의 완전히 통제하고, 피해자는 수동적으로 손실을 받아들여야 합니다. 마찬가지로, Compound 청산 사건에서는 Coinbase Pro 플랫폼의 스테이블코인 DAI 가격이 한때 1.3달러로 급등하여 해당 플랫폼의 오라클 가격 정보를 사용하는 DeFi 프로토콜 Compound에서 대규모 청산이 발생했습니다.
"주범" DAI의 상승은 Coinbase Pro가 주문서 모델을 사용하기 때문에 유동성이 부족할 때 가격을 조작하기 쉬웠기 때문입니다. 공격자는 Coinbase Pro 플랫폼 DAI 가격을 조작하는 데 필요한 금액과 Compound의 대형 투자자를 청산함으로써 얻을 수 있는 이익을 사전에 계산하고, 짧은 시간 내에 이 공격을 완료했습니다.
따라서 중요한 근거로서 오라클은 데이터 출처의 진실성이나 유효성을 보장할 수 없는 경우가 많습니다. Compound 플랫폼의 오라클 가격 데이터 출처는 중앙집중적이고 단일하며, 중앙집중적 출처는 쉽게 위조, 변조, 수정 또는 정보를 숨길 수 있습니다. 따라서 어떤 단일 중앙집중적 데이터 출처를 가격 오라클로 사용하는 것은 현명하지 않으며 극도로 위험합니다. 오라클이 손상되거나 무효화된 데이터를 수집하면 하류 사용자에게 큰 재앙을 초래할 수 있습니다.
다른 한편으로, 오프체인 데이터는 가격 변동에 대한 반응이 일반적으로 느리고, 충분히 스마트하지 않습니다. 그 배경에는 체인 상의 데이터를 푸시하는 특권 사용자가 나쁜 행동을 하지 않거나 나쁜 업데이트를 푸시하도록 강요받지 않을 것이라는 신뢰가 필요합니다. 이러한 신뢰 푸시는 어떤 특권자가 접근할 수 없도록 허용되지 않으며, 이는 공격을 당하더라도 수동적으로 대처할 수밖에 없음을 의미합니다. 더 나은 해결책이 따라오지 않으면서, 이는 자산 손실을 초래하는 연쇄적인 사건을 발생시켰습니다. 본질적으로 공격자의 조작 수단도 그리 복잡하지 않으며, 현재 단계에서 오라클이 충분히 스마트하지 않아 시기적절하게 대응하고 방어하기 어렵습니다. 미래의 상대적으로 성숙한 오라클은 자산 가격, 시장 상태, 위기 사건 처리에 대한 프로토콜의 권위 있는 진실 출처가 되어야 합니다.
DeFi 안전을 구하기 위해서는 먼저 오라클을 구해야 한다
위에서 오라클의 취약점이 언급되었고, 특히 많은 고통스러운 대가를 치른 후 오라클이라는 "약점"이 드러났습니다. 그렇다면 DeFi의 안전성을 구하기 위해서는 먼저 데이터 출처 공급자의 선택에서 시작해야 합니다. 오라클 자체는 블록체인 합의 메커니즘에 부합하는 분산 방식으로 가격 데이터를 체인 상에서 생성해야 하며, 이는 유일하게 실행 가능한 올바른 논리입니다. 중앙집중적 데이터 출처의 몇 개 노드에서 중위수를 간단히 가져와 체인에 가격을 제공하는 것이 아닙니다.
그 외에도, 오라클은 더 많은 방어막을 찾아야 하며, 이 부분은 더 안전한 제3자 기관에 의존하여 위기 취약점 발생 가능성을 더욱 낮출 수 있습니다. 가격 제공 측면에서 오라클은 가능한 한 여러 노드에서 데이터를 집계하고, 가격 편차에 대한 처리 메커니즘을 마련하며, 시간에 따라 동기화하여 스마트 계약에 제공되는 데이터가 신뢰할 수 있고 신뢰할 수 있으며 간섭에 강하도록 해야 합니다. 데이터 신뢰 검증 메커니즘, 이상 경고 메커니즘 등이 오라클에 적용되어야 합니다.
가장 중요한 것은, 이상 데이터 처리에서 어떻게 시기적절하게 피드백하고 사건 발생을 막을 것인가입니다. 여기서 우리는 적절하게 인위적인 개입을 추가할 수 있습니다. 즉, 시장 변동이 크고 체인 상의 성능이 이상하며 가격 업데이트가 느릴 때, 우리는 특별한 보고자가 수동으로 체인에 업데이트를 게시하도록 설정할 수 있습니다. 더 스마트하게 이상 데이터 발생을 방지하기 위해, Nest 오라클 프로젝트를 참고할 수 있습니다. 그들은 분산 검증자와 가격 제공 채굴자 간의 게임 메커니즘을 구축하여 자산에 대한 스테이킹 가격 거래 쌍을 통해 양방향 가격 제공을 체인 상에서 생성하여 잘못된 데이터가 사용되는 것을 직접적으로 차단합니다.
DeFi 발전이나 블록체인 신 분야의 확장에 있어 체인 상, 체인 외 데이터 교환은 필수적이며, 오라클의 역할은 간과할 수 없습니다. 오라클의 데이터 유형이 점점 더 많아짐에 따라 그 영향력과 핵심 역할이 점점 더 중요해지고 있으며, 오라클은 가격 오라클에서 사건형 오라클로 발전할 것입니다. 시장에서는 이미 도박, 정부, 게임 등 산업에서 사건형 오라클의 채택과 홍보가 이루어지고 있습니다. 세월을 겪으며 오라클은 여전히 체인 상과 체인 외 세계를 연결하는 중요한 무기로 자리 잡을 것이며, 다만 시간이 필요할 뿐입니다.