Definitie
Bitcoin Script is een op stacks gebaseerde, Turing-onvolledige programmeertaal die wordt gebruikt om de voorwaarden te definiëren waaronder Bitcoin-transacties kunnen worden uitgegeven. Het is een eenvoudig maar krachtig scriptsysteem dat is ingebed in elke Bitcoin-transactie-output (vergrendelingsscript of scriptPubKey) en -input (ontgrendelingsscript of scriptSig), waardoor programmeerbare bestedingsvoorwaarden mogelijk zijn zonder het Bitcoin-netwerk bloot te stellen aan de risico's van een Turing-compleet smart contract-platform. Bitcoin Script maakt multi-signature wallets , tijdgebonden transacties, hash-locked contracts, betaalkanalen en atomic swaps mogelijk – allemaal zonder dat een algemene blockchain nodig is.
Oorsprong en geschiedenis
| Datum | Evenementen |
| 2008 | Satoshi Nakamoto ontwerpt Bitcoin Script als onderdeel van het ontwerp van de Bitcoin whitepaper. |
| 2009 | Bitcoin-script geïmplementeerd in het genesisblok van Bitcoin; Pay-to-Public-Key (P2PK) is het eerste scripttype. |
| 2012 | BIP 16: Pay-to-Script-Hash (P2SH) geïntroduceerd, waardoor complexe inwisselscripts mogelijk worden. |
| 2015 | CHECKLOCKTIMEVERIFY (CLTV) is toegevoegd, waardoor absolute tijdvergrendelingen op transacties mogelijk zijn. |
| 2016 | CHECKSEQUENCEVERIFY (CSV) is toegevoegd, waardoor relatieve tijdsloten voor betaalkanalen mogelijk zijn. |
| 2017 | SegWit introduceert Pay-to-Witness-Public-Key-Hash (P2WPKH) en P2WSH. |
| 2021 | De Taproot-upgrade (BIP 340/341/342) introduceert Schnorr-handtekeningen en MAST via Tapscript. |
| 2023 | Bitcoin-ordinalen maken gebruik van Script om gegevens in getuigengegevens vast te leggen. |
| 2023 | Het debat over de herintroductie van BIP 347 (OP_CAT) met het oog op mogelijke scriptuitbreidingen laait op. |
“Bitcoin Script is bewust beperkt – en dat is een kenmerk, geen fout. Eenvoud is veiligheid.” – Greg Maxwell, Bitcoin Core-ontwikkelaar
Hoe het werkt
UITVOERING VAN HET BITCOIN-TRANSACTIESCRIPT ═ ... OP_EQUALVERIFY OP_CHECKSIG (Standaard P2PKH — Pay to Public Key Hash)
ONTGRENDELINGSSCRIPT (scriptSig) — aangeleverd door spender:
UITVOERING (op basis van stack): Stack begint leeg
- Duw → Stapel: [sig]
- Duw → Stack: [sig, pubKey]
- OP_DUP: duplicaat bovenaan → Stapel: [sig, pubKey, pubKey]
- OP_HASH160: hashtop → Stapel: [sig, pubKey, pubKeyHash]
- Duw → Stack: [sig, pubKey, pubKeyHash, expected]
- OP_EQUALVERIFY: vergelijk → Stack: [sig, pubKey] (indien gelijk)
- OP_CHECKSIG: verifieer handtekening → Stack: [TRUE]
Resultaat: WAAR = transactie is geldig en UTXO is uitgegeven
SOORTEN SCRIPT: P2PK → Pay to Public Key (verouderd) P2PKH → Pay to Public Key Hash (meest voorkomend) P2SH → Pay to Script Hash (multi-signature, complex) P2WPKH → Native SegWit (bech32) P2TR → Pay to Taproot (meest efficiënt/privé) ═══════════════════════════════════════════════════════
| Scripttype | Adresformaat | Use Case | Privacy |
| P2PK | (geen standaardadres) | Originele Bitcoin, Satoshi-munten | Laag |
| P2PKH | 1… (Basis 58) | Standaard betalingen met één handtekening | Laag |
| P2SH | 3… (Basis 58) | Multisignatuur, complexe scripts | Medium |
| P2WPKH | bc1q… (bech32) | Native SegWit, lagere kosten | Medium |
| P2WSH | bc1q… (bech32) | Native SegWit-scripts | Medium |
| P2TR | bc1p… (bech32m) | Taproot, Tapscript, Ordinalen | Hoge |
In eenvoudige bewoordingen
- Slot en sleutelElke Bitcoin-uitgifte heeft een vergrendeling (vergrendelingsscript) — om deze uit te geven, moet u de juiste sleutel (ontgrendelingsscript) opgeven die aan de voorwaarden voldoet.
- StapelmachineHet script wordt uitgevoerd door waarden op een stapel te plaatsen en bewerkingen uit te voeren — het is eenvoudig, voorspelbaar en bewust niet Turing-compleet om oneindige lussen te voorkomen.
- MultisignatuurvoorbeeldEen 2-van-3 multisig-script vereist 2 van de 3 aangewezen privésleutelhandtekeningen om fondsen vrij te geven — dit wordt gebruikt voor teamkasjes en beveiligde wallets.
- Taproot-privacyTaproot maakt complexe multi-signature transacties mogelijk. scripts voor slimme contracten Ze zien er identiek uit aan eenvoudige transacties met één handtekening op de blockchain, wat de privacy verbetert.
- Bewuste beperkingenIn tegenstelling tot Ethereum's Solidity heeft Bitcoin Script geen toegang tot externe gegevens, kan het geen lussen bevatten en geen andere contracten aanroepen, waardoor het voorspelbaar en veilig is.
Voorbeelden uit de echte wereld
| Scenario | Scripttype | Voordeel |
| Wissel hot wallet | P2SH 2-van-3 multisig | Vereist 2 van de 3 sleutels om te gebruiken — beschermt tegen diefstal van één sleutel. |
| Lightning Network-kanaal | HTLC (Hash Time-Locked Contract) | Maakt directe off-chain BTC-betalingen mogelijk. |
| Atomische swap BTC↔LTC | HTLC op beide ketens | Vertrouwensloze cross-chain uitwisseling zonder tussenpersoon |
| Tijdgebonden erfrecht | CONTROLEER DE VERGRENDELINGSTIJD | Geld is pas na een bepaalde datum te besteden. |
| Ordinalen inscriptie | P2TR-getuigengegevens | NFT/data-inscriptie in Taproot-getuigenis |
Voordelen
| Voordeel | Detail |
| Security | Turing-onvolledig ontwerp voorkomt complexe aanvalsvectoren die mogelijk zijn in slimme contracten. |
| Voorspelbaarheid | Elk script wordt deterministisch uitgevoerd met beperkte rekentijd. |
| Expressiviteit | Maakt multisignatuur, tijdsloten en HTLC's mogelijk, voldoende voor het Lightning Network. |
| Efficiëntie | Scripts zijn compact, waardoor transactiegegevens en -kosten tot een minimum worden beperkt. |
| Privacy (Taproot) | Complexe uitgavenvoorwaarden die niet te onderscheiden zijn van eenvoudige betalingen. |
Nadelen en risico's
| Risico | Detail |
| Beperkte functionaliteit | Complexe implementatie is niet mogelijk. zeker, orakels, oftewel willekeurige slimme contracten |
| Scriptcomplexiteit | Geavanceerde multisignatuurscripts zijn complex om correct te implementeren. |
| Problemen met verouderde formaten | Oudere scripttypen (P2PK, P2PKH) bieden minder privacy dan moderne alternatieven. |
| Uitgeschakelde opcodes | Verschillende krachtige opcodes (OP_CAT, OP_CHECKSIGFROMSTACK) zijn om veiligheidsredenen uitgeschakeld. |
| Risico's van scriptfouten | Fouten in aangepaste scripts kunnen ertoe leiden dat geld permanent geblokkeerd raakt. |
Tips voor risicomanagement:
- Test aangepaste scriptimplementaties altijd eerst op het testnet voordat u ze op het mainnet implementeert.
- Gebruik P2TR (Taproot) adressen voor optimale privacy en compatibiliteit met de toekomst.
- Gebruik voor multi-signature wallets gevestigde implementaties (Bitcoin Core, Sparrow Wallet) in plaats van eigen scripts.
- Bewaar inwisselbare scripts (P2SH) veilig — je hebt ze nodig om geld uit te geven.
FAQ
V: Waarom is Bitcoin Script niet Turing-compleet?
A: Turing-volledigheid staat oneindige lussen toe, wat gevaarlijk is in een blockchain waar alle knooppunten elk script moeten uitvoeren. De opzettelijke onvolledigheid van Bitcoin Script zorgt ervoor dat scripts voorspelbaar eindigen, waardoor denial-of-service-aanvallen worden voorkomen en formele verificatie van scripts mogelijk wordt.
V: Wat is een HTLC in Bitcoin Script?
A: Een Hash Time-Locked Contract (HTLC) is een script waarmee een betaling kan worden opgeëist door een geheim (preimage) te onthullen dat na hashing een vooraf bepaalde waarde oplevert, of terugbetaald kan worden aan de afzender na een bepaalde tijd. HTLC's vormen de fundamentele bouwsteen van het Lightning Network.
V: Hoe verbetert Taproot Bitcoin Script?
A: Taproot (BIP 340/341/342) introduceert Schnorr-handtekeningen die sleutelaggregatie mogelijk maken, MAST (Merklized Abstract Syntax Trees) via Tapscript waardoor complexe scripts mogelijk zijn terwijl alleen uitgevoerde takken worden weergegeven, en zorgt ervoor dat alle Taproot-uitvoer er extern identiek uitziet — wat de privacy en efficiëntie aanzienlijk verbetert.
UPay-tip: Gebruik bij het instellen van een Bitcoin-wallet Taproot-adressen (bc1p…) voor de beste combinatie van privacy, efficiëntie en toekomstige compatibiliteit. De meeste moderne wallets, zoals Sparrow en Phoenix, ondersteunen Taproot standaard.
Disclaimer: Deze inhoud is uitsluitend bedoeld voor educatieve doeleinden en vormt geen financieel of technisch advies.
UPay — Crypto encyclopedisch maken









