Modul 3 av 8

Bitcoins tekniska historia

3.0 Introduktion

Sammanfattning av Bitcoin White Paper

En helt och hållet peer-to-peer-version av elektroniska pengar skulle möjliggöra att betalningar online skickas direkt från en part till en annan utan att gå via en finansiell institution. Digitala signaturer utgör en del av lösningen, men de största fördelarna går förlorade om en betrodd tredje part fortfarande krävs för att förhindra dubbelspendering. Vi föreslår en lösning på dubbelspenderingsproblemet med hjälp av ett peer-to-peer-nätverk. Nätverket tidsstämplar transaktioner genom att hasha dem in i en pågående kedja av hashbaserat proof-of-work, vilket skapar en post som inte kan ändras utan att göra om proof-of-work. Den längsta kedjan fungerar inte bara som bevis på den observerade händelseföljden, utan även som bevis på att den kommer från den största poolen av CPU-kraft. Så länge en majoritet av CPU-kraften kontrolleras av noder som inte samarbetar för att attackera nätverket, kommer de att generera den längsta kedjan och överträffa angripare. Nätverket i sig kräver minimal struktur. Meddelanden sänds ut efter bästa förmåga, och noder kan lämna och återansluta till nätverket när de vill, och accepterar den längsta proof-of-work-kedjan som bevis på vad som hänt medan de varit borta.

Bitcoin uppstod inte ur tomma intet, utan byggde på arbetet från många under de föregående decennierna. Denna modul kommer att utforska grunderna för internet som Bitcoin bygger på, samt den forskning och utveckling som erkänns i whitepaper.

På 70-talet såg en grupp individer hur den amerikanska regeringen i synnerhet försökte begränsa tillgången till kryptografi, och de satte igång med att säkerställa att denna teknik skulle göras tillgänglig för alla människor för att skydda deras integritet online. Några av dessa tidiga pionjärer fokuserade också på de potentiella fördelarna med ett digitalt 'sunda pengar'-system som kunde användas för att lagra och utbyta värde över det framväxande internet. Friedrich Hayek – en ledande bidragsgivare till österrikisk ekonomi – föreställde sig hur en idealisk valuta baserad på fri marknadskonkurrens skulle kunna se ut långt innan internets dagar, men ansåg att det var tekniskt och politiskt ogenomförbart. Förutom digital integritet försökte denna grupp, som utvecklades till att bli Cypherpunks, förverkliga Hayeks vision om digitala pengar, men dessa försök hade misslyckats tills Satoshi publicerade sina idéer på e-postlistan.

  • TCP/IP-protokoll (1976)
  • Protokoll för publika nyckelkryptosystem – Ralph Merkle (1980)
  • Digicash – David Chaum (1989)
  • Digital tidsstämpling (90-talet)
  • Hashcash – Adam Back (1997)
  • BitTorrent – Bram Cohen (2001)
  • Återanvändbar POW – Hal Finney (2004)
  • Bitcoin Whitepaper – Satoshi Nakamoto (2008)

En viktig influens på utvecklingen av Bitcoin var framväxten av denna Cypherpunk-rörelse på 1990-talet. De utvecklade flera kryptografiska teknologier, inklusive publika nyckelkryptografi, för att möjliggöra säker och privat kommunikation och informationsdelning. Många av de utvecklingar som beskrivs här och de personer som var involverade var en del av denna grupp.

Behovet av digitala pengar identifierades också och flera försök gjordes att skapa det, men dessa hade begränsningar som hindrade dem från att lyckas. Satoshi Nakamotos genialitet var att samla dessa förmågor, och tillsammans med några egna innovationer byggde han vidare på dem för att skapa det Bitcoin-protokoll som används idag. I nästa avsnitt kommer vi att utforska några av dessa utvecklingar och förklara hur de bidrog till utformningen av Bitcoin. Vi kommer också att diskutera vilka pusselbitar som saknades och som Satoshi lyckades lösa.

3.1 Utvecklingen av TCP/IP

De flesta av oss är bekanta med TCP/IP-protokollen som används idag som grund för internet. Deras ursprung går tillbaka till slutet av 70-talet när forskare utforskade alternativa lösningar till Arpanet – ett ännu tidigare nätverk som skapades av det amerikanska försvarsdepartementet för att möjliggöra resursdelning mellan avlägsna datorer. TCP/IP blev standardprotokollet för Arpanet 1983, vilket ledde till att det blev den dominerande nätverksmodellen i slutet av 1990-talet och grunden för det internet som My First Bitcoin använder idag.

OSI-modellen TCP/IP
Applikation Applikation
Presentation Applikation
Session Applikation
Transport Transport
Nätverk Nätverk
Datalänk Datalänk
Fysisk Fysisk

Samtidigt som TCP/IP-modellen utvecklades, togs en liknande men mer omfattande ram fram av International Standards Organisation (ISO) och telekomindustrin (CCITT). Processen för att utveckla nya protokoll eller föreslå ändringar var långsam och tungrodd jämfört med det mer decentraliserade tillvägagångssättet som användes för att utveckla TCP/IP, vilket ledde till att denna modell dominerar idag.

Förändringsförslag

Alla föreslagna utvecklingar av befintliga protokoll eller idéer för nya kan föreslås i TCP/IP-modellen genom ett Förändringsförslag-process. Dessa går igenom en godkännandeprocess, som hanteras av Internet Engineering Task Force (IETF), och blir öppen källkod när de godkänts så att vem som helst kan implementera och använda dem. Några anmärkningsvärda exempel:

  • 1969 RFC 1 Dokumenterade hur paket skulle skickas i Arpanet
  • 1981 RFC791 definierade Internetprotokoll V4 – fortfarande mycket använt idag
  • 1982 RFC 821 Simple Mail Transfer Protocol
  • 1987 Domain Name System – hur domännamn översätts till IP-adresser
  • 1999 RFC 2616 Hypertext Transfer Protocol – avgörande för att surfa på webben

My First Bitcoin Improvement ProposalBitcoin Improvement Proposal (BIP) följer ett liknande tillvägagångssätt som RFC, men fokuserar enbart på förbättringar av My First Bitcoin självt snarare än utveckling av nya eller alternativa protokoll. My First Bitcoin lånar också från denna lagerindelade modell, och du kommer att se ytterligare protokoll beskrivna som lager två eller tre.

På samma sätt som de grundläggande lagren i TCP/IP-modellen har förändrats relativt lite under de senaste decennierna, med innovationen på högre lager, förväntas grundlagret i My First Bitcoin nu förändras mycket långsamt, medan skalningslösningar som Lightning och Liquid sker ovanpå.

Ett bra exempel på hur grundläggande lagerprotokoll blir svåra att ändra över tid är IPv6. Den förväntade bristen på adressutrymme i IPv4 skapade ett behov av ett nytt protokoll. Den första utkaststandarden skapades 1998, men ratificerades inte som internetstandard förrän 2017. Även om det löste många problem med IPv4 och är mycket mer framtidssäkert, har det ändå fått mycket långsam spridning i branschen idag. Under denna tid har många nya protokoll definierats på de övre lagren för att möjliggöra multimedia, e-post osv.

Byggstenarna som används av My First Bitcoin

Denna uppdelning av problemen med sammankoppling gör att protokoll kan utvecklas oberoende av lagren ovanför och under. Istället för att behöva uppfinna lösningar på nytt för varje lager, kan My First Bitcoin-nätverket förlita sig på de underliggande funktionerna i nätverket som levereras på de fysiska och datalänkslagren.

Lager TCP/IP Ursprunglig
Applikation Använder Domain Name System (DNS) för att identifiera närliggande noder. Port 8333 signalerar My First Bitcoin-protokoll.
Transport UDP för FIBRE-kommunikation mellan miners för låg latens. TCP för P2P-kommunikation mellan noder.
Transport TOR-routing: Möjliggör anonymitet och integritet. Broadcast-protokoll: Riktar trafik över nätverket.
Länk Fungerar över alla medier (t.ex. Ethernet, Wi-Fi, etc.)
Fysisk Fysisk överföring via trådlöst, Ethernet eller andra hårdvarugränssnitt.
My First Bitcoin är ett neutralt protokoll för att överföra värde, precis som HTTPS är ett protokoll för att överföra information
  • HTTPS: Säkra webbplatser
  • SMTP: Skicka e-post
  • FTP: Överföra filer
  • DNS: Hantera domännamn
  • BTC: Lagra och överföra värde

Bitcoin möjliggör att värde kan transporteras pålitligt och utan att kräva en tredje part mellan personer eller enheter över Internet. Detta förväntas frigöra enormt värde.

3.2 Publik nyckelkryptografi och protokoll

Internet idag, och de flesta moderna datasystem, är beroende av kryptografi, en metod för att dölja information så att endast mottagaren kan avkoda den. Grunderna för den kryptografi som används för att säkra Bitcoin kan spåras tillbaka till 70-talet.

Det första problemet att lösa är – hur man skickar en gemensam hemlighet över ett osäkert medium.

Detta undersöktes först av Whitfield Diffie och Martin Hellman.

Problemet: de två parterna – vanligtvis kallade Alice och Bob – vill dela hemlig information över ett nätverk där andra kan lyssna. För att uppnå detta skapade de Diffie-Hellman-nyckelutbytesprocessen.

Denna gemensamma hemlighet kan sedan användas som startvärde för att skapa många symmetriska nycklar för att kryptera och dekryptera meddelanden som skickas mellan varandra utan att själva nyckeln delas öppet.

Eftersom den privata nyckeln aldrig behöver delas, och olika nycklar används i varje ände för att kryptera och dekryptera, kallas detta en asymmetrisk krypteringsalgoritm.

Användningsområden:

  • Alice signerar ett meddelande med Bobs publika nyckel – han är den enda som kan dekryptera det med sin privata nyckel
  • Alice signerar ett meddelande med sin privata nyckel – genom att dekryptera med hennes publika nyckel kan vem som helst verifiera att meddelandet skickades av Alice, utan att känna till hennes privata nyckel
  • Genom att kombinera dessa två metoder med två lager av kryptering kan ett meddelande skickas krypterat så att endast Bob kan dekryptera det, och han kan sedan verifiera att avsändaren verkligen var Alice

Även om han inte krediterades på artikeln, var Ralph Merkle avgörande för att lösa det som fram till dess ansågs vara ett olösligt problem – hur man etablerar eller återupprättar privat kommunikation över ett öppet och potentiellt fientligt nätverk.

Denna metod är i sig sårbar för en brute force-attack, där en angripare kan ta de delade siffrorna och så småningom återskapa en gemensam nyckel om de har tillräckligt med tid och resurser, så det är inte hela lösningen i sig.

Protokoll för publika nyckelkryptosystem

Förutom att bidra till Diffie-Hellman-systemet som beskrivs ovan, Ralph Merkle fortsatte att bidra inom detta område i många år, och var avgörande för utvecklingen av några nyckelkomponenter som används av Bitcoin.

En kryptografisk hashfunktion är en matematisk algoritm som tar indata av vilken storlek som helst och utför komplexa beräkningar för att returnera ett hashvärde i bitar, vilket vanligtvis representeras av en alfanumerisk utdata med fast längd i hexadecimal format.

  • Indata kan vara av vilken storlek som helst
  • Utdatan är alltid av fast längd och deterministisk (samma indata ger samma hash varje gång)
  • Det är lätt att verifiera men extremt svårt att omvända processen för att bestämma indata
  • En liten ändring av datan förändrar helt utdatan
Hash function

Hashning är en integrerad del av Bitcoin-protokollet. SHA-256, som används i Bitcoin, skapades av NSA och är ett exempel på en kryptografisk hashalgoritm.

  • Varje block i kedjan hash:as så att data inte kan ändras – vilket säkerställer integriteten i den distribuerade huvudboken
  • Den genererade hashen måste uppfylla 'Proof of work'-kriterierna för att anses vara ett giltigt block
  • Merkleträd – genom att använda förgreningar och hash av hash, kan hashträd möjliggöra verifiering av stora datamängder med minimalt lagringsutrymme
  • Hashbaserade signaturer och nycklar kan användas för plånböcker, adresser och auktorisation av transaktioner

Distribuerad verifiering av blockkedjans tillstånd och tilläggs-bara huvudboksmodeller som är motståndskraftiga mot ändringar möjliggörs av envägs-hashning. Hashfunktioner ger det pålitliga, deterministiska sättet att verifiera händelser på publika huvudböcker som Bitcoin utan en centraliserad förtroendemodell.

Dessa nya möjligheter inom kryptografiområdet förväntades av dess skapare leda till en ny våg av innovation.

Elliptisk kurvkryptografi

En av dessa senare innovationer kom i form av elliptisk kurvkryptografi.

Elliptisk kurvkryptografi introducerades 1985 av två forskare, N. Koblitz och V. Miller. De föreslog idén att använda punkter definierade av elliptiska kurvor istället för ändliga primfält så att antagandet om det diskreta logaritmproblemet gäller, vilket ofta används i det vanliga Diffie-Hellman-nyckelutbytesprotokollet. Detaljerna om hur detta fungerar ligger utanför denna sektion, men på en hög nivå är en elliptisk kurva mängden av punkter som uppfyller en specifik matematisk ekvation.

Ekvationen för en elliptisk kurva ser ut ungefär så här:

Elliptic curve

Detta har några användbara egenskaper:

  • Horisontell symmetri. Varje punkt på kurvan kan speglas över x-axeln och förblir på samma kurva.
  • alla icke-vertikala linjer kommer att skära kurvan på högst tre ställen.
  • Kompakta nyckelstorlekar är avgörande för effektiv lagring och överföring av publika nycklar i blockkedjan.

Dessa egenskaper kan användas för att skapa nyckelpar på ett liknande sätt som Diffie-Hellman-algoritmen. Bitcoin använder ECDSA, vilket står för Elliptic Curve Digital Signature Algorithm. Det är en process som använder en elliptisk kurva och ett ändligt fält för att "signera" data på ett sådant sätt att tredje part kan verifiera signaturens äkthet medan undertecknaren behåller den exklusiva förmågan att skapa signaturen. Med bitcoin är datan som signeras transaktionen som överför äganderätten.

Den 'ändliga' delen är liknande 'mod'-metoden med Diffie-Hellman, där ekvationens utdata delas och resten används för att säkerställa att det passar inom ett visst talintervall.

3.3 DigiCash

En av de tidiga deltagarna i den ‘nya vågen av intresse’ för kryptografi var David Chaum. Han tillbringade sina tidiga år med att lära sig bryta sig in i datasystem och hans framgångar ledde till en misstro mot så kallade ‘säkra’ system. Han insåg också ett problem som inte hade beaktats tidigare: "hur håller man hemligt vem som samtalar med vem och när".

Han utformade ett anonymt e-postprotokoll med hjälp av publik nyckelkryptografi som ‘mixade’ meddelanden för att hålla avsändare och mottagare anonyma. Detta skulle senare bli grunden för TOR-nätverket.

Chaum såg digitala betalningar på samma sätt – han insåg att ‘spårbara finansiella transaktioner som görs av en individ kan avslöja mycket om individens vistelseort, kontakter och livsstil’. År 1980 tog han patent på ett digitalt kontantsystem säkrat med kryptografi, vilket skulle bli grunden för kryptovalutor. Han började också utforska idén att använda kryptografi för att skapa en helt decentraliserad ekonomi baserad på decentralisering av meddelanden och betalningar.

Regeringar är bra på att slå ut huvudet på centralt styrda nätverk som Napster, men rena P2P-nätverk som Gnutella och TOR verkar klara sig själva.
Satoshi Nakamoto

Decentraliserade system utan central myndighet – peer-to-peer – ger flera fördelar:

  • De kan växa snabbt eftersom vem som helst kan utöka systemet genom att helt enkelt köra en ny nod utan registrering eller godkännande
  • Noderna är alla likadana så fel kan kringgås
  • Ingen central myndighet som kan tas över och kompromettera systemet
  • Är svårare att ta kontroll över, reglera, beskatta eller övervaka utan centraliserade kontrollpunkter

Ett decennium senare grundade han sitt företag, Digicash, för att skapa ‘ecash’ – världens första digitala kontantsystem. Många kända namn anslöt sig till Digicash under en tid, vilket ledde till viss framgång men till slut misslyckades företaget och gick i konkurs.

Vidare utveckling av digitala pengar

I ett foruminlägg i juli 2010 sade Satoshi Nakamoto: “Bitcoin är en implementering av Wei Dais b-money-förslag på Cypherpunks 1998 och Nick Szabos Bit Gold-förslag.”

Även om ingen av dessa två idéer gick längre än till förslagsstadiet, påverkade vissa av idéerna i dem tydligt utvecklingen av Bitcoin:

  • Att använda ‘Proof of work’ för att tilldela monetärt värde till beräkningsarbete
  • Konceptet att kostnaden för beräkningar förändras över tid och måste tas med i beräkningen

Men först ska vi titta på Hashcash.

3.4 Hashcash

Hashcash skapades av Adam Back, en annan av de tidiga innovatörerna inom detta område. Adam hade ett starkt intresse för fria marknader och integritet på internet, och stötte på Cypherpunks e-postlista som han gick med i och blev en aktiv deltagare i.

Han var mycket intresserad av digitala pengar och kom med några förslag på hur gruppen potentiellt skulle kunna arbeta närmare med DigiCash och Chaum, men dessa ledde ingenstans. Han riktade sedan sin uppmärksamhet mot ett annat framväxande problem – skräppost via e-post. Han och resten av Cypherpunks ville hitta en lösning på problemet med skräppost, där det var enkelt för spammare att skapa och skicka tusentals mejl som överbelastar nätverken. Hans innovativa lösning baserades på hashning – möjligheten med kryptografi att omvandla vilken data som helst till en unik och slumpmässig sträng av en viss längd, för att skapa motsvarigheten till ett digitalt 'frimärke' som behövde läggas till mejlet för att det skulle anses giltigt och skickas över nätverket. En obetydlig kostnad för ett äkta mejl, men avskräckande för en spammare.

Den viktigaste innovationen som Hashcash skapade var att knyta verkliga resurser – datorkraft – till ett digitalt nätverk. Medan digitala resurser fram till denna punkt kunde kopieras utan begränsningar, begränsades antalet 'hashcash' som skapades av hur mycket energi människor var villiga att investera i det.

Även om lösningen uppfyllde några av de kriterier som Adam ansåg behövdes i ett digitalt pengasystem; den var anonym, motståndskraftig och krävde inget förtroende, var varje hashcash inte återanvändbar och inte riktigt knapp. Han föreslog andra sätt att hantera dessa problem med hjälp av externa tredje parter.

BitGold

Nick Szabo byggde vidare på konceptet Hashcash och proof of work för att föreslå en alternativ lösning, som han beskrev i en e-postlista ett år efter att Hashcash publicerades, 1998.

Även om detta förslag närmade sig en lösning, fanns det fortfarande flera utmaningar.

  • Vem skulle driva registret över hash-ägande och hur kan de litas på?
  • Hashning skulle generellt sett bli billigare över tid, vilket också var en utmaning för HashCash.

Eftersom de länkade hasharna skulle tidsstämplas, föreslog han någon form av historisk spårning av svårighetsgraden för hashning vid den tiden; en tidigare hash skulle kräva mer processorkraft än en senare eftersom kostnaderna har sjunkit. Tyvärr innebar detta att hasharna inte skulle vara 'fungibla', det vill säga av lika värde, vilket anses vara en nyckelattribut för digitala pengar. För att hjälpa till att lösa detta föreslog Nick någon form av 'fri bankverksamhet' ovanpå BitGold som kunde samla olika grupper av hashar som skulle värderas lika.

B-Money

Kort efter BitGold-förslaget lade Wei Dai fram en liknande lösning. Han hade redan utvecklat flera andra verktyg för Cypherpunks och hade sina egna idéer om digitala pengar.

Hans förslag liknade BitGold genom att det använde digitala signaturer för att överföra pengar, och transaktionshistoriken skulle lagras i en huvudbok som innehöll publika nycklar och mängden valutaenheter som tilldelats varje. Precis som med BitGold ansågs betrodda tredje parter vara säkerhetsrisker, och uppfattningen var att ett elektroniskt pengasystem inte skulle förlita sig på en enda aktör för att spåra saldon, transaktioner eller förhindra dubbelspendering.

Wei Dai föreslog flera lösningar på dessa problem, varav en var att istället för att en central aktör(er) underhöll huvudboken, skulle ALLA noder ha en kopia. Om alla användare kontrollerade sin egen huvudbok och giltigheten av varje transaktion, så länge alla noder är uppdaterade borde huvudböckerna förbli synkroniserade över nätverket. Detta mycket distribuerade system skulle vara svårt att korrumpera.

Wei Dai insåg att detta inte löste bysantinska generalers problem (1), eftersom noder lätt kunde tappa synkronisering eller helt enkelt ljuga. Han föreslog alternativa metoder såsom att ha en delmängd av 'betrodda' servrar som underhåller huvudboken, och skapa ekonomiska incitament för att hålla dessa servrar ärliga.

För penningpolitiken föreslog han att knyta B-Moneys köpkraft till någon form av extern konsumentprisindex. Han ville att samma mängd B-Money skulle kunna köpa en lika stor andel av indexet över tid, för att ge viss prisstabilitet. Så, vem som helst kunde skapa nya valutaenheter genom att tillhandahålla en giltig hash, men svårighetsgraden för att generera en hash kunde förändras över tid baserat på CPU-kostnader och prisindex, så att varje enhet skulle vara 'oföränderlig'.

3.5 BitTorrent

Ett annat projekt som spelade en betydande roll i utvecklingen av kryptovalutor fram till bitcoin är BitTorrent.

År 2001 släppte Bram Cohen en design för ett protokoll som kallades BitTorrent, vilket skapades för att driva ett peer-to-peer-fildelningssystem. Han började arbeta på ett företag som hette MojoNation, som hade startats för att låta människor dela upp konfidentiella filer i krypterade delar som distribuerades på datorer som körde programvaran. En kopia av filen skulle laddas ner samtidigt från flera datorer. Även om det till slut misslyckades, introducerade det Cohen till fildelningsvärlden, där han bestämde sig för att han kunde skapa ett bättre protokoll, som bestod av:

  • Swarm: en gemenskap av datorer som laddar ner eller laddar upp innehåll
  • Tracker: ett dedikerat verktyg som fungerar ungefär som en sökmotor, men håller reda på filerna som finns inom swarmen. Detta gör det enkelt för användare att se och komma åt vilken fil de än behöver
  • BitTorrent-klient: installeras på en dator för att få tillgång till trackern. Observera att swarmen är den enda platsen där filerna faktiskt lagras
  • Ett incitamentssystem där användare som deltar i nätverket som fildelare får snabbare nedladdningar

Likheter med Bitcoin:

  • Båda protokollen fungerar på peer-to-peer-basis
  • Decentraliserad design
  • BitTorrent-filer och Bitcoin-ledgern är distribuerade över nätverket
  • Öppen källkod från början (BitTorrent blev så småningom en sluten programvara)

3.6 Återanvändbart bevis på arbete

Hal Finney är en annan känd medlem av Cypherpunk-rörelsen, som var mycket intresserad av utvecklingen av elektroniska pengar och aktiv på e-postlistan.

Han bestämde sig för att göra ett nytt försök att utveckla ett elektroniskt kontantsystem baserat på proof-of-work. Fram till denna punkt hade hash-utdata varit unik för varje transaktion, men hans idé var att skapa 'återanvändbara proof-of-work'.

Nackdelen med detta tillvägagångssätt är den centraliserade servern, som man måste lita på inte dubbelspenderar eller stängs ner. För att lösa detta föreslog Hal att använda fri och öppen källkod som kunde köras på en säker hårdvarukomponent och valideras oberoende.

Lösningen stod fortfarande inför några av samma problem som de andra förslagen:

  • Det så kallade 'hönan och ägget'-problemet med att få användning, där det saknas incitament för användare att vilja begära tokens, och säljare vill inte ansluta sig till systemet om inte användarna vill betala med dessa tokens.
  • POW kommer troligen också att bli billigare över tid i takt med att datorkraften förbättras, vilket antyder att marknaden så småningom skulle översvämmas av RPOW-valutaenheter.
Om Moores lag fortsätter att gälla kommer kostnaden för att skapa en (POW)-token att sjunka i en stadig, exponentiell takt. Kom ihåg att detta inte är pengar och inte är avsett att vara en värdebevarare, utan snarare en lättutbytbar representation av datorarbete.
Hal Finney

Dessa egenskaper begränsade projektets attraktionskraft och därmed användning, och trots hans bästa ansträngningar slutade projektet som ännu ett misslyckat försök att skapa elektroniska pengar.

3.7 Bitcoin

Efter många år och misslyckade försök hade Cypherpunks till stor del börjat tappa intresset för idén om en digital valuta utan tillstånd, när Adam Back fick ett mejl med en länk till ett utkast av en vitbok kallad 'electronic cash without a third party' från en anonym person som kallade sig Satoshi Nakamoto.

För att sammanfatta vid denna punkt har vi åtminstone idéerna om:

  • Kryptografiska signaturer som kan ge en viss nivå av integritet och anonymitet
  • Konceptet av en icke-täckt valuta (B-Money)
  • Förslag (men inga medel) för att begränsa utgivningen av ny valuta
  • Digitala mynt vars ägande tilldelades genom publika nycklar (B-Money) och kunde flyttas genom signering och omfördelas baserat på mottagarens adress (RPOW och Hashcash)
  • Alla noder underhåller en kopia av en helt distribuerad huvudbok (B-Money) (avfärdades då som opraktiskt)
  • Tidsstämplingsprotokoll – att använda Merkle-trädhashning för att ge en matematiskt bevisbar kronologi av händelser som är svår att förfalska om alla användare behåller samma register
  • Proof of work för att knyta verklig ansträngning till systemet (men där själva hashen användes som valuta)
  • Helt decentraliserade nätverk där alla deltagare är jämlika och kan komma och gå från nätverket (BitTorrent)
  • Konceptet att knyta nya hashar till tidigare hashar (Bit Gold och tidsstämpling)

Det som saknades vid denna tidpunkt inkluderade:

  • En fungerande lösning på 'Byzantine generals'-problemet
  • En metod för att begränsa mängden pengar i omlopp trots kontinuerliga förbättringar av hårdvara
  • Incitamentsystem för att få folk att delta (hönan och ägget-problemet)

Den andra stora skillnaden mellan de senaste försöken och Bitcoin var att Satoshi hade arbetat på koden under en längre tid i sann 'Cypherpunks write code'-anda innan han tillkännagav den på e-postlistorna, till skillnad från Bit Gold och B-Money som var mer konceptuella.

Vad var innovationen som gjorde att Bitcoin skiljde sig från tidigare försök med elektroniska pengar?

Proof of work skulle användas som ett konsensusmekanism och ett sätt att ge säkerhet och oföränderlighet: Istället för att använda hashen som en form av pengar, skulle den användas av en ny konceptuell process kallad mining, där en nod samlar ihop en uppsättning transaktioner, lägger till ett slumpmässigt tal och sedan applicerar hashningen på 'blocket' av data. Ett giltigt block som uppfyllde hashkravet skulle sedan annonseras till nätverket. Dessa block skulle kopplas ihop genom att använda hashen från föregående block i varje, och den längsta blockkedjan skulle användas vid oavgjort där olika noder validerar och annonserar olika block samtidigt och skapar kedjedelningar. Proof of work blev den distribuerade skiljedomaren för att lösa Byzantine generals-problemet.

Dessa miners fick också ett incitament att tillhandahålla den CPU-kraft som krävdes för att utföra proof-of-work genom att tilldelas nya bitcoin för varje block. Mängden Bitcoin de belönas med är också programmerad att minska ungefär vart fjärde år tills alla Bitcoin har skapats, vilket skapar en hård gräns för det totala antalet Bitcoin som någonsin kommer att finnas i omlopp till 21 miljoner.

Den mest originella idén var hur han löste frågan om hur mycket pengar som skapas när hårdvaran förbättras och mer kraft kan användas på nätverket. Tidsstämplarna för ett visst antal block (2016) skulle medelvärdesberäknas, och om de skapas för snabbt skulle hashen som krävs för att skapa ett nytt block göras svårare, om det går för långsamt skulle det göras lättare. Detta byggdes in i det decentraliserade protokollet som alla noder kör, så att varje miner som ignorerar det skulle slösa energi på att mina ett block utan nytta eftersom det skulle avvisas av resten av nätverket. Denna justering säkerställer att skapandet av nya block förblir enligt den planerade utgivningstakten och ger incitament för miners att 'följa reglerna'.


Sammanfattning

Många av pusselbitarna för vad som krävs för att bygga ett decentraliserat peer-to-peer-system för elektroniska pengar baserat på sunda penningprinciper fanns på plats innan Satoshi släppte sin vitbok och kort därefter den första versionen av koden.

Bitcoin är av sådan natur att när version 0.1 släpptes var kärndesignen fastslagen för resten av dess livstid
Satoshi Nakamoto

Även om många idéer för förbättringar (BIP:er) har föreslagits och antagits, har Bitcoin arbetat på i bakgrunden sedan 2009 enligt protokollet som designades i den första versionen och med knappt någon störning. Alla förbättringar har gjorts samtidigt som bakåtkompatibilitet med alla tidigare versioner har bibehållits.

Anteckningar
  1. För en förklaring av Byzantine Generals-problemet – se https://sv.wikipedia.org/wiki/Byzantine_fault

↑ Tillbaka till innehåll