Forklaring af dobbeltforbrug
Hjem
Artikler
Forklaring af dobbeltforbrug

Forklaring af dobbeltforbrug

Let √łvet
Offentliggjort Feb 17, 2020Opdateret Jan 31, 2023
7m

Hvad er et dobbeltforbrug?

Dobbeltforbrug er et potentielt problem i et digitalt kontantsystem, hvor de samme midler sendes til to modtagere p√• samme tid. Uden passende modforanstaltninger undermineres en protokol, der ikke l√łser problemet, grundl√¶ggende ‚Äď brugerne har ingen m√•de til at verificere, at de midler, de har modtaget, ikke allerede er brugt andre steder.

N√•r det drejer sig om digitale kontanter, er det af afg√łrende betydning at sikre, at specifikke enheder ikke kan duplikeres. Hele systemet ville blive undermineret, hvis Alice kunne modtage 10 enheder, kopiere og inds√¶tte dem 10 gange og finde sig selv i besiddelse af 100 enheder. P√• samme m√•de kan en s√•dan ordning ikke fungere, hvis hun kan sende de samme 10 enheder til b√•de Bob og Carol samtidigt. S√• for at digitale penge skal fungere, skal der v√¶re mekanismer p√• plads for at forhindre denne adf√¶rd.


Hvordan kan dobbeltforbrug forhindres?

Den centraliserede tilgang

Den centraliserede rute er betydeligt lettere at implementere end decentrale alternativer. Dette indeb√¶rer typisk, at en tilsynsmand styrer systemet og kontrollerer udstedelsen og distributionen af enheder. Et godt eksempel p√• en centraliseret l√łsning p√• problemet med dobbeltforbrug er David Chaums eCash.¬†

For at give brugere et digitalt aktiv, der efterligner kontanter (med mulighed for anonym og peer-to-peer-veksling), kan en bank bruge blinde signaturer ‚Äď som beskrevet af kryptograf David Chaum i hans afhandling fra 1982 Blind Signatures for Untraceable Payments.

I en s√•dan sammenh√¶ng, hvis en bruger (lad os kalde ham Dan) √łnsker at modtage 100 USD i digitale kontanter, er han forpligtet til at informere banken f√łrst. Forudsat at han har saldoen p√• sin konto, genererer han derefter et tilf√¶ldigt tal (eller mange for mindre p√•lydende v√¶rdier). Lad os antage, at han producerer fem tal, der hver skal tildeles en v√¶rdi p√• 20 USD. For at forhindre banken i at spore specifikke enheder tilsl√łrer Dan de tilf√¶ldige tal ved at f√łje en¬†bl√¶ndende faktor¬†til hver enkelt af dem.

Han overdrager derefter disse data til banken, som debiterer hans konto for 100 USD, og underskriver meddelelser, der bekr√¶fter, at hver af de fem oplysninger kan indl√łses for 20 USD. Dan kan nu bruge de midler, som banken har udstedt. Han g√•r til Erins restaurant og k√łber et m√•ltid, der koster ham 40 USD.¬†

Dan kan fjerne bl√¶ndingsfaktoren for at afsl√łre det tilf√¶ldige tal, der er knyttet til hver digital kontant "seddel", som fungerer som en unik identifikator for hver enhed (ligesom et serienummer). Han afsl√łrer to af disse for Erin, som nu straks skal indl√łse dem i banken for at forhindre Dan i at bruge dem hos en anden handlende. Banken vil kontrollere, at underskrifterne er gyldige, og hvis alt ser ud til at v√¶re korrekt, krediterer den Erins konto med 40 USD.

De anvendte sedler er nu i bund og grund br√¶ndt, og der skal udstedes flere, hvis Erin √łnsker at bruge sin nye saldo p√• samme m√•de.

Chaumian eCash-ops√¶tningen kan v√¶re v√¶rdifuld til private overf√łrsler. Men den fejler i modstandsdygtighed, fordi banken er et centralt punkt for fiasko. En udstedt seddel er intet v√¶rd i sig selv, da dens v√¶rdi udelukkende stammer fra bankens vilje til at veksle den til USD. Kunderne er prisgivet banken og m√• stole p√• dens velvilje, for at pengene kan fungere. Dette er netop det problem, som kryptovaluta har til form√•l at afhj√¶lpe.


Den decentraliserede tilgang

Det er mere udfordrende at sikre, at midler ikke kan dobbeltforbruges i et √łkosystem uden tilsyn. Lige magtfulde deltagere skal koordinere omkring et s√¶t regler, der forhindrer svig og tilskynder alle brugere til at handle √¶rligt.

Den st√łrste innovation, der blev pr√¶senteret i Bitcoin-hvidbogen, var en l√łsning p√• problemet med dobbeltforbrug. Selvom der ikke henvises til den som s√•dan, foreslog Satoshi datastrukturen, der nu er almindeligt kendt som en blockchain.

En blockchain er egentlig bare en database med nogle unikke egenskaber. Deltagere p√• netv√¶rket (kaldet noder) k√łrer specialiseret software, som g√łr det muligt for dem at synkronisere deres kopi af databasen med de andre deltagere. Resultatet er, at hele netv√¶rket kan revidere historikken over transaktioner, der g√•r tilbage til genesis-blokken. Ved at have blockchainen offentligt synlig er det let at opdage og forhindre svigagtig aktivitet, s√•som transaktioner, der fors√łger at dobbeltforbruge.

N√•r en bruger sender en transaktion, f√łjes den ikke straks til blockchainen ‚Äď den skal f√łrst inkluderes i en blok gennem mining. Som s√•dan b√łr modtageren kun betragte transaktionen som gyldig, efter at blokken er f√łjet til k√¶den. I modsat fald risikerer vedkommende at miste midlerne, da afsenderen kunne bruge de samme coins andre steder.¬†

N√•r transaktionen er verificeret, kan coins ikke dobbeltforbruges, da ejerskabet tildeles en ny bruger ‚Äď og hele netv√¶rket kan bekr√¶fte dette. Det er af denne grund, at mange anbefaler, at man venter p√• flere bekr√¶ftelser, f√łr man accepterer en betaling som gyldig. Hver efterf√łlgende blok √łger drastisk den indsats, der kr√¶ves for at √¶ndre eller omskrive k√¶den (hvilket kan forekomme under et 51 %-angreb).

Lad os vende tilbage til restaurantscenariet. Dan vender tilbage til restauranten, og denne gang bem√¶rker han et skilt i vinduet, der siger, at bitcoin accepteres her. Han n√łd det m√•ltid, han fik sidste gang, s√• han bestiller det igen. Det koster ham 0,005 BTC.¬†

Erin præsenterer ham for en public address, som han skal sende midlerne til. Dan sender transaktionen, som i bund og grund er en underskrevet besked om, at de 0,005 BTC, der var i Dans besiddelse, nu er i Erins besiddelse. Uden at gå for meget i detaljer kan enhver, der præsenteres for Dans underskrevne transaktion, verificere, at han faktisk var i besiddelse af coinsene og derfor havde myndighed til at sende dem.

Som n√¶vnt er transaktionen dog kun gyldig, hvis den er inkluderet i en blok, der bliver bekr√¶ftet. At acceptere ubekr√¶ftede transaktioner er meget som at acceptere de 40 USD i eCash fra det foreg√•ende eksempel uden straks at indl√łse dem med banken ‚Äď det giver afsenderen mulighed for at bruge dem andre steder. S√• det anbefales, at Erin venter p√• mindst 6 blokbekr√¶ftelser (ca. en time), f√łr hun accepterer Dans betaling.


Dobbeltforbrug i Bitcoin

Bitcoin er omhyggeligt designet til at forhindre angreb med dobbeltforbrug ‚Äď i det mindste, n√•r protokollen bruges som det forventes. Det vil sige, hvis enkeltpersoner venter p√•, at transaktioner bliver bekr√¶ftet i en blok, s√• er der ingen nem m√•de for afsenderen at fortryde det. For at g√łre det skulle de "vende" blockchainen, hvilket kr√¶ver en urealistisk m√¶ngde hashing-kraft.

Der er dog en h√•ndfuld dobbeltforbrugsangreb, der er rettet mod parter, der accepterer ubekr√¶ftede transaktioner. For k√łb af lav v√¶rdi vil en handlende f.eks. muligvis ikke vente p√•, at transaktioner inkluderes i en blok. En travl fastfood-restaurant har sandsynligvis ikke r√•d til at vente p√•, at netv√¶rket behandler hvert k√łb. S√• hvis en virksomhed muligg√łr "√łjeblikkelige" betalinger, blotter de sig for dobbeltforbrug. Nogen kan bestille en burger, betale for den og derefter straks sende de samme midler til deres egen adresse. Med et h√łjere gebyr vil denne nye transaktion sandsynligvis blive bekr√¶ftet f√łrst og vil derfor ugyldigg√łre den forrige.

Der er tre popul√¶re metoder til at udf√łre et dobbeltforbrug:

  • 51 %-angreb: N√•r en enkelt enhed eller organisation form√•r at kontrollere mere end 50 % af hashraten, hvilket giver dem mulighed for at ekskludere eller √¶ndre r√¶kkef√łlgen af transaktioner. Et s√•dant angreb er meget usandsynligt p√• Bitcoin, men er sket p√• andre netv√¶rk.

  • Race-angreb: To modstridende transaktioner udsendes efter hinanden ved hj√¶lp af de samme midler ‚Äď men kun √©n transaktion bliver bekr√¶ftet. Angriberens m√•l er at ugyldigg√łre betalingen ved kun at validere den transaktion, der gavner vedkommende (f.eks. sende de samme midler til en adresse, som denne kontrollerer). Race-angreb kr√¶ver, at modtageren accepterer en ubekr√¶ftet transaktion som betaling.

  • Finney-angreb: En angriber pr√¶-miner en transaktion i en blok uden at sende den til netv√¶rket med det samme. I stedet bruger vedkommende de samme coins i en anden transaktion og sender f√łrst derefter sin tidligere minede blok, hvilket kan ugyldigg√łre betalingen. Finney-angreb kr√¶ver, at der opst√•r en bestemt r√¶kke begivenheder, og er ogs√• betinget af modtagerens accept af ubekr√¶ftede transaktioner.

Som vi kan se, vil en handlende, der venter p√• blokbekr√¶ftelser, i h√łj grad reducere risikoen for at blive offer for dobbeltforbrug.


Sammenfatning

Et dobbeltforbrug giver en bruger mulighed for at narre et elektronisk kontantsystem til √łkonomisk gevinst ved at g√łre brug af de samme midler mere end √©n gang. Traditionelt har mangel p√• passende l√łsninger p√• problemet st√•et i vejen for fremskridt p√• omr√•det.

Heldigvis foreslog brugen af blinde underskrifter imidlertid en interessant l√łsning for centraliserede finansielle ordninger. Senere blev bitcoin skabt som en kraftfuld form for decentraliserede penge med oprettelsen af Proof of Work-mekanismer og blockchain-teknologien ‚Äď hvilket igen inspirerede tusindvis af andre kryptovaluta-projekter.

Del opslag
Registrer en konto
Omsæt din viden til praksis ved at åbne en Binance-konto i dag.