Smarta blockkedjekontrakt med Solidity · Lektion

AMM:er och likviditetspooler

Förstå hur Automated Market Makers (AMM:er) som Uniswap fungerar och hur likviditetspooler möjliggör decentraliserad handel.

Lektion 1 av 412 steg

AMM:er och likviditetspooler är en gratis lektion i Smarta blockkedjekontrakt med Solidity på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Smarta blockkedjekontrakt med Solidity, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Välkommen till AMM:er

Decentraliserad finans (DeFi) har revolutionerat hur vi handlar med tillgångar. I centrum står Automated Market Makers (AMM:er).

AMM:er driver decentraliserade börser (DEX:er) som Uniswap och gör det möjligt för användare att växla token utan traditionella köpare och säljare.

I stället för att matcha order använder AMM:er matematiska formler och likviditetspooler.

Orderböcker jämfört med AMM:er

Traditionella börser använder orderböcker, där köpare och säljare anger sina önskade priser. Affärer genomförs endast när köp- och säljpriser matchar.

  • Orderböcker: Centraliserade, kräver matchning av order och kan drabbas av låg likviditet.
  • AMM:er: Decentraliserade, använder likviditetspooler och erbjuder alltid ett pris som bestäms av en formel.

AMM:er löser likviditetsproblemet för många tokenpar på en blockkedja genom att alltid tillhandahålla en marknad.

Likviditetspoolernas kraft

En AMM:s grund är likviditetspoolen. Det är en samling av två eller fler token som är låsta i ett smart kontrakt.

En vanlig pool kan till exempel innehålla ETH och en stablecoin som DAI. Användare kan växla mellan dessa token direkt från poolen.

Poolerna finansieras av personer som kallas Liquidity Providers (LP:er).

Möt konstantproduktformeln

De flesta AMM:er, till exempel Uniswap, använder konstantproduktformeln: x * y = k.

  • x är mängden av den första token.
  • y är mängden av den andra token.
  • k är en konstant produkt som måste förbli oförändrad efter en affär.

När du växlar token förändras mängderna av x och y, men deras produkt k förblir densamma och bestämmer den nya prisrelationen.

Så blir du en LP

Liquidity Providers (LP:er) sätter in lika stora värden av två token i en likviditetspool. Till exempel ETH värd 1 000 dollar och DAI värd 1 000 dollar.

I gengäld får LP:erna Liquidity Pool-token (LP-token). Dessa token representerar deras andel av poolen.

LP-token kan senare lösas in för att ta ut den ursprungliga insättningen samt eventuella ackumulerade avgifter.

Lägga till likviditet i praktiken

När en LP lägger till likviditet ökar den den totala mängden x och y i poolen, vilket också ökar konstanten k.

Det smarta AMM-kontraktet ser till att token läggs till i rätt förhållande för att bevara poolens balans och förhindra omedelbara prisförändringar.

Den här processen gör poolen djupare, vilket möjliggör större affärer med mindre prispåverkan.

Växla token

När en användare vill växla Token A mot Token B skickar användaren Token A till likviditetspoolen.

AMM:ens smarta kontrakt beräknar sedan hur mycket Token B som ska lämnas tillbaka, baserat på formeln x * y = k.

Poolens balans förändras och tokenpriset justeras automatiskt enligt formeln.

Kodexempel: Simulera en växling

Vi ska titta på ett förenklat Solidity-kontrakt som simulerar hur en AMM kan genomföra en växling med hjälp av konstantproduktformeln.

Exemplet visar den centrala beräkningen och uppdateringen av reserverna.

pragma solidity ^0.8.0;

contract SimpleAmmSwap {
    uint public tokenXReserve = 1000 * 10**18; // 1000 tokens (e.g., ETH) with 18 decimals
    uint public tokenYReserve = 1000 * 10**18; // 1000 tokens (e.g., DAI) with 18 decimals
    uint public k = tokenXReserve * tokenYReserve;

    // Simulate a swap from Token X to Token Y
    // For simplicity, no actual token transfers, just reserve updates.
    function swapXForY(uint amountInX) public returns (uint amountOutY) {
        require(amountInX > 0, "Amount in must be positive");
        
        // Calculate new reserves and output amount
        uint newXReserve = tokenXReserve + amountInX;
        uint newYReserve = k / newXReserve;
        amountOutY = tokenYReserve - newYReserve;

        require(amountOutY > 0, "Not enough liquidity for swap");

        // Update reserves
        tokenXReserve = newXReserve;
        tokenYReserve = newYReserve;

        // Note: In a real AMM, actual token transfers would occur here.
    }

    // A getter to check current reserves
    function getReserves() public view returns (uint, uint) {
        return (tokenXReserve, tokenYReserve);
    }
}

Förstå impermanent loss

En stor risk för LP:er är impermanent loss. Det inträffar när priset på tillgångarna i likviditetspoolen förändras jämfört med priset när du satte in dem.

Om prisrelationen avviker kraftigt kan värdet på dina token när du tar ut dem ur poolen vara lägre än om du helt enkelt hade behållit dem utanför poolen.

Det kallas "impermanent" eftersom förlusten blir permanent först om du tar ut din likviditet innan priserna återgår till sin ursprungliga relation.

LP-avgifter och belöningar

Trots impermanent loss motiveras LP:er av att få en andel av de handelsavgifter som poolen genererar.

Varje gång en affär genomförs läggs en liten procentandel (till exempel 0,3 %) av det växlade beloppet till likviditetspoolen.

Dessa avgifter ackumuleras i poolen och fördelas proportionellt till LP:erna när de tar ut sin likviditet, som kompensation för att de tillhandahåller kapital och tar risken för impermanent loss.

Snabbkontroll: Grunderna i AMM:er

Testa dina kunskaper om Automated Market Makers och likviditetspooler.

Sammanfattning: AMM:er och likviditetspooler

Vi har utforskat hur Automated Market Makers (AMM:er) möjliggör decentraliserad handel genom att använda likviditetspooler i stället för traditionella orderböcker.

Viktiga slutsatser:

  • AMM:er använder formler som x * y = k för att bestämma priser.
  • Liquidity Providers (LP:er) finansierar pooler och tjänar handelsavgifter.
  • Impermanent loss är en risk för LP:er på grund av prisavvikelser.

Att förstå dessa begrepp är viktigt för att kunna navigera i DeFi-landskapet!

Gratis att börja

Lär dig Smarta blockkedjekontrakt med Solidity med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”AMM:er och likviditetspooler” gratis?

Ja – hela texten till ”AMM:er och likviditetspooler” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Smarta blockkedjekontrakt med Solidity, kan Ni uppgradera till CoddyKit PRO. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Vad lär jag mig i ”AMM:er och likviditetspooler”?

Förstå hur Automated Market Makers (AMM:er) som Uniswap fungerar och hur likviditetspooler möjliggör decentraliserad handel. Ni övar på Smarta blockkedjekontrakt med Solidity med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Smarta blockkedjekontrakt med Solidity?

Du behöver inga förkunskaper. Utbildningen i Smarta blockkedjekontrakt med Solidity på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”AMM:er och likviditetspooler”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Smarta blockkedjekontrakt med Solidity-lektionen?

Ja. Varje Smarta blockkedjekontrakt med Solidity-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. AMM:er och likviditetspooler
  2. Protokoll för utlåning och upplåning
  3. Flashlån och arbitrage
  4. Yield farming och staking-belöningar
← Tillbaka till Smarta blockkedjekontrakt med Solidity