Jerrymie

Jerrymie is hoofdredacteur bij BTC Direct en heeft bijgedragen aan o.a. Algemeen Dagblad, VPRO en BNN.

Omdat bitcoin een levend netwerk is zijn er af en toe upgrades nodig. De laatste was het toevoegen van SegWit in augustus 2017. Taproot wordt de volgende update, Taproot betekent penwortel, en dat is voor sommige planten de grootste en dikste wortel. Misschien wel een indicatie voor het belang van deze upgrade.

In dit artikel leggen we uit wat Taproot allemaal doet voor het bitcoin netwerk.

Bitcoin community

Bitcoin is een open en democratisch protocol, ieders stem telt. Veranderingen aan het bitcoin netwerk worden voorgesteld en met meerdere ontwikkelaars en miners overlegd. Pas wanneer (bijna) iedereen het erover eens is wat het moet doen en hoe het moet worden gebouwd wordt het ook echt gebouwd.

Vervolgens wordt de verandering maandenlang zwaar getest en wanneer (bijna) alle miners goedkeuring geven aan de nieuwe functionaliteit kan het doorgevoerd worden. Dit hele proces duurt jaren!

Dat klinkt misschien wat overdreven, maar denk eens aan grote softwarebedrijven: deze rollen vaak onder druk van marketing en concurrentie te snel nieuwe producten uit, met alle bugs van dien. Bugs kunnen we ons niet veroorloven in het bitcoin-netwerk.

Gelukkig spelen er geen commerciële belangen en kan er niet één iemand beslissen of een nieuwe feature goed is voor het systeem. Het is maar goed dat bitcoin niet gerund wordt door een bedrijf dat last heeft van concurrentie en aandeelhouders, maar een community is waar het enige dat telt het systeem en al haar gebruikers.

Het begon met SegWit

Elk block in het bitcoin-netwerk is gevuld met transacties, maar kan slechts 1MB groot zijn. Hoe kleiner deze transacties (in kilobytes) hoe meer er in een block passen. Het grootste deel van een transactie zelf bestaat uit de handtekening (ongeveer 65%) en dat is best zonde van de ruimte. Om dit te verbeteren bedacht Pieter Wuille in 2015 “SegWit” en dit werd in augustus 2017 doorgevoerd.

SegWit staat voor “Segregated Witness” en houdt in dat de handtekening (“witness”) gescheiden (“segregated”) wordt opgeslagen van de transactie zelf. Een block wordt zo veel efficiënter gevuld met bijna alleen nog transactie data.

Schnorr: Handtekeningen samenvoegen

Nu SegWit geïmplementeerd is kan de volgende stap genomen worden: het samenvoegen van handtekeningen tot één gecombineerde handtekening. Omdat het bitcoin netwerk MultiSig (“multi-signature”) toestaat kan een transactie meerdere handtekeningen vereisen voor deze goedgekeurd wordt.

Denk aan de lanceercodes van de atoombommen, soms wil je niet dat één persoon totale controle heeft, maar wil je uit veiligheid dat meerdere mensen het eens moeten zijn voordat iets plaats mag vinden. MultiSig geeft ons dit.

Maar als je vijf handtekeningen nodig hebt voor één transactie, dan worden deze alle vijf opgeslagen. Om dit efficiënter te maken worden Schnorr-handtekeningen ingevoerd. Dit is een algoritme om digitale handtekeningen te maken, bedacht in 1991 vernoemd naar de bedenker Claus Schnorr. Het komt erop neer dat alle handtekeningen samen worden genomen en opgeslagen als één.

Dit levert maar liefst een ruimtebesparing op van 25% en een bijkomend voordeel is dat je niet meer aan een transactie kan zien of er één of meerdere handtekeningen zijn gebruikt. Dit geeft de privacy weer een boost.

MAST: voorwaardelijke transacties

Het tweede onderdeel dat toegevoegd gaat worden heet MAST en dit staat voor Merkelized Abstract Syntax Trees. Een Merkle Tree, in 1979 bedacht door Ralph Merkle, codeert verschillende blokken samen meerdere keren tot een eind code.

Zie onderstaande figuur voor verduidelijking: 4 blokken data worden afzonderlijk gecodeerd, dan worden deze codes per 2 samengenomen en ook weer gecodeerd. De resterende 2 codes worden nogmaals gecodeerd en uiteindelijk heb je 1 code over om op te slaan (hier genoemd “Top Hash”).

Het bijzondere hieraan is dat van alle originele onderdelen later relatief simpel gecontroleerd kan worden of ze behoren tot de originele data en of ze correct zijn.

Abstract Syntax Trees komen uit de computerwetenschap en maken een boom van alle elementen die in een programma voorkomen. Wanneer je het Merkle principe toepast op een Abstract Syntax Tree krijg je dus een Merkelized Abstract Syntax Tree.

Wat voegt deze MAST technologie toe? Tegenwoordig kun je wel meerdere handtekeningen nodig hebben om een transactie te mogen uitvoeren, maar er kunnen geen extra voorwaarden aan toegevoegd worden. MAST maakt het mogelijk om veel en complexe voorwaarden op te geven voordat een transactie door kan gaan.

Bijvoorbeeld: Deze bitcoin mag alleen uitgegeven worden als: minstens 5 van de 7 directieleden het goedkeuren, OF na 1 jaar 4 van de 7, OF na 5 jaar 1 van de 7. Zo voorkom je wat gebeurde met Quadriga, een grote Canadese cryptobeurs, toen de CEO onverwachts overleed en de sleutels van alle cold storage met zich mee het graf in nam.

Wil je je bitcoins doneren aan je kinderen, maar zij mogen er pas bij wanneer ze 21 zijn? Dan voeg je een kalenderjaar als voorwaarde voor het uitgeven van de bitcoin toe.

Het nadeel is dat een transactie die tot stand gekomen is door een voorwaarde er anders uit ziet dan een reguliere transactie. En dat is niet wenselijk, want waarom zou iedereen moeten kunnen zien dat bijvoorbeeld van een bedrijf bevoegde 3 niet heeft getekend en dat we nu een jaar verder zijn en dat daarom de transactie nu wel mag doorgaan omdat bevoegden 1 en 2 wel hebben getekend?

Taproot: de penwortel

Taproot werd in mei 2019 voorgesteld door Peter Wuille en na zwaar testen zijn inmiddels alle miners akkoord. Wat gaat Taproot voor ons doen? Taproot combineert de technologie van Schnorr en MAST. Schnorr versleutelt meerdere handtekeningen tot één gecombineerde handtekening. En MAST biedt de mogelijkheid tot voorwaardelijke transacties.

De Schnorr technologie toegepast op de MAST functie zorgt er dan weer voor dat van alle voorwaarden versleuteld worden tot een uniform uiterlijk waardoor transacties die tot stand gekomen zijn door MAST niet te onderscheiden zijn van reguliere transacties.

Sneller, veiliger en goedkoper

Om het bitcoin-netwerk te verbeteren moeten alle wijzigingen die aangebracht worden het netwerk of sneller, of veiliger, of goedkoper maken. Taproot doet het allemaal in één elegante upgrade. Want wanneer er meer transacties in één block passen gaat de snelheid van het netwerk omhoog en de kosten per block omlaag.

Als daarbij de privacy ook nog wordt vergroot kan deze hele upgrade de bitcoin community alleen maar ten goede komen. Daarbij opent Taproot de deur naar de volgende upgrade: Graftroot.