01

화면에서 본 가격과 받은 수량이 다른 이유

탈중앙화 거래소에서 토큰을 교환할 때 화면에는 ‘예상 수령량’이 표시됩니다. 그런데 실제로 받은 수량은 그보다 적은 경우가 많습니다. 이 차이에는 성격이 다른 두 가지 원인이 섞여 있습니다. 내 주문 자체가 가격을 움직이는 가격 영향과, 주문을 보낸 뒤 체결되기까지 가격이 움직이는 슬리피지입니다.

이 글은 두 개념을 구분하고, 거래 화면의 최소 수령량이 어떻게 계산되는지, 슬리피지 허용 범위를 어떻게 정해야 하는지를 가상의 숫자로 설명합니다. 허용 범위를 넓게 둘 때 생기는 선행 거래 위험과 실행 전 점검 순서도 정리합니다.

02

가격 영향: 내 주문이 움직이는 가격

가격 영향은 내 거래 규모 때문에 생기는 가격 변화입니다. 호가창에서는 큰 주문이 여러 호가를 차례로 소진하면서, AMM에서는 풀의 자산 비율을 바꾸면서 평균 체결가가 불리해집니다. 미국 SEC의 투자자 안내도 시장가 주문은 체결을 보장하지만 체결 가격은 보장하지 않는다고 설명합니다.

가격 영향은 거래 직전에 계산할 수 있습니다. 같은 금액이라도 유동성이 깊은 시장에서는 작고, 얕은 시장에서는 큽니다. 거래 화면에 표시되는 가격 영향 비율이 크다면 거래 규모를 줄이거나 나누는 것을 고려할 신호입니다.

03

슬리피지: 보낸 뒤에 움직이는 가격

슬리피지는 거래를 서명해 보낸 시점과 블록에 포함돼 실행되는 시점 사이에 가격이 움직여 생기는 차이입니다. 그 사이에 다른 사람의 거래가 먼저 처리되면 풀의 비율이 바뀌어 내가 받을 수량이 달라집니다. Uniswap 문서도 가격 영향과 별개로 슬리피지를 고려해야 한다고 안내합니다.

그래서 거래 화면에서는 ‘슬리피지 허용 범위’를 설정합니다. 예상 수령량보다 이 비율 이상 적게 받게 되면 거래를 실패시키라는 조건입니다. 거래가 실패해도 이미 쓴 가스비는 돌려받지 못하지만, 원하지 않는 가격에 체결되는 것은 막을 수 있습니다.

04

최소 수령량 계산

가상의 예로 30,000 USDC로 ETH를 사는데 예상 수령량이 9.091 ETH라고 해봅시다. 허용 범위에 따라 최소 수령량은 다음과 같이 정해집니다.

슬리피지 허용 범위별 최소 수령량 (가상 예시)
허용 범위최소 수령량예상 대비 최대 손실특징
0.1%약 9.082 ETH약 0.009 ETH변동이 크면 자주 실패
0.5%약 9.046 ETH약 0.045 ETH일반적인 기본값 수준
1.0%약 9.000 ETH약 0.091 ETH변동이 큰 토큰에 사용
5.0%약 8.636 ETH약 0.455 ETH선행 거래 공격에 취약

최소 수령량 = 예상 수령량 × (1 − 허용 범위). 허용 범위는 ‘최악의 경우 감수할 손실’을 미리 정하는 값입니다.

05

허용 범위를 넓게 둘 때의 위험

허용 범위를 넓게 설정하면 거래가 실패할 가능성은 줄지만, 그만큼 불리한 가격에 체결될 여지도 커집니다. 블록체인의 대기 거래는 공개되어 있어, 누군가 내 거래를 보고 먼저 같은 방향으로 사서 가격을 올린 뒤 내 거래가 체결되자마자 되파는 선행·후행 거래(샌드위치 공격)를 시도할 수 있습니다.

이 공격으로 빼앗길 수 있는 최대 금액은 내가 설정한 허용 범위와 거의 같습니다. 위 표에서 5%로 설정했다면 최대 0.455 ETH까지 불리하게 체결될 수 있습니다. 그래서 허용 범위는 ‘거래가 성공할 만큼만’ 좁게 두는 것이 원칙입니다.

06

거래 화면에서 볼 값

대부분의 거래 화면은 예상 수령량, 최소 수령량, 가격 영향, 네트워크 수수료, 거래 경로를 보여줍니다. 거래 경로가 여러 풀을 거친다면 각 단계마다 가격 영향과 수수료가 붙습니다.

가격 영향이 크게 표시되는데도 허용 범위를 넓혀 억지로 체결하는 것은 비싼 거래가 됩니다. 이런 경우 거래를 여러 번으로 나누거나, 유동성이 더 깊은 다른 시장을 찾거나, 지정가 방식의 주문을 지원하는 서비스를 이용하는 방법을 검토할 수 있습니다.

07

실행 전에 정할 한도

아래 순서는 DEX에서 교환하기 전에 매번 적용할 수 있는 점검표입니다.

  1. 거래 화면의 가격 영향 비율을 확인하고, 크다면 거래 규모를 줄이거나 나눕니다.
  2. 슬리피지 허용 범위를 자동 설정에 맡기지 말고, 토큰의 변동성에 맞춰 필요한 만큼만 직접 정합니다.
  3. 최소 수령량을 확인해 ‘최악의 경우 받을 수량’을 받아들일 수 있는지 판단합니다.
  4. 거래 경로와 거치는 풀 수, 단계별 수수료를 확인합니다.
  5. 큰 거래라면 선행 거래 보호 기능을 제공하는 전송 방식이 있는지 지갑이나 서비스 문서를 확인합니다.
08

숫자가 보장하지 않는 것

예상 수령량과 가격 영향은 거래 직전 상태를 기준으로 한 계산일 뿐이고, 블록에 포함되는 순간의 상태는 그와 다를 수 있습니다. 최소 수령량은 최악의 결과를 제한해 줄 뿐 좋은 가격을 보장하지는 않습니다.

이 글의 수량과 비율은 가상의 예시입니다. 실제 거래에서는 서비스의 최신 화면과 문서를 기준 시점과 함께 확인하고, 허용 범위를 바꿀 때마다 최소 수령량이 어떻게 바뀌는지 직접 확인하는 것이 좋습니다.