Cryptology Academy · Lektion

Proof of Work: mining och svårighetsjustering

Implementera en PoW-miner och förstå sökning efter nonce och målsvårighet.

Lektion 3 av 413 steg

Proof of Work: mining och svårighetsjustering är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 3 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.

Vad är Proof of Work?

Proof of Work (PoW) kräver att en blockproducent utför en beräkningsmässigt kostsam uppgift för att lägga till ett block. Detta motverkar spam och gör det dyrt att skriva om kedjan. Det är billigt att verifiera beviset (en hash). Att utföra arbetet kräver många hashberäkningar.

Utmaningen vid mining

Bitcoin-PoW: hitta en nonce sådan att SHA256d(block_header) < target. target är ett 256-bitars tal. Ett mindre target innebär att hashresultatet måste ha fler inledande nollor, vilket gör giltiga nonce-värden mer sällsynta och svårare att hitta.

PoW-demo i Python

import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"

Svårighetsmål

Bitcoins blockhuvud har ett "bits"-fält som kodar det aktuella target-värdet. Target = coefficient * 256^(exponent-3). Exempel: bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3)) = ett 256-bitars tal som kräver ungefär 72 inledande nollbitar.

Justering av svårighetsgrad

Bitcoin justerar svårighetsgraden var 2016:e block (cirka 2 veckor). Justering av target: new_target = old_target * (actual_time / 2016 * 10 minuter). Om blocken kom snabbare än ett genomsnitt på 10 minuter minskar target (svårare). Om de kom långsammare ökar target (lättare). Detta upprätthåller en blocktid på cirka 10 minuter.

Hashrate och säkerhet

Nätverkets hashrate (H/s) mäter den totala miningkapaciteten. Högre hashrate = mindre sannolikhet per tidsenhet att av en slump hitta en giltig nonce. För att skriva om k block behöver en angripare mer än 50 % av nätverkets hashrate under en tid som är proportionell mot k*10 minuter.

51 %-attack

Med mer än 50 % hashrate kan en angripare: (1) bryta en hemlig förgrening, (2) ta med eller utesluta transaktioner, (3) genomföra en double-spend genom att publicera en längre kedja efter att en betalning har bekräftats. Kan inte: stjäla andras mynt, skapa mynt ur tomma intet, återkalla transaktioner långt bak i kedjan.

ASIC-mining och centralisering

Bitcoin-mining med SHA256d domineras av ASIC:er (Application-Specific Integrated Circuits) — kretsar optimerade för en enda hashfunktion. ASIC:er är 10^6 gånger effektivare än processorer. Detta koncentrerar mining till stora datacenter och väcker farhågor om centralisering.

Minneshård PoW

Ethereum använde Ethash (nu föråldrat) — minneshård PoW som kräver en stor DAG-datauppsättning. Minneshårdhet motverkar ASIC:er (minnesbandbredd är svår att optimera billigt). Monero använder RandomX (CPU-optimerad och ASIC-resistent). Zcash använder Equihash (minneshård).

Selfish mining

Strategi för selfish mining: håll inne ett upptäckt block, bryt ett andra block och släpp sedan båda samtidigt. Om tidpunkten väljs rätt slösar ärliga miners arbete på det övergivna blocket. Kräver ungefär 33 % hashrate för att i genomsnitt vara lönsam, inte 51 %.

Alternativet Proof of Stake

Proof of Stake (PoS, som Ethereum använder efter The Merge) ersätter hashberäkningar med kryptovaluta som satts in som insats. Validatorer väljs för att föreslå block i proportion till sin insats. PoS använder 99,95 % mindre energi än PoW. Avvägning: andra antaganden om tillit och annan attackekonomi.

Snabb kontroll

Vad försöker Bitcoins justering av svårighetsgraden upprätthålla?

Sammanfattning

PoW kräver att man hittar en nonce sådan att SHA256d(header) < target. Svårighetsgraden justeras var 2016:e block. 51 % hashrate möjliggör double-spend-attacker. ASIC:er dominerar Bitcoins mining; minneshårda funktioner motverkar ASIC:er. Nästa avsnitt: Bitcoin Script och UTXO-signaturer.

Gratis att börja

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 ”Proof of Work: mining och svårighetsjustering” gratis?

Ja – hela texten till ”Proof of Work: mining och svårighetsjustering” 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 ”Proof of Work: mining och svårighetsjustering”?

Implementera en PoW-miner och förstå sökning efter nonce och målsvårighet. 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 3 av 4.

Hur lång tid tar lektionen ”Proof of Work: mining och svårighetsjustering”?

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

  1. Hashkedjor och blocklänkning
  2. Merkle-träd: transaktionsintegritet i stor skala
  3. Proof of Work: mining och svårighetsjustering
  4. Bitcoin Script och UTXO-signaturverifiering
← Tillbaka till Cryptology Academy