FÖRKLARING AV TOKENGODKÄNNANDEN
Lär dig vad tokengodkännanden (allowances) är, deras syfte i decentraliserade applikationer och hur de kan missbrukas av illvilliga aktörer.
Vad är tokengodkännanden?
Tokengodkännanden, även kända som tokenallowances, hänvisar till en tillståndsmekanism inom Ethereums ekosystem och andra blockkedjenätverk som följer liknande arkitektur, såsom Binance Smart Chain eller Polygon. Denna funktion gör det möjligt för decentraliserade applikationer (DApps) att interagera med en användares tokens utan att användaren behöver godkänna varje transaktion individuellt.
I grund och botten implementeras tokengodkännanden genom ERC-20-standarden, som styr utbytbara tokens. När en användare vill interagera med ett smart kontrakt – till exempel att utföra ett tokenbyte, sätta in tillgångar i en yield farming-pool eller tillhandahålla likviditet – måste de ge det smarta kontraktet tillstånd att flytta en viss mängd av sina tokens. Detta är avgörande eftersom det gör det möjligt för icke-förvaringsprotokoll att fungera autonomt samtidigt som det kräver uttryckligt samtycke från användaren.
Hur tokengodkännanden fungerar
Här är en grundläggande beskrivning av hur tokentillstånd fungerar:
- En användare äger token A i sin plånbok.
- De vill använda en DApp (t.ex. en decentraliserad börs som Uniswap) som kräver token A för en specifik transaktion.
- Innan transaktionen slutförs kommer DAppen att be användaren att godkänna ett tillåtelse. Detta anropar funktionen
approve()på tokenens smarta kontrakt. - Genom denna funktion tillåter användaren DAppens smarta kontrakt att spendera en viss mängd token A för deras räkning.
Godkännanden är viktiga eftersom Ethereum-plånböcker och blockchain-protokoll är utformade för att skydda användarnas tillgångar. Utan godkännanden skulle varje tokenförflyttning behöva signeras och auktoriseras manuellt av användaren, vilket gör användarupplevelsen mycket besvärlig, särskilt i komplexa operationer som involverar flera transaktioner.
Permanenta godkännanden
Det är viktigt att notera att tokengodkännanden kvarstår i kedjan tills de återkallas. När ett smart kontrakt har auktoriserats kan det komma åt de beviljade tokenen när som helst, utan ytterligare användarbekräftelse – upp till den godkända gränsen. Vissa protokoll begär "oändliga godkännanden" för enkelhetens skull, vilket gör att det smarta kontraktet kan fungera utan framtida godkännandetransaktioner. Även om det är användarvänligt, introducerar denna metod potentiella risker om det smarta kontraktet komprometteras.
Viktig terminologi
- Tillstånd: Den specifika mängden tokens som ett smart kontrakt tillåts spendera.
- approve(): Funktionen som anger en tillåtelse i det smarta kontraktet.
- transferFrom(): Funktionen som används av det auktoriserade kontraktet för att flytta användartokens inom tillåtelsegränsen.
Att förstå dessa kärnmekanismer är avgörande för användare som navigerar i decentraliserad finans (DeFi) och andra blockkedjebaserade applikationer, eftersom det är en grundläggande aspekt av säkra och effektiva interaktioner inom ekosystemet.
Varför tokentillstånd är nödvändiga
Tokengodkännanden finns för att ge decentraliserade applikationer (DApps) säker, begränsad åtkomst till en användares tillgångar. I en decentraliserad miljö där ingen central auktoritet finns för att förmedla transaktioner, förlitar sig smarta kontrakt på konceptet med tokentillstånd för att utföra viktiga funktioner samtidigt som användarnas autonomi bevaras. Detta avsnitt utforskar anledningarna till att tokengodkännanden är oumbärliga för blockkedjeekosystemet.
1. Möjliggöra icke-förvaringsrelaterade interaktioner
Ett av kännetecknen för blockkedjeinnovation är möjligheten att behålla kontrollen över tillgångar utan mellanhänder. DApps fungerar utan banker eller mäklare, men de behöver fortfarande ett sätt att utföra tokenrelaterade transaktioner för användarens räkning. Tokentillstånd gör det möjligt för automatiserade protokoll att tillfälligt fungera med delegerad auktoritet, utan att ta hand om användarens tokens.
2. Förbättrad användarupplevelse
Utan tokengodkännanden skulle varje interaktion som involverar tokenöverföringar kräva att användaren manuellt bekräftar och signerar varje transaktion. Till exempel, i ett avkastningsodlingsprotokoll där frekventa återinvesteringar sker, skulle detta bli tråkigt och opraktiskt. Godkännanden effektiviserar dessa operationer genom att ge fördefinierade behörigheter, vilket förbättrar effektiviteten samtidigt som transparensen bibehålls.
3. Stöd för komplexa flerstegsprotokoll
Moderna DApps engagerar sig ofta i flerstegstransaktioner, såsom att byta tokenpar, tillhandahålla likviditet eller interagera med derivat. Var och en av dessa steg kan kräva separata tokenöverföringar. Tokengodkännanden gör det möjligt för smarta kontrakt att batcha eller automatisera dessa sekvenser, vilket gör att tjänster som flashlån, cross-chain-bryggor och staking NFT:er kan fungera effektivt.
4. Optimera gaskostnader
Att godkänna ett kontrakt endast en gång för ett obegränsat belopp kan spara på gasavgifter, vilka är särskilt viktiga under perioder med nätverksöverbelastning. Upprepade godkännanden för varje enskild transaktion skulle driva upp kostnaderna och potentiellt avskräcka deltagande i DeFi.
5. Tillståndsbaserad säkerhetsmodell
Godkännanden representerar en detaljerad behörighetsnivå som överensstämmer med principerna för säkerhetsmodeller med minsta behörighet. Användare bestämmer vem som kan komma åt deras tokens och hur mycket de kan komma åt. Denna opt-in-karaktär säkerställer att även när de interagerar med DApps har användarna kontrollen.
6. Kompatibilitet mellan applikationer
Tokentillstånd standardiseras genom ERC-20 och dess derivat, vilket gör dem allmänt kompatibla över Ethereum Virtual Machine (EVM)-ekosystemet. Denna enhetlighet gör det möjligt att använda tokens sömlöst över decentraliserade börser, utlåningsprotokoll, spelplattformar och betalningsportaler.
7. Programmatiska integrationer
För utvecklare är tokengodkännanden också avgörande. De möjliggör programmatisk åtkomst till tokens inifrån smarta kontrakt, vilket automatiserar åtgärder som likvidationer på lånemarknader eller transaktionsavvecklingar i decentraliserade betalningssystem.
I slutändan är tokengodkännanden ryggraden i tillåten åtkomst i DeFi. Utan dem skulle varje decentraliserad applikation kräva fullständig förvaring av användarnas medel – vilket skulle motverka syftet med decentralisering. De hjälper till att bevara tillitslös interaktion samtidigt som de uppfyller de praktiska behoven inom digital finans.
Hur tokengodkännanden missbrukas
Medan tokengodkännanden fyller en viktig teknisk och funktionell roll i decentraliserade applikationer, öppnar de också dörren för potentiellt missbruk och utnyttjande. Eftersom behörigheter kan finnas kvar på kedjan på obestämd tid och underlätta automatiserad åtkomst till användarnas medel, letar illvilliga aktörer ofta efter sätt att missbruka tokentilldelningar. Detta avsnitt utforskar de primära sätten på vilka tokengodkännanden kan utnyttjas och vad användare kan göra för att skydda sig.
1. Oändliga godkännanden och överexponering
Många DApps begär oändliga eller mycket höga tokentilldelningar som en bekvämlighetsfunktion för att undvika upprepade godkännanden. Tyvärr lämnar detta användare exponerade. Om det smarta kontraktet någonsin komprometteras – till exempel genom en programvarusårbarhet eller en styrningsattack – kan angripare dränera alla godkända tokens från användarplånböcker. Även om tokens förblir i användarens kontroll på kedjan, bryter denna övertilldelning effektivt principen om minsta behörighet.
2. Skadliga smarta kontrakt
Bedragare använder ofta skadliga smarta kontrakt som framstår som legitima DApps eller NFT-droppar. När en användare godkänner tokenåtkomst för ett sådant kontrakt kan det programmeras att stjäla pengar omedelbart eller vid ett framtida datum. Dessa godkännanden är inte i sig reversibla av smarta kontrakt eller plånboksappar; återkallelse måste göras manuellt av användaren eller via en tokengodkännandehanterare.
3. Nätfiske via smarta kontraktsgränssnitt
En annan vanlig vektor är nätfiskewebbplatser som härmar välkända protokoll. Användare interagerar omedvetet med falska gränssnitt, vilket uppmanar dem att godkänna tokenåtkomst till bedrägliga adresser. Dessa kan resultera i omedelbar tillgångsstöld eller fördröjda attacker som utlöses när ett fördefinierat villkor är uppfyllt.
4. Utnyttjbara buggar i protokoll
När välrenommerade DApps utnyttjas via sårbarheter kan angripare utnyttja befintliga tokentilldelningar för att tömma användarnas pengar. I DeFi-historien har exempel som bZx-exploiten och BadgerDAO-hacket utmärkt sig eftersom användare som hade beviljat värdefulla allowances led betydande förluster, trots att de aldrig genomförde omedelbara transaktioner vid tidpunkten för attacken.
5. Vilande godkännanden
Många användare glömmer att återkalla allowances efter att ha interagerat med en DApp – även om de aldrig tänker använda den igen. Dessa vilande godkännanden finns kvar i kedjan och kan utnyttjas mycket senare om de tillhörande smarta kontrakten blir sårbara. Regelbunden granskning och återkallelse av onödiga godkännanden är avgörande för långsiktig säkerhet.
6. Godkännanden med frontrunning och Race-villkor
Även om det är sällsynt, involverar vissa exploateringar frontrunning-tokengodkännanden. En angripare kan övervaka mempoolen (där väntande transaktioner är synliga) och försöka utnyttja transaktionsbeställning för att fånga upp eller kapitalisera på tokengodkännanden innan användarna inser det. Skadliga robotar kan också försöka sig på kapplöpningsförhållanden, även om de flesta plånböcker nu varierar med nonce-villkor och erbjuder skydd mot dessa edge-fall.
7. Tillståndens oåterkallelig natur
Till skillnad från traditionella finansiella system där behörigheter kan återkallas efter bankens gottfinnande kräver blockkedjegodkännanden att användaren vidtar proaktiva åtgärder för att ta bort eller justera tillåtna behörigheter. Om inte en användare interagerar med plattformar som Revoke.cash eller Etherscans godkännandekontroll kan de förbli omedvetna om utestående behörigheter som utgör säkerhetshot.
Bästa säkerhetspraxis
För att minska dessa risker bör användare överväga följande försiktighetsåtgärder:
- Interagera endast med verifierade DApps och officiella URL:er.
- Bevilja begränsade eller specifika tokentillstånd när det är möjligt.
- Använd verktyg för tokengodkännande för att övervaka och återkalla befintliga behörigheter.
- Var försiktig med DApps som begär oändliga godkännanden.
- Granska regelbundet plånboksaktivitet för oanvända eller övergivna applikationer.
Medan den decentraliserade karaktären av Blockkedjan ger användarna möjlighet, men kräver också större individuellt ansvar. Att upprätthålla en ren uttagshistorik är en viktig del av säker förvaltning av kryptotillgångar.