[ANNOUNCE] implementering av hashkontantporto

Datumet är den 28 mars 1997 när de cirka 2000 prenumeranterna på Cypherpunks e-postlista får en e-post med ovanstående rubrik i inkorgen. Avsändaren är en 26-årig brittisk postdoktor vid University of Exeter, en ung kryptograf och produktiv bidragsgivare till e-postlistan som heter Dr. Adam Back. E-postmeddelandet innehåller en beskrivning och tidig implementering av vad han beskriver som ett “partiellt haschkollisionsbaserat portoskema” – ett slags stämpelekvivalent för e-postmeddelanden, baserat på ett snyggt kryptografiskt trick.

“Tanken med att använda partiella hash är att de kan göras godtyckligt dyra att beräkna”, skrev Back och förklarade fördelen med sitt system, “och ändå kan verifieras direkt.”

Detta förslag av kryptografen som skulle fortsätta bli nuvarande Blockstream VD fick inte genast mycket uppmärksamhet på e-postlistan; bara en läsare svarade, med en teknisk förfrågan om valfri hashingalgoritm. Ändå ligger tekniken bakom Hashcash – bevis på arbete – skulle forma forskning till digitala pengar i mer än ett decennium framöver.

“Prissättning via bearbetning eller bekämpning av skräppost”

Back’s Hashcash var faktiskt inte den första lösningen i sitt slag.

I början av 1990-talet hade löftet från Internet och framför allt fördelarna med ett elektroniskt e-postsystem blivit uppenbart för tekniker som uppmärksammade. Ändå kom dagens internetpionjärer att inse att e-post, som detta elektroniska e-postsystem kallades, presenterade sina egna utmaningar.

“I synnerhet de enkla och låga kostnaderna för att skicka e-post, och i synnerhet enkelheten att skicka samma meddelande till många parter, alla utom missbruk”, förklarade IBM-forskare Dr. Cynthia Dwork och Dr Moni Naor i sin 1992-vita papper med namnet “Prissättning via bearbetning eller bekämpning av skräppost.”

I och med att e-post ökade i popularitet ökade skräppost.

En lösning behövdes, tidiga internetanvändare kom överens om – och en lösning är vad Dwork och Naors tidning erbjöd.

Duon föreslog ett system där avsändare skulle behöva bifoga vissa uppgifter till alla e-postmeddelanden de skickar. Dessa uppgifter skulle vara lösningen på ett matematikproblem, unikt för e-postmeddelandet i fråga. Specifikt föreslog Dwork och Naor tre kandidatpussel som skulle kunna användas för ändamålet, alla baserade på kryptering av kryptering och signaturer med public key.

Att lägga till en lösning i ett e-postmeddelande skulle inte vara alltför svårt, idealiskt krävs endast ett par sekunders processorkraft från en vanlig dator, medan dess giltighet lätt kan kontrolleras av mottagaren. Men, och detta är tricket, till och med en trivial mängd processorkraft per e-post läggs upp för annonsörer, bedragare och hackare som försöker skicka tusentals eller till och med miljoner meddelanden på en gång. Spamming, så var teorin, kunde göras dyrt och därför olönsamt.

“Huvudidén är att kräva att en användare beräknar en måttligt hård men inte svåråtkomlig funktion för att få tillgång till resursen och därmed förhindra oseriös användning”, förklarade Dwork och Naor.

Medan Dwork och Naor inte föreslog begreppet skulle den typ av lösning de introducerade bli känd som ett “bevis på arbete” -system. Användare måste bokstavligen visa att deras dator utförde arbete för att bevisa att de använde verkliga resurser.

En smidig lösning, men kanske för långt före sin tid. Förslaget gjorde det aldrig mycket längre än en relativt liten krets av datavetare.

Adam Back och Cypherpunks

Omkring samma tid som Dwork och Naor publicerade sin vitbok kom en grupp privatlivsaktivister med en libertarisk böjning att erkänna också den enorma potentialen på internet. Den ideologiskt drivna publiken började organisera sig via en e-postlista med fokus på integritetsförbättrande teknik. Liksom Dwork och Naor använde dessa “Cypherpunks” – som de skulle kallas – den relativt nya vetenskapen om kryptografi för att arbeta mot sina mål.

Under åren har Adam Back – som fick sin doktorsexamen. 1996 – etablerade sig som en av de mer aktiva deltagarna på den här listan och bidrog ibland med dussintals e-postmeddelanden på en enda månad. Liksom de flesta Cypherpunks var kryptografen passionerad för bland annat ämnen Integritet, yttrandefrihet och libertarianism, och engagerade i tekniska diskussioner till anonyma remailers, krypterade filsystem, elektroniska kontanter som introducerades av Dr. David Chaum och mer.

Men för en stund var Back kanske mest känd för att skriva ut och sälja “ammunition” -skjortor: T-shirts med ett krypteringsprotokoll tryckt på, avsedda att hjälpa till att påpeka det absurda beslutet från den amerikanska regeringen att reglera Phil Zimmermanns PGP (Pretty Good) Privacy) krypteringsprogram som “ammunition” inom definitionen av USA: s exportregler. Att bära ryggs skjorta när du passerade gränsen för att lämna USA gjorde dig tekniskt till en “ammunitionsexportör”.

Som många var Back inte medveten om av Dwork och Naors proof-of-work-förslag. Men i mitten av 1990-talet tänkte han på liknande idéer för att motverka skräppost, ibland “högt” på Cypherpunks e-postlista.

“En sidofördel med att använda PGP är att PGP-kryptering ska lägga till lite overhead till spammaren – han kan förmodligen kryptera mindre meddelanden per sekund än att han kan skräppost ner en T3-länk,” Tillbaka kommenterade, till exempel i samband med att lägga till mer integritet till remailers; en idé som liknar Dwork och Naors.

Cypherpunks e-postlista växte markant på ungefär ett halvt decennium. Det som började som en online-diskussionsplattform för en grupp människor som ursprungligen samlades vid en av sina startups i Bay Area blev ett litet internetfenomen med tusentals prenumeranter – och ofta fler e-postmeddelanden på en enda dag än någon rimligt kunde hålla reda på.

Det var vid denna tid – 1997, nära listans högsta popularitet – som Back skickade in sitt Hashcash-förslag.

Hashcash

Hashcah liknar Dwork och Naors antispamförslag och har samma syfte, även om Back föreslog några ytterligare användningsfall som att motverka anonym missbruk av remailer. Men som namnet antyder var Hashcash inte baserat på kryptografiska pussel som Dwork och Naors; det var baserat på hashing.

Hashing är ett kryptografiskt trick som tar alla data – vare sig det är en bokstav eller en hel bok – och förvandlar det till ett till synes slumpmässigt antal förutbestämd längd.

Till exempel en SHA-256-hash av meningen Det här är en mening producerar detta hexadecimala tal:

Vilket kan “översättas” till ett vanligt decimaltal:

Eller till binär:

Under tiden har en SHA-256 hash av meningen Det här är en mening producerar detta hexadecimala tal:

Som du kan se förändras hash helt genom att bara infoga ett komma i meningen. Och, viktigare, vad hash av endera meningen skulle vara var helt oförutsägbart; även efter att den första meningen hashades fanns det inget sätt att beräkna den andra hashen från den. Det enda sättet att ta reda på var att faktiskt hash båda meningarna.

Hashcash tillämpar detta matematiska trick på ett smart sätt.

Med Hashcash formaliseras metadata för ett e-postmeddelande (“från” -adressen, “till” -adressen, tiden etc.) som ett protokoll. Dessutom måste avsändaren av ett e-postmeddelande lägga till ett slumpmässigt nummer i denna metadata: en “nonce”. All denna metadata, inklusive nonce, hashas sedan, så den resulterande hashen ser ut som en av slumpmässiga siffror ovan.

Här är tricket: inte varje hash anses vara “giltigt”. Istället måste den binära versionen av hashen börja med ett förutbestämt antal nollor. Till exempel: 20 nollor. Avsändaren kan generera en hash som börjar med 20 nollor genom att inkludera en nonce som slumpmässigt lägger till korrekt … men avsändaren kan inte veta i förväg hur den nonce kommer att se ut.

För att generera en giltig hash har avsändaren därför bara ett alternativ: trial and error (“brute force”). Han måste fortsätta prova olika nonces tills han hittar en giltig kombination; I annat fall avvisas hans e-post av den avsedda mottagarens e-postklient. Precis som Dwork och Naors lösning kräver detta beräkningsresurser: det är ett system för bevis på arbetet.

“[Jag] om den inte har en 20-bitars hash […] har du ett program som studsar det med ett meddelande som förklarar portokravet och var man kan skaffa programvara från,” förklarade Back på Cypherpunks e-postlista. “Detta skulle sätta spammare ur drift över natten, eftersom 1 000 000 x 20 = 100 MIP-år som kommer att bli mer beräknade än de har fått.”

Speciellt är Backs system för proof-of-work mer slumpmässigt än Dwork och Naors. Duos lösning krävde lösning av ett pussel, vilket innebär att en snabbare dator skulle lösa det snabbare än en långsam dator varje gång. Men statistiskt sett skulle Hashcash fortfarande möjliggöra för den långsammare datorn att hitta en rätt lösning snabbare en del av tiden.

(Analogt, om en person springer snabbare än en annan person, kommer den förra att vinna en sprint mellan dem varje gång. Men om en person köper fler lotter än en annan person, kommer den senare statistiskt sett att vinna en del av tiden – bara inte som ofta.)

Digital brist

Liksom Dwork och Naors förslag, Hashcash – som Back skulle utarbeta i en vitt papper 2002 – tog aldrig fart på ett mycket stort sätt. Det implementerades i Apaches öppna källkod SpamAssassin-plattform, och Microsoft gav beviset på arbetsidén en snurr i det oförenliga formatet “e-poststämpel”. Och Back, liksom andra akademiker, kom med olika alternativa applikationer för lösningen genom åren, men de flesta av dessa fick aldrig mycket grepp. För de flesta potentiella applikationer var avsaknaden av nätverkseffekt förmodligen för stor för att övervinna.

Ändå introducerade Dwork och Naor liksom Back (oberoende) något nytt. Där en av de mest kraftfulla funktionerna i digitala produkter är hur lätt de kan kopieras, var bevis på arbete i huvudsak det första konceptet som liknar virtuell brist som inte förlitar sig på en central part: det band digitala data till det verkliga världen, begränsad resurs av datorkraft.

Och brist är naturligtvis en förutsättning för pengar. Särskilt Back placerade särskilt Hashcash uttryckligen i kategorin pengar genom sina Cypherpunks e-postlistabidrag och vitbok, vilket speglade det till de enda digitala kontanter som världen hade sett vid den tidpunkten: DigiCash’s Ecash av Chaum.

“Hashcash kan ge ett stoppmått tills digicash används mer,” argumenterade Back på e-postlistan. “Hashcash är gratis, allt du behöver göra är att bränna några cykler på din dator. Det överensstämmer med den fria diskursens nettokultur, där de ekonomiskt utmanade kan utmana det med miljonärer, pensionerade regeringstjänstemän osv på lika villkor. [Och] Hashcash kan ge oss en fallback-metod för att kontrollera [sic] skräppost om digicash blir surt (blir förbjudet eller krävs för att ge användaridentiteter). “

Trots namnet kunde Hashcash dock inte fungera som en fullfjädrad kontant i sig (inte heller Dwork och Naors förslag). Viktigast av allt är att alla “mottagna” bevis på arbete är värdelösa för mottagaren. Till skillnad från pengar kunde de inte användas igen någon annanstans. Utöver det, när datorer ökade i hastighet varje år, kunde de producera fler och fler bevis över tiden till lägre kostnad: Hashcash skulle ha varit föremål för (hyper) inflation.

Vilket bevis på arbete som erbjuds, mer än någonting annat, var en ny grund för forskning inom digitalpengariket. Flera av de mest anmärkningsvärda förslagen om digitala pengar som följde byggde vidare på Hashcash, vanligtvis genom att låta bevis på arbetet återanvändas. (Med Hal Finneys återanvändbara bevis på arbete – RPOW – som det mest uppenbara exemplet.)

Bitcoin

I slutändan blev naturligtvis bevis på arbete en hörnsten för Bitcoin, med Hashcash som en av de få citaten i Bitcoin-vitboken.

Men i Bitcoin används Hashcash (eller snarare en version av det) mycket annorlunda än vad många skulle ha gissat i förväg. Till skillnad från Hashcash och andra Hashcash-baserade förslag används knappheten i sig inte alls som pengar alls. Istället möjliggör Hashcash ett lopp. Oavsett vilken gruvarbetare som är den första som producerar ett giltigt bevis på arbete – en hash av ett Bitcoin-block – får bestämma vilka transaktioner som går igenom. Åtminstone i teorin kan vem som helst tävla lika: ungefär som ett lotteri, även små gruvarbetare skulle statistiskt sett vara de första som producerar ett giltigt bevis på arbete så ofta.

Vidare, när ett nytt block bryts, vilket bekräftar en uppsättning transaktioner, kommer sannolikt inte dessa transaktioner att återföras. En angripare måste bevisa åtminstone så mycket arbete som krävs för att hitta blocket i första hand och lägga till för varje ytterligare block som hittas, vilket under normala förhållanden blir exponentiellt svårare med tiden. De verkliga resurserna som måste spenderas för att fuska uppväger vanligtvis den potentiella vinsten som kan göras genom fusk, vilket ger mottagare av Bitcoin-transaktioner förtroende för att dessa transaktioner är slutgiltiga.

Så här dödade Hashcash i Bitcoin två fåglar i en sten. Det löste problem med dubbla utgifter på ett decentraliserat sätt, samtidigt som det är ett trick för att få nya mynt i omlopp utan centraliserad emittent.

Hashcash insåg inte det första elektroniska kontantsystemet – Ecash tar den kronan, och bevis på arbete kunde inte fungera som pengar. Men en decentraliserad elektroniskt kassasystem kan mycket väl ha varit omöjligt utan det.

Detta är den andra delen i Bitcoin Magazines serie The Genesis Files. Den första artikeln täckte Dr. David Chaums eCash