De nieuwe marktcyclus voelt echt anders.Terwijl 2017 werd gekenmerkt door de ICO-boom en 2021 door de snelle groei van de DeFi-sector en NFT's, nemen in de huidige cyclus meme-tokens de leiding. In januari 2024 werd het project pump.fun gelanceerd op de Solana blockchain, waardoor gebruikers tokens zo snel en goedkoop mogelijk kunnen maken. De meeste meme tokens ervaren echter snelle groei gevolgd door nog snellere dalingen. Bij het overdragen van liquiditeit van de launchpad naar een DEX, en naarmate de community groeit, moet de prijsontwikkeling over het algemeen dit patroon volgen: Maar in werkelijkheid blijkt het zo: Naar mijn mening is dit te wijten aan het feit dat de markt werkt op een zero-sum game principe. echter, met het gebruik van liquiditeitspools op DEXs en de mogelijkheid om te verkopen zonder een overeenkomstige tegenbestelling, wordt de balans tussen aanbod en vraag verstoord. Ideeën over hoe dit kan worden verbeterd kwam naar mij na het analyseren van algoritmische stablecoins, met name 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. Echter, het hele ecosysteem werd geconfronteerd met de zogenaamde "doodspiraal", geworteld in de endogene (op-keten) aard van de zekerheid.Ondanks verschillen in algoritmen, projecten zoals Basis Cash en Empty Set Dollar herhaald dezelfde fout - vertrouwen op interne zekerheid leidde hen tot vergelijkbare problemen en uiteindelijke ineenstorting. Het voorbeeld van DAI toont daarentegen aan dat exogene (off-chain) zekerheden ook kwetsbaar kunnen zijn: wanneer ETH in een enkele dag met bijna 50% crashte, werd het systeem in gevaar gebracht. 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 Algoritmische uitgifte Beveiliging van crypto-activa Exchange rate adjustment Arbitrage uitwisseling Dynamische stabiliteitsvergoedingen Risk Doodspiraal Liquidatie van collateral Na het vergelijken van de twee soorten zekerheden, kwam ik tot de conclusie dat om de prijs te ondersteunen, het noodzakelijk is om een afzonderlijke pool met korte liquiditeit te creëren, onafhankelijk van de lange pool. Het kan als volgt werken: naast het overbrengen van liquiditeit naar de DEX, wordt liquiditeit ook toegevoegd aan het protocol specifiek voor het openen van korte posities. Vanaf daar zijn verschillende scenario’s mogelijk: 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. Om het herbalansalgoritme te laten functioneren, is het volgende vereist: Definieer welk percentage van de prijsverandering over een bepaalde periode wordt beschouwd als een "abnormale" marktschommeling; het opzetten van een continue prijsmonitoring; Wanneer aan de gespecificeerde voorwaarden is voldaan, herbalans uitvoeren, de grootte beperken tot een enkele cyclus tot een bepaald percentage om het systeem te beschermen tegen manipulatie. In dit artikel zal ik nader kijken naar een van de belangrijkste componenten van dit mechanisme - het creëren van een korte liquiditeitspool voor EVM-compatibele blockchains met behulp van Solidity. voorbereiding Het protocol zal gebruikersfondsen verwerken, we zullen OpenZeppelin's importeren en contracten, evenals een contract voor het ophalen van activaprijzen van Chainlink. Ownable ReentrancyGuard Voor eenvoud zullen we WBTC- en WETH-tokens gebruiken op het Ethereum Mainnet, hoewel idealiter de lijst met beschikbare tokens moet worden gedefinieerd bij het implementeren van het slimme contract. Om het contract langer uit te breiden, voegen we een voor ondersteunde tokens, waarbij de sleutel het adres van de token is en de waarde het adres is van het overeenkomstige Chainlink-prijsfeedcontract. mapping Laten we ook een utilityfunctie implementeren om waarden toe te voegen aan de Om de beveiliging te verbeteren, zullen we voorkomen dat het Oracle-contractadres wordt bijgewerkt voor een token dat al is toegevoegd. mapping Om posities op te slaan, gebruiken we een waar de sleutel het adres van de gebruiker is en de waarde een reeks structuren is die: mapping Token adres Open- en sluitprijzen Positie grootte Huidige status (open, gesloten of gefinancierd) Een positie openen In dit protocol worden prijzen uitgedrukt in USD, dus we hebben een interne functie nodig voor normalisatie van de waarde. Om de openingsprijs in USD te verkrijgen, vragen we eerst de orakel naar de huidige ETH-prijs en de tokenprijs, normaliseren we beide waarden en berekenen we vervolgens de positiegrootte. en een evenement uitzenden met behulp van . mapping emit Een positie sluiten Om de logica voor het sluiten en liquideren van posities te verenigen, maken we een modifier die de huidige status van de positie controleert. We zullen ook een helperfunctie maken om het terugtrekkingsbedrag en de sluitingsprijs te berekenen. Vervolgens zijn er bij het sluiten van een positie twee mogelijke scenario's: 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. Als plaatshouder voor de sluitingsprijs in geval van liquidatie, de maximale De waarde kan gebruikt worden. uint256 Deze implementatie is vereenvoudigd, dus het zou beter zijn om automatisering toe te voegen met Chainlink of Gelato voor periodieke prijscontroles en automatische liquidatie indien nodig. Om dit te ondersteunen, moet de liquidatiefunctie het adres van de gebruiker accepteren als een parameter om aan te geven welke positie moet worden geëlimineerd. Conclusie In dit artikel heb ik een hypothese gedeeld over een korte liquiditeitspool en een basisimplementatie in Solidity voor de Ethereum blockchain voorgesteld. De volledige code is beschikbaar op . GitHub