> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 인덱스 가격

> 자산이 바깥 시장에서 얼마의 가치를 갖는지에 대한 네트워크의 판단. 소스에 가중치를 매기는 방식, 이상값을 가두는 방식, 그리고 소스가 죽었을 때 단계적으로 축소되는 방식을 다룹니다.

인덱스 가격은 *이 자산이 지금 넓은 시장에서 얼마인가*에 대한 네트워크의 답입니다. 체결 가격이 아니라 입력값이며, 인덱스 가격에 체결되는 것은 아무것도 없습니다. 인덱스 가격은 [마크 가격](/ko/trading/mark-price)을 붙들어 주고, [펀딩](/ko/trading/funding)의 기준을 정하며, 그 둘을 통해 포지션의 생존 여부를 결정합니다.

그래서 인덱스 가격은 이 시스템이 받아들이는 외부 입력 가운데 가장 파급력이 큽니다. 아래의 모든 장치는 한 가지 이유로 존재합니다. 밀어낼 수 있는 가격은 곧 겨냥할 수 있는 청산 엔진이기 때문입니다.

<h2 id="why-the-venue-builds-its-own">
  거래소가 직접 만드는 이유
</h2>

대안은 남의 오라클을 가져다 쓰는 것인데, 그 방식의 실패 양상은 이미 충분히 기록되어 있습니다. 자기 마켓의 영향을 받는 가격을 참조하는 거래소는 한곳의 왜곡이 다른 곳의 연쇄 강제 청산으로 이어지는 되먹임 고리를 만듭니다.

직접 만들면 소스, 가중치, 임계값을 모두 들여다보고 조정할 수 있으며, 그중 무엇도 이 거래소 자신의 오더북을 가리키지 않습니다.

<h2 id="from-venue-quotes-to-one-number">
  거래소 호가에서 하나의 숫자로
</h2>

<div className="dg" data-dg="index-price-build">
  <div className="dg-c" style={{aspectRatio:"720 / 406"}}>
    <svg className="dg-w" viewBox="0 0 720 406" aria-hidden="true">
      <path className="dg-wire" d="M 165.00 78.00 L 165.00 89.60" />

      <path className="dg-head" d="M 165.00 96.00 L 160.60 89.60 L 169.40 89.60 Z" />

      <path className="dg-wire" d="M 165.00 148.00 L 165.00 159.60" />

      <path className="dg-head" d="M 165.00 166.00 L 160.60 159.60 L 169.40 159.60 Z" />

      <path className="dg-wire" d="M 165.00 218.00 L 165.00 229.60" />

      <path className="dg-head" d="M 165.00 236.00 L 160.60 229.60 L 169.40 229.60 Z" />

      <path className="dg-wire" d="M 165.00 288.00 L 165.00 299.60" />

      <path className="dg-head" d="M 165.00 306.00 L 160.60 299.60 L 169.40 299.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"7.3892%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">정규화 및 표시 통화 환산</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"24.6305%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">모든 소스를 중앙값 ± 밴드로 제한</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"41.8719%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">거래량 · 스프레드 · 안정성으로 가중</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"59.1133%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">한 거래소가 가질 수 있는 가중치에 상한</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"76.3547%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">인덱스 가격</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"7.3892%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">뒤따르는 중앙값이 비교 가능한 숫자 위에서 계산되도록</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"24.6305%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">주요 암호자산 1% · 스테이블코인 0.5% · 그 외 3%</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"41.8719%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">안정성은 최근 거래량을 더 긴 기간과 비교하므로, 한 거래소의 갑작스러운 급증으로 영향력을 살 수 없음</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"59.1133%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">호가가 아무리 좋아 보여도</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"76.3547%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">체결 가격이 아니라 입력값 — 인덱스에 체결되는 것은 없음</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"45.8333%"}}><div className="dg-n">거래소 피드가 들어와 하나의 숫자로</div></div>
    <div className="dg-free" style={{left:"50.0000%",top:"0.0000%",width:"50.0000%"}}><div className="dg-n">그 단계가 없애는 것</div></div>
    <div className="dg-free" style={{left:"0.0000%",top:"91.1330%",width:"100.0000%"}}><div className="dg-n">버리지 않고 제한하는 이유는 이렇습니다. 버리면 공격자가 거래소 한 곳을 밀어내 표본을 줄일 수 있고, 그러면 남은 것들의 가중치가 커집니다.</div></div>
  </div>
</div>

각 단계는 결과를 밀어낼 수 있는 서로 다른 경로를 하나씩 제거합니다.

**정규화.** 피드는 저마다의 스키마와 표시 통화로 들어옵니다. 결제 통화가 아닌 통화로 표시된 가격은 다른 어떤 처리보다 먼저 환산되며, 그래야 뒤따르는 중앙값이 비교 가능한 숫자들 위에서 계산됩니다.

**이상값 제한.** 모든 소스에 대해 중앙값을 구한 뒤, 각 소스를 그 주위의 밴드 안으로 끌어당깁니다. 시장이 깊을수록 밴드는 좁습니다.

| 상품 분류   | 중앙값 기준 밴드 |
| ------- | --------- |
| 주요 암호자산 | 1%        |
| 스테이블코인  | 0.5%      |
| 그 외     | 3%        |

이상값을 *버리는* 대신 *제한하는* 쪽을 택한 것은 의도적입니다. 이상값을 버리면 공격자가 거래소 한 곳을 밀어내는 것만으로 표본을 줄일 수 있고, 그러면 남은 것들의 가중치가 커집니다. 제한 방식은 모든 소스를 계산에 계속 넣으면서, 어느 하나가 끌고 갈 수 있는 거리를 묶어 둡니다.

**품질로 가중.** 소스는 균등하게가 아니라 가중 평균으로 결합되며, 기준은 세 가지입니다.

* **거래량** — 실거래 회전이 많은 거래소일수록 더 많은 정보를 담습니다
* **스프레드** — 오더북이 촘촘할수록 더 확신 있는 호가입니다
* **안정성** — 최근 거래량을 더 긴 기간의 평균과 비교합니다. 한 거래소에서 갑자기 터진 거래량으로 영향력을 살 수 없게 하기 위해서입니다

**거래소별 상한.** 세 기준 모두에서 높은 점수를 받은 소스에도 상한이 걸립니다. 호가가 아무리 좋아 보여도 어느 한 거래소가 지배할 수는 없습니다.

이들이 합쳐진 결과는 조작에 붙는 최소 비용입니다. 인덱스를 의미 있게 움직이려면 여러 독립 거래소를 동시에, 그것도 실제 깊이만큼 움직이고 그 상태를 유지해야 합니다.

<h2 id="when-a-source-misbehaves">
  소스가 이상 동작할 때
</h2>

세 가지 방어 장치가 상시 동작하며, 각각 다른 장애에 대응합니다.

| 방어 장치          | 발동 조건                       | 대응                                    |
| -------------- | --------------------------- | ------------------------------------- |
| **이상값 제한**     | 소스가 중앙값에서 밴드를 넘어 벗어남        | 밴드 가장자리로 끌어당김                         |
| **지연 강등**      | 소스가 갱신을 멈춤                  | 유예 기간 동안 마지막 유효 가격을 사용하고, 이후 가중치를 0으로 |
| **오더북 유효성 검사** | 오더북 교차, 또는 한쪽 호가 단계가 세 개 미만 | 해당 갱신을 거부하고 직전 가격을 유지                 |

어떤 소스의 가중치가 0이 되면 남은 가중치들이 비례해서 커집니다. 거래소 하나가 끊겼다고 인덱스가 갭을 내지는 않습니다.

<Note>
  교차된 오더북, 즉 매수호가가 매도호가와 같거나 그보다 높은 상태는 거래 가능한 시장이 아니라 망가진 피드입니다. 이를 받아들이면 오작동하는 거래소가 임의의 중간 가격을 집계에 밀어 넣을 수 있게 됩니다.
</Note>

<h2 id="update-cadence-and-staleness">
  갱신 주기와 지연
</h2>

인덱스는 대략 3초마다 다시 계산되고 합의 안에서 인증됩니다. 따라서 트랜잭션이 정산 기준으로 삼는 가격은 그 트랜잭션을 커밋한 것과 동일한 검증자 정족수가 서명한 값입니다. 인증이 어떻게 이뤄지는지는 [오라클](/ko/protocol/architecture/oracle)에서 다룹니다.

검증자는 서명하기 전에 최신성을 검사합니다. 값이 오래되었다면 낡은 값을 제출하는 대신 아무것도 제출하지 않습니다. 그 아래 단계에서 [마크 가격](/ko/trading/mark-price)은 약 10초를 넘긴 인덱스를 해당 블록에서 사용 불가로 간주하고, 그 값 없이 계산을 진행합니다.

<h2 id="index-price-is-not-mark-price">
  인덱스 가격과 마크 가격의 차이
</h2>

|                 | 인덱스 가격          | 마크 가격                |
| --------------- | --------------- | -------------------- |
| 답하는 질문          | 바깥에서 이것은 얼마인가?  | 여기서 이 포지션은 얼마인가?     |
| 구성 재료           | 외부 거래소 피드       | 네 개의 입력값, 그중 하나가 인덱스 |
| 쓰이는 곳           | 펀딩 기준, 마크 가격 입력 | 증거금, 청산, 미실현 손익      |
| 이 거래소 오더북 반영 여부 | 아니오             | 부분적으로 반영             |

둘을 분리해 둔 덕분에 마크 가격은 이 거래소의 실제 프리미엄이나 디스카운트 같은 로컬 조건을 반영하면서도, 로컬 조건만 반영하는 값이 되지는 않습니다.

<Warning>
  이 장치들은 단일 소스가 인덱스를 움직일 수 있는 거리를 제한합니다. 인덱스를 옳은 값으로 만들어 주지는 않습니다. 시장 전체가 괴리되거나 주요 거래소 여러 곳이 함께 움직이면 인덱스도 시장을 따라 움직입니다. 그 시점의 인덱스는 조작당하는 것이 아니라 있는 그대로 보고하는 것이기 때문입니다. [리스크 고지](/ko/protocol/security/risks)를 참고하십시오.
</Warning>

<h2 id="where-to-go-next">
  다음으로 읽을 문서
</h2>

<CardGroup cols={2}>
  <Card title="마크 가격" href="/ko/trading/mark-price">
    인덱스가 포지션을 좌우하는 숫자로 바뀌는 과정을 다룹니다.
  </Card>

  <Card title="펀딩" href="/ko/trading/funding">
    마크 가격과 인덱스 가격의 간격을 값으로 매기고 정산하는 방식입니다.
  </Card>

  <Card title="오라클" href="/ko/protocol/architecture/oracle">
    합의 안에서의 인증과, 가격 가용성이 블록 생성을 막는 이유를 다룹니다.
  </Card>

  <Card title="리스크 고지" href="/ko/protocol/security/risks">
    어떤 가격 리스크가 남아 있고 그 대가가 무엇인지 그대로 서술합니다.
  </Card>
</CardGroup>
