
원래 제목: "파생 자산에 대한 오라클 가격 책정"(Price Oracles for Derivative Assets)
저자: 조나단 에를리치
원본 편집: 0 xStephen
1. 소개
이 게시물에서는 DeFi 대출 프로토콜의 맥락에서 파생 자산 가격에 대한 오라클에 대한 기존 가정을 분석합니다. 특히 기초 자산의 가격을 파생 상품의 가격 피드로 사용하는 것이 일반적으로 피해야 하는 나쁜 관행인 이유에 대해 논의합니다. 이러한 관행이 널리 퍼져 있는 점을 감안할 때 우리는 이것이 시의적절하고 중요한 문제라고 생각합니다.
우리는 교차 체인 자산과 유동성 담보 파생 상품의 두 가지 유형의 파생 자산에 중점을 둘 것입니다. 그러나 모든 유형의 파생 자산에 대해 유사한 분석을 일반화할 수 있습니다.
이 기사는 교차 체인 자산, 유동성 지원 파생 상품 및 결론의 세 부분으로 나뉩니다.
2. 크로스체인 자산
파생 자산이 기초 자산을 프록시로 사용하여 가격이 책정될 때 두 자산이 시간이 지남에 따라 동일한 가격 궤적을 따를 것이라는 근본적인 가정(또는 적어도 결정에 내포된 가정)이 있습니다. 그리고 일반적으로 이것이 사실입니다.
모든 것이 제대로 작동한다면 기초 자산의 가격은 파생 상품의 가격을 면밀히 추적해야 합니다. 그러나 이러한 가정은 일이 예상대로 진행되지 않을 때 깨질 수 있으며, 이는 교차 체인 자산의 경우 자주 발생합니다. 이유를 이해하기 위해 예를 살펴보겠습니다.
서로 다른 L1 체인에 있는 ETH의 교차 체인 버전인 bridgedETH가 있다고 가정합니다. 정상적인 상황에서 각 브리지된 ETH는 이더리움의 스마트 계약 중 하나에 고정된 ETH에 의해 지원됩니다(1:1 비율을 기준으로 고정됨). 그러나 이러한 정상적인 상황이 항상 유지되는 것은 아닙니다. 특히, 여러 차례 발생했던 것처럼 교차 체인이 악용되어 기본 자산이 도용될 수 있습니다. 예를 들어, 이것이 정확히 우리의 bridgedETH에 일어난 일이라고 가정해 봅시다. 공격자는 크로스 체인을 악용하여 모든 ETH 지원 bridgedETH를 훔칠 수 있었습니다.
그렇다면 이것이 bridgedETH의 프록시로 ETH 가격을 사용하는 대출 프로토콜에 어떤 영향을 미칠까요? 기본적으로 이것은 프로토콜이 각각의 브리지된 ETH를 1 ETH로 평가하는 반면 실제 가격은 0 ETH(이것이 시장 가격이라고도 가정)임을 의미합니다. 이로 인해 프로토콜에 다음과 같은 허점이 있습니다.
이를 통해 공격자는 bridgedETH를 담보로 사용하여 프로토콜에서 자금을 훔칠 수 있습니다. 모든 공격자는 시장에서 가교 ETH를 0에 구입하고 프로토콜에 담보로 예치할 수 있습니다(1 ETH의 가치가 있으며 다른 자산을 빌릴(훔칠) 수 있습니다. 이러한 유형의 공격은 다른 실시간 프로토콜에서 사용되었습니다(예: 예를 들어 Moonriver의 Hundred Finance 및 Harmony의 Aave).
청산이 제대로 작동하지 못하게 합니다. bridgedETH의 시장 가격이 1 ETH에서 0 ETH로 떨어지면 bridgedETH를 담보로 사용하는 일부 포지션이 청산 가능해야 합니다. 그러나 프로토콜이 여전히 각 브리지된 ETH를 1 ETH로 평가한다는 점을 감안할 때 이러한 포지션은 청산할 수 없습니다. 강력한 오라클이 사용될 경우 이러한 포지션이 실제로 청산될지 여부는 또 다른 흥미로운 질문이며 궁극적으로 bridgedETH의 시장 가격이 얼마나 빨리 하락하는지에 달려 있습니다. 그러나 그러한 분석은 이 문서의 범위를 벗어납니다. 중요한 점은 취약한 오라클 메커니즘 하에서 이러한 포지션은 청산 가능한 불량 부채가 되지도 않는다는 것입니다.
이 문제에 대한 잠재적인 해결책으로 Aave는 Chainlink의 Proof-of-reserve 가격 피드에 연결하는 것을 고려하고 있습니다. 거시적 수준에서 이러한 가격 피드를 통해 Aave는 교차 체인 파생 상품을 지원하는 기본 자산이 실제로 존재하는지 확인할 수 있습니다. 이것이 실행 가능한 솔루션일 수 있지만 전체 평가를 하기에는 구현 세부 사항이 여전히 너무 희박합니다. 또한 이 솔루션은 일부 특수한 경우를 잘 처리하지 못합니다.
예를 들어 기본 자산에 액세스할 수 없거나 "만료"될 수 있습니다. 즉, 계약의 버그로 인해 계약의 기본 자산이 영원히 잠깁니다. 이 경우 기본 자산이 실제로 존재하므로 준비금 문제에 대한 증거가 없습니다. 그러나 파생상품은 기초자산을 회수할 수 없다면 가치가 없습니다. 시장 가격은 이를 반영할 가능성이 높으며, 이는 위에서 살펴본 허점과 함께 프로토콜을 남길 것입니다. 이는 확률이 낮은 이벤트이지만 솔루션을 평가할 때 고려해야 합니다.
3. 유동성 담보 파생상품(LSD)
기초자산의 가격을 파생자산의 대용으로 사용하는 경우 LSD는 크로스체인 자산과 동일한 취약점에 노출됩니다. 이전 섹션에서 이러한 문제를 다루었으므로 DeFi에서 특히 LSD에 대한 더 복잡한 사례를 살펴보겠습니다.
세부 사항에 들어가기 전에 LSD의 작동 방식에 대해 간단히 논의할 가치가 있습니다. 이름에서 알 수 있듯이 LSD는 담보 기반 자산(일반적으로 PoS 네트워크에서)의 액체 증거입니다. 이 경우 유동성 스테이킹 프로토콜은 다음과 같이 작동합니다.
사용자 측에서 스테이킹할 자산을 받습니다.
이러한 자산을 일부 유효성 검사기(노드)에 위임합니다.
그것은 저당 자산의 증거(협상 가능)를 사용자에게 반환합니다: 즉 LSD
사용자가 기본 자산을 인출(유동 자산으로 LSD 교환)하려는 경우 프로토콜은 다음과 같이 작동합니다.
사용자 측에서 LSD를 수신합니다.
상환 비율을 사용하여 기본 자산 중 사용자에게 반환해야 하는 금액을 파악합니다. 상환율은 기초 자산에 대한 LSD 공급량의 비율입니다(즉, 각 LSD가 기초 자산의 얼마만큼을 나타내는지 나타냄).
필요한 기본 자산을 언스테이킹합니다.
릴리스 기간 이후에 사용자는 자산을 청구할 수 있습니다.
이러한 배경을 가지고 가격 문제로 돌아가 봅시다. 현행 일부 약정에서 LSD의 가격 산정 방식은 기초자산의 가격과 환매율을 고려하여 산정하는 방식으로 산정 방식은 다음과 같습니다.
안에:
상환율을 계산에 통합함으로써 이 접근 방식은 기본 자산이 도난당할 수 있는(또는 PoS 프로토콜의 경우 삭감될 수 있는) 이전 섹션에서 탐색한 상황을 해결합니다. 예를 들어 기초자산을 도난당하면 환매율에 반영되기 때문에 가격에도 영향을 미치게 됩니다.
그렇다면 이 접근법의 문제점은 무엇입니까? 다음 예제를 통해 이 문제를 살펴보겠습니다. 이 예에서는 위에서 설명한 LSD와 유사한 방식으로 작동하고 21일의 릴리스 기간이 있는 stakedATOM이라는 ATOM의 LSD가 있다고 가정해 보겠습니다. 위에서 설명한 가격 책정 방법을 사용하여 스테이킹ATOM의 가격은 다음과 같이 계산됩니다(USD로 표시한다고 가정).
안에:
이 접근법에는 근본적인 문제가 있습니다. 스테이킹된 ATOM의 실제 시장 가격은 위에서 논의한 계산된 가격과 다를 수 있습니다. 왜냐하면 스테이크 ATOM의 시장 가격이 계산된 가격보다 높을 때 차익 거래 기회가 존재하지만, 스테이크 ATOM의 가격이 계산된 가격보다 낮을 때는 그렇지 않기 때문입니다.
즉, 스테이킹된 ATOM의 시장 가격은 위쪽에는 하드 페그(계산된 가격과 동일)가 있지만 아래쪽에는 존재하지 않습니다. 그 이유를 이해하기 위해 차익 거래 기회가 두 경우 모두 어떻게 작동하는지 살펴보겠습니다. 상승은 다음과 같습니다.
상환율이 1 ATOM/stakedATOM이라고 가정합니다.
시장 가격은 1.1 ATOM/stakedATOM입니다(stakedATOM은 시장에서 과대평가됨).
차익거래자는 1 ATOM을 스테이킹하고 1 statedATOM을 받은 다음 0.1 ATOM의 이익을 위해 시장에서 스테이킹된 ATOM을 판매할 수 있습니다.
차익 거래 기회가 더 이상 존재하지 않을 때까지 위와 같은 일이 발생합니다. 이 메커니즘은 시장 가격이 계산된 가격과 동일한 상한선을 갖는 경향이 있음을 보장합니다. 그러나 21일의 출시 기간이 차익 거래 기회를 깨뜨리기 때문에 가격이 하락한 경우에는 그렇지 않습니다. 다음은 또 다른 예입니다.
상환율이 1 ATOM/stakedATOM이라고 가정합니다.
시장 가격은 0.9 ATOM/stakedATOM입니다.
해제 기간이 없는 경우 차익 거래자는 0.9 ATOM을 사용하여 시장에서 1개의 스테이크 ATOM을 구매하고 약속된 ATOM을 해제하여 1 ATOM을 돌려받고 0.1 ATOM의 이익을 얻을 수 있습니다.
그러나 해제 기간은 21일이므로 즉각적인 차익 거래 기회는 없습니다.
따라서 가격 상승에는 "하드 페그"가 있지만 가격 하락에는 "소프트 페그"가 있습니다. 이 소프트 페그는 장기적으로 시장 가격이 상환 비율을 따르는 경향이 있음을 의미합니다. 그러나 단기적으로 스테이킹된 ATOM의 가격에는 실제 바닥이 없습니다. 이것은 이론적이거나 추상적인 발견이 아닙니다. 실제로 악명 높은 stETH unpegging 이벤트 및 stLUNA와 같은 다른 LSD에서 이를 보았습니다. 기본적으로 충분한 사람들이 출시 기간을 기다리지 않고 LSD를 청구하기를 원할 때 가격은 하향 "분리"되는 경향이 있습니다.
계산된 가격을 LSD의 오라클 피드로 사용하는 대출 프로토콜의 경우 위의 변동성은 파산으로 이어질 수 있습니다. 이것이 어떻게 발생하는지 이해하기 위해 다음 예를 살펴보겠습니다.
DeFi 대출 계약에 다음과 같은 입장이 있다고 가정합니다.
사용자는 최대 대출 이율 70%로 담보로 100개의 stagedATOM을 예치합니다.
사용자는 스테이킹ATOM을 담보로 600달러 상당의 다른 자산을 빌려주었습니다.
이제 다음 다이어그램에서 T 1, T 2 및 T 3 시간 노드에서 위치가 어떻게 변경되는지 살펴보겠습니다.
T 1에서 stakedATOM의 시장 가격(라인 4)은 계산된 오라클 가격(라인 5)을 완벽하게 반영하므로 모든 것이 원활하게 실행됩니다. /부채)가 둘 다 1보다 크므로 계정이 건강하고 과도하게 담보되어 있습니다.
T 2에서 스테이킹된 ATOM의 시장 가격은 상환 비율에서 벗어났습니다(따라서 오라클 가격에서 벗어남). 구체적으로 환매 가격이 1ATOM이지만 시장 가격은 0.8ATOM(편차 20%)입니다.
스테이킹된 ATOM의 시장 가격으로 계산된 건강 계수(12행)는 더 이상 1을 초과하지 않습니다. 이는 시장 가격으로 측정된 포지션이 비정상이며 청산 가능해야 함을 의미합니다. 그러나 프로토콜이 오라클 가격을 사용하고 있고 오라클 가격이 변경되지 않은 경우 오라클 가격을 사용하여 계산된 건강 계수(11행)는 여전히 T 1과 정확히 동일하고 1보다 높습니다. 따라서 포지션을 청산할 수 없습니다.
이 시점에서 포지션 청산은 청산인에게 더 이상 이익이 되지 않습니다(마지막 줄 참조). 이는 오라클의 가격을 기준으로 청산인에게 지불할 금액을 계약에서 계산하기 때문입니다. 스테이킹된 ATOM 담보 금액과 오라클의 가격이 과대평가되었습니다. 오라클이 시장 가격을 사용하는 경우 포지션은 청산 가능하며 이 시점에서 청산이 수익성이 있습니다.
이것이 이상적이지는 않지만 청산되어야 할 포지션이 여전히 지불 능력이 있었기 때문에 청산되지 않은 것을 고려하면 그리 나쁘지는 않습니다. 즉, 여전히 과대담보(collateralization factor 1보다 높음) 상태입니다.
T3에서는 시가와 환매율의 편차는 T2와 동일하지만 ATOM의 가격은 $10에서 $5로 인하된다. 이것은 청산되지 않고 현재 담보 비율이 1 아래로 떨어졌기 때문에 사실상 부실 포지션이 될 것입니다.
기본적으로 이 오라클 접근 방식의 문제는 모든 것이 계획대로 진행되고 가격 조작이 발생하지 않더라도 위에서 살펴본 것처럼 시스템이 지급 불능 상태가 될 수 있다는 것입니다.
4. 결론
오라클은 DeFi 대출 프로토콜의 핵심입니다. 그것들은 매우 중요해서 종종 전체 프로토콜의 미래를 결정합니다. 불건전한 오라클은 수백만 달러 상당의 자산을 위험에 빠뜨릴 수 있으며, 이것이 바로 우리가 오라클 구현을 분석하는 데 많은 시간을 할애하는 이유입니다.
이 기사를 통해 파생 자산에 오라클을 사용하는 방법에 대해 설명하고자 합니다. 특히 일부 일반적인 관행이 차선책이며 피해야 하는 이유를 보여 주었습니다. 이 게시물의 목적은 파생 자산이 담보로 사용할 수 있는 최고의 자산 중 일부라는 것을 알고 있기 때문에 파생 자산의 상장을 막는 것이 아닙니다. 우리의 의도는 이러한 파생 자산을 덜 강력한 오라클과 함께 나열하는 것을 막는 것입니다. 그러면 최악의 결과가 발생할 수 있습니다.
우리는 파생 자산이 기본 자산보다 유동성이 떨어지는 경우가 많기 때문에 특별히 강력한 오라클을 구축하기 어렵다는 것을 알고 있습니다. 그러나 이것이 강력하지 않은 오라클을 사용하는 변명이 되어서는 안 된다고 생각합니다. 우리는 강건하지 않은 오라클을 사용하기 전에 프로토콜이 유동성이 확립되고 자산별 강력한 오라클이 개발될 때까지 기다릴 것을 강력히 권장합니다.