Alla Cypherpunks värdesätter integritet; det är i grunden grundprincipen för kollektivet av kryptografer, akademiker, utvecklare och aktivister grupperade runt 1990-talets e-postlista med samma namn. Men få gör det i praktiken som Wei Dai gör. En gång beskrivs som en “intensivt privat datoringenjör” av New York Times, är det inte många personliga detaljer som är kända om mannen som för två decennier sedan drömde om ett elektroniskt kontantsystem som liknar Bitcoin..
Denna brist på personliga detaljer kompenseras av Wei Dais arbete och spridning av idéer. En begåvad kryptograf, Dai skapade och underhåller fortfarande Crypto++: ett C ++ – bibliotek för kryptografiska algoritmer. Dai är också den dag i dag aktiv på rationalitetsforum som Mindre fel, där han filosoferar om ämnen som artificiell intelligens, etik, epistemologi och mer. Hans insikter tjänade honom berömmen av den välkända AI-forskaren Eliezer Yudkowsky och upprepade inbjudningar att tala vid hans Machine Intelligence Research Institute (MIRI; tidigare känd som Singularity Institute).
Dais intresse för filosofi och politik är inget nytt. Tillbaka på 1990-talet, som en ung kandidatexamen i datavetenskap vid Washington University, ledde hans nyfikenhet till skrifterna av Timothy May, en av “grundarna” till Cypherpunk-rörelsen. Dai var inspirerad vid krypto-anarki Kan förespråkade; den helt nya ideologin som är utbredd bland Cypherpunks baserad på övertygelsen om att kryptografi och programvara kan ge och skydda politisk och ekonomisk frihet bättre än något regeringssystem skulle.
“Jag är fascinerad av Tim May’s krypto-anarki,” Dai skrev 1998. ”Till skillnad från de samhällen som traditionellt är associerade med ordet” anarki ”, i en krypto-anarki förstörs regeringen inte tillfälligt utan är permanent förbjuden och permanent onödig. Det är ett samhälle där hotet om våld är impotent eftersom våld är omöjligt och våld är omöjligt eftersom dess deltagare inte kan kopplas till deras riktiga namn eller fysiska platser. ”
I mitten av 1990-talet deltog Dai i diskussioner om olika ämnen på Cypherpunks e-postlista, t.ex. digitala rykte system, spel teori, Integritet och anonymitet i digitala kassasystem. Ännu viktigare, Dai gjorde ett antal förslag för att främja Cypherpunk-saken, inklusive pålitlig tidsstämpling, en krypterad TCP-tunnlare, a säkert fildelningssystem och mer. Det fick honom ett rykte som en produktiv bidragsgivare till Cypherpunk-samhället – men även då visste ingen mycket om honom personligen. (Inte ens om Dai var man eller kvinna, Timothy May nyligen sa.)
Men Dai skulle bli mest känd för en idé han tillfälligt meddelade i november 1998, strax efter examen från universitetet. “Effektivt samarbete kräver ett bytesmedel (pengar) och ett sätt att genomföra kontrakt”, förklarade Dai. ”Det protokoll som föreslås i den här artikeln gör det möjligt för spårbara pseudonyma enheter att samarbeta mer effektivt genom att ge dem ett utbytesmedel och en metod för att genomföra avtal. […] Jag hoppas att detta är ett steg mot att göra krypto-anarki till en praktisk såväl som teoretisk möjlighet. ”
Han kallade sitt förslag ”b-pengar ”.
B-pengar
Typiska digitala pengarsystem använder en centralbok för att hålla reda på kontosaldo. Oavsett om det är en centralbank, en kommersiell bank, VISA eller någon annan betalningsleverantör, spårar en centralstyrd databas någonstans vem som äger vad.
Problemet med denna lösning, från Dais och det krypto-anarkistiska perspektivet, är att den i slutändan låter regeringar kontrollera flödet av pengar genom reglering, medan deltagare i systemet vanligtvis är skyldiga att identifiera sig. “Min motivation för b-pengar var att möjliggöra onlinekonomier som är rent frivilliga … sådana som inte kunde beskattas eller regleras genom hot om våld”, han senare förklarade.
Så Dai kom med en alternativ lösning. Eller egentligen två alternativa lösningar.
I den första lösningen, i stället för att en central enhet kontrollerar huvudboken, behåller alla deltagare separata kopior av samma storbok. Varje gång en ny transaktion görs uppdaterar alla sina register. Dessa huvudböcker skulle dessutom bestå av offentliga nycklar, med belopp kopplade till dem – inga riktiga namn. Detta decentraliserade tillvägagångssätt skulle hindra varje enskild enhet från att blockera transaktioner, samtidigt som det erbjuder en nivå av integritet för alla användare.
Låt oss säga att Alice och Bob är användare av b-pengar. De har båda en offentlig nyckel: Alice har den offentliga nyckeln “A” och Bob har den offentliga nyckeln “B”, för vilken de båda styr sina unika privata nycklar. Och, som registreras i huvudböckerna som underhålls av alla användare, har båda deras offentliga nycklar b-pengar-enheter låt oss säga tre enheter vardera.
Om Bob vill ta emot två b-pengar från Alice (för att han säljer en produkt för henne) skickar han henne sin offentliga nyckel: B. Antar att Alice vill köpa produkten skapar hon en transaktion i form av ett meddelande: “2 b-pengar från A till B.” Därefter undertecknar hon detta meddelande, med sin privata nyckel motsvarande A. Meddelandet och den kryptografiska signaturen skickas sedan till alla b-pengar-användare.
Det undertecknade meddelandet visar för alla b-pengar-användare att den rättmätiga ägaren av A vill skicka två b-pengarenheter till B. Alla uppdaterar därför sina huvudböcker och tilldelar nu totalt en b-pengarenhet till A och totalt av fem b-pengar-enheter till B – utan att lära sig att Alice eller Bob kontrollerar heller.
Om den här lösningen låter bekant bör den: Det är ungefär hur Satoshi Nakamoto 10 år senare designade Bitcoin.
B-pengar, version 2
Dai ansåg dock sin första lösning för b-pengar opraktisk, “för att den använder en synkron och ojämnbar anonym sändningskanal”, förklarade han i sitt förslag..
Med andra ord löste det första förslaget om b-pengar inte problemet med dubbla utgifter. Alice kunde skicka två b-pengarenheter till både Bob’s B och Carol’s C samtidigt och överföra dessa transaktioner till olika delar av nätverket. Både Bob och Carol skulle ge Alice en produkt i gengäld … bara för att senare få reda på att hälften av nätverket inte kommer att erkänna sina nya saldon.
Därför kom Dai med en andra lösning för b-pengar, allt i samma förslag.
I den här versionen har inte alla en version av huvudboken. Istället skulle systemet bestå av två typer av användare: vanliga användare och “servrar”. Endast servrarna, länkade via en Usenet-sändningsnätverk, skulle bibehålla b-pengarboken. För att verifiera att en transaktion gick som den skulle, skulle vanliga användare – som Bob och Carol – behöva verifiera den med en slumpmässig delmängd av dessa servrar. (I händelse av en konflikt skulle Bob och Carol förmodligen avvisa transaktionen från Alice och inte sälja henne någonting.)
Även om det inte beskrivs i förslaget skulle någon förmodligen ha kunnat bli server, men “varje server måste sätta in en viss summa pengar på ett speciellt konto för att användas som potentiella böter eller belöningar för bevis för bristande uppförande,” Dai föreslagen. Servrarna bör också regelbundet publicera och kryptografiskt förbinda sig till ägardatabaser.
“Varje deltagare bör verifiera att hans egna kontosaldon är korrekta och att summan av kontosaldot inte är större än den totala summan som skapats,” tänkte Dai. “Detta förhindrar servrarna, även i total samverkan, från att permanent och kostsamt utvidga penningmängden.”
Om det också låter något bekant, är det inte heller konstigt: Dais andra förslag om b-pengar liknar löst det som idag skulle kallas ett bevis för insats.
För att starta lade Dai till en tidig version av en smart kontraktslösning i sitt förslag. Dessa typer av smarta kontrakt liknar närmast en blandning av ett bevis på insats och ett skiljedomssystem, där båda parter i ett avtal och en skiljeman måste sätta in pengar på ett särskilt konto. Märkligt nog för moderna standarder hade dock inte dessa avtal ett system för tvistlösning kodat: I stället var det möjligt att olika användare (eller servrar) skulle justera sina egna huvudböcker på olika sätt i händelse av tvister och i själva verket lämna reskontra på nätverket av konsensus. (Förmodligen skulle de potentiella påföljderna göra kostnaden för fusk för hög för att riskera det.)
Penningpolitik
Men där b-pengar kanske skulle ha skiljt sig mest från Bitcoin var Dais föreslagna penningpolitik.
Bitcoins penningpolitik är naturligtvis väldigt enkel. För att få mynt i omlopp utfärdade det ursprungligen 50 nya bitcoins per block, ett tal som sedan har sjunkit till 12,5. Detta antal kommer att fortsätta att minska med tiden tills det totala beloppet av bitcoin som utfärdats av bitcoin är under 21 miljoner. Huruvida en sådan penningpolitik är ideal eller inte har varit föremål för debatt, men en sak är klar: Hittills har den inte gett ett stabilt myntvärde.
Däremot var ett stabilt myntvärde uttryckligen en del av Dais vision. För att uppnå detta skulle värdet på b-pengar kopplas till värdet av en (teoretisk) varukorg. Till exempel skulle 100 b-pengar enheter vara värda en varukorg. Detta borde ge b-pengar ett stabilt värde, åtminstone i förhållande till denna varukorg: samma 100 b-pengarenheter skulle köpa samma varukorg tidigare, i nuet och i framtiden.
För att ge ut nya mynt skulle användarna bestämma vad en varukorg skulle kosta i förhållande till en lösning på ett beräkningsproblem: ett “bevis på arbete”. Om till exempel en varukorg skulle kosta $ 80 vid en viss tidpunkt, måste den matchas med ett bevis på arbete som i genomsnitt kostar $ 80 att producera. Om samma varukorg tio år senare skulle kosta $ 120, skulle samma 100 enheter behöva matchas med ett bevis på arbete som skulle kosta $ 120 att producera.
Med den här indikatorn skulle den första personen som producerar ett giltigt bevis på arbete krediteras 100 nya b-pengar av alla användare eller servrarna. Därför skulle ingen vara särskilt stimulerad att producera bevis på arbete om de inte tänkte använda b-pengar, vilket begränsade inflationen till tillväxten i “b-pengar-ekonomin.”
Alternativt föreslog Dai i en bilaga till sitt förslag att penningskapande skulle kunna realiseras genom en auktion. Antingen måste alla användare (första protokollet) eller servrarna (andra protokollet) först bestämma en optimal ökning av den monetära basen. Om till exempel denna ideala ökning skulle upprättas vid 500 b-pengar enheter, skulle en auktion avgöra vem som skulle skapa dessa 500 enheter: vem som var villig och kunde ge mest bevis på arbetet för det.
Bitcoin
B-pengar implementerades aldrig. Det kunde inte ha varit: “b-pengar var inte en komplett praktisk design ännu”, erkände Dai i en LessWrong forum tråd för några år sedan. Dessutom förväntade sig Dai inte att b-pengar skulle ta fart i stort, även om de implementerades.
“Jag tror att b-pengar högst kommer att vara en nischvaluta / kontraktshanteringsmekanism som tjänar dem som inte vill eller inte kan använda statligt sponsrade”, förklarade han i en e-post efter hans tillkännagivande på Cypherpunks e-postlista.
Faktum är att flera av b-pengars problem förblir olösta eller åtminstone underspecificerade. Kanske, viktigast av allt, var dess konsensusmodell inte särskilt robust, vilket framgår bäst av Dais föreslagna smarta kontraktslösning. Sedan dess har man också funnit att system för proof-of-stake introducerar nya utmaningar som Dai kanske inte har förutsett; till exempel är det inte klart hur ”felaktig uppförande” kan fastställas objektivt. Och det kommer inte ens in i de mer nyanserade problemen i förslaget, till exempel brist på integritet på grund av spårbarhet av medel eller potentiell myntemission (“gruvdrift”) centralisering. Faktum är att några av dessa problem fortfarande inte löses för Bitcoin idag.
Dai – som efter att ha föreslagit b-pengar fortsatte att arbeta för TerraSciences och Microsoft, och kanske har gått i pension tidigt sedan dess – skulle inte hålla fast vid att lösa dessa problem.
“Jag fortsatte inte att arbeta med designen eftersom jag faktiskt hade blivit något desillusionerad av krypto-anarki när jag var klar med att skriva upp b-pengar”, Dai senare förklarade på LessWrong. Han upprepade, “Jag förutsåg inte att ett system som det, när det väl hade implementerats, kunde locka så mycket uppmärksamhet och använda bortom en liten grupp hardcore Cypherpunks.”
Ändå glömdes inte Dais förslag: b-pengar hamnade som den första referensen i Bitcoin vitbok. Så lika som b-pengar och Bitcoins design kan vara, är det möjligt att Satoshi Nakamoto inte alls inspirerades av Dais idé. Dai tror själv att Bitcoins uppfinnare kom på idén självständigt.
Strax innan Bitcoin-vitboken publicerades, uppfann Hashcash uppfinnaren Dr. Adam Back riktad Satoshi Nakamoto till Dais arbete, vilket gjorde Dai till en av få människor som Bitcoins uppfinnare personligen räckte till innan han publicerade sitt vitbok. Men Dai svarade inte på Satoshis e-post. I efterhand önskade han att han hade gjort det. Inte överraskande ifrågasätter Dai Bitcoins myntgenereringsmodell.
”Jag anser att Bitcoin har misslyckats med avseende på sin penningpolitik (eftersom policyn orsakar hög prisvolatilitet som medför en hög kostnad för sina användare, som antingen måste ta oönskade risker eller delta i kostnadssäkring för att kunna använda valutan) ,” han skrev på LessWrong. ”[En] möjlig inverkan av Bitcoin kan vara att den på grund av sin bristande penningpolitik och tillhörande prisvolatilitet inte kan växa till mycket stora skalor, och genom att ta över kryptovalutans nisch har den uteslutit en framtid där en kryptovaluta växer till mycket stora skalor. ”
Han tillade: ”Detta kan ha varit delvis mitt fel, för när Satoshi skrev till mig och bad om kommentarer på sitt utkast, kom jag aldrig tillbaka till honom. Annars kanske jag kunde ha avskräckt honom (eller dem) från idén om “fast tillgång på pengar”. “
Författarens anmärkning: Efter att ha avslutat den här artikeln påpekades att den första versionen av Nick Szabos Bit Gold går tillbaka till början av 1998. Ännu mer lik Satoshi Nakamotos uppfinning än b-pengar är det förmodligen mer exakt att överväga Bit Gold “Bitcoins första förslag”.
Detta är den tredje delen i Bitcoin Magazines The Genesis Files-serie. De första två artiklarna omfattade Dr. David Chaums eCash och Dr. Adam Back’s Hashcash. För mer från Wei Dai, besök weidai.com.