Cryptology Academy · Lektion

Bitcoin Script och UTXO-signaturverifiering

Följ pay-to-public-key-hash-skript (P2PKH) och ECDSA-signering.

Lektion 4 av 413 steg

Bitcoin Script och UTXO-signaturverifiering är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 4 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.

UTXO-modellen

Bitcoin använder outnyttjade transaktionsutdata (UTXO:er). Varje UTXO är ett mynt med ett låsningsskript (scriptPubKey). För att spendera det tillhandahåller spenderaren ett upplåsningsskript (scriptSig) som uppfyller låsningsskriptet. UTXO:er är odelbara – antingen spenderade eller outnyttjade, aldrig delvis spenderade.

Bitcoin Script

Bitcoin Script är ett stackbaserat språk som inte är Turing-komplett. Skript körs genom att data läggs på stacken och opkoder körs. Inga loopar, ingen rekursion – skript terminerar alltid. Denna avsiktliga begränsning förhindrar denial-of-service-attacker och gör skriptverifieringen O(n) i förhållande till skriptets längd.

P2PKH: Betala till hash av publik nyckel

Den vanligaste typen av utdata. scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG. scriptSig: . Körning: lägg sig+pubkey på stacken, duplicera pubkey, beräkna hash160, jämför med den inbäddade hashen och verifiera ECDSA-signaturen. Om allt lyckas kan myntet spenderas.

Körningsspår för P2PKH

Stackspår för P2PKH: lägg på stacken; lägg på stacken; OP_DUP → lägg en kopia på stacken; OP_HASH160 → beräkna hash160 för det översta elementet; lägg på stacken; OP_EQUALVERIFY → ta bort två element och misslyckas om de inte är lika; OP_CHECKSIG → ta bort sig+pubKey, verifiera ECDSA och lägg TRUE/FALSE på stacken. Skriptet lyckas om resultatet är TRUE.

ECDSA i Bitcoin

Bitcoin använder ECDSA över secp256k1 (Koblitz-kurvan, y^2 = x^3 + 7 mod p). Den privata nyckeln d ∈ [1, n-1]. Den publika nyckeln Q = d*G. Sign(m): k är slumpmässigt; r = (k*G).x mod n; s = k^{-1}(H(m)+r*d) mod n. Signaturen = (r, s). DER-kodad i scriptSig.

SIGHASH-typer

Bitcoin-signaturer binder specifika delar av transaktionen: SIGHASH_ALL (standard): signera alla indata+utdata. SIGHASH_SINGLE: signera endast motsvarande utdata. SIGHASH_NONE: signera inga utdata (farligt). SIGHASH_ANYONECANPAY: signera endast den egna indatan – möjliggör samarbetsbaserade transaktioner.

P2SH: Betala till hash av skript

P2SH gör det möjligt att dölja komplexa spenderingsvillkor bakom en hash. scriptPubKey: OP_HASH160 OP_EQUAL. scriptSig: . Körning: verifiera att hash(redeemScript) == scriptHash och kör sedan redeemScript. Detta möjliggör multisig utan att villkoren avslöjas förrän myntet spenderas.

Multisig (2 av 3)

redeemScript: OP_2 OP_3 OP_CHECKMULTISIG. scriptSig: OP_0 . OP_0 kringgår en bugg i OP_CHECKMULTISIG som tar bort ytterligare ett stackelement. Multisig med 2 av 3 kräver två valfria av de tre signaturerna.

Segwit och P2WPKH

Segregated Witness (SegWit, BIP-141) flyttar signaturerna från scriptSig till ett separat witness-fält. Det åtgärdar transaktionsmalleabilitet (ID:t ändras om scriptSig ändras). P2WPKH scriptPubKey: OP_0 <20-byte pubKeyHash>. Witness: [ ].

Taproot (P2TR)

Taproot (BIP-340/341/342) använder Schnorr-signaturer och Merkleiserade abstrakta syntaxträd (MAST). Standardspendering: en enda Schnorr-signatur, som inte kan skiljas från en keypath-spendering. Komplexa villkor döljs i ett Merkle-träd och avslöjas endast om de används. Integritet + effektivitet.

Skriptverifiering i kod

Bitcoin Core validerar skript i en stacktolk. CheckSig anropar VerifyScript, som kör det kombinerade scriptSig+scriptPubKey. För varje CHECKSIG-opkod anropar den CheckECDSASignature, som verifierar den DER-kodade (r,s) mot transaktionens hash med hjälp av secp256k1.

Snabbtest

Vad verifierar OP_CHECKSIG i ett P2PKH-skript?

Sammanfattning

UTXO:er använder det stackbaserade Bitcoin Script. P2PKH är det vanligaste spenderingsmönstret: hasha och verifiera en publik nyckel och kontrollera sedan ECDSA-signaturen. SegWit åtgärdar malleabilitet; Taproot lägger till Schnorr och MAST. Nästa avsnitt: differentiell kryptoanalys.

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 ”Bitcoin Script och UTXO-signaturverifiering” gratis?

Ja – hela texten till ”Bitcoin Script och UTXO-signaturverifiering” 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 ”Bitcoin Script och UTXO-signaturverifiering”?

Följ pay-to-public-key-hash-skript (P2PKH) och ECDSA-signering. 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 4 av 4.

Hur lång tid tar lektionen ”Bitcoin Script och UTXO-signaturverifiering”?

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