Huvud » företag » Hur förhindrar en blockkedja dubbla utgifter för Bitcoins?

Hur förhindrar en blockkedja dubbla utgifter för Bitcoins?

företag : Hur förhindrar en blockkedja dubbla utgifter för Bitcoins?

En av de främsta bekymmerna för alla cryptocurrency-utvecklare är frågan om dubbla utgifter. Detta hänvisar till förekomsten av att en individ spenderar en balans på det cryptocurrency mer än en gång, vilket effektivt skapar en skillnad mellan utgifterna och mängden av den tillgängliga cryptocurrency, liksom hur det distribueras.

Frågan om dubbla utgifter är ett problem som kontanter inte har; om du betalar för en smörgås med en $ 10-räkning, som överför den räkningen till tillverkaren av smörgåsen, kan du inte vända dig och spendera samma $ 10 någon annanstans. En transaktion som använder en digital valuta som bitcoin sker dock helt digitalt. Detta innebär att det är möjligt att kopiera transaktionsinformationen och sända den igen så att samma BTC kan tillbringas flera gånger av en enda ägare. Nedan undersöker vi hur cryptocurrency-utvecklare har försäkrat att dubbla utgifter inte kan hända.

Key Takeaways

  • En teknisk fråga som uppstår med uppfattningen om en digital valuta är någon förmåga att kopiera de digitala pengarna och spendera dem samtidigt på två eller flera platser.
  • Detta problem med "dubbel spendera" förhindras i blockchain-baserade kryptokurser som Bitcoin genom att använda en konsensusmekanism som kallas proof-of-work (PoW).
  • Denna PoW genomförs av ett decentraliserat nätverk av "gruvarbetare" som inte bara säkerställer trovärdigheten i de tidigare transaktionerna i blockchains huvudbok utan också upptäcker och förhindrar dubbelutgifter.

Förstå blockchainen

Blockchain som undergirds en digital valuta som bitcoin kan inte förhindra dubbelutgifter på egen hand. Snarare skickas alla olika transaktioner som involverar relevant cryptocurrency till blockchain, där de verifieras separat och skyddas av en bekräftelseprocess. När det gäller bitcoin och många andra kryptokurser, blir transaktioner som har bekräftats på detta sätt irreversibla; de publiceras offentligt och upprätthålls i evighet.

Bitcoin var den första stora digitala valutan som löste frågan om dubbla utgifter. Det gjorde det genom att implementera denna bekräftelsesmekanism och upprätthålla ett gemensamt, universellt huvudbokssystem. På detta sätt behåller bitcoin blockchain register över tidsstämplade transaktioner som gick tillbaka till grundandet av cryptocurrency 2009.

I Bitcoin-termer är ett "block" en fil med permanent inspelade data. Alla nyligen genomförda transaktioner skrivs in i block, ungefär som en aktietransaktionsbok på en börs. Information från block läggs till i huvudboken med några minuter; alla noder i nätverket har en kopia av blockchain-boken. Användare kan navigera i blockchain för bitcoin och granska transaktioner endast med avseende på kvantitet. Detaljer om köparens och säljarens identitet i alla transaktioner skyddas av kryptering på hög nivå, vilket också skyddar boken från att manipulera av externa källor. När blockchain-boken uppdateras, så är alla bitcoin-plånböcker också.

Hantera dubbla utgifter

Föreställ dig att du har 1 BTC och du försöker spendera den två gånger i två separata transaktioner. Du kan försöka göra detta genom att skicka samma BTC till två separata bitcoin-plånbokadresser. Båda dessa transaktioner kommer sedan att gå in i poolen med obekräftade transaktioner. Den första transaktionen skulle godkännas via bekräftelsemekanismen och sedan verifieras till det efterföljande blocket. Den andra transaktionen skulle emellertid erkännas som ogiltig av bekräftelseprocessen och kommer inte att verifieras. Om båda transaktionerna dras från poolen för bekräftelse samtidigt, kommer transaktionen med det högsta antalet bekräftelser att inkluderas i blockchain, medan den andra kommer att kasseras.

Även om detta effektivt handlar om dubbla utgifter är det inte utan dess problem. Till exempel skulle den avsedda mottagaren av den andra (misslyckade) transaktionen inte ha en del i själva transaktionen, och den personen skulle ändå inte ta emot den bitcoin han eller hon hade förutspått. Många köpmän väntar på minst 6 bekräftelser av en transaktion (vilket innebär att 6 efterföljande block av transaktioner lades till blockchainen efter transaktionen i fråga). Vid denna tidpunkt kan handlaren säkert anta att transaktionen är giltig.

Det finns fortfarande andra sårbarheter i det här systemet som kan göra det möjligt att göra dubbelanvändningsattacker. Till exempel, om en angripare på något sätt kan kontrollera minst 51% av nätverkets makt, kan han eller hon begå dubbla utgifter. Om en angripare på något sätt kunde få kontroll över denna mycket beräkningskraft, kunde han eller hon vända transaktioner och skapa en separat, privat blockchain. Men den snabba tillväxten av bitcoin har praktiskt taget försäkrat att denna typ av attack är omöjlig. (För mer, se Akta dig för dessa fem Bitcoin-bedrägerier)

Proof of Work & 'Mining' förklaras

Låt oss nu bli lite mer tekniska. Det sätt som användare upptäcker manipulering, som ett försök att dubbel spendera i praktiken, är genom hash, långa strängar med nummer som fungerar som ett bevis på arbete (PoW). Sätt en given uppsättning data via en hash-funktion (bitcoin använder SHA-256), och den kommer bara någonsin att generera en hash. På grund av "lavineffekten" kommer emellertid även en liten förändring av någon del av originaluppgifterna att leda till en helt oigenkännlig hash. Oavsett storleken på den ursprungliga datauppsättningen kommer hash som genereras av en given funktion vara samma längd. Hash är en envägsfunktion: den kan inte användas för att få originaldata, bara för att kontrollera att data som genererade hash stämmer med originaldata.

Att generera bara någon hash för en uppsättning bitcoin-transaktioner skulle vara trivialt för en modern dator, så för att förvandla processen till "arbete" sätter bitcoin-nätverket en viss nivå av "svårigheter". Denna inställning justeras så att ett nytt block "bryts" - läggs till blockchainen genom att generera en giltig hash - ungefär var tionde minut. Ställa in svårigheter uppnås genom att skapa ett "mål" för hash: ju lägre målet, desto mindre är uppsättningen giltiga hash, och desto svårare är det att generera ett. I praktiken betyder detta en hash som börjar med en lång nollsträng: hash för block # 429818 är till exempel 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Det blocket innehåller 2 012 transaktioner som involverar drygt 1 000 bitcoin samt rubriken på det föregående blocket. Om en användare ändrade ett transaktionsbelopp med 0, 0001 bitcoin, skulle den resulterande hashen vara oigenkännlig och nätverket skulle avvisa bedrägeriet.

Eftersom en given uppsättning data bara kan generera en hash, hur ser gruvarbetarna till att de genererar en hash under målet? De ändrar ingången genom att lägga till ett heltal, kallat ett nonce ("antal används en gång"). När en giltig hash har hittats sänds den till nätverket och blocket läggs till blockchain.

Gruvdrift är en konkurrensprocess, men det är mer ett lotteri än ett lopp. I genomsnitt kommer någon att generera acceptabelt bevis på arbetet var tionde minut, men vem det är är någons gissning. Gruvarbetare samlas för att öka sina chanser att bryta block, vilket genererar transaktionsavgifter och, för en begränsad tid, en belöning av nyskapade bitcoins.

Bevis på arbete gör det oerhört svårt att ändra någon aspekt av blockchainen, eftersom en sådan ändring skulle kräva ombrytning av alla efterföljande block. Det gör det också svårt för en användare eller pool av användare att monopolisera nätverkets datakraft, eftersom den maskin och kraften som krävs för att slutföra hash-funktionerna är dyra.

Jämför investeringskonton Leverantörs namn Beskrivning Annonsörens upplysning × Erbjudandena som visas i denna tabell kommer från partnerskap från vilka Investopedia erhåller ersättning.
Rekommenderas
Lämna Din Kommentar