Blockkedjor säkras genom en mängd olika mekanismer som inkluderar avancerade kryptografiska tekniker och matematiska modeller för beteende och beslutsfattande. Blockkedjetekniken är den underliggande strukturen för de flesta kryptovalutasystem och är det som förhindrar att denna typ av digitala pengar dupliceras eller förstörs.
Användningen av blockkedjetekniken utforskas också i andra sammanhang där oföränderlighet och säkerhet inom data är mycket värdefulla. Några exempel inkluderar registrering och spårning av välgörenhetsdonationer, medicinska databaser och hantering av försörjningskedjan.
Blockkedjans säkerhet är dock långt ifrån ett enkelt ämne. Därför är det viktigt att förstå de grundläggande begreppen och mekanismerna som ger ett robust skydd för dessa innovativa system.
Begreppen oföränderlighet och konsensus
Även om många funktioner spelar in i säkerheten i samband med blockkedjan, är två av de viktigaste begreppen konsensus och oföränderlighet. Konsensus hänvisar till nodernas förmåga inom ett distribuerat blockkedjenätverk att komma överens om nätverkets äkta tillstånd och om transaktionernas giltighet. Vanligtvis är processen för att uppnå konsensus beroende av de så kallade konsensusalgoritmerna.
Oföränderlighet hänvisar å andra sidan till blockkedjornas förmåga att förhindra förändring av transaktioner som redan har bekräftats. Även om dessa transaktioner ofta är relaterade till överföring av kryptovalutor, kan de även hänvisa till register över andra icke-monetära former av digitala data.
Kombinerat ger konsensus och oföränderlighet ramverket för datasäkerhet i blockkedjenätverk. Även om konsensusalgoritmer säkerställer att systemets regler följs och att alla inblandade parter är överens om nätverkets nuvarande tillstånd, garanterar oföränderlighet integriteten hos data och transaktionsposter efter att varje nytt datablock har bekräftats vara giltigt.
Kryptografins roll inom blockkedjesäkerhet
Blockkedjor förlitar sig starkt på kryptografi för att uppnå datasäkerhet. I detta sammanhang är de så kallade kryptografiska hashfunktionerna av grundläggande betydelse. Hashing är en process där en algoritm (hashfunktion) tar emot indata av vilken storlek som helst och returnerar utdata (hash) som innehåller en förutsägbar och fast storlek (eller längd).
Oavsett storleken på indata kommer utdata alltid att ha samma längd. Men om indata ändras kommer utdata att vara helt annorlunda. Men om indata inte ändras kommer den resulterande hashen alltid att vara densamma – oavsett hur många gånger du kör hashfunktionen.
Inom blockkedjor används dessa värden på utdata, så kallade hashar, som unika identifierare för datablock. Hash för varje block genereras i förhållande till hashen i det föregående blocket och det är detta som skapar en kedja av länkade block. Ett blockhash är beroende av data som finns i det blocket, vilket innebär att alla ändringar som gjorts i data skulle kräva en ändring av blockhash.
Därför genereras hashen för varje block baserat på både data som finns i det blocket och hashen från det föregående blocket. Dessa hashidentifierare spelar en viktig roll för att säkerställa blockkedjans säkerhet och oföränderlighet.
Hashing utnyttjas också i konsensusalgoritmerna som används för att validera transaktioner. På Bitcoins blockkedja använder algoritmen bevis på arbete till exempel en hashfunktion som heter SHA-256. Som namnet antyder tar SHA-256 indata och returnerar en hash som är 256 bitar eller 64 tecken lång.
Förutom att ge skydd för transaktionsposter på huvudböcker, spelar kryptografi också en roll för att garantera säkerheten för plånböckerna som används för att lagra enheter av kryptovaluta. De kopplade offentliga och privata nycklarna som tillåter användare att ta emot och skicka betalningar skapas med hjälp av asymmetrisk eller offentlig nyckelkryptering. Privata nycklar används för att generera digitala signaturer för transaktioner, vilket gör det möjligt att autentisera ägandet av de coin som skickas.
Även om vi inte går in på smådetaljerna i denna artikel, kan man säga att karaktären av asymmetrisk kryptografi hindrar någon annan än den privata nyckelinnehavaren från att få åtkomst till tillgångar som lagras i en kryptovalutaplånbok, vilken håller dessa tillgångar säkra tills ägaren bestämmer sig för att spendera dem (så länge den privata nyckeln inte delas eller hackas).
Kryptoekonomi
Förutom kryptografi spelar ett relativt nytt koncept som kallas kryptoekonomi också en roll för att upprätthålla säkerheten för blockkedjenätverk. Detta är relaterat till ett studieområde som kallas spelteori, som matematiskt modellerar beslutsfattande av rationella aktörer i situationer med fördefinierade regler och belöningar. Även om traditionell spelteori i stort sett kan tillämpas på flera olika områden, modellerar och beskriver kryptoekonomi specifikt beteendet hos noder på distribuerade blockkedjesystem.
Kort sagt är kryptoekonomi studien av ekonomin inom blankningsprotokoll och de möjliga resultaten som deras design kan ge baserat på deltagarnas beteende. Säkerhet genom kryptoekonomi bygger på uppfattningen att blockkedjesystem ger större incitament för noder att agera ärligt än att anta skadliga eller felaktiga beteenden. Återigen erbjuder konsensusalgoritmen bevis på arbete som används inom Bitcoin-utvinning ett bra exempel på denna incitamentsstruktur.
När Satoshi Nakamoto skapade ramverket för Bitcoin-utvinning var det avsiktligt utformat för att vara en kostsam och resurskrävande process. På grund av dess komplexitet och beräkningskrav innebär arbetsbevis-utvinning en betydande investering av pengar och tid – oavsett var och vem utvinningsnoden är. Därför ger en sådan struktur ett starkt avskräckande för skadlig aktivitet och betydande incitament för ärlig utvinningsaktivitet. Oärliga eller ineffektiva noder kommer snabbt att avvisas från blockkedjenätverket, medan alla ärliga och effektiva miners har potential att få betydande block-belöningar.
På samma sätt ger denna balans mellan risker och belöningar också skydd mot potentiella attacker som kan förstöra en konsensus genom att placera den större delen av hashhastigheten för ett blockkedjenätverk i händerna på en enda grupp eller enhet. Sådana attacker, kända som 51-procentsattacker, kan vara extremt skadliga om de lyckas. På grund av konkurrenskraften hos utvinning med bevis på arbete och storleken på Bitcoin-nätverket är sannolikheten för att en skadlig aktör får kontroll över en majoritet av noderna extremt minimal.
Dessutom skulle kostnaden för datorkraft som behövs för att uppnå 51 procent kontroll över ett stort blockkedjenätverk vara astronomiska, vilket gör det omedelbart avskräckande för att göra en så stor investering för en relativt liten potentiell belöning. Detta faktum bidrar till en egenskap hos blockkedjor som kallas bysantinsk feltolerans(BFT), vilket i huvudsak är förmågan hos ett distribuerat system att fortsätta fungera normalt även om vissa noder äventyras eller agerar skadligt.
Så länge kostnaden för att etablera en majoritet av skadliga noder förblir oöverkomliga och bättre incitament finns för ärlig aktivitet, kommer systemet att kunna fungera utan betydande störningar. Det är dock värt att notera att små blockkedjenätverk verkligen är mottagliga för majoritetsattacker, eftersom den totala hashhastigheten som ägnas åt dessa system är betydligt lägre än för Bitcoin.
Sammanfattningsvis
Genom den kombinerade användningen av spelteori och kryptografi kan blockkedjor uppnå höga säkerhetsnivåer som distribuerade system. Som med nästan alla system är det dock viktigt att dessa två kunskapsområden tillämpas korrekt. En noggrann balans mellan decentralisering och säkerhet är avgörande för att bygga ett pålitligt och effektivt kryptovalutanätverk.
I och med att användningen av blockkedjan fortsätter att utvecklas kommer dess säkerhetssystem också att förändras för att tillgodose behoven hos olika tillämpningar. De privata blockkedjorna som nu utvecklas för affärsföretag förlitar sig till exempel mycket mer på säkerhet genom åtkomstkontroll än på spelteorimekanismerna (eller kryptoekonomi), som är oumbärligt för säkerheten för de flesta offentliga blockkedjor.