Wat is een XPUB (extended key)?

Beschikbaar als podcast
Deel het artikel:

Als je je eigen portemonnee gebruikt om je bitcoins te beveiligen, ben je de term „XPUB” waarschijnlijk al tegengekomen. Dit esoterische acroniem beschrijft eenvoudig een uitgebreide openbare sleutel. Dit type sleutel maakt het mogelijk om andere openbare onderliggende sleutels af te leiden om het saldo van een portemonnee te raadplegen, zonder dat de bijbehorende bitcoins kunnen worden uitgegeven.

Dankzij dit artikel zul je eindelijk de rol van de XPUB en de constructie van een uitgebreide sleutel begrijpen. Om dit te doen, is het essentieel om enkele noties te kennen over hoe een deterministisch en hiërarchisch portfolio werkt. We gaan dit ook allemaal samen bespreken.

Structuur van het HD-portfolio

Als je de vorige educatieve artikelen op de Bitstack-blog hebt gevolgd, weet je nu dat bitcoins op het protocol worden weergegeven door UTXO's, wat in wezen stukjes bitcoin zijn. Deze UTXO's zijn over het algemeen beveiligd met een paar cryptografische sleutels. Een openbare sleutel wordt dus gebruikt om bitcoins te ontvangen, en de bijbehorende privésleutel wordt gebruikt om dezelfde bitcoins uit te geven door een transactie te ondertekenen. Ontvangstadressen zijn daarentegen gewoon een hash van een openbare sleutel, in een specifiek formaat geplaatst.

In theorie zou het dus mogelijk zijn om slechts één paar sleutels te gebruiken om al uw bitcoins te beheren. Deze praktijk wordt echter niet aanbevolen omdat dit gevaarlijk is voor onze privacy. Om een vorm van vertrouwelijkheid te behouden, is het aan te raden om voor elke nieuwe ontvangst van bitcoins een nieuw sleutelpaar te genereren.

Deze aanbeveling komt van Satoshi Nakamoto zelf. Hij praat erover in deel 10 van de Bitcoin White Paper.

Vervolgens hebben ontwikkelaars daarom een portfoliostructuur ontworpen die het mogelijk maakte om verschillende sleutels af te leiden. Dit is het zogenaamde „hiërarchisch deterministische” (HD) portfolio. Het principe is dat een groot aantal unieke sleutelparen wordt gegenereerd op basis van één enkel gegeven: de seed (of „seed” in het Engels). Dit zaadje kan worden gecodeerd in een vorm die leesbaar is voor mensen om de beroemde herstelzin van 12 of 24 woorden te verkrijgen.

➤ Meer informatie over de verschillende categorieën Bitcoin-wallets.

Op deze manier kan een gebruiker, door alleen zijn herstelzin te kennen, al zijn sleutels regenereren die toegang geven tot al zijn bitcoins.

Je moet je een HD-portemonnee voorstellen zoals een boom. Aan de onderkant van de portemonnee zit een zaadje waarmee je een koffer kunt maken. De stam maakt het mogelijk takken te maken. Vervolgens kan elke tak zelf subvertakkingen maken, enzovoort. Je ontvangstadressen en de sleutels om ze te besteden zijn dus het resultaat van verschillende diepten van afleiding uit je zaad.

Wat ik een „afleiding” noem, is gewoon de toepassing van een cryptografische functie in één richting die de bovenliggende sleutel als invoer gebruikt en een onderliggende sleutel als uitvoer produceert.

➤ Ontdek de opbouw van een herstelzin (24 woorden).

De afleiding van cryptografische sleutelparen

Om de sleutelparen die zich in dezelfde afleidingsfase bevinden te onderscheiden, zullen we ze een index toekennen. Het is gewoon een nummer waarmee elke sleutel kan worden genummerd. Het eerste sleutelpaar dat is afgeleid van een ouderpaar heeft indexnummer 0, het tweede sleutelpaar dat is afgeleid van een ouderpaar heeft index nr. 1, enzovoort.

Op deze manier kunnen we dus een veelvoud aan verschillende cryptografische sleutels afleiden uit ons zaad. Als we echter onze portemonnee willen herstellen, moeten we al deze indexen kunnen vinden die tijdens de afleiding zijn gebruikt. Zo hebben de BIP43 en de BIP44 een afleidingsstandaard voor onze portefeuilles opgesteld. Gerenommeerde software houdt zich aan deze regel, zodat het eenvoudig is om van de ene Bitcoin-portemonnee naar de andere te migreren, terwijl het herstelproces in geval van verlies wordt vergemakkelijkt.

Ten slotte wordt elke afleidingsfase gebruikt om informatie te verzenden volgens de index die is gebruikt om de sleutel af te leiden.

De index 84' wordt bijvoorbeeld gebruikt in de eerste afleidingsfase om aan te geven dat u een SegWit V0-portemonnee gebruikt (met adressen die beginnen met „bc1q...”). De tweede afleidingsfase wordt gebruikt om de verschillende cryptocurrencies in dezelfde portemonnee te scheiden. En de derde verdieping maakt het mogelijk om meerdere afzonderlijke accounts te genereren.

Juist deze derde verdieping interesseert ons voor onze XPUB.

Uitgebreide toetsen (xpub, zpub...)

In de vorige delen hebben we gezien dat een HD-portemonnee bestaat uit een opeenvolging van afleidingen van de oudersleutels, om de onderliggende sleutels te bepalen. Om in elke afleiding te slagen, is het in werkelijkheid niet voldoende om de bovenliggende sleutel te hebben, maar is het ook nodig om andere informatie te gebruiken die „ketencode” wordt genoemd.

Simpel gezegd, een kettingcode is een uniek stukje informatie dat aan elk paar is gekoppeld (openbare sleutel en privésleutel), wat een extra beveiligingslaag toevoegt aan de portemonnee.

Technisch gezien is een zogenaamde uitgebreide sleutel een verzameling van een cryptografische sleutel met de bijbehorende ketencode en enkele metagegevens. De uitgebreide sleutel maakt het dus mogelijk om in één tekenreeks alle informatie te verzamelen die nodig is om onderliggende sleutels af te leiden.

Om het eenvoudig samen te vatten: uitgebreide sleutel = sleutel + tekenreekscode.

Het samenstellen van een openbare sleutel met de bijbehorende ketencode geeft ons een uitgebreide openbare sleutel. Met dit type sleutel kunnen alleen openbare onderliggende sleutels worden afgeleid. Dit is wat je kent onder de naam „XPUB”, een „ZPUB” of zelfs een „YPUB”.

Het samenstellen van een privésleutel met bijbehorende kettingcode geeft ons een uitgebreide privésleutel. Dit type sleutel maakt het mogelijk om elk type onderliggende sleutel af te leiden, zowel openbare sleutels als privésleutels.

Met andere woorden, een uitgebreide privésleutel geeft toegang tot alle bitcoins die zijn beveiligd met de onderliggende sleutels, terwijl u met de uitgebreide openbare sleutel (XPUB) alleen het saldo van de sleutels kunt raadplegen en nieuwe adressen kunt afleiden. Daarom wordt u gevraagd uw XPUB in te voeren op een zogenaamde „Watch-only” wallet.

Standaard uitgebreide sleutels bevinden zich meestal in de derde afleidingsfase van de HD-portemonnee. Het is degene die is gewijd aan accounts.

📌 Wist je dat? In tegenstelling tot wat je zou denken, is het mogelijk om een groot aantal verschillende xPubs op dezelfde portemonnee af te leiden. Elke nieuwe XPUB geeft ons een nieuw account. Aangezien de meeste mensen echter slechts één account op hun Bitcoin-portemonnee gebruiken, hebben ze dan maar één XPUB op die portemonnee.

Conclusie

Een uitgebreide sleutel is dus een speciale oudersleutel die het mogelijk maakt om paren onderliggende sleutels af te leiden. Wat een uitgebreide openbare sleutel of een „xpub” wordt genoemd, maakt het alleen mogelijk om onderliggende openbare sleutels af te leiden en adressen te ontvangen.

Als je toegang hebt tot de xpub van je portemonnee, kun je vervolgens het saldo van je portemonnee raadplegen, de transacties traceren en nieuwe ontvangstadressen aanmaken. Aan de andere kant zal het voor u onmogelijk zijn om de bijbehorende bitcoins uit te geven, aangezien de XPUB geen toegang geeft tot de privésleutels van de portemonnee.

➤ Meer informatie over Passphrase BIP39 en de rol ervan in een Bitcoin-portemonnee.

Beschikbaar als podcast

Samenvatting

Deel het artikel:

Misschien vind je deze items leuk

Bitstack SAS, een bedrijf geregistreerd in het Handels- en Vennootschapsregister van Aix-en-Provence onder nummer 899 125 090, met de handelsnaam Bitstack, is geregistreerd als agent van Xpollens - een instelling voor elektronisch geld die is goedgekeurd door de ACPR (CIB 16528 - RCS Nanterre nr. 501586341, 110 Avenue de France 75013 Paris) - bij de Prudential Control and Resolution Authority („ACPR”).”) onder de nummer 747088 en goedgekeurd als Crypto-Asset Service Provider („PSCA”) bij de Autorité des Marchés Financiers („AMF”) als uitwisseling van cryptoactiva voor fondsen, de uitwisseling van cryptoassets voor andere cryptoassets, de uitvoering van orders op cryptoassets voor rekening van klanten, de bewaring en administratie van cryptoassets namens klanten en de levering van diensten voor de overdracht van cryptoactiva namens klanten onder het nummer A2025-003, waarvan het hoofdkantoor is gevestigd te 100 Impasse des Houillères 13590 Meyreuil.

Investeren in digitale activa houdt het risico in van gedeeltelijk of volledig verlies van geïnvesteerd kapitaal.
In het verleden behaalde resultaten zijn geen garantie voor toekomstige prestaties.
DOWNLOADEN
Bitstack