2017년은 ICO 붐과 2021년은 DeFi 부문과 NFT의 급속한 성장으로, 현재의 사이클에서는 meme 토큰이 선두를 차지하고 있다. 2024년 1월, 프로젝트 pump.fun은 Solana 블록체인에서 시작되었으며, 사용자가 가능한 한 빠르고 저렴하게 토큰을 만들 수있었습니다. 그러나 대부분의 meme 토큰은 빠른 성장과 더 빠른 감소를 경험합니다. 출시판에서 DEX로 유동성을 전송할 때, 커뮤니티가 성장함에 따라 가격 개발은 일반적으로 다음 패턴을 따릅니다. 그러나 실제로, 그것은 이렇게 밝혀집니다 : 나의 견해에 따르면, 이것은 시장이 제로 합계 게임 원칙에 따라 작동한다는 사실 때문입니다.그러나 DEX의 유동성 풀의 사용과 일치하는 반대 순서없이 판매 할 수있는 능력으로 인해 공급과 수요 사이의 균형이 왜곡됩니다. 이것을 개선하는 방법에 대한 아이디어는 알고리즘 stablecoins, 특히 Terra Luna를 분석 한 후에 나에게 왔습니다.이 프로젝트에 익숙하지 않은 사람들을 위해, 여기에 그것이 어떻게 작동하는지에 대한 간략한 설명이 있습니다. In the case of UST’s price falling below $1, the Debase algorithm was triggered, allowing traders to exchange 1 UST for 1 LUNA. During this process, UST was burned while new LUNA was minted. When UST’s price rose above $1, the Rebase algorithm activated, where LUNA was burned and, conversely, new UST was minted. 그럼에도 불구하고, 전체 생태계는 자기 보증금의 내부적(인 체인) 성격에 뿌리를 두고 있는 소위 "죽음의 스파일"에 직면했다.알고리즘의 차이에도 불구하고, 기초 현금과 빈 세트 달러와 같은 프로젝트는 같은 실수를 반복했다. 대조적으로, DAI의 예는 외인 (오프 체인) 보증금도 취약 할 수 있음을 보여줍니다 : ETH가 하루 만에 거의 50 %로 붕괴했을 때 시스템이 위험에 처했지만, MKR 토큰의 비상 발행과 지역 사회의 개입을 통해 상황을 안정시킬 수 있었던 것은 바로 외부 보증금의 사용이었습니다. On-chain Off-chain Type of collateral Algorithmic issuance Collateral of crypto assets Exchange rate adjustment Arbitrage exchange Dynamic stability fees Risk Death spiral Liquidation of collateral Type of collateral Algorithmic 발행 Crypto Assets에 대한 정보 Exchange rate adjustment 중재 교환 Dynamic Stability 요금제 Risk 죽음의 스파일 콜라테르의 청산 두 종류의 보증금을 비교한 후, 가격을 지원하기 위해서는 긴 폴에서 독립적 인 짧은 유동성을 가진 별도의 폴을 만들어야한다는 결론에 도달했습니다. 그것은 다음과 같이 작동 할 수 있습니다 : 유동성을 DEX로 전송하는 것과 함께, 유동성은 특히 짧은 위치를 개설하기 위해 프로토콜에 추가됩니다. 거기에서 몇 가지 시나리오가 가능합니다 : Both pools grow — which means someone is opening a short position. This is where the first advantage of the idea becomes evident: increased market transparency. If demand exceeds supply, that’s a natural market situation. Similarly, when supply exceeds demand, it’s also part of normal market dynamics. In the case of a sharp change in the long pool — so drastic that even the label doesn’t fit — a rebalancing algorithm can be activated. As a result, the price returns to equilibrium through the participation of the short pool, without an seller. 재균형 알고리즘이 작동하려면 다음이 필요합니다 : 특정 기간 동안 가격 변화의 어떤 비율이 "비정상적인"시장 변동으로 간주 될 것인지 정의합니다. 지속적인 가격 모니터링; Continuous price monitoring 지정된 조건이 충족되면 시스템을 조작으로부터 보호하기 위해 크기를 단일 사이클로 한정하여 재균형을 수행합니다. 이 기사에서는 Solidity를 사용하여 EVM 호환 블록체인에 대한 짧은 유동성 풀을 만드는 이 메커니즘의 핵심 구성 요소 중 하나를 자세히 살펴보겠습니다. 준비 프로토콜은 사용자 자금을 처리할 것이며 OpenZeppelin의 자금을 가져올 것입니다. 그리고 계약뿐만 아니라 Chainlink에서 자산 가격을 인수하기위한 계약. Ownable ReentrancyGuard 단순성을 위해 우리는 Ethereum Mainnet에서 WBTC 및 WETH 토큰을 사용하지만 이상적으로 스마트 계약을 배포 할 때 사용할 수있는 토큰 목록을 정의해야합니다. 계약을 더 확장하기 위해, 우리는 추가 할 것입니다 a 지원되는 토큰의 경우, 열쇠는 토큰의 주소이며 가치는 해당 Chainlink 가격 피드 계약의 주소입니다. mapping 또한 값을 추가하는 유틸리티 함수를 구현하자.Let us also implement a utility function for adding values to the 보안을 강화하려면 이미 추가된 토큰의 Oracle 계약 주소를 업데이트하는 것을 방지합니다. mapping 포지션을 저장하려면, we will use a 열쇠가 사용자의 주소이며, 값은 다음을 포함하는 구조의 배열입니다.Where the key is the user's address, and the value is an array of structures containing: mapping 토큰 주소 오픈 및 닫기 가격 위치 크기 현재 상태 (Open, closed, or liquidated) 포지션을 열기 이 프로토콜에서는 가격이 USD로 지정되므로 가치 표준화를 위한 내부 기능이 필요합니다. USD로 개시 가격을 얻으려면 먼저 현재 ETH 가격과 토큰 가격에 대한 오라클을 쿼리하고 두 값을 정상화 한 다음 포지션 크기를 계산합니다. 를 사용하여 이벤트를 방송하는 경우 . mapping emit 위치 닫기 포지션을 폐쇄하고 청구하는 논리를 통합하려면 포지션의 현재 상태를 확인하는 수정자를 만들 것입니다. 우리는 또한 인출 금액과 종료 가격을 계산하는 도움말 기능을 만들 것입니다. 다음으로, 위치를 닫을 때, 두 가지 가능 시나리오가 있습니다 : If the user is eligible to receive funds back, we set the closing price and withdraw funds to the user. If the position must be liquidated (for example, due to insufficient collateral), the position is marked as liquidated without transferring funds. 마무리 가격에 대 한 장소 보유자로 인해 청산의 경우, 최대 값을 사용할 수 있습니다. uint256 이 구현은 단순화되므로 Chainlink 또는 Gelato를 사용하여 주기적으로 가격을 확인하고 필요한 경우 자동 청구를 추가하는 것이 좋습니다. 이를 지원하기 위해, 청구 함수는 사용자의 주소를 지정할 수 있는 위치를 지정하는 매개 변수로 받아들여야 한다. 결론 이 기사에서 나는 짧은 유동성 풀에 대한 가설을 공유하고 Ethereum 블록체인에 대한 Solidity의 기본 구현을 제안했습니다.이 아이디어를 흥미롭게 생각하는 사람이라면 더 큰 프로젝트의 일부가되기를 기쁘게 생각합니다! 전체 코드가 사용할 수 있습니다 on . Github