-
- 8
Axo는 트레이딩 분야의 블록체인 프로젝트 중 중요한 혁신가라고 생각됩니다. 이번 글에서는 Axo의 초석을 이루는 프로그래머블 스왑의 본질에 대해 자세히 알아보겠습니다.
카르다노의 잠재력 활용하기
온체인 검증자와 오프체인 코드로 구성된 카르다노의 스마트 컨트랙트는 강력한 보안을 제공합니다. 튜링 완전한 오프체인 코드는 트랜잭션 비용에 영향을 주지 않고 복잡하고 자원 집약적인 계산을 실행할 수 있게 해줍니다. 온체인 검증자는 다른 블록체인 모델과 비슷한 수준의 보안을 제공합니다.
이러한 혁신은 프로그래머블 스왑과 알고리즘 자동화 마켓메이커(AAMM)와 같은 개념을 구현할 수 있게 해준다는 점에서 획기적인 것입니다.
Axo 팀은 UTxO 모델의 기능과 SC 플랫폼의 설계를 효과적으로 활용하여 오프체인 세그먼트의 모든 프로그래밍 가능한 스왑을 명세와 온체인 상태 기준으로 실행하는 복잡한 로직을 실행할 수 있게 했습니다.
오프체인 주문 매칭 엔진에도 불구하고 프로토콜은 온체인 검증자 덕분에 마치 온체인에서 완전히 실행되는 것처럼 안전합니다.
카르다노에서는 탈중앙화 및 P2P 통신의 요구를 충족하는 동시에 확장 가능한 최신 금융 애플리케이션을 구축할 수 있습니다.
프로그래머블 스왑
프로그래머블 스왑은 트레이더의 의도를 가장 간결하게 표현한 것으로, 온체인 상태로 발행된 NFT에 구현된다고 생각하시면 됩니다.
프로그래머블 스왑은 네 가지 요소로 구성됩니다:
- 주문 유형
- 트리거
- 액션
- 자산
주문 유형은 즉시 자산 교환(시장가 주문) 또는 정해진 가격의 스왑(지정가 주문) 등 스왑 선호 방식을 말합니다.
트리거는 스왑 활성화 조건을 설정합니다. 트리거가 없는 시장가 주문은 즉시 활성화되어 즉각적인 자산 스왑이 이루어집니다.
지정가 주문에는 가격 트리거가 있습니다. 시장가가 설정된 가격과 일치할 때까지 비활성 상태로 남아 있다가, 스왑이 활성화되고 액션이 트리거됩니다.
액션은 활성화 시 스왑의 작동을 개략적으로 나타내며, 그 결과 거래가 생성됩니다.
자산은 제시된 액션의 대상입니다.
이미지는 지정가 주문 유형의 프로그래머블 스왑을 보여줍니다. 트레이더는 HOSKY 가격이 ADA 가격과 일치하거나 초과할 때 HOSKY를 ADA로 교환하는 조건을 설정했습니다. 의도된 스왑에는 10000 HOSKY가 포함됩니다.
Axo 프로토콜에는 많은 트레이더의 고도로 세분화된 프로그래머블 스왑이 많이 있습니다. 스왑은 주문 매칭 엔진에 의해 서로 매칭되어 실행됩니다.
프로그래머블 스왑은 다양한 주문 유형을 실행할 수 있는 우아한 방법을 제공합니다. 또 다른 예로는 달러-비용 평균법(DCA), 동적 유동성 공급, 포트폴리오 관리 전략 등이 있습니다.
프로그래머블 스왑의 생성은 약정 단계에서 발생하는 NFT 발행 과정과 연결되어 있습니다. 프로그래머블 스왑은 NFT 발행을 통해 블록체인에 제출되며, 스왑 실행에 필요한 모든 필수 데이터를 캡슐화합니다. NFT 발행을 병렬화할 수 있다는 점은 핵심적인 장점입니다.
프로그래머블 스왑이 원장에 기록되면 약정 단계로 전환됩니다. 이는 프로그래머블 스왑이 실행 풀로 이동하기 전 대기 단계입니다. 다음 블록에서 프로그래머블 스왑은 실행 풀에 배치되어 선택 및 사용할 수 있게 됩니다.
스왑을 실행하려면 최소 두 블록이 필요합니다. 첫 번째 블록은 약정 단계에 사용되며, 이 단계에서 새로운 스왑 의도를 나타내는 새로운 NFT가 발행됩니다. 프로그래머블 스왑이 블록체인에 기록된 이후에만 후속 블록에서 스왑이 이루어질 수 있습니다.
블록이 추가될 때마다 새로운 프로그래머블 스왑을 제출할 수 있지만, 이미 커밋된 스왑도 실행됩니다.
실행 풀은 활성 프론티어와 비활성 프론티어의 두 섹션으로 나뉩니다. 활성 프론티어에는 스케줄링이 가능하고 트리거 정의 조건이 모두 충족되면 현재 블록에서 실행할 수 있는 스왑이 보관됩니다. 반대로 비활성 프론티어에는 모든 활성화 조건이 충족되지 않아 실행할 수 없는 스왑이 포함됩니다.
이미지는 Axo 프로토콜과 카르다노 블록의 상호작용을 보여줍니다. 새로운 프로그래머블 스왑이 블록에 제출됩니다. Axo의 관점에서 이는 약정 단계에서 발생하며, 이는 스왑 5, 6, 7이 후속 블록에서만 실행 가능하다는 것을 의미합니다. 액티브 프론티어에 위치한 스왑 1과 2는 현재 자산 스왑이 진행 중입니다. 비활성 프론티어에 있는 스왑 3과 4는 활성 프론티어로 전환하기 위한 모든 활성화 전제 조건이 충족되기를 기다리고 있습니다.
두 블록 간에 프로그래머블 스왑을 하면 어떤 일이 발생하는지 살펴보겠습니다.
스왑 실행에는 N 블록의 활성 프런티어에서 프로그래머블 스왑을 매칭하고 N+1 블록에 대한 트랜잭션을 생성합니다. 여러 개의 프로그래머블 스왑이 입력으로 사용되며, 이를 통해 트랜잭션뿐만 아니라 미사용 자산이 포함된 새로운 프로그래머블 스왑 출력도 생성할 수 있습니다.
다음 이미지에 표시된 것처럼 스왑 1과 2에서 새 스왑 8이 생성되어 새 트랜잭션의 입력으로 사용됩니다(빨간색 화살표로 표시).
블록 N의 약정 단계에 있는 모든 프로그래머블 스왑은 활성 또는 비활성 프론티어(녹색 화살표로 표시)로 전환됩니다. 스왑 5와 6은 활성 프런티어로 이동하고(스케쥴가능), 스왑 7은 비활성 프런티어에 남아 있습니다.
또한 스왑 3은 N 블록의 비활성 프론티어에서 N+1 블록의 활성 프론티어로 이동했습니다(보라색 화살표로 강조 표시됨). 한편, 스왑 4는 비활성 프론티어에 남아 있습니다(파란색 화살표로 표시).
새로운 스왑 9와 10이 새로운 블록 N+1에 제출되었습니다.
이러한 절차는 더 많은 수의 프로그래머블 스왑이 있는 각 블록에서 반복됩니다.
주어진 시장 상황에 따라 활성 프론티어에 있는 스왑이 비활성 프론티어로 이동하는 경우가 발생할 수 있습니다.
모든 프로그래머블 스왑은 결국 수명 종료(EOL)에 도달하며, 이는 더 이상 필요하지 않으므로 폐기할 수 있음을 의미합니다.
프로그래머블 스왑이 파기되는 시나리오에는 두 가지가 있습니다.
하나는 다른 프로그래머블 스왑의 형태로 취소 주문을 제출하여 기존 프로그래머블 스왑을 소멸시키는 경우입니다. 다른 하나는 프로그래머블 스왑이 EOL에 도달하는 경우입니다. 이는 의도한 작업이 완료되었거나 시간이 만료되었음을 의미합니다.
아래 이미지는 Axo 프로토콜 내의 다양한 작업을 보여줍니다. Axo의 오프체인 구성 요소인 실행 엔진은 주문 취소(스왑 사용 방지)를 처리하고, 스왑을 실행하며, 활성 및 비활성 프론티어(시장 변동에 따라 프로그래머블 스왑을 재배치)를 업데이트합니다.
Axo 프로토콜은 프로그래머블 스왑 처리에서 두드러집니다. 주문 매칭 엔진은 시장가 주문과 지정가 주문을 매칭하는 등 다양한 주문 유형의 프로그래머블 스왑을 페어링할 수 있습니다.
시장가 주문 M이 체결되었다고 가정해봅시다. 이 주문은 유동성이 있는 한 가장 유리한 호가로 체결할 수 있습니다. 이 가격이 지정가 주문 L에 의해 제공되고 L이 매도한 자산이 시장가 주문 M을 완전히 체결하기에 충분하다고 가정해 봅시다. 그러면 M과 L을 모두 입력 EUTxO로 사용하는 트랜잭션 T가 제출됩니다. 트랜잭션 T에는 시장가 주문 M을 제출한 에이전트가 사용할 수 있는 스왑된 자산이 포함되므로 자산이 에이전트의 지갑으로 직접 전송됩니다. 시장가 주문에 의해 소진되지 않은 잔여 자산을 보유한 새로운 UTxO가 생성되어 새로운 프로그래머블 스왑, 즉 새로운 지정가 주문이 생성됩니다.
아래 이미지는 스왑을 실행하는 트랜잭션을 보여줍니다. 트랜잭션 입력은 에이전트 1의 시장가 주문 M과 지정가 주문 L로 구성됩니다. 트랜잭션은 자산을 에이전트 1의 주소로 전송하고 스왑에 사용되지 않은 나머지 자산을 보유한 새로운 지정가 주문 L’를 제출합니다.
지정가 주문의 유동성을 사용하여 시장가 주문의 요구사항이 충족되었는지 확인하며, 이는 유동성 측면에서 매우 효율적인 접근 방식입니다.
매우 효율적으로 리소스를 사용하는 Axo
약정 단계에서 NFT를 발행하는 것은 병렬 처리를 위해 이상적으로 구조화되어 있습니다. 이를 통해 각 블록 주기에서 프로그래머블 스왑을 동시에 발행할 수 있으므로 지연과 순차 요구 사항을 제거할 수 있습니다. 약정 단계는 동시성을 최적화하며 높은 처리량을 위한 기반을 마련합니다.
프로그래머블 스왑의 실행에는 최소한의 정보만 필요하므로 메모리 사용량과 비용이 절감됩니다.
카르다노의 아키텍처를 통해 개발자는 애플리케이션의 온체인 영역에 기본 기능을 통합할 수 있으며, 트랜잭션 준비와 같은 복잡한 기능은 오프체인에서 처리할 수 있습니다. 온체인 검증자는 UTxO 지출 조건이 충족되었는지 여부만 확인합니다.
오프체인 기능은 트랜잭션을 컴파일한 다음 검증자 스크립트를 사용하여 온체인에서 검증합니다. 이러한 스크립트는 필요한 상태 전환을 확인할 수 있습니다.
주문 매칭 엔진과 프로그래머블 스왑을 위한 실행 엔진을 포함하는 Axo 프로토콜의 복잡한 로직은 애플리케이션의 오프체인 부분에 위치합니다.
프로그래머블 스왑에 의해 이루어지는 자동화된 알고리즘 실행 프로세스는 전적으로 온체인에서 수행된다는 점에 주목해야 합니다. 이는 외부 API에 대한 연결이 없고, 외부 소프트웨어가 컨트랙트에 접근할 수 없으며, 필수 구성 요소가 오프체인에 저장되지 않음을 의미합니다.
카르다노의 프로그래밍 모델에서 오프체인 구성 요소는 트랜잭션에 대한 EUTxO를 선택하는 역할을 담당합니다. 그러나 실제 실행은 여전히 온체인에서 이루어집니다.
이는 Axo 프로토콜이 제공하는 모델이 독립적일 뿐만 아니라, 더 중요한 것은 신뢰가 필요 없고 스마트 컨트랙트를 사용하여 구현된다는 것을 의미합니다.
이러한 설계는 이론적으로 탈중앙화 및 자산 셀프 커스터디의 특성을 유지하면서 현대의 중앙화된 거래소에 필적하는 효율성을 제공합니다.
Axo 프로토콜은 고도로 세분화된 프로그래머블 스왑과 함께 작동합니다. 이는 애플리케이션의 오프체인 부분에서 쌍을 이루며, 각 프로그래머블 스왑에 저장된 최소한의 정보만 필요합니다.
Axo 프로토콜이 히드라 헤드(Hydra head)를 프로그래머블 스왑에 활용하여 트랜잭션을 확장할 수 있게 되면, 이 우아하고 단순한 파편화된 설계의 효과가 분명하게 드러납니다. 활성 프론티어의 모든 EUTxO는 실행을 위해 히드라 헤드로 전송될 수 있으며, 실행이 완료되면 거래를 정산하기 위해 레이어 1로 돌아갑니다. 각 프로그래머블 스왑은 가능한 최소한의 의도를 나타내므로 레이어 간 가장 효율적인 정보 교환을 보장합니다.
프로그래머블 스왑의 특징은 구성이 가능하다는 점입니다. 프로그래머블 스왑의 이러한 구성 가능성은 병합하고 유형 검사를 거쳐 결과적으로 새롭고 고유한 프로그래머블 스왑을 생성할 수 있다는 것을 의미합니다. 구성 가능성은 함수형 프로그래밍의 기본적인 측면이며, 프로그래머블 스왑의 구성은 금융 컨트랙트를 구현하기에 가장 적합한 함수형 프로그래밍 접근 방식을 보여줍니다.
결론
프로그래머블 스왑은 완전히 온체인에서 실행되는 독립적이고 신뢰가 필요 없는 금융 컨트랙트입니다. 이는 온체인 코드의 자율적인 단위입니다. 이를 통해 복잡한 로직을 오프체인에서 처리하는 자동화된 알고리즘 트랜잭션이 가능합니다. 스왑을 다른 레이어로 쉽게 전송할 수 있습니다.
이러한 스왑은 서로 구성하고, 유형 검사를 거치고, 새로운 고유 프로그래머블 스왑을 생성할 수 있다는 점에서 독특합니다.
프로그래머블 스왑의 설계는 유동성을 분할하여 처음으로 온체인에서 기관 수준의 시장 조성을 가능하게 합니다. 이를 통해 탈중앙화와 자산의 셀프 커스터디를 유지하면서 중앙화된 거래소에 필적하는 높은 효율성을 달성할 수 있습니다.
전반적으로 프로그래머블 스왑은 탈중앙화 금융 환경의 핵심 요소로, 자본 시장의 효율성과 보안성을 높여줍니다.
* Source: https://cexplorer.io/article/understanding-programmable-swaps
* Translation: Ilhun@CryptoVeri enics_sky@naver.com
1 post - 1 participant