오라클(Oracle)은 오프체인과 온체인사이에서의 다리 역할을 하는 것이라고 생각하면 된다.
가장 유명한 오라클은 ChainLink가 있다.
가격 오라클 사용의 예시에 여러 가지가 있는데 크게 두 가지에서 많이 사용하는듯하다.
1. 저담보 대출 청상 - 대출 프로토콜(예: 메이커다오, 컴파운드)은 사용자의 대출을 청산할 때를 결정하기 위해 가격 오라클을 사용한다. 사용자의 담보가 특정 임계값 아래로 떨어지면 청산시킨다.
2. 파생상품 가격 결정 - 파생상품 플랫폼(예: 신테틱스, 퍼페추어)은. 옵션, 선물, 합성 자산을 포함한 암호화폐 자산의 가치를 계산하기 위해 오라클을 사용한다.
오라클을 조작하는 방법에는 무엇이 있을까.
크게 4가지가 있다.
1. 오라클 실패(무작위공격)
2. 플래시론을 이용해 AMM가격 조작
3. CEX 노출
4. 아비트라지
어떻게 가격오라클 조작을 막을 수 있을까.
1. 유동성이 부족한 곳에는 참여하지 않는다. 유동성이 충분한 곳을 생각한다.
2. 오라클에 인위적인 지연을 시킨다.
3. 오라클 사용시 검증을 할 것.
4. 시간가중평균가격(TWAP)을 사용한다.
5. 다수 보고자 메커니즘 ( M of N reporter )
[ 참고 및 추가자료 ]
https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles
https://scsfg.io/hackers/oracle-manipulation/