폭로 전문: Curve가 오라클 조작 취약점이 존재한다는 폭로

포사이트 뉴스
2023-12-03 18:08:18
수집
예언기 조작 행동은 예언기가 잘못된 데이터를 보고하게 하여 접속 프로토콜도 조작 위험에 직면하게 합니다.

저자: Daniel Von Fange

편집: angelilu, Foresight News

어제, 독립 연구원 Daniel Von Fange는 X 플랫폼에서 글을 올리며 Curve에 예언자 조작 위험이 존재한다고 밝혔으며, 이 위험은 공격 시 감지하기 어렵다고 전했습니다. 예언자 조작 행위는 예언자가 외부 사건이나 실제 세계에 대한 잘못된 데이터를 보고하게 하여, 예언자에 접속하는 프로토콜도 조작 위험에 처하게 만듭니다. Daniel Von Fange는 영향을 받을 가능성이 있는 관련 팀에 이미 통보했다고 밝혔습니다.

Curve 창립자 Michael Egorov는 커뮤니티에서 이 문제에 대해 답변하며 "이 위험은 구버전의 풀에서 존재할 수 있으며, crvusd에서는 구버전의 풀을 사용하지 않으며 예언자 사용을 권장하지 않는다"고 말했습니다. 또한 Daniel Von Fange가 공개한 위험이 실제로 존재한다고 확인했습니다.

하지만 Curve 기여자 fiddy는 이 독립 연구자가 논의 없이 이러한 정보를 공개한 방식에 대해 불만을 표명하며, Daniel Von Fange가 공개한 취약점은 이전에 그들이 사적으로 논의한 내용이라고 밝혔습니다. 그는 공격자가 정확성을 높이기 위해 가스 비용을 증가시키는 것이 비용이 많이 들며, 외부 감사도 이를 낮은 영향으로 분류했다고 주장했습니다. 또한 이 연구원이 공개한 취약점은 Curve의 구버전 cryptoswap 알고리즘과 관련이 있으며, 이 알고리즘은 last_price 가격을 사용하지만, 최신 cryptoswap-ng 구현은 AMM 상태 가격을 사용하여 이러한 문제를 해결할 수 있습니다. 그 외에도 yAuditDAO는 일부 예언자의 오류를 발견했으며, 현재 수정 중이며, 아무도 이러한 예언자를 사용하지 않고 있으며, 이들 스테이블코인 거래 풀의 LP(유동성 제공자)는 영향을 받지 않습니다.

그러나 이미 일부 팀은 그가 공개한 위험에 따라 프로토콜을 조정하여 보안을 강화하기 시작했습니다. Yearn Finance 개발자 @storming0x도 Daniel Von Fange가 공개한 위험에 대해 응답하며 "Yearn 계약은 영향을 받지 않으며, Chainlink를 사용한 하나의 중복 메커니즘을 통해 잠재적 공격 경로를 완화하는 계약을 제외하고는 그렇다. 신중을 기하기 위해 Yearn 개발 팀은 새로운 버전을 재배포하기로 결정했다"고 밝혔습니다.

다음은 Daniel Von Fange가 Curve 예언자 가격 조작 위험을 공개한 전문입니다:

지난 2주 동안, 나는 Curve의 가격 예언자를 깊이 연구하며 몇 가지 극히 비정상적인 행동을 발견했습니다.

이 예언자들이 작동하는 방식은 당신이 생각하는 것과 다르며, 예상보다 더 쉽게 조작될 수 있고, 정상적인 상황에서도 오류가 발생할 수 있습니다.

간략히 요약하자면: 대부분의 풀에서 공격자는 단 하나의 블록만으로 Curve의 가격 예언자를 정상 가격보다 10배에서 500배 높게 조작할 수 있습니다. 그리고 이러한 조작은 숨겨질 수 있어 풀을 확인할 때 조작의 흔적을 전혀 발견할 수 없습니다.

Curve 풀의 수가 많아 현재로서는 서로 다른 풀의 코드베이스 수를 정확히 통계 내는 사람이 없습니다.

내가 작성한 내용은 특정 풀에 적용될 수 있으며, 적용되지 않을 수도 있습니다. 서로 다른 풀은 서로 다른 취약점을 가지고 있습니다. 아마도 일부 풀은 어떤 취약점도 없을 것입니다.

Curve 팀은 보고서를 수신하고 논의할 때 뛰어난 성과를 보였으며, 몇 분 안에 CrvUSD가 이러한 문제의 영향을 받지 않는다고 확인했습니다.

나는 또한 메인넷에서 약 100개의 Curve 가격 예언자를 사용하는 계약을 확인하고, 적절히 관련 팀에 통보했습니다.

이 취약점의 핵심 문제 중 하나는 가격이 1:1에 가깝지 않거나 수수료가 높을 때 last_price가 잘못 계산될 수 있다는 것입니다.

우선, 수수료는 last_price 계산에 포함되지 않으므로, 사용되는 숫자가 실제 거래 또는 풀 잔고의 숫자와 다릅니다.

EMA 가격 예언자는 lastprice에 의해 구동됩니다. lastprice가 잘못되면, 가격 예언자는 잘못된 목표 가격으로 이동하기 시작합니다.

정상 거래 중, 나는 가격 예언자가 풀의 실제 현재 가격보다 1% 이상 편차를 두고 가격을 설정하는 것을 보았습니다. 최악의 경우는 더 나쁠 수 있습니다(차트의 표준화된 가격).

풀에 따라 이러한 드리프트 오차는 실제 가격보다 높거나 낮을 수 있습니다.

가장 큰 문제는 조작 중에 last_price 오차가 실제 조작된 가격보다 한 자릿수 더 높을 수 있어, 풀 예언자가 효과적으로 조작될 가능성이 크게 증가한다는 것입니다.

아주 작은 거래조차도 마지막 가격 / 예언자 가격의 편차를 수정할 수 있어, 몇 가지 터무니없는 상황을 초래합니다.

대폭적인 가격 변동과 last_price 계산 오류의 누적 효과로 인해, 공격자는 다음 블록에서 EMA 가격 예언자를 조작할 수 있으며, 수십 개의 블록에서 높은 가격을 유지하기 위해 막대한 비용을 들이지 않아도 됩니다.

이론적으로, 공격자는 두 개의 연속 블록을 채굴할 수 있으며, 이는 이 작업을 수행하는 데 필요합니다. 공격자는 이러한 가격 공격을 수행하기 위해 충분한 자본이 필요하지만, 많은 과거 공격자들은 수천만 달러의 자금을 보유하고 있었습니다.

이제 Curve 가격 예언자 조작을 방어하기 위한 일반적인 전략과 그 효과에 대해 이야기해 보겠습니다.

Curve v1 풀에는 조작을 시도하는 데 사용할 수 있는 네 가지 숫자가 있습니다: 실제 가격, 가격 예언자, lastprice 및 EMA 가격. 불행히도, 한 번의 조작 후, 조작된 priceoracle 가격에 대한 단일 거래는 이 모든 것을 동일한 숫자로 재설정할 수 있습니다.

Curve v2 풀의 pricescale은 가격 예언자보다 조작하기 더 어렵습니다. 그것은 변화 속도가 느리고 실제 거래 수수료 비용이 필요합니다. 이 빠른 가격 예언자와 느린 pricescale이 일치하면 상황이 안정될까요?

아니요! 핵심 공격 문제는 세 숫자, 실제 가격, 빠른 예언자 및 느린 규모를 정렬하는 것입니다. 실제 가격은 즉시 조작될 수 있기 때문에 쉽게 제어할 수 있습니다. 그러면 문제는 다른 두 숫자 간의 교차점을 설계하는 것이 됩니다.

공격자는 가격을 잠시 높인 다음 다음 블록에서 정상으로 되돌리고, 몇 개의 블록을 기다려 공격을 진행하여 하락하는 가격 예언자가 상승하는 pricescale에 도달할 때까지 기다립니다. 실제 가격은 단 하나의 블록에서 높은 수준으로 유지되기만 하면 예언자를 방해하기에 충분하며, pricescale은 이를 따라갑니다.

많은 예언자는 상한선을 사용하여 Curve 예언자 가격에서 사용하는 가격을 1:1의 최고 값으로 제한합니다. 이는 좋으며, 어리석은 높은 값을 배제합니다. 그러나 자산이 실제로 탈동조될 경우, 공격자는 자산을 저가에 구매한 다음 조작을 통해 다시 연결된 것처럼 보이게 할 수 있습니다.

프로토콜은 때때로 최소 한도를 설정하여 Curve 가격 예언자의 응답이 연결된 비율 이하로 떨어지면 이를 무시합니다. 그러나 자산이 실제로 탈동조될 때 가격을 무시하면 가격 예언자를 보유하는 모든 목적을 잃게 됩니다.

또 다른 일반적인 전략은 다른 AMM 시스템의 가격을 혼합하는 것입니다. 이는 다른 풀의 품질과 조작 특성에 크게 의존합니다. 만약 그것의 유동성이 낮고 조작하기 쉬우면, 목적을 달성하지 못합니다.

나쁜 + 나쁜 = 나쁜.

스테이블코인 / 스테이블코인 거래 쌍을 위한 새로운 Curve 풀은 lastprice를 1:1 값의 2배로 제한합니다. 이는 lastprice가 어리석게 높은 값으로 밀려나지 않도록 하여 EMA 과부하를 방지할 수 있습니다.

하지만 잘못된 자산이 합법적으로 탈동조될 경우, 이는 잘못된 것입니다.

Curve 풀을 사용하여 담보 자산의 가격을 책정하려는 경우, 그렇게 하지 않는 것이 좋습니다.

신형 풀은 일반적으로 더 높은 공격 비용을 가지고 있습니다. 만약 조작된 풀이 시장에 미치는 영향이 적고(아마도 수익 분배를 보호하기 위해서일 뿐) 풀에 대한 공격 비용이 매우 높다면, 사용을 선택할 수 있습니다.

마지막으로, 저자는 사용 중인 풀에 대한 실제 공격 시뮬레이션을 수행할 것을 권장하며, 가정이나 이론에 기반하여 가격 예언자의 행동을 예측하기보다는 실제 사용 중인 풀에서 상세한 시뮬레이션 테스트를 수행해야 한다고 강조합니다. 조작 공격을 시뮬레이션함으로써, 풀의 다양한 상황에서의 성능을 더 잘 이해할 수 있습니다.

아래는 지난 90일 동안 Curve 예언자 사용량 증가를 보여주는 차트입니다:

일부 Curve 풀은 뛰어난 성능을 보이는 가격 예언자를 보유하고 있으며, 나는 그것들이 어떤 이상한 행동도 보이지 않도록 할 수 없었습니다. 그것들은 완전히 좋은 성능의 EMA가 가져야 할 기대에 부합합니다. 그러나 여전히 점검이 필요합니다…

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축