[ANNOUNCE] implementering af hash kontant porto
Datoen er den 28. marts 1997, hvor de omkring 2.000 abonnenter på Cypherpunks-postlisten modtager en e-mail med ovenstående overskrift i deres indbakke. Afsenderen er en 26-årig britisk postdoc ved University of Exeter, en ung kryptograf og produktiv bidragyder til postlisten ved navn Dr. Adam Back. E-mailen indeholder en beskrivelse og tidlig implementering af det, han beskriver som en “delvis hash-kollisionsbaseret portoskema” – en slags frimærkeækvivalent for e-mails, baseret på et smukt kryptografisk trick.
“Ideen med at bruge delvise hash er, at de kan gøres vilkårligt dyre at beregne,” skrev Back og forklarede fordelene ved sit system, “og alligevel kan bekræftes med det samme.”
Dette forslag fra kryptografen, som fortsætter med at blive den nuværende Blockstream CEO fik ikke straks megen opmærksomhed på e-mail-listen; kun en læser svarede, med en teknisk forespørgsel om den valgte hashingalgoritme. Alligevel ligger teknologien bag Hashcash – bevis for arbejde – ville forme forskning i digitale penge i mere end et årti fremover.
“Priser via behandling eller bekæmpelse af uønsket post”
Back’s Hashcash var faktisk ikke den første løsning af sin art.
I begyndelsen af 1990’erne var internettets løfte og især fordelene ved et elektronisk postsystem blevet indlysende for teknikere, der var opmærksomme. Alligevel blev dagens internetpionerer klar over, at e-mail, som dette elektroniske postsystem blev kaldt, udgjorde sine egne udfordringer.
”Især de lette og lave omkostninger ved at sende elektronisk post og især enkelheden ved at sende den samme besked til mange parter, alt sammen undtagen misbrug,” forklarede IBM-forskere Dr. Cynthia Dwork og Dr. Moni Naor i deres hvid 1992 papir med navnet “Priser via behandling eller bekæmpelse af uønsket post.”
Efterhånden som e-mail steg i popularitet, steg spam også.
En løsning var nødvendig, tidlige internetbrugere var enige om – og en løsning er, hvad Dwork og Naors papir tilbød.
Duoen foreslog et system, hvor afsendere skulle vedhæfte nogle data til enhver e-mail, de sendte. Disse data vil være løsningen på et matematisk problem, der er unikt for den pågældende e-mail. Specifikt foreslog Dwork og Naor tre kandidatpuslespil, der kunne bruges til formålet, alle baseret på kryptografi og signaturordninger med offentlig nøgle.
Det ville ikke være for svært at tilføje en løsning til en e-mail, idet det ideelt set kun krævede et par sekunders processorkraft fra en almindelig computer, mens dens gyldighed let kunne kontrolleres af modtageren. Men, og dette er tricket, selv en triviel mængde processorkraft pr. E-mail tilføjer annoncører, svindlere og hackere, der prøver at sende tusinder eller endda millioner af meddelelser på én gang. Spamming, så var teorien, kunne gøres dyrt og derfor urentabel.
“Hovedidéen er at kræve, at en bruger beregner en moderat hård, men ikke uigennemtrængelig funktion for at få adgang til ressourcen og dermed forhindre useriøs brug,” forklarede Dwork og Naor.
Mens Dwork og Naor ikke foreslog udtrykket, ville den type løsning, de introducerede, blive kendt som et “proof of work” -system. Brugere skulle bogstaveligt talt vise, at deres computer udførte arbejde for at bevise, at de brugte ressourcer i den virkelige verden.
En smidig løsning, men måske for langt forud for sin tid. Forslaget gjorde det aldrig meget langt ud over en relativt lille kreds af dataloger.
Adam Back and the Cypherpunks
Omkring samme tid som Dwork og Naor offentliggjorde deres hvidbog, kom en gruppe privatlivsaktivister med en libertarisk bøjning også til at erkende Internets enorme potentiale. Den ideologisk drevne skare begyndte at organisere sig gennem en mailingliste centreret omkring fortrolighedsfremmende teknologier. Ligesom Dwork og Naor benyttede disse “Cypherpunks” – som de ville blive kaldt – den relativt nye videnskab om kryptografi til at arbejde hen imod deres mål.
I årenes løb har Adam Back – som fik sin ph.d. i 1996 – etablerede sig som en af de mere aktive deltagere på denne liste og bidrog til tider med snesevis af e-mails på en enkelt måned. Som de fleste Cypherpunks var kryptografen lidenskabelig med emner, herunder privatliv, fri tale og libertarianisme, og engageret i tekniske diskussioner vedrørende til anonyme remailere, krypterede filsystemer, elektroniske kontanter som introduceret af Dr. David Chaum og mere.
Men i et stykke tid var Back måske bedst kendt for at udskrive og sælge “ammunition” -skjorter: T-shirts med en krypteringsprotokol trykt på dem, der skulle hjælpe med at påpege den absurde beslutning fra den amerikanske regering om at regulere Phil Zimmermanns PGP (Pretty Good) Privacy) krypteringsprogram som “ammunition” inden for definitionen af de amerikanske eksportbestemmelser. At bære Back’s skjorte, mens du krydser grænsen for at forlade USA, gjorde dig teknisk set til en “ammunitionseksportør.”
Som mange var Back det ikke opmærksom på af Dwork og Naors proof-of-work-forslag. Men i midten af 1990’erne tænkte han på lignende ideer til at imødegå spam, undertiden “højt” på Cypherpunks-postlisten.
“En sidefordel ved at bruge PGP er, at PGP-kryptering skal tilføje spam til spam – han kan sandsynligvis kryptere færre beskeder pr. Sekund, end han kan spam ned ad et T3-link,” Tilbage kommenterede, for eksempel i forbindelse med tilføjelse af mere privatliv til remailere; en idé, der ligner Dwork og Naors.
Cypherpunks-postlisten voksede markant på omkring et halvt årti. Hvad der startede som en online diskussionsplatform for en gruppe mennesker, der oprindeligt var samlet på en af deres startups i Bay Area, blev et lille internetfænomen med tusindvis af abonnenter – og ofte flere e-mails på en enkelt dag, end nogen med rimelighed kunne holde styr på.
Det var omkring dette tidspunkt – 1997, tæt på listens største popularitet – at Back indsendte sit Hashcash-forslag.
Hashcash
Hashcah svarer til Dwork og Naors anti-spam-forslag og har det samme formål, selvom Back foreslog nogle yderligere brugssager som at imødegå anonym misbrug af remailer. Men som navnet antyder, var Hashcash ikke baseret på kryptografiske gåder som Dwork og Naors; det var baseret på hashing.
Hashing er et kryptografisk trick, der tager data – uanset om det er et enkelt bogstav eller en hel bog – og gør det til et tilsyneladende tilfældigt antal forudbestemt længde.
For eksempel en SHA-256 hash af sætningen Dette er en sætning producerer dette hexadecimale tal:
Hvilket kan “oversættes” til det almindelige decimaltal:
Eller til binær:
I mellemtiden har en SHA-256 hash af sætningen Dette er en sætning producerer dette hexadecimale tal:
Som du kan se, ændrer hash’en kun ved at indsætte et komma i sætningen. Og vigtigst af alt, hvad hash af hver sætning ville være, var fuldstændig uforudsigelig; selv efter at den første sætning blev hashet, var der ingen måde at beregne den anden hash ud fra den. Den eneste måde at finde ud af var at faktisk hash begge sætninger.
Hashcash anvender dette matematiske trick på en smart måde.
Med Hashcash er metadata for en e-mail (“fra” -adressen, “til” -adressen, klokkeslættet osv.) Formaliseret som en protokol. Derudover skal afsenderen af en e-mail tilføje et tilfældigt tal til disse metadata: en “nonce”. Alle disse metadata, inklusive nonce, hashes derefter, så den resulterende hash ligner et af tilfældige tal ovenfor.
Her er tricket: ikke hver hash betragtes som “gyldig”. I stedet skal den binære version af hashen starte med et forudbestemt antal nuller. For eksempel: 20 nuller. Afsenderen kan generere en hash, der starter med 20 nuller ved at inkludere en nonce, der tilfældigt tilføjes korrekt … men afsenderen kan ikke vide på forhånd, hvordan den nonce vil se ud.
For at generere en gyldig hash har afsenderen derfor kun en mulighed: prøving og fejl (“brute force”). Han skal fortsætte med at prøve forskellige nonces, indtil han finder en gyldig kombination; Ellers afvises hans e-mail af den tilsigtede modtagers e-mail-klient. Ligesom Dwork og Naors løsning kræver dette beregningsressourcer: det er et proof-of-work-system.
“[I] hvis den ikke har en 20-bit hash […] har du et program, der afviser det med en meddelelse, der forklarer den påkrævede porto, og hvor man kan få software fra,” forklarede Back på Cypherpunks-postlisten. “Dette ville sætte spammere ud af drift natten over, da 1.000.000 x 20 = 100 MIP-år, hvilket bliver mere beregnet, end de har fået.”
Især er Backs proof-of-work-system mere tilfældigt end Dwork og Naors. Duoens løsning krævede løsning af et puslespil, hvilket betyder at en hurtigere computer ville løse det hurtigere end en langsom computer hver gang. Men statistisk set vil Hashcash stadig give mulighed for, at den langsommere computer hurtigere finder en korrekt løsning noget af tiden.
(Analogt, hvis en person løber hurtigere end en anden person, vinder førstnævnte en sprint mellem dem hver gang. Men hvis en person køber flere lotteri end en anden person, vil sidstnævnte statistisk stadig vinde noget af tiden – bare ikke som tit.)
Digital mangel
Ligesom Dwork og Naors forslag, Hashcash – som Back ville uddybe i en hvidt papir i 2002 – tog aldrig fart på en meget stor måde. Det blev implementeret i Apache’s open source SpamAssassin-platform, og Microsoft gav proof-of-work-ideen et spin i det inkompatible “e-mail-poststempel” -format. Og Back, såvel som andre akademikere, kom op med forskellige alternative applikationer til løsningen gennem årene, men de fleste af disse fik aldrig meget trækkraft. For de fleste potentielle applikationer var manglen på nogen netværkseffekt sandsynligvis for stor til at overvinde.
Ikke desto mindre introducerede Dwork og Naor såvel som Back (uafhængigt) noget nyt. Hvor et af de mest kraftfulde træk ved digitale produkter er den lethed, hvormed de kan kopieres, var bevis for arbejde i det væsentlige det første koncept, der ligner virtuel knaphed, der ikke stod på en central part: det bandt digitale data til det virkelige verden, begrænset ressource af computerkraft.
Og knaphed er selvfølgelig en forudsætning for penge. Navnlig Back placerede især Hashcash eksplicit i kategorien penge gennem sine Cypherpunks mailinglistebidrag og hvidbog, hvilket afspejlede det til de eneste digitale kontanter, som verden havde set på det tidspunkt: DigiCash’s Ecash af Chaum.
“Hashcash kan give et stop gap-mål, indtil digicash bliver mere udbredt,” argumenterede Back på mailinglisten. “Hashcash er gratis, alt hvad du skal gøre er at brænde nogle cyklusser på din pc. Det er i tråd med nettokulturen for fri diskurs, hvor de økonomisk udfordrede kan hertug det med millionærer, pensionerede embedsmænd osv. På lige vilkår. [Og] Hashcash kan give os en tilbagefaldsmetode til kontrol af [sic] spam, hvis digicash bliver sur (bliver forbudt eller krævet for at frigive brugeridentiteter). “
På trods af navnet kunne Hashcash dog ikke fungere korrekt som en fuldgyldig kontant i sig selv (heller ikke Dwork og Naors forslag). Måske vigtigst af alt er ethvert ”modtaget” bevis på arbejde ubrugeligt for modtageren. I modsætning til penge kunne de ikke bruges igen andre steder. Da computere øgedes i hastighed hvert år, kunne de desuden producere flere og flere bevis over tid til lavere omkostninger: Hashcash ville have været udsat for (hyper) inflation.
Hvilket bevis for arbejde, der var mere end noget andet, var et nyt grundlag for forskning inden for digital-pengeområdet. Flere af de mest bemærkelsesværdige forslag om digitale penge, der fulgte, byggede videre på Hashcash, typisk ved at tillade, at bevisene for arbejde genbruges. (Med Hal Finneys genanvendelige bevis for arbejde – RPOW – som det mest oplagte eksempel.)
Bitcoin
I sidste ende blev selvfølgelig bevis for arbejde en hjørnesten for Bitcoin, med Hashcash som en af de få citater i Bitcoin-hvidbogen.
Alligevel, i Bitcoin, bruges Hashcash (eller rettere en version af det) meget anderledes end mange ville have gættet på forhånd. I modsætning til Hashcash og andre Hashcash-baserede forslag bruges den knaphed, det giver, ikke i sig selv som penge. I stedet muliggør Hashcash et løb. Uanset hvilken minearbejder der er den første, der producerer et gyldigt bevis for arbejde – en hash af en Bitcoin-blok – får beslutte, hvilke transaktioner der gennemgår. I det mindste i teorien kan enhver konkurrere lige meget: ligesom et lotteri ville selv små minearbejdere statistisk set være de første til at frembringe et gyldigt bevis for arbejde så ofte.
Når en ny blok er udvundet, hvilket bekræfter et sæt transaktioner, er det usandsynligt, at disse transaktioner vil blive tilbageført. En angriber bliver nødt til at bevise mindst så meget arbejde som nødvendigt for at finde blokken i første omgang og tilføje for hver yderligere blok, der findes, som under normale omstændigheder bliver eksponentielt sværere over tid. De virkelige ressourcer, der skal bruges for at snyde, opvejer typisk den potentielle fortjeneste, der kan opnås ved at snyde, hvilket giver modtagere af Bitcoin-transaktioner tillid til, at disse transaktioner er endelige.
Sådan dræbte Hashcash i Bitcoin to fugle i en sten. Det løste dobbeltforbrugsproblem på en decentral måde, samtidig med at det giver et trick til at få nye mønter i omløb uden centraliseret udsteder.
Hashcash indså ikke det første elektroniske kontantsystem – Ecash tager den krone, og bevis for arbejde kunne ikke rigtig fungere som penge. Men en decentraliseret elektronisk kontant system kunne meget vel have været umuligt uden det.
Dette er den anden rate i Bitcoin Magazines The Genesis Files-serie. Den første artikel dækkede Dr. David Chaums eCash