[ANNOUNCE] implementering av hash kontantporto
Datoen er 28. mars 1997, da de rundt 2000 abonnentene på Cypherpunks-postlisten mottar en e-post med overskriften ovenfor i innboksen. Avsenderen er en 26 år gammel britisk postdoktor ved University of Exeter, en ung kryptograf og produktiv bidragsyter til adresselisten ved navn Dr. Adam Back. E-posten inneholder en beskrivelse og tidlig implementering av det han beskriver som en “delvis hash-kollisjonsbasert portordning” – et slags frimerkekvivalent for e-post, basert på et smidig kryptografisk triks.
“Tanken med å bruke delvise hash er at de kan gjøres vilkårlig dyre å beregne,” skrev Back og forklarte fordelen med systemet sitt, “og likevel kan verifiseres umiddelbart.”
Dette forslaget fra kryptografen som fortsetter å bli den nåværende Blockstream Administrerende direktør fikk ikke umiddelbart mye oppmerksomhet på e-postlisten; bare en leser svarte, med en teknisk forespørsel om den valgte hashingalgoritmen. Likevel, teknologien som ligger til grunn for Hashcash – bevis på arbeid – ville forme forskning i digitale penger i mer enn et tiår framover.
“Priser via behandling eller bekjempelse av søppelpost”
Back’s Hashcash var faktisk ikke den første løsningen i sitt slag.
På begynnelsen av 1990-tallet hadde løftet om internett og spesielt fordelene med et elektronisk postsystem blitt tydelig for teknikere som var oppmerksomme. Likevel kom datidens pionerer til å innse at e-post, som dette elektroniske postsystemet ble kalt, ga sine egne utfordringer.
“Spesielt de enkle og lave kostnadene ved å sende elektronisk post, og spesielt enkelheten med å sende den samme meldingen til mange parter, alt annet enn å invitere til misbruk,” forklarte IBM-forskere Dr. Cynthia Dwork og Dr. Moni Naor i sin 1992-hvite papir med navnet “Priser via behandling eller bekjempelse av søppelpost.”
Som e-post økte i popularitet, økte det faktisk spam.
En løsning var nødvendig, tidlige internettbrukere ble enige om – og en løsning er hva Dwork og Naors papir tilbød.
Duoen foreslo et system der avsendere måtte legge ved noen data til enhver e-post de sendte. Disse dataene vil være løsningen på et matematisk problem, unikt for den aktuelle e-posten. Spesielt foreslo Dwork og Naor tre kandidatoppgaver som kunne brukes til formålet, alt basert på kryptering og signaturskjemaer med offentlig nøkkel..
Det vil ikke være for vanskelig å legge til en løsning i en e-post, og ideelt sett krever det bare et par sekunders prosessorkraft fra en vanlig datamaskin, mens gyldigheten lett kan kontrolleres av mottakeren. Men, og dette er trikset, til og med en triviell mengde prosessorkraft per e-post legger opp for annonsører, svindlere og hackere som prøver å sende tusenvis eller til og med millioner av meldinger på en gang. Spamming, slik var teorien, kunne gjøres dyrt og derfor ulønnsomt.
“Hovedideen er å kreve at en bruker beregner en moderat hard, men ikke uoppnåelig funksjon for å få tilgang til ressursen, og dermed forhindre useriøs bruk,” forklarte Dwork og Naor.
Mens Dwork og Naor ikke foreslo begrepet, ville typen løsning de introduserte bli kjent som et “proof of work” -system. Brukere måtte bokstavelig talt vise at datamaskinen deres utførte arbeid for å bevise at de brukte virkelige ressurser.
En fin løsning, men kanskje for langt foran sin tid. Forslaget kom aldri langt utover en relativt liten krets av datavitenskapere.
Adam Back and the Cypherpunks
Rundt samme tid som Dwork og Naor publiserte sin whitepaper, kom en gruppe personvernaktivister med en libertarisk bøyning også til å erkjenne internettets enorme potensial. Den ideologisk drevne mengden begynte å organisere seg gjennom en adresseliste sentrert rundt personvernforbedrende teknologier. I likhet med Dwork og Naor, brukte disse “Cypherpunks” – som de ville bli kalt – den relativt nye vitenskapen om kryptografi for å arbeide mot sine mål..
Gjennom årene har Adam Back – som oppnådd sin doktorgrad. i 1996 – etablerte seg som en av de mer aktive deltakerne på denne listen, og til tider bidro han med dusinvis av e-postmeldinger på en enkelt måned. Som de fleste Cypherpunks var kryptografen lidenskapelig opptatt av blant annet emner personvern, fri tale og libertarianisme, og engasjert seg i tekniske diskusjoner til anonyme videresendere, krypterte filsystemer, elektroniske kontanter som introdusert av Dr. David Chaum, og mer.
Men en stund var Back kanskje mest kjent for å trykke og selge “ammunisjon” -skjorter: T-skjorter med krypteringsprotokoll trykt på, ment å bidra til å påpeke den absurde beslutningen fra den amerikanske regjeringen om å regulere Phil Zimmermanns PGP (Pretty Good) Privacy) krypteringsprogram som “ammunisjon” innenfor definisjonen av de amerikanske eksportbestemmelsene. Å ha på deg Back-skjorten mens du krysset grensen for å forlate USA, gjorde deg teknisk til en “ammunisjonseksportør”.
Som mange var Back det ikke klar over av Dwork og Naors bevis på arbeid. Men på midten av 1990-tallet tenkte han på lignende ideer for å motvirke spam, noen ganger “høyt” på Cypherpunks adresseliste..
“En fordel ved å bruke PGP, er at PGP-kryptering skal legge til litt overhead i spammeren – han kan sannsynligvis kryptere færre meldinger per sekund enn han kan spamme ned en T3-kobling,” Tilbake kommenterte, for eksempel i sammenheng med å legge til mer privatliv for videresendere; en ide som ligner litt på Dwork og Naors.
Cypherpunks-postlisten vokste betydelig på omtrent et halvt tiår. Det som startet som en online diskusjonsplattform for en gruppe mennesker som i utgangspunktet samlet seg på en av deres oppstart i Bay Area, ble et lite internettfenomen med tusenvis av abonnenter – og ofte flere e-poster på en enkelt dag enn noen med rimelighet kunne holde rede på.
Det var rundt denne tiden – 1997, nær listens topp popularitet – at Back sendte inn sitt Hashcash-forslag.
Hashcash
Hashcah ligner på Dwork og Naors antispamforslag og har samme formål, selv om Back foreslo noen ekstra brukssaker som å motvirke anonym misbruk av remailer. Men som navnet antyder, var ikke Hashcash basert på kryptografiske gåter som Dwork og Naors; det var basert på hashing.
Hashing er et kryptografisk triks som tar data – enten det er en enkelt bokstav eller en hel bok – og gjør det til et tilsynelatende tilfeldig antall forhåndsbestemt lengde.
For eksempel en SHA-256 hash av setningen Dette er en setning produserer dette heksadesimale tallet:
Som kan “oversettes” til det vanlige desimaltallet:
Eller til binær:
I mellomtiden har en SHA-256 hash av setningen Dette er en setning produserer dette heksadesimale tallet:
Som du kan se, endrer det bare hasj å sette inn ett komma i setningen. Og, viktigere, hva hash av en setning ville være var helt uforutsigbar; selv etter at den første setningen ble hash, var det ingen måte å beregne den andre hashen ut fra den. Den eneste måten å finne ut av var å hasj begge setningene.
Hashcash bruker dette matematiske trikset på en smart måte.
Med Hashcash blir metadata for en e-post (“fra” -adressen, “til” -adressen, klokkeslettet osv.) Formalisert som en protokoll. I tillegg må avsenderen av en e-post legge til et tilfeldig tall i metadataene: en “nonce”. All denne metadata, inkludert nonce, blir deretter hash, så den resulterende hash ser litt ut som et av tilfeldige tall over.
Her er trikset: ikke hver hash blir betraktet som “gyldig”. I stedet må den binære versjonen av hashen starte med et forhåndsbestemt antall nuller. For eksempel: 20 nuller. Avsenderen kan generere en hash som starter med 20 nuller ved å inkludere en nonce som tilfeldig legger opp riktig … men avsenderen kan ikke vite på forhånd hvordan den nonce vil se ut.
For å generere en gyldig hash har derfor avsenderen bare ett alternativ: prøving og feiling (“brute force”). Han må fortsette å prøve forskjellige nonces til han finner en gyldig kombinasjon; Ellers blir e-posten hans avvist av den tiltenkte mottakerens e-postklient. I likhet med Dwork og Naors løsning krever dette beregningsressurser: det er et proof-of-work-system.
“[Hvis] det ikke har 20-biters hash […] har du et program som spretter det med et varsel som forklarer porto, og hvor du kan få tak i programvare fra,” forklarte Back på Cypherpunks-postlisten. “Dette vil sette spammere ut av drift over natten, ettersom 1.000.000 x 20 = 100 MIP år, som kommer til å bli mer beregnet enn de har.”
Spesielt er Back’s proof-of-work-system mer tilfeldig enn Dwork og Naors. Duos løsning krevde å løse et puslespill, noe som betyr at en raskere datamaskin vil løse det raskere enn en treg datamaskin hver gang. Men statistisk sett vil Hashcash fortsatt tillate at den tregere datamaskinen raskere finner en riktig løsning noe av tiden.
(Analogt, hvis en person løper raskere enn en annen person, vil den tidligere vinne en sprint mellom dem hver gang. Men hvis en person kjøper flere lodd enn en annen person, vil sistnevnte statistisk fremdeles vinne noe av tiden – bare ikke som ofte.)
Digital knapphet
Som Dwork og Naors forslag, Hashcash – som Back ville utdype i en hvitt papir i 2002 – tok aldri av på en veldig stor måte. Den ble implementert i Apache’s open-source SpamAssassin-plattform, og Microsoft ga proof-of-work-ideen et spinn i det inkompatible formatet “postpoststempel”. Og Back, så vel som andre akademikere, kom med ulike alternative applikasjoner for løsningen opp gjennom årene, men de fleste av disse fikk aldri mye trekkraft. For de fleste potensielle applikasjoner var mangelen på nettverkseffekt sannsynligvis for stor til å overvinne.
Likevel introduserte Dwork og Naor så vel som Back (uavhengig) noe nytt. Hvor en av de kraftigste egenskapene til digitale produkter er hvor lett de kan kopieres, var bevis på arbeid egentlig det første konseptet som ligner på virtuell knapphet som ikke stole på en sentral part: den bundet digitale data til det virkelige verden, begrenset ressurs med datakraft.
Og knapphet er selvfølgelig en forutsetning for penger. Særlig plasserte Back spesielt eksplisitt Hashcash i kategorien penger gjennom sine bidrag fra Cypherpunks-postlisten og hvitt papir, og speilet det til de eneste digitale kontanter verden hadde sett på det tidspunktet: DigiCash’s Ecash av Chaum.
“Hashcash kan gi et stoppgap tiltak til digicash blir mer brukt,” hevdet Back på adresselisten. “Hashcash er gratis, alt du trenger å gjøre er å brenne noen sykluser på PCen. Det er i tråd med nettokulturen for fri diskurs, der de økonomisk utfordrede kan hertug det med millionærer, pensjonerte myndighetspersoner osv. På like vilkår. [Og] Hashcash kan gi oss en tilbakefallsmetode for å kontrollere [sic] spam hvis digicash blir surt (blir forbudt eller påkrevd for å gi brukerens identitet). “
Til tross for navnet kunne Hashcash imidlertid ikke fungere som en fullverdig kontant i seg selv (heller ikke Dwork og Naors forslag). Kanskje viktigst, ethvert “mottatt” bevis på arbeid er ubrukelig for mottakeren. I motsetning til penger kunne de ikke brukes på nytt andre steder. I tillegg til at datamaskiner økte i hastighet hvert år, kunne de produsere flere og flere bevis over tid til lavere pris: Hashcash ville ha vært utsatt for (hyper) inflasjon.
Det beviset på arbeidet som tilbød, mer enn noe annet, var et nytt grunnlag for forskning innen digitalpengeriket. Flere av de mest bemerkelsesverdige forslagene til digitale penger som fulgte, bygde videre på Hashcash, vanligvis ved å la bevisene på arbeidet bli gjenbrukt. (Med Hal Finneys gjenbrukbare bevis på arbeid – RPOW – som det mest åpenbare eksemplet.)
Bitcoin
Til syvende og sist ble selvfølgelig bevis på arbeid en hjørnestein for Bitcoin, med Hashcash som en av de få sitatene i Bitcoin-papiret.
Likevel, i Bitcoin, blir Hashcash (eller rettere sagt en versjon av det) brukt veldig annerledes enn mange ville ha gjettet på forhånd. I motsetning til Hashcash og andre Hashcash-baserte forslag, brukes knappheten det ikke i seg selv i det hele tatt. I stedet muliggjør Hashcash et løp. Uansett hvilken gruvearbeider som er den første som produserer et gyldig bevis på arbeid – en hash av en Bitcoin-blokk – får bestemme hvilke transaksjoner som gjennomgår. I det minste i teorien kan alle konkurrere likt: i likhet med et lotteri, selv små gruvearbeidere ville statistisk sett være de første til å produsere et gyldig bevis på arbeid så ofte.
Videre, når en ny blokk er utvunnet, som bekrefter et sett med transaksjoner, er det lite sannsynlig at disse transaksjonene blir reversert. En angriper må bevise minst så mye arbeid som kreves for å finne blokken i utgangspunktet, og legge opp for hver ekstra blokk som blir funnet, som under normale omstendigheter blir eksponentielt vanskeligere over tid. De virkelige ressursene som må brukes for å jukse, oppveier vanligvis den potensielle fortjenesten som kan oppnås ved å jukse, noe som gir mottakere av Bitcoin-transaksjoner tillit til at disse transaksjonene er endelige.
Slik drepte Hashcash i Bitcoin to fugler i en smekk. Det løste dobbeltbruk problem på en desentralisert måte, samtidig som det gir et triks for å få nye mynter i omløp uten sentralisert utsteder.
Hashcash skjønte ikke det første elektroniske kontantsystemet – Ecash tar den kronen, og bevis på arbeid kunne egentlig ikke fungere som penger. Men en desentralisert elektronisk kontant system kan godt ha vært umulig uten det.
Dette er den andre delen i Bitcoin Magazine-serien The Genesis Files. Den første artikkelen dekket Dr. David Chaums eCash