Uniswap은 이더리움 블록체인의 업그레이드가 불가능한 스마트 계약 시스템에 구현된 상수 곱 (CPMM)공식으로 작동하는 자동화된 유동성 프로토콜입니다. 중개인에 대한 신뢰를 필요로 하지 않으며, 분산, 검열 저항, 보안을 우선시합니다. Uniswap은 GPL 라이선스로 배포된 오픈소스 소프트웨어입니다.
각 Uniswap 스마트 계약 또는 페어는 두 개의 ERC-20 토큰의 예비금으로 이루어진 유동성 풀을 관리합니다.
누구든지 풀 토큰을 얻기 위해 기초 자산의 동등한 가치를 예치함으로써 풀의 유동성 공급자(LP)가 될 수 있습니다. 이 토큰은 총 예
비금의 비례 LP 지분을 추적하며, 언제든지 기초 자산으로 교환할 수 있습니다.
위 그림은 유동성 공급을 통한 보상을 그림으로 나타낸 것입니다.
A토큰 10개, B토큰 1개를 공급했을 경우 4 LP 토큰을 보상으로 받는 것입니다. 이렇게 유니스왑을 유동성을 공급하면 LP 토큰을 보상으로 받습니다.
그리고 토큰을 Swap 교환했을 때에는 트레이더에게 수수료가 0.3% 정도 듭니다.
Pair(토큰 쌍)는 자동적인 시장 제조(AMM) 역할을 합니다. "상수 곱(Constant Product Market Maker)" 공식이 유지되는 한
한 토큰을 다른 토큰으로 받아들일 준비가 되어 있다. 이 공식은 가장 간단하게 x * y = k로 표현되며, 거래는 쌍의 예비금(x와 y)의 곱(k)을 변경해서는 안된다는 것을 명시합니다. 거래를 기준으로 k는 변경되지 않으므로, 이를 불변(상수)이라고 말하기도 합니다. 이 공식은 상대적으로 예비금에 비해 큰 거래는 지수적으로 나쁜 비율로 실행되는 이상적인 특성을 갖고 있습니다.
실제로, Uniswap은 거래에 0.30%의 수수료를 부과하여 예비금에 추가합니다. 이 결과, 각 거래는 실제로 k를 증가시킵니다.
이는 LP에 대한 지급 기능을 하며, 이는 LP가 총 적립금의 일부를 인출하기 위해 pool 토큰을 소각할 때 실현됩니다. 향후 이 수수료는 0.25%로 인하될 수 있으며 나머지 0.05%는 프로토콜 전체 요금으로 보류될 수 있습니다.
두 쌍의 자산의 상대적 가격은 거래를 통해서만 변경될 수 있기 때문에 유니스왑 가격과 외부 가격의 차이는 차익거래 기회를 창출한다. 이 메커니즘은 유니스왑 가격이 항상 시장 청산 가격으로 향하도록 보장합니다.
토큰 스왑이 실제로 어떻게 작동하는지 확인하고 스왑의 라이프 사이클을 살펴보려면 스왑을 확인하십시오. 또는 유동성 풀이 어떻게 작동하는지 보려면 풀을 참조하십시오.
물론 궁극적으로 유니스왑 프로토콜은 이더리움에서 실행되는 스마트 계약 코드일 뿐이다. 이러한 기능의 작동 방식을 이해하려면 스마트 계약으로 이동하십시오.
생태계에 참여하는 사람들
Uniswap 생태계는 주로 유동성 공급자, 트레이더(거래전문가?) 및 개발자의 세 가지 유형의 사용자로 구성됩니다. 유동성 공급자는 공통 유동성 풀에 ERC-20 토큰을 제공하도록 장려됩니다.
거래자들은 고정된 0.30%의 수수료(유동성 제공자에게 제공)로 이 토큰들을 서로 교환할 수 있다. 개발자는 Uniswap 스마트 계약과 직접 통합하여 토큰, 거래 인터페이스, 매매 경험 등을 통해 새롭고 흥미로운 상호 작용을 강화할 수 있습니다.
전체적으로 이러한 클래스 간의 상호 작용은 긍정적인 피드백 루프를 만들어 토큰을 풀링, 거래 및 사용할 수 있는 공통 언어를 정의함으로써 디지털 경제에 연료를 공급합니다.
1. 유동성 공급자 또는 LP는 단일 그룹이 아닙니다:
2. 패시브 LP(수동적인 유동성 공급자)는 거래 수수료를 축적하기 위해 자산을 수동적으로 투자하고자 하는 토큰 보유자다.
3. 전문 LP(유동성 공급자)들은 마케팅을 주요 전략으로 삼고 있다. 그들은 일반적으로 다양한 DeFi 프로젝트에서 그들의 유동성 포지션을 추적하는 맞춤형 도구와 방법을 개발합니다.
4. 토큰 프로젝트는 때때로 그들의 토큰을 위한 유동적인 시장을 만들기 위해 LP가 되는 것을 선택한다. 이를 통해 토큰을 더 쉽게 사고 팔 수 있으며 유니스왑을 통해 다른 디파이 프로젝트와의 상호 운용성을 원할하게 할 수 있다.
5. 마지막으로, 일부 DeFi 선구자들은 인센티브 유동성, 담보로서의 유동성 및 기타 실험 전략과 같은 복잡한 유동성 제공 상호 작용을 탐구하고 있다. Uniswap은 이러한 종류의 아이디어를 실험하기 위한 프로젝트를 위한 완벽한 프로토콜이다.
프로토콜 생태계에는 다음과 같은 여러 범주의 거래자가 있다:
1. 투기꾼들은 유니스왑 프로토콜에서 끌어온 유동성을 사용하여 토큰을 교환하기 위해 다양한 커뮤니티 구축 도구와 제품을 사용한다.
2. 차익거래 봇(아비트라지 봇)은 우위를 찾기 위해 서로 다른 플랫폼 간의 가격을 비교함으로써 이익을 추구한다. (추출적으로 보일 수 있지만, 이 봇들은 실제로 더 넓은 이더리움 시장에 걸쳐 가격을 균등화하고 공정하게 유지하는 데 도움이 된다.)
3. DAPP 사용자들은 이더리움의 다른 응용 프로그램에서 사용하기 위해 유니스왑에서 토큰을 구매한다.
4. 스왑 기능(DEX 애그리게이터와 같은 제품에서 사용자 지정 Solidity 스크립트)을 구현하여 프로토콜에 대한 거래를 실행하는 스마트 계약.
5. 모든 경우에, 거래는 프로토콜에 대한 거래에 대해 동일한 균일 수수료를 적용받는다. 각각은 가격의 정확성을 높이고 유동성을 장려하는 데 중요하다.
더 넓은 이더리움 생태계에서 유니스왑을 사용하는 방법은 매우 많지만, 몇 가지 예는 다음과 같다:
1. Uniswap의 오픈 소스, 접근 가능한 특성은 Uniswap 기능에 대한 접근을 제공하기 위해 구축된 수많은 UX 실험과 프런트엔드가 있음을 의미한다. Uniswap 기능은 대부분의 주요 DeFi 대시보드 프로젝트에서 찾을 수 있습니다. 커뮤니티가 구축한 Uniswap 전용 도구도 많다.
2. 지갑은 종종 스왑 및 유동성 제공 기능을 자사 제품의 핵심 제품으로 통합합니다.
3. DEX(분산형 외환) 애그리게이터는 거래를 분할하여 거래자에게 최상의 가격을 제공하기 위해 많은 유동성 프로토콜에서 유동성을 끌어낸다. 유니스왑은 이러한 프로젝트의 가장 큰 단일 분산형 유동성 공급원입니다.
4. 스마트 계약 개발자들은 새로운 DeFi 도구와 다른 다양한 실험 아이디어를 발명하기 위해 사용 가능한 기능들을 사용한다. Unisocks나 Zora와 같은 많은 프로젝트를 보십시오.
Uniswap 팀은 광범위한 Uniswap 커뮤니티와 함께 프로토콜 및 생태계 개발을 주도합니다.
유니스왑 V2는 바이너리(이진 법의, 즉 컴퓨터는 2진법을 사용하기 때문에 이 표현을 사용함) 스마트 계약 시스템이다. 핵심 계약은 Uniswap과 상호 작용하는 모든 당사자에게 기본적인 안전 보장을 제공한다. 주변 계약은 하나 이상의 핵심 계약과 상호 작용하지만 그 자체는 핵심의 일부가 아니다.
코어는 싱글톤 팩토리와 여러 쌍으로 구성되어 있으며, 이 팩토리는 생성 및 인덱싱을 담당합니다. 이 계약들은 아주 미니멀(최소로 간결한 느낌)하고 심지어 Brutalist("brutalism"이라는 건축 양식에서 유래한 용어로, 강한 느낌을 주는 대형 콘크리트 구조물과 고체적인 형태, 강한 선과 각이 돋보이는 디자인을 가리킵니다. 이 용어는 일반적으로 건축 양식뿐만 아니라 디자인, 예술, 패션 등 다양한 분야에서 사용되며, 강하고 단단한 느낌을 주는 것을 의미하기도 합니다.)한 느낌이 있다.
이것에 대한 간단한 이론적 근거는 더 작은 표면적을 가진 계약이 추론하기 쉽고, 버그가 적으며, 기능적으로 우아하다는 것입니다.
아마도 이 설계의 가장 큰 장점은 시스템의 많은 원하는 특성들이 코드에서 직접적으로 주장될 수 있고, 오류의 여지를 거의 남기지 않는다는 것이다. 그러나 한 가지 단점은 핵심 계약이 다소 사용자 친화적이지 않다는 것이다. 실제로 대부분의 사용 사례에서 이러한 계약과 직접 상호 작용하는 것은 권장되지 않습니다. 대신 주변 계약을 사용해야 한다.
팩토리는 토큰 Pair(쌍)를 공급하는 일반 바이트 코드를 보유합니다. 그것의 주된 임무는 고유한 토큰 Pair(쌍)당 하나의 스마트 계약을 만드는 것이다. 프로토콜 요금을 지불하는 논리도 들어 있다.
Reference documentation (ERC-20)
Pair(쌍)에는 자동화된 시장 제조업체 역할(AMM)과 Pool 토큰 잔액을 추적하는 두 가지 주요 목적이 있습니다. 그들은 또한 분산된 가격 또는 오라클을 구축하는 데 사용될 수 있는 데이터를 노출한다.
Periphery은 핵심 기능과 관련된 도메인 특화 상호작용을 지원하기 위해 설계된 스마트 컨트랙트의 집합입니다. Uniswap의 허가 없는 특성으로 인해, 아래에 설명된 컨트랙트는 특별한 특권이 없으며, 실제로 퍼리퍼럴과 유사한 다른 컨트랙트들이 더 많습니다. 하지만, 이들은 Uniswap V2와 안전하고 효율적으로 상호작용하는 방법을 보여주는 유용한 예시입니다.
라이브러리는 데이터 가져오기 및 가격 책정을 위한 다양한 편의 기능을 제공한다.
라이브러리를 사용하는 라우터는 거래 및 유동성 관리 기능을 제공하는 프론트엔드의 모든 기본 요구사항을 완전히 지원합니다. 특히, 네이티브로 다중 페어 거래 (예 : x에서 y로 z로)를 지원하며, ETH를 일급객체로 처리하며, 유동성을 제거하기 위한 메타 트랜잭션을 제공합니다.
참고:
https://docs.uniswap.org/contracts/v2/concepts/protocol-overview/how-uniswap-works
UniswapV2-core - UniswapV2Pair.sol 코드 분석 (0) | 2023.03.26 |
---|---|
UniswapV2-periphery - UniswapV2Library.sol 코드 분석 (0) | 2023.03.17 |
UniswapV2 periphery - Uniswapv2Router.sol 코드 분석 (0) | 2023.03.17 |
UniswapV2-periphery UniswapV2Migrator.sol 코드 분석 (0) | 2023.03.15 |
Uniswap V1 백서 및 코드 (0) | 2023.03.09 |