Kryptografi for blokkjeder
Forstå hashfunksjoner, kryptografi med offentlig nøkkel og digitale signaturer slik de brukes i blokkjedeteknologi.
Kryptografi for blokkjeder er en gratis leksjon i Grunnleggende om Web3- og DApp-utvikling på CoddyKit. Dette er leksjon 1 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende om Web3- og DApp-utvikling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende om Web3- og DApp-utvikling inneholder totalt 3 leksjoner.
Krypto: Blockchains hemmelige ingrediens
Velkommen til kryptografi for blockchain! Kryptografi er grunnlaget for blockchain-teknologi og sørger for sikkerhet, integritet og tillit.
I denne leksjonen skal vi avdekke hemmelighetene bak hashfunksjoner, kryptografi med offentlig nøkkel og digitale signaturer – sentrale konsepter som gjør desentraliserte systemer mulige.
Hashing: Et digitalt fingeravtrykk
Se for deg at du tar en hvilken som helst mengde data – en tekst, et bilde eller en hel bok – og gjør den om til en unik tegnstreng med fast lengde. Det er dette en hashfunksjon gjør!
Det fungerer som et digitalt fingeravtrykk for dataene dine. Selv en liten endring i originaldataene gir et helt annet fingeravtrykk.
Kryptografiske hashfunksjoners superkrefter
Kryptografiske hashfunksjoner har spesielle egenskaper som gjør dem perfekte for blockchain:
- Enveis: Det er enkelt å beregne hashen, men nesten umulig å finne frem til originaldataene fra hashen.
- Deterministisk: Det samme inndataet gir alltid nøyaktig den samme hashverdien som utdata.
- Kollisjonsresistent: Det er svært vanskelig å finne to forskjellige inndata som gir samme hashverdi.
- Skredeffekt: En liten endring i inndata gir en drastisk annerledes hashverdi.
Hashing-demo: Se det i praksis!
La oss se skredeffekten med en vanlig hashingalgoritme, SHA-256 (Secure Hash Algorithm 256-bit). Legg merke til hvordan en liten endring endrer hashen fullstendig.
import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Main {
public static String applySha256(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder hexString = new StringBuilder();
for (byte b : hash) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
return hexString.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
String data1 = "Hello CoddyKit!";
String data2 = "hello CoddyKit!"; // Note: 'h' vs 'H'
System.out.println("Data 1 Hash: " + applySha256(data1));
System.out.println("Data 2 Hash: " + applySha256(data2));
}
}Hasher: Koble sammen blokker og data
I blockchain er hasher grunnleggende:
- Blokkobling: Hver blokk inneholder hashen til den forrige blokken. Dette skaper en ubrutt kjede og gjør det nesten umulig å endre tidligere transaksjoner uten å ugyldiggjøre påfølgende blokker.
- Dataintegritet: Hashen til en blokk beregnes ut fra alle dataene i den (transaksjoner, tidsstempel og så videre). Hvis bare én del av dataene manipuleres, endres blokkens hash, og endringen blir avslørt umiddelbart.
Kryptografi med offentlig nøkkel: To nøkler, én lås
Kryptografi med offentlig nøkkel (også kalt asymmetrisk kryptografi) bruker et par matematisk sammenkoblede nøkler: en offentlig nøkkel og en privat nøkkel.
Tenk på det som en spesiell postkasse: Alle kan legge et brev i den (kryptere med den offentlige nøkkelen), men bare personen med den unike nøkkelen kan åpne den (dekryptere med den private nøkkelen).
Din digitale identitet: Nøkler
Dette nøkkelparet er avgjørende:
- Privat nøkkel: Dette er hemmeligheten din. Den fungerer som passord og signatur i ett. Du må aldri dele den! Den brukes til å dekryptere meldinger eller opprette digitale signaturer.
- Offentlig nøkkel: Denne utledes fra den private nøkkelen din og kan deles åpent. Andre bruker den til å kryptere meldinger til deg eller bekrefte de digitale signaturene dine.
Disse nøklene gjør sikker kommunikasjon mulig uten at en hemmelighet må deles direkte.
Digitale signaturer: Bevis på ekthet
En digital signatur er en kryptografisk teknikk som brukes til å bekrefte ektheten og integriteten til en digital melding eller et dokument.
Den ligner en håndskrevet signatur, men er langt sikrere! Den bekrefter at meldingen faktisk kom fra den som signerte, og at den ikke har blitt endret siden signeringen.
Signere og bekrefte digitalt
Slik fungerer det vanligvis:
- Avsenderen hasher meldingen.
- Avsenderen krypterer denne hashen med sin private nøkkel for å opprette den digitale signaturen.
- Mottakeren får meldingen og signaturen.
- Mottakeren hasher den mottatte meldingen selv.
- Mottakeren dekrypterer avsenderens signatur med avsenderens offentlige nøkkel for å hente ut den opprinnelige hashen.
- Hvis de to hashen er like, er signaturen gyldig, og meldingen er ekte og uendret!
Kort sjekk: Kryptografi
Hvilken av de følgende er IKKE en grunnleggende egenskap ved en kryptografisk hashfunksjon?
Oppsummering: Kryptografiens rolle i Web3
Godt jobbet! Du har lært det kryptografiske grunnlaget som driver Web3:
- Hashfunksjoner: Oppretter unike fingeravtrykk med fast lengde for data, sikrer integritet og kobler sammen blokker.
- Kryptografi med offentlig nøkkel: Bruker nøkkelpar (offentlig/privat) for sikker kommunikasjon og identitet.
- Digitale signaturer: Gir autentisitet og hindrer at transaksjoner kan benektes, noe som er avgjørende for blockchain-sikkerhet.
Disse konseptene er avgjørende for å forstå hvordan kryptovalutaer og desentraliserte apper forblir sikre og pålitelige. Neste skal vi se nærmere på hvordan disse nøklene håndteres i lommebøker!
Lær deg Grunnleggende om Web3- og DApp-utvikling med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 29
- Leksjoner
- 105
Ofte stilte spørsmål
Er leksjonen «Kryptografi for blokkjeder» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende om Web3- og DApp-utvikling, inkludert «Kryptografi for blokkjeder», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende om Web3- og DApp-utvikling inneholder totalt 3 leksjoner.
Hva lærer jeg i «Kryptografi for blokkjeder»?
Forstå hashfunksjoner, kryptografi med offentlig nøkkel og digitale signaturer slik de brukes i blokkjedeteknologi. Du øver på Grunnleggende om Web3- og DApp-utvikling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Grunnleggende om Web3- og DApp-utvikling?
Ingen tidligere erfaring er nødvendig. Grunnleggende om Web3- og DApp-utvikling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 3.
Hvor lang tid tar leksjonen «Kryptografi for blokkjeder»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Grunnleggende om Web3- og DApp-utvikling-leksjonen?
Ja. Alle Grunnleggende om Web3- og DApp-utvikling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Kryptografi for blokkjeder
- Offentlige/private nøkler og lommebøker
- Introduksjon til MetaMask