Redactie - 18 mei 2022

Seed phrase als het DNA van je ‘digitale zelf’

De cryptowereld gebruikt publieke en private sleutels om transacties uit te voeren en veilig zaken op te slaan in een vault (kluis) of wallet (portemonnee). Deze sleutels zijn gebaseerd op lange, wiskundig willekeurig gegenereerde getallen, zo groot, dat de kans dat er een gelijke code is, bijna nul is *). Omdat wij mensen lastig met getallen kunnen omgaan, is er een methode om met een verzameling van 12 tot 24 ‘woordenboek-woorden’, een oorsprong te creëren waaruit dat unieke lange getal weer is te genereren. Je kunt deze set woorden, de seed-phrase, vergelijken met een DNA-profiel, een rij begrijpbare woorden die het mogelijk maken je digitale identiteit (weer) op te bouwen. Door deze rij woorden offline op een veilige plaats te bewaren, is deze digitaal veilig en beschermd tegen online hacken.

Het maken en herstellen van sleutels

Vanuit genoemd willekeurige getal wordt op cryptografische wijze een privé-sleutel gegenereerd. Vervolgens wordt met die privé-sleutel de passende publieke sleutel gecreëerd. Vergelijkbaar met de openbare bankrekening en de geheime pin-code. Tot dit moment is er in feite nog geen online computer nodig, want de sleutelparen kunnen wiskundig worden afgeleid, met de hand op papier worden geschreven en op die wijze – offline – worden opgeborgen in een kluis. Alleen de publieke sleutel wordt vervolgens net als je bankrekeningnummer in het openbaar, bijvoorbeeld in een blockchain grootboek gebruikt, de privé-sleutel nooit.

De theoretische kans dat precies twee dezelve sleutels worden gecreëerd, is minimaal, omdat het aantal variaties zo hoog is, dat het dupliceren of hacken van een bepaalde sleutel ondenkbaar is. Tegenwoordig worden vaak ‘seed-phrases’ gebruikt, in het Nederlands te vertalen als ‘kiem-woorden’ die een verzameling zijn van 12 tot 24 woordenboek-woorden die een niet gecodeerde vorm van de privé-sleutel zijn. Woorden zijn immers voor de mens makkelijker te onthouden dan getallen. Wanneer op digitale wijze met willekeurige getallen een unieke sleutel voor een wallet wordt gegenereerd, dan zijn de gegenereerde ‘kiem-woorden’ de back-up om opnieuw toegang te krijgen als de wallet is gecompromitteerd of je zelf de digitale sleutel bent kwijt geraakt. Je kunt deze set woorden vergelijken met een DNA-profiel, een rij begrijpbare woorden die het mogelijk maken je originele digitale identiteit weer op te bouwen.

Wallets en DApps

Als de toegang tot een digitale portemonnee of portefeuille is vergeten, beschadigd of gecompromitteerd, kan de seed-phrase worden gebruikt door deze handmatig in te vullen en opnieuw toegang te krijgen tot de portemonnee, de bijbehorende sleutel en de cryptocurrency. Tevens kan je in die digitale portemonnee zowel je publieke als private sleutel bewaren en van daaruit je digitale identificatie (SSI), je communicatie en je transacties regelen. In de web 3.0 wereld worden gedecentraliseerde applicaties toegepast, ook wel DApp of Dapps genoemd, die in een peer-to-peer blockchain netwerk kunnen werken. DApps worden niet vanuit een centrale entiteit bestuurd, maar worden, zoals de naam al zegt, decentraal beheerd.

Dapp-browsers worden beschouwd als de browsers van Web 3.0. De toegang tot vele gedecentraliseerde applicaties die werken op basis van blockchain-technologie. Dat betekent dat dapp-browsers een uniek codesysteem moeten hebben om alle verschillende codes van de dapps te verenigen. Terwijl crypto-wallets gericht zijn op het uitwisselen, kopen en verkopen van digitale activa en specifiek gerichte toepassingen, ondersteunen de Dapp-browsers verschillende soorten toepassingen van verschillende formaten, waaronder uitwisseling, games, NFT-marktplaatsen, slimme contracten enz. Omdat ook de huidige web 2.0 wereld nog lange tijd ondersteund moet worden, ondersteunen dapp-browsers meestal ook nog Web 2.0 functionaliteit en techniek.

Bewaren van seed phrases

Zoals eerder gezegd, is een seed-phrase als het ware je DNA van je digitale identiteit in het crypto-universum. Om een goede veilige en reproduceerbare seed-phrase te hebben, worden tegenwoordig niet meer 12 maar een serie van 24 woorden gebruikt. Dit heet ook wel een Mnemonic-zin en is formeel de gecodeerde bron van entropie (willekeurigheid) die je wallet identificeert binnen het digitale universum. In de meeste gevallen wordt door wallet-leveranciers de seed-phrase op basis van BIP39 voor je gegenereerd en moet je die vervolgens handmatig overschrijven of anderszins veilig bewaren.

Alles wat je slechts één keer opslaat, is een single-point-of-failure. Papier is kwetsbaar, brandbaar en vergankelijk. Je kunt ervoor kiezen je seed-phrase in metaal te graveren. Sterker dan papier en kan niet verbranden. Je kunt je seed-phrase ook in stukjes verdelen en op verschillende plekken bewaren. Dan is de kans dat iemand jouw seed-phrase vindt en kan gebruiken een stuk minder geworden, mits je onthoudt waar je die delen hebt ‘verstopt’. Je kunt ook de ‘storage-truc’ gebruiken door de 24 woorden over drie briefjes te verdelen en daar de woorden 1-16, 8-24 en (1-8 en 16-24) te schrijven. Je hoeft dan maar twee van de drie briefjes terug te vinden om je hele seed-phrase weer te kennen. Je kunt er zelfs voor kiezen je 24 woorden in een verhaal samen te vatten en uit je hoofd te leren. 

BIP39

BIP staat voor Bitcoin Improvement Proposal. BIP39 is een lijst van 2048 algemene Engelse woorden die kunnen worden geselecteerd om de kiem voor een private key te genereren. Alle woorden corresponderen met een getal van 0001 (abandon) tot 2048 (zoo). Een private key is meestal een toegangssleutel tot slechts één adres (account) terwijl de seed-phrase de toegangssleutel is voor de hele portemonnee, die meer adressen cq accounts kan bevatten. De seed-phrase is de toegangssleutel en instructie om zowel de portemonnee als alle accounts daarin te herstellen.

Veel wallets ondersteunen de creatie van een extra woord, de zogenaamde passphrase, een extra password om de toegang tot je crypto wallet te beperken in het geval dat je seed phrase bekend is geworden of een ander toegang tot je wallet heeft gekregen. Een passphrase maakt het ook mogelijk verschillende crypto wallets aan te maken vanuit een enkele seed phrase. Je kunt zelfs een dummy wallet aanmaken, mocht je ooit met geweld gedwongen worden je seed-phrase openbaar te maken. Maar besef dat elk wachtwoord, elke extra passphrase onthouden moet worden. En dus je eigen beveiliging complexer maakt. Soms is goed, goed genoeg, dat  geldt ook in de wereld van veiligheid.

*) Cryptocurrencies gebruiken 256 bit-nummers die erg groot zijn – tot 77 cijfers lang. In normale decimale getallen is dit bijvoorbeeld de toegangssleutel voor een rekeningnummer:15692029237316 193423570985008 4879078532689846 65640564039457554 006913129639935.
Deze toegangssleutel wordt binair geschreven: 111111111100011101011110001110000 101001101011011111110000010101111 1001011100110101111101110111100111 010110110011100000001010000010011 000110011011110110110001000101011 111111110000101000101011110111100 1001111100110010110010111111011100 000101111110111111111111.
In hexadecimale code wordt het alweer wat makkelijker: ffc7 5e38 535b f82b e5cd 7dbc 75b3 80a0 98cd ed88 affc 28af 793c cb2f dc17 efff
Deze code wordt gebruikt voor een private key. Rond 2013 bedacht men het BIP39 voorstel om met ‘gewone’ woorden deze code weer te geven. Maar bedenk dat een private key en een seed-phrase, hoewel wel gekoppeld aan elkaar, niet hetzelfde zijn en een ander doel hebben.

Door: Hans Timmerman (foto), Chief Data Officer bij DigiCorp Labs en directeur van Fortierra