마켓과 주문
ZooBC 마켓은 한 자산 쌍에 대한 오더북으로, 체인 자체가 보관하고 체결합니다. 모든 노드가 주문 트랜잭션을 적용할 때 같은 체결 규칙을 적용하므로, 모든 노드가 같은 체결 결과에 이르고, 어떤 운영자도 거래자의 자금을 보관하지 않으며, 누구도 오더북의 순서를 바꿀 수 없습니다. 누구나 마켓을 열 수 있으며, 거래가 활발한 마켓은 스스로 임대료를 냅니다.
마켓 열기
마켓은 (기준 자산, 호가 자산)의 쌍입니다. 예를 들어 기준 자산인 토큰의 가격을 호가 자산인 ZBC로 매깁니다. 쌍에는 순서가 있으므로 (A, B)와 (B, A)는 서로 다른 두 마켓입니다. 두 자산 모두 소수 8자리여야 합니다(소수 자릿수와 단계 참조).
CreateMarket(유형 21)의 비용은 market_creation_cost로, mainnet에서 50 ZBC입니다. 이 비용은 마켓의 임대료 예치금이 됩니다(아래 참조).
주문 내기
PlaceOrder(유형 22)는 마켓, 방향(매수 또는 매도), 지정가, 수량, 플래그, 선택적인 만료를 명시합니다. 플래그로 시장가 주문(즉시 체결 후 잔량 취소)이나 포스트 온리로 만들 수 있습니다.
가격은 기준 원자 단위당 호가 원자 단위에 10⁸을 곱한 값입니다. 따라서 토큰당 1.015 ZBC의 가격은 101,500,000으로 적습니다.
블록이 주문을 적용하면 다음과 같이 처리됩니다.
- 주문은 지출할 수 있는 만큼을 보류합니다. 매도 주문은 기준 자산 수량을, 매수 주문은 호가 자산으로 수량 × 가격 ÷ 10⁸을 보류합니다.
- 반대편의 대기 주문들과 즉시 체결합니다. 가장 좋은 가격부터, 가격이 같으면 트랜잭션 id가 더 낮은 것부터입니다. 각 체결은 테이커의 지정가가 아니라 대기 주문의 가격으로 이루어집니다.
- 체결되지 않은 부분은 오더북에 대기합니다. 단, 시장가 주문은 남은 부분이 환불됩니다.
모든 곱셈 결과는 128비트 연산으로 내림하므로, 모든 노드가 정확히 같은 체결 결과를 계산합니다.
두 가지 규칙이 오더북을 깨끗하게 유지합니다. 주문의 호가 자산 가치는 최소 2,500,000 원자 단위(호가 자산 0.025)여야 하며, 테이커는 결코 자신의 대기 주문과 체결하지 않습니다.
테이커 수수료
거래 수수료는 테이커만 냅니다. exchange_taker_fee_bps는 mainnet에서 10 베이시스 포인트(0.1 %)이며, 테이커가 받는 자산(매수면 기준 자산, 매도면 호가 자산)에서 떼어 블록의 생산자에게 지급합니다. 위의 예에서는 받은 300 토큰 중 0.3이 생산자에게 갑니다. 이 비율은 1~100 베이시스 포인트 사이로 정할 수 있는 체인 파라미터입니다. 메이커는 거래 수수료를 내지 않으며, 마켓 생성자도 몫을 받지 않습니다.
테이커 수수료는 트랜잭션 수수료와 별개입니다. PlaceOrder와 CancelOrder의 수수료는 일반 수수료이며 코인베이스 추첨으로 갑니다. 블록의 생산자가 아직 성숙하지 않았다면(성숙과 수입 참조), 그 테이커 수수료도 코인베이스 추첨으로 갑니다.
취소와 만료
CancelOrder(유형 23)는 메이커가, 그리고 메이커만 대기 주문을 철회하게 하며, 보류분 중 남은 것이 돌아옵니다. 만료가 있는 대기 주문은 블록이 시작될 때 이전 블록의 타임스탬프를 기준으로 만료됩니다.
마켓 임대료
마켓은 체인의 상태를 차지하므로, 상태를 차지하는 다른 모든 것과 마찬가지로 임대료를 냅니다.
- 50 ZBC의 개설 비용은 12개 기간의 임대료를 선납하는 예치금입니다. 172,800블록(30일)의 각 기간마다 12분의 1, 약 4.17 ZBC가 롱제비티 풀로 갑니다.
- 모든 PlaceOrder와 CancelOrder는 수수료와 별도로 자기 수수료의 20 %를 예치금에 더하며, 예치금은 최대 24개 기간분까지 쌓입니다. 따라서 거래가 활발한 마켓은 주문 자체가 자금을 대 줍니다.
- 한 기간의 임대료를 낼 수 없는 마켓이나, 자산 중 하나가 만료된 마켓은 정리됩니다. 대기 주문은 메이커에게 환불되고, 예치금의 나머지는 롱제비티 풀로 가며, 그 쌍은 나중에 다시 열 수 있습니다.
ZooBC에는 자동 마켓 메이커 풀이 없습니다. 모든 거래는 사람들이 낸 주문 사이에서 이루어집니다. 소수 자릿수가 8 미만인 토큰을 포함해 어떤 두 자산이든 한 번 거래하려면 스왑 제안을 참조하십시오.