Dubbla utgifter kan urholka allt förtroende för en kryptovaluta, vilket är anledningen till att så mycket ansträngning har lagts ner på att se till att den här typen av bedrägerier inte inträffar.
Kryptovalutatransaktioner är säkra och pålitliga tack vare blockchain-teknik. Men som med de flesta innovativa system har blockkedjan exploateringsbara sårbarheter, vilket kan leda till dubbla utgifter. Men vad är dubbla utgifter och hur förhindras det?
Vad är dubbla utgifter?
Dubbla utgifter uppstår när en enda enhet spenderar samma kryptovaluta token mer än en gång. Detta orsakas av ett fel i digitala valutor som gör dem lätta att reproducera.
Informationen på blockchain-nätverket kan ändras under transaktioner, förutsatt att vissa villkor är uppfyllda. När dessa villkor är uppfyllda, ändras block av transaktioner kan gå in i blockkedjan, vilket gör att förövaren kan återförvärva tidigare använda kryptotokens.
För att bättre förstå hur detta händer finns här en förenklad processbeskrivning. När en transaktion utförs på ett blockchain-nätverk, säg Bitcoin, skapas ett block som innehåller transaktionsdata, data från föregående block och en tidsstämpel. Blocket har en krypterad kod som kallas en hash.
De människor som bryter Bitcoin på Bitcoin-nätverket verifiera sedan transaktionen via en proof-of-work konsensusalgoritm, stäng blocket och skapa ett nytt block. Det nya blocket innehåller tidsstämpeln, det föregående blockets hash och den nya transaktionsdatan. Efteråt får den segrande gruvarbetaren blockbelöningar (BTC) för att verifiera hashen.
För att framgångsrikt genomföra dubbla utgifter måste gärningsmannen bryta ett hemligt block som överskrider skapandet av det faktiska blocket. För att göra detta måste förövaren införa det hemliga blocket före det nya blocket så att nätverket, luras att tro att det är den senaste uppsättningen av det växande blocket, lägger till det falska blocket till det ständigt ökande kedja. Gärningsmannen kan sedan återta de tidigare använda kryptotoken.
Även om dubbla utgifter är ett välkänt fenomen i kryptorymden, finns det inget dokumenterat fall. Det beror på att verifiering av transaktioner är en komplex process som kräver enorm beräkningskraft. Att förfalska eller duplicera ett block är intensivt, eftersom förövarna måste arbeta före alla andra gruvarbetare i blockkedjan.
Varför är dubbla utgifter ett problem?
Dubbla utgifter är en förolämpning mot säkerheten i blockchain-nätverket. Det händer när det finns en exploateringsbar svaghet.
Dessutom ska blockchain-nätverket vara säkert och pålitligt. Om dubbla utgifter sker på ett kryptovalutanätverk skapar det misstro mot det kryptosystemet, vilket avskräcker investerare. Och så småningom kommer värdet på token att falla.
Dessutom är dubbla utgifter digital stöld. Hackaren vinner medan någon annan i nätverket, vanligtvis en handlare, förlorar. Gärningsmannen behåller ägandet av handlarens varor och kryptotoken.
Exempel på attacker med dubbla utgifter
Det finns olika former av attacker med dubbla utgifter som cyberbrottslingar använder. Här är några av dem:
51% Attack
51%-attacken är den mest diskuterade formen av dubbelutgifter. Det inträffar när en gruvarbetare (eller en grupp gruvarbetare) kontrollerar majoriteten (mer än 50 %) av den beräkningskraft som validerar transaktioner på nätverket.
När detta händer kan de diktera transaktioner, skapa nya block, ta tillbaka redan förbrukade krypto och tilldela kryptotokens. Det ger dem kraften att dubbelspendera digitala mynt.
Attacken på 51 % är mindre sannolikt att inträffa i mer etablerade kryptovalutor, som Bitcoin. Detta beror på det enorma antalet gruvarbetare på nätverket och hasningssvårigheter. Däremot kan kryptovalutor med mindre nätverk, som nya eller kluven, vara i riskzonen.
Under 2014 överskred GHash.io, en gruvpool som fungerade från 2013 till 2016, kort 51% av Bitcoins beräkningskraft på Bitcoin. Denna utveckling skapade betydande oro över nätverkets säkerhet. Sedan begränsade Gnash.io frivilligt sin beräkningskraft till 39,99 % för att återställa förtroendet för nätverket.
Finney Attack
Denna typ av attacker med dubbla utgifter populariserades och uppkallades efter Hal Finney. I en Finney-attack kräver en hackare inte 51 % av hashkraften. För att det ska bli framgångsrikt måste en handlare acceptera en overifierad transaktion från hackaren, som är en gruvarbetare.
Hackaren genererar ett block där han krediterar kryptotokens till sig själv genom att initiera en transaktion från adress X till adress Y (båda tillhör honom) utan att sända den till nätverket. Han fortsätter att göra en annan betalning med samma kryptotokens från adress X till adress Z, som tillhör en handlare.
Om handlaren accepterar de obekräftade transaktionerna utan verifiering från blockkedjan, släpper hackaren sedan blocket som inkluderar hans initiala transaktion. Nätverket ogiltigförklarar transaktionen med handlaren efter att handlaren har släppt varor eller tjänster till hackaren. Det tillåter hackern att dubbelt spendera.
Race Attack
Denna attack är lättare att genomföra än attackerna med 51 % och Finney. I en rasattack existerar ett "ras" mellan två transaktioner.
Hackaren använder olika maskiner för att skicka samma token till två handlare. Om handlaren skickar varor eller tjänster innan transaktionen har bekräftats, kommer han att upptäcka att transaktionen inte accepterades under gruvprocessen.
Hur blockchain förhindrar dubbla utgifter
Blockkedjor skyddar mot dubbla utgifter konsensusalgoritmer, Till exempel:
Proof-of-Work (PoW)
Proof-of-work är en mycket konkurrenskraftig process som kräver en enorm mängd energi. I denna konsensusmekanism använder gruvarbetare komplexa datorer för att gissa hashen av transaktionsblock.
En hash är en krypterad, unik 64-siffrig hexadecimal kod som varje transaktion har. Denna process förbrukar beräkningskraft för att bevisa äktheten av en transaktion.
När transaktionen är verifierad lägger den framgångsrika gruvarbetaren till transaktionen i decentraliserad digital reskontra. I slutet av processen får den framgångsrika gruvarbetaren blockbelöningar i den infödda digitala token.
Bitcoin, Bitcoin Cash, Litecoin, Monero och Dogecoin är populära kryptovalutor som använder denna konsensusalgoritm.
Proof-of-Stake (PoS)
I Proof-of-Stake autentiserar deltagarna i kryptonätverket blocktransaktioner och kallas validatorer. Validatorer erbjuder (eller "insatser") några av sina kryptotokens i ett smart kontrakt för att förtjäna rätten att verifiera transaktioner innan de lägger till dem i den växande blockkedjan.
Nätverket väljer en ärlig validator baserat på deras insatta tokens och insatsens varaktighet. När vinnaren har valts verifierar han transaktionen, vilket de andra validerarna bekräftar.
Precis som PoW, validerare får också en belöning i form av inkomst efter autentisering av nya transaktioner. Om nätverket upptäcker att någon validator är oärlig, förlorar de delar av eller alla sina insatta tokens som en straff.
Denna process är snabbare och kräver mindre beräkningskraft och energi än PoW. Därför kan deltagare i blockkedjan effektivt fungera som validerare.
Ethereum 2.0, Cardano, Tezos och Solana använder båda PoS.
Delegerat bevis på insats (DPoS)
Denna typ av PoS-konsensusalgoritm ger användare i blockkedjan mandat att använda sina digitala tokens för att rösta på ärliga validerare som kallas "delegater". En delegat väljs slumpmässigt för att validera nya transaktioner och lägga till dem i blockchain.
Efter betalning delar delegaten ut blockbelöningarna till de användare som röstade på dem.
Kryptovalutor som använder DPoS-algoritmen inkluderar EOS, Ark, Tron och Lisk.
Inget fall än, men dubbla utgifter är en möjlighet
Även om det inte finns några bekräftade fall, kan uppkomsten av nya och kluven krypto och nya tekniska framsteg leda till dubbla utgifter överraskningar. Därför bör du skydda dig själv genom att handla på säkra kryptovalutablockkedjor. Och som regel, vänta på att gruvarbetare bekräftar transaktioner innan du släpper dina tokens, varor eller tjänster.