AMM(Automated Market Makers)

( AMM amendment 개정 필요 )

AMM은 XRP Ledger의 탈중앙화 거래소에서 유동성을 제공하는 스마트 컨트랙트입니다. 각 AMM은 두 개의 자산 풀을 보유하고 있으며, 사용자는 공식에 의해 설정된 환율로 자산을 교환할 수 있습니다.

특정 자산 쌍에 대해 Ledger에는 최대 하나의 AMM이 있습니다. 자산 쌍에 대한 AMM이 아직 없는 경우 누구나 생성하거나 기존 AMM에 예치할 수 있습니다. AMM에 자산을 예치하는 사람을 유동성 공급자(LP)라고 하며, AMM으로부터 "LP 토큰"을 받습니다. 유동성 공급자는 LP 토큰을 통해 다음을 수행할 수 있습니다:

  • 징수한 수수료를 포함해 AMM 풀에 있는 자산의 일부로 LP 토큰을 상환할 수 있습니다.

  • 투표를 통해 AMM의 수수료 설정을 변경할 수 있습니다. 투표는 투표자가 얼마나 많은 LP 토큰을 보유하고 있는지에 따라 가중치가 부여됩니다.

  • 보유한 LP 토큰 중 일부를 입찰하여 AMM의 거래 수수료를 일시적으로 할인받을 수 있습니다.

풀에서 두 자산 간의 자금 흐름이 상대적으로 활발하고 균형이 맞을 때, 수수료는 유동성 공급자에게 간접적인 수입원을 제공합니다. 그러나 자산 간 상대 가격이 변동하면 유동성 공급자는 가격에 따른 손실(currency risk)을 입을 수 있습니다.

AMM 작동 방식(How the AMM Works)

AMM은 두 개의 서로 다른 자산을 보유하는데, 이 중 하나만 XRP일 수 있고 둘 중 하나 또는 둘 다 토큰일 수 있습니다. 발행자가 다른 토큰은 이 목적상 서로 다른 자산으로 간주됩니다. 즉, 통화 코드는 같지만 발행자가 다른 두 토큰에 대한 AMM이 있을 수 있으며("WayGate에서 발행한 FOO"는 "StableFoo에서 발행한 FOO"와 다름), 발행자는 같지만 통화 코드가 다를 수도 있습니다. 순서는 중요하지 않으며, FOO.WayGate에서 XRP로의 AMM은 XRP에서 FOO.WayGate로의 AMM과 동일합니다.

사용자가 탈중앙화 거래소에서 거래를 원할 때 오퍼와 교차 통화 결제가 자동으로 AMM을 사용하여 거래를 완료할 수 있습니다. 단일 트랜잭션은 더 저렴한 가격에 따라 오퍼, AMM 또는 두 가지를 혼합하여 실행될 수 있습니다.

AMM은 풀에 있는 자산 잔액을 기준으로 환율을 설정합니다. AMM을 상대로 거래할 때 환율은 거래로 인해 AMM이 보유한 자산 잔액이 얼마나 이동하는지에 따라 조정됩니다. 한 자산의 공급이 감소하면 해당 자산의 가격이 상승하고, 한 자산의 공급이 증가하면 해당 자산의 가격이 하락합니다. AMM은 일반적으로 풀에 전체 자산이 많을수록 더 좋은 환율을 제공합니다. 이는 특정 거래가 AMM의 자산 잔고에 작은 변화를 일으키기 때문입니다. 거래로 인해 두 자산의 공급과 수요의 불균형이 커질수록 환율은 더 극단적으로 변합니다.

또한 AMM은 환율 외에 일정 비율의 거래 수수료를 부과합니다.

XRP 레저는 가중치 매개변수가 0.5인 기하평균 AMM을 구현하므로 고정 상품 시장 조성자처럼 작동합니다. 상수 상품 AMM 공식과 AMM의 일반적인 경제학에 대한 자세한 설명은 크리스 마초프스키의 자동화된 시장 메이커 소개(Kris Machowski's Introduction to Automated Market Makers)를 참고하시기 바랍니다.

LP 토큰(LP Tokens)

AMM을 생성하는 사람은 최초의 유동성 공급자가 되며, AMM 풀에 있는 자산의 100% 소유권을 나타내는 LP토큰을 받습니다. 이들은 해당 LP 토큰의 일부 또는 전부를 상환하여 현재 보유한 금액에 비례하여 AMM에서 자산을 인출할 수 있습니다. (시간이 지남에 따라 사람들이 AMM과 거래함에 따라 비율이 바뀝니다.) AMM은 두 자산을 모두 인출할 때 수수료를 부과하지 않습니다.

예를 들어 5 ETH와 5 USD로 AMM을 생성한 후 누군가 1.26 USD를 1 ETH로 교환했다면, 풀에는 이제 4 ETH와 6.26 USD가 있습니다. LP 토큰의 절반을 사용해 2 ETH와 3.13 USD를 인출할 수 있습니다.

누구나 기존 AMM에 자산을 예치할 수 있습니다. 자산을 예치하면 예치한 금액에 따라 새로운 LP 토큰을 받게 됩니다. 유동성 공급자가 AMM에서 인출할 수 있는 금액은 총 발행된 LP 토큰 수에 비해 보유한 AMM의 LP 토큰 비율에 따라 결정됩니다.

LP 토큰은 XRP Ledger의 다른 토큰과 마찬가지로 다양한 유형의 결제에 사용할 수 있으며, 탈중앙화 거래소에서 거래하거나 새로운 AMM을 위한 자산으로 예치할 수도 있습니다. (LP 토큰을 결제 수단으로 받으려면 AMM 계정을 발행자로 하여 한도가 0이 아닌 신탁 라인을 설정해야 합니다). 단, 다른 결제 수단을 통하지 않고 AMM으로 직접 LP 토큰을 송금(상환)할 때는 AMM 출금 거래 유형만 사용할 수 있습니다. 마찬가지로 자산을 AMM 풀로 전송할 때는 AMMDeposit 거래 유형을 통해서만 가능합니다.

AMM은 미결제 LP 토큰이 없는 경우에만 AMM의 자산 풀이 비어 있도록 설계되어 있습니다. 이러한 상황은 AMM출금 트랜잭션의 결과로만 발생할 수 있으며, 이 트랜잭션이 발생하면 AMM은 자동으로 삭제됩니다.

LP 토큰 통화 코드(LP Token Currency Codes)

LP 토큰은 160비트 16진수 "비표준" 형식의 특별한 유형의 통화 코드를 사용합니다. 이 코드는 처음 8비트가 0x03입니다. 남은 코드는 두 자산의 통화 코드와 발행자의 SHA-512 해시로 구성되며, 처음 152비트까지만 잘라낸 것입니다.(자산은 숫자가 낮은 통화+발행자 쌍이 먼저인 "정식 순서"로 배치됩니다.) 결과적으로 특정 자산 쌍의 AMM에 대한 LP 토큰은 예측 가능하고 일관된 통화 코드를 갖게 됩니다.

거래 수수료(Trading Fees)

거래 수수료 거래 수수료는 유동성 제공자들에게 수동적인 수입원이며, 이를 통해 다른 사람들이 풀의 자산에 대해 거래할 때 발생하는 화폐 위험을 상쇄합니다. 거래 수수료는 유동성 제공자에게 직접 지급되는 것이 아니라 AMM(Automated Market Maker)에 지급됩니다. 그러나 유동성 제공자들은 LP 토큰을 AMM의 풀의 일부 비율로 교환할 수 있기 때문에 혜택을 받습니다. 유동성 제공자들은 0%에서 1%까지 0.001% 단위로 거래 수수료를 설정할 수 있습니다. 유동성 제공자들은 적절한 비율로 거래 수수료를 설정하는 동기가 있습니다. 너무 높은 경우 거래는 주문서를 사용하여 더 나은 비율을 얻으려고 할 것이고, 너무 낮은 경우 유동성 제공자들은 풀에 기여하는 대가를 받지 못하게 됩니다. 각 AMM은 해당 유동성 제공자들이 보유한 LP 토큰의 양에 비례하여 요금을 결정할 권한을 부여합니다. 투표하기 위해서는 유동성 제공자가 AMMVote 트랜잭션을 전송해야 합니다. 누군가 새로운 투표를 등록하면, AMM은 최신 투표 결과를 가중치(유동성 공급자가 보유한 LP 토큰의 양)로 평균화하여 요금을 재계산합니다. 이 방식으로 최대 8명의 유동성 공급자들의 의견이 반영됩니다. 더 많은 유동성 공급자들이 투표하려고 하면, 상위 8개 의견(보유한 LP 토큰량 기준)만 계산됩니다. LP 토큰의 점유 비중은 여러 가지 이유(오퍼 등으로 인한 해당 자산 거래)로 인해 실시간으로 변할 수 있지만, 거래 수수료는 새로운 의견 등록 시에만 재계산됩니다 (상위 8개 중 하나일 필요 없음).

경매 슬롯(Auction Slot)

이전의 어떤 자동화된 시장 제조자와는 달리 XRP Ledger의 AMM(자동화된 시장 제조자) 디자인에는 유동성 공급자가 입찰하여 24시간 동안 거래 수수료를 할인받을 수 있는 경매 슬롯이 있습니다. 입찰은 LP 토큰으로 지불되며, 이는 AMM에 반환됩니다. 한 번에 하나의 계정만 경매 슬롯을 보유할 수 있지만, 입찰자는 할인 혜택을 받을 추가적인 최대 4개 계정도 지정할 수 있습니다. 최소 입찰 금액은 없지만, 현재 슬롯이 점유 중인 경우 현재 슬롯 보유자를 이길 만큼 더 높은 가격으로 입찰해야 합니다. 다른 사람이 당신을 이기면 남은 시간에 따라 일부 입찰 금액을 반환받게 됩니다. 활성 경매 슬롯을 보유하는 한 해당 AMM과의 거래에서 할인된 0% 거래 수수료를 지불합니다. 어떤 AMM에서든 외부 시장에서 자산 가격이 크게 변동할 경우 트레이더들은 이로 인해 유동성 공급자들에게 손실을 가져오는 차익거래(arbitrage)를 사용할 수 있습니다. 경매 메커니즘은 해당 가치를 유동성 공급자들에게 더 많이 반환하고 외부 시장과의 가격 균형을 더욱 신속하게 회복하기 위해 설계되었습니다.

Ledger 내 표현(Representation in the Ledger)

Ledger의 상태 데이터에서 AMM은 여러 개의 Ledger 항목으로 구성됩니다:

  • 자동화된 시장 제조자 자체를 설명하는 AMM 항목

  • AMM의 LP 토큰을 발행하고 AMM의 XRP를 보유하는 특수 AccountRoot 항목 (있는 경우)

    • 이 AccountRoot의 주소는 AMM이 생성될 때 다소 무작위로 선택되며, AMM이 삭제되고 재생성될 경우 다른 주소가 할당됩니다. 이는 사람들이 사전에 과도한 XRP로 AMM 계정을 충전하는 것을 방지하기 위한 조치입니다.

  • AMM 풀 내 토큰에 대한 특수 AMM 계정에 대한 신뢰 라인

    • 이러한 Ledger 항목은 어떤 계정도 소유하지 않으므로 예약 요구 사항이 적용되지 않습니다. 그러나 스팸 방지를 위해, AMM을 생성하는 거래에는 일반적인 양보다 큰 양의 XRP를 소모해야 하는 특수 거래 비용이 있습니다.

삭제(Deletion)

AMM은 AMMWithdraw 거래가 풀에서 모든 자산을 인출할 때 삭제됩니다. 이는 AMM의 미해결 LP 토큰을 전부 환급함으로써만 가능합니다. AMM 삭제에는 다음과 같이 관련된 원장 항목들이 모두 제거됩니다:

  • AMM

  • AccountRoot

  • AMM의 LP 토큰에 대한 신뢰 라인. 이러한 신뢰 라인은 잔액은 0이지만 한계(limit)와 같은 다른 세부 정보는 기본값과 다를 수 있습니다.

  • AMM 풀에 있던 토큰들에 대한 신뢰 라인 AMM 계정에 512개 이상의 신뢰 라인이 연결되어 있는 경우, 인출은 성공하고 가능한 만큼 많은 신뢰 라인을 삭제하지만, 해당 AMM은 풀 내 자산이 없는 상태로 원장에 남게 됩니다. AMM의 자산 풀이 비어있는 경우, 아무나 AMMDelete 거래를 보내어 삭제할 수 있습니다. 남아 있는 신뢰 라인 수가 여전히 한계보다 크다면, 전체적으로 AMM을 삭제하기 위해 여러 개의 AMMDelete 거래가 필요할 수도 있습니다. 대안으로 아무나 새로운 것처럼 AMM을 자금 지원하는 특수 입금도 수행할 수 있습니다. 비어있는 자산 풀을 가진 AMM에서 다른 작업은 유효하지 않습니다. 비어있는 AMM을 삭제하는 경우 환급이나 인센티브는 제공되지 않습니다.

Last updated