Merkle-träd: transaktionsintegritet i stor skala
Konstruera Merkle-träd och generera inklusionsbevis effektivt.
Merkle-träd: transaktionsintegritet i stor skala är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Problem: effektiv verifiering av transaktioner
Ett Bitcoin-block innehåller cirka 2000 transaktioner. För att bevisa att transaktion T ingår utan att ladda ned alla 2000 transaktioner behöver vi ett kompakt bevis. Merkle-träd löser detta: bevisstorleken = O(log n) hashvärden i stället för O(n) transaktioner.
Konstruktion av Merkle-träd
Löv: SHA256d (dubbel-SHA-256) för varje transaktion. Förälder: SHA256d(left_child_hash || right_child_hash). Upprepa tills en enda rothash återstår. Om antalet noder är udda dupliceras den sista noden. Roten är Merkle-roten som lagras i blockhuvudet (32 byte).
Merkle-rot i Python
import hashlib def sha256d(x): return hashlib.sha256(hashlib.sha256(x).digest()).digest() def merkle_root(txids): if len(txids)%2: txids.append(txids[-1]) while len(txids)>1: txids=[sha256d(txids[i]+txids[i+1]) for i in range(0,len(txids),2)] return txids[0].hex()
Merkle-bevis (inklusionsbevis)
För att bevisa att transaktion T finns på position i: ange syskonhasharna på varje nivå från bladet för T till roten (O(log n) hashvärden). Verifieraren beräknar om roten utifrån T och syskonvägen. Om den beräknade roten stämmer med Merkle-roten i blockhuvudet är det bevisat att T ingår.
Exempel på bevisstorlek
1024 transaktioner → ett Merkle-bevis = 10 hashvärden = 320 byte. Ett helt block = ~1 MB. SPV-klienter laddar bara ned det 80 byte stora blockhuvudet + ett Merkle-bevis på 320 byte för varje transaktion de är intresserade av — 99,97 % mindre bandbredd jämfört med att ladda ned hela blocket.
Detektering av manipulation
Om någon transaktion i trädet ändras ändras dess lövhash, vilket fortplantas uppåt och ändrar Merkle-roten. Den ändrade roten stämmer då inte längre med blockhuvudet (som är förseglat med PoW). Alla ändringar kan upptäckas genom att beräkna roten utifrån transaktionerna.
Patricia Merkle Trie (Ethereum)
Ethereum utökar Merkle-träd med tries (Patricia Merkle Trie): ett radix-trie med hexadecimalt prefix där varje nod hashas för att bilda en Merkle-struktur. Används för: tillståndstrie (kontosaldon), transaktionstrie, kvittotrie. Möjliggör effektiva bevis av kontotillstånd utan data från en fullständig nod.
Merkle Mountain Range
En Merkle Mountain Range (MMR) är en append-only-Merkle-struktur för loggliknande data. Nya element läggs till; topparna (rötterna för delträd med storlek som är en tvåpotens) underhålls. Används i Grin/MimbleWimble och ZCash för effektiva, kompakta bevis över en append-only-logg.
Verkle-träd
Verkle-träd ersätter Merkle-träd i Ethereums färdplan (EIP-6800): de använder vektoråtaganden (KZG-polynomåtaganden) i stället för hashvärden. Bevisstorlek: O(1) jämfört med O(log n) för Merkle-träd. Det gör det möjligt för tillståndslösa klienter att verifiera tillstånd utan att lagra hela trien.
Certificate Transparency som Merkle-logg
Certificate Transparency (RFC 6962) använder en append-only-Merkle-logg: varje certifikat som utfärdas av en CA är ett löv. Inklusionsbevis verifierar att ett certifikat har loggats. Konsistensbevis verifierar att loggen endast har utökats (ingen radering eller insättning). Webbläsarleverantörer verifierar SCT:er via denna logg.
Gits objektmodell
Gits träd (ögonblicksbilder av kataloger) är Merkle-träd: varje trädnod hashar sina filblobbar och underträd. En commit-hash identifierar hela kodbasens tillstånd unikt. Därför ger git checkout
Snabb kontroll
Hur många hashvärden kräver ett Merkle-bevis för att bevisa inkludering i ett träd med 1024 löv?
Sammanfattning
Merkle-träd möjliggör inklusionsbevis med O(log n). Bitcoin lagrar Merkle-roten i blockhuvuden; SPV-klienter använder bevis. Ethereum utökar detta till Patricia Merkle Tries. Verkle-träd kommer att ersätta Merkle-träd för O(1)-bevis. Nästa avsnitt: Proof of Work-mining och svårighetsgrad.
Lär dig Cryptology Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 67
- Lektioner
- 261
Vanliga frågor
Är lektionen ”Merkle-träd: transaktionsintegritet i stor skala” gratis?
Ja – hela texten till ”Merkle-träd: transaktionsintegritet i stor skala” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Merkle-träd: transaktionsintegritet i stor skala”?
Konstruera Merkle-träd och generera inklusionsbevis effektivt. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?
Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Merkle-träd: transaktionsintegritet i stor skala”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?
Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Hashkedjor och blocklänkning
- Merkle-träd: transaktionsintegritet i stor skala
- Proof of Work: mining och svårighetsjustering
- Bitcoin Script och UTXO-signaturverifiering