거래소가 직접 만드는 이유
대안은 남의 오라클을 가져다 쓰는 것인데, 그 방식의 실패 양상은 이미 충분히 기록되어 있습니다. 자기 마켓의 영향을 받는 가격을 참조하는 거래소는 한곳의 왜곡이 다른 곳의 연쇄 강제 청산으로 이어지는 되먹임 고리를 만듭니다. 직접 만들면 소스, 가중치, 임계값을 모두 들여다보고 조정할 수 있으며, 그중 무엇도 이 거래소 자신의 오더북을 가리키지 않습니다.거래소 호가에서 하나의 숫자로
정규화 및 표시 통화 환산
모든 소스를 중앙값 ± 밴드로 제한
거래량 · 스프레드 · 안정성으로 가중
한 거래소가 가질 수 있는 가중치에 상한
인덱스 가격
뒤따르는 중앙값이 비교 가능한 숫자 위에서 계산되도록
주요 암호자산 1% · 스테이블코인 0.5% · 그 외 3%
안정성은 최근 거래량을 더 긴 기간과 비교하므로, 한 거래소의 갑작스러운 급증으로 영향력을 살 수 없음
호가가 아무리 좋아 보여도
체결 가격이 아니라 입력값 — 인덱스에 체결되는 것은 없음
거래소 피드가 들어와 하나의 숫자로
그 단계가 없애는 것
버리지 않고 제한하는 이유는 이렇습니다. 버리면 공격자가 거래소 한 곳을 밀어내 표본을 줄일 수 있고, 그러면 남은 것들의 가중치가 커집니다.
이상값을 버리는 대신 제한하는 쪽을 택한 것은 의도적입니다. 이상값을 버리면 공격자가 거래소 한 곳을 밀어내는 것만으로 표본을 줄일 수 있고, 그러면 남은 것들의 가중치가 커집니다. 제한 방식은 모든 소스를 계산에 계속 넣으면서, 어느 하나가 끌고 갈 수 있는 거리를 묶어 둡니다.
품질로 가중. 소스는 균등하게가 아니라 가중 평균으로 결합되며, 기준은 세 가지입니다.
- 거래량 — 실거래 회전이 많은 거래소일수록 더 많은 정보를 담습니다
- 스프레드 — 오더북이 촘촘할수록 더 확신 있는 호가입니다
- 안정성 — 최근 거래량을 더 긴 기간의 평균과 비교합니다. 한 거래소에서 갑자기 터진 거래량으로 영향력을 살 수 없게 하기 위해서입니다
소스가 이상 동작할 때
세 가지 방어 장치가 상시 동작하며, 각각 다른 장애에 대응합니다.
어떤 소스의 가중치가 0이 되면 남은 가중치들이 비례해서 커집니다. 거래소 하나가 끊겼다고 인덱스가 갭을 내지는 않습니다.
교차된 오더북, 즉 매수호가가 매도호가와 같거나 그보다 높은 상태는 거래 가능한 시장이 아니라 망가진 피드입니다. 이를 받아들이면 오작동하는 거래소가 임의의 중간 가격을 집계에 밀어 넣을 수 있게 됩니다.
갱신 주기와 지연
인덱스는 대략 3초마다 다시 계산되고 합의 안에서 인증됩니다. 따라서 트랜잭션이 정산 기준으로 삼는 가격은 그 트랜잭션을 커밋한 것과 동일한 검증자 정족수가 서명한 값입니다. 인증이 어떻게 이뤄지는지는 오라클에서 다룹니다. 검증자는 서명하기 전에 최신성을 검사합니다. 값이 오래되었다면 낡은 값을 제출하는 대신 아무것도 제출하지 않습니다. 그 아래 단계에서 마크 가격은 약 10초를 넘긴 인덱스를 해당 블록에서 사용 불가로 간주하고, 그 값 없이 계산을 진행합니다.인덱스 가격과 마크 가격의 차이
둘을 분리해 둔 덕분에 마크 가격은 이 거래소의 실제 프리미엄이나 디스카운트 같은 로컬 조건을 반영하면서도, 로컬 조건만 반영하는 값이 되지는 않습니다.
다음으로 읽을 문서
마크 가격
인덱스가 포지션을 좌우하는 숫자로 바뀌는 과정을 다룹니다.
펀딩
마크 가격과 인덱스 가격의 간격을 값으로 매기고 정산하는 방식입니다.
오라클
합의 안에서의 인증과, 가격 가용성이 블록 생성을 막는 이유를 다룹니다.
리스크 고지
어떤 가격 리스크가 남아 있고 그 대가가 무엇인지 그대로 서술합니다.