Bitcoin en private keys. Wat zijn het en hoe werkt het?

Als je Bitcoin hebt, ben je de baas over jouw eigen geld. Daarvoor moet je deze BTC wel van de beurs af halen en in eigen beheer nemen. Het welbekende mantra is: ‘not your key, not your coins’. Maar wat zijn dat eigenlijk, deze keys?

Bitcoin bewaren

Ten eerste is het belangrijk om te snappen dat jouw Bitcoin niet ín de jouw wallet staan. Het is niet zo dat er een stukje code ín de wallet zit die je naar iemand toe stuurt.

Bitcoin is immers een gedistribueerd en gedecentraliseerd netwerk. En deze data staat vertrouwelijk en versleuteld opgeslagen op duizenden nodes die wereldwijd verspreid zijn.

Om iets in deze database, de blockchain, aan te willen passen moet je aantonen dat jij de baas bent van een bepaalde hoeveelheid BTC. Dit doe je door een UTXO te ondertekenen. Zo’n UXTO is een Unspend Transaction Output, waarin informatie staat over onder andere het eigenaarschap van een bepaalde hoeveelheid BTC.

Het omvat informatie over een publieke sleutel, de public key (of eigenlijk: een wallet adres die hiervan is afgeleid). En hier komt de term ‘not your keys, not your coins’ bij kijken. Zo lang jij de private key die bij deze UTXO hoort in bezit hebt, ben jij de baas over deze BTC.

Private keys

Maar wat is dit nu eigenlijk? En hoe werkt het?

Bitcoin gebruikt asymmetrische cryptografie, of ook wel wel “public-key cryptography”. Iedereen kan een key pair genereren, bestaande uit een publieke sleutel en een geheime sleutel.

Een geheime sleutel hoort bij de publieke sleutel. De cryptografie zorgt er echter voor dat het een eenrichtingsweg is. Als je de private key hebt, kun je wel de publieke sleutel achterhalen. Maar als je alleen de publieke sleutel kent, is een weg terug naar de private key onmogelijk.

We legden eerder als eens uit hoe dit werkt, met het ECDSA algoritme.

Als je een transactie doet, toon je simpel gezegd aan dat jij de geheime sleutel hebt van een beetje Bitcoin (UTXO). En deze geheime sleutel zit als het ware in jouw wallet. En dan leest jouw wallet uit welke balans (of: het totaal aan waardes van alle UTXO’s) er bij deze geheime sleutel horen.

Je wallet bewaart dus de private key en ondertekent daarmee betalingen. In een wallet staat dus niet ‘de Bitcoin’ zelf bewaard, maar enkel de geheime sleutel.

Cryptografie

In een ‘asymmetrisch key encryption scheme’, kan iedereen berichten encrypten met de public key, maar kan de eigenaar van de bijbehorende privésleutel deze alleen maar decrypten.

Dit aspect is wat het een niet symmetrische (of omkeerbare) cryptografische manier maakt. En daarom heet dat asymmetrisch. De beveiliging van de data hangt af van de mate waarop je de private key veilig bewaart.

Een private key is een moeilijk te onthouden stukje code. Gelukkig is daar een oplossing voor bedacht: mnemonic keys. Dit is een update van het Bitcoin protocol waardoor je een private key ook op kunt schrijven als (12 of) 24 woorden.

Deze woorden komen uit een lijst van 2048 vooraf opgestelde woorden. Als je 24 woorden op 2048 manieren kunt vullen, biedt dat gigantisch veel mogelijkheden. Een juiste volgorde qua seeds phrase gokken is dus ook nagenoeg onmogelijk.

Bitcoin adressen

Als je een Bitcoin betaling doet, stuur je die tegenwoordig altijd naar iemands adres toe (en niet direct naar een public key). Een adres is een afgeleid stukje code van een public key, door middel van een hash (in combinatie met een script). En hiervan kun je er enorm veel gratis aanmaken. Het is met het oog op privacy ook aan te raden om dat iedere keer opnieuw te doen.

Er zijn drie soorten adressen.

  • P2PKH (adres start met het nummer 1)
  • P2SH (adres start met het nummer 3)
  • Bech32 (adres start met “bc1”)

De bech32 adressen zitten sinds 2018 in het protocol. Dit maakte onder andere het de activatie van het Lightning Network mogelijk.

Wil je op de hoogte blijven over alle ontwikkelingen? Kom dan eens
langs in onze Telegram
chat
, en download ook vooral onze Android Nieuws app of iOS Nieuws app!