Crypto 101: Smart contracts op bitcoin met Taproot

Bitcoin (BTC) is constant in ontwikkeling. Ontwikkelaars doen tal van voorstellen om het netwerk en het protocol te verbeteren. Een van deze voorstellen is Taproot. Deze techniek moet het mogelijk maken gemakkelijker en beter smart contracts te gebruiken op bitcoin.

Wie smart contracts zegt, noemt bijna automatisch Ethereum. Dit is een feature waarmee het netwerk van Vitalik Buterin groot is geworden. En dan specifiek de contracten van de ERC-20 en de ERC-721 standaard: (non fungible) tokens.

Maar ook aan bitcoin kun je smart contracts hangen. Hoe dit precies werkt lees je in dit artikel.

Bitcoin en Taproot

Deze smart contracten kun je met bijvoorbeeld Taproot aan de bitcoin blockchain hangen. Het eerste voorstel is ingediend door de voormalig STO van Blockstream. Gregory Maxwell is een Bitcoin Core ontwikkelaar en hij wilde de flexibiliteit van de smart contracts op Bitcoin verbeteren.

Het doel van Taproot is ook om een extra laagje privacy aan de contracten te hangen door het smart contract op te splitsen. De meest complexe smart contracts zijn ook niet te onderscheiden zijn van een normale reguliere transactie die op de blockchain wordt verwerkt.

Om dit mogelijk te maken, zijn er meerdere onderdelen van het bitcoin netwerk die een upgrade moesten ondergaan. Deze staan beschreven in het voorstel van Maxwell (en enkele andere ontwikkelaars).

Bitcoin verbetering

Het is enkele maanden geleden dat Taproot aan de community werd geïntroduceerd middels een BIP: een Bitcoin Improvement Proposal. Het bestaat eigenlijk uit een reeks van verbeteringen/aanpassingen waardoor Taproot geactiveerd kan worden.

Ten eerste is het principe van de P2SC belangrijk. Ten tweede is hier de MAST aan gekoppeld en ten derde zijn de Schnorr signatures een onmisbaar onderdeel van van de Taproot update. Wees niet ongerust: hieronder staan voorgaande termen kort en bondig uitgelegd.

Pay-to-ScriptHash (P2SC)

In feite is Taproot een technische manier om scripts een digitale handtekening mee te geven. Hiermee kan de output van een transactie gelijk gemaakt worden aan die van een Pay-to-ScriptHash (P2SC).

Iedere BTC bestaat eigenlijk uit een stukje code in de blockchain. Hierin staan voorwaarden voor de transacties die hiermee gedaan kunnen worden. Een soort spelregels. Om deze te versturen heb je ook een digitale handtekening nodig.

Sinds 2012 zijn de scripts van een transactie niet meer zichtbaar, enkel de eigenaar van de munten weet hoe ze uitgegeven kunnen worden. Dit is mogelijk door de P2SH. Enkel de hash van een transactie staat in de blockchain. Als jij een transactie doet, bewijs jij eigenlijk dat je de ‘oplossing’ van deze hash in bezit hebt.

Als de transactie is verstuurd, wordt de data hiervan openbaar. Dit heeft twee minpunten: deze informatie kan ‘groot’ of ‘veel’ zijn en het tweede minpunt betreft de privacy. Je kunt dan met de open blockexplorer precies zien hoe, wanneer en waarvandaan de transactie komt.

Merkelized Abstract Syntax Tree (MAST)

Hoe krijg je een smart contract in een vorm dat het een simpele digitale handtekening wordt?

Als oplossing is de MAST aangedragen. Dit is een Merkelized Abstract Syntax Tree. Simpel gezegd splitst dit iedere eigenschap van een transactie (of een smart contract) op, voordat er een totale ‘eindhash’ van gemaakt wordt. Deze eindhash wordt ook wel de Merkle root genoemd.

Je kunt hiermee dus bepaalde onderdelen van een transactie ‘onzichtbaar’ houden indien dat gewenst is. Meer privacy opties dus.

Schnorr Signatures

Vervolgens hoorde bij de BIP ook een upgrade van de Schnorr signatures.

De Schnorr signature is in 1991 gepatenteerd door Claus Schnorr en het patent liep af in 2008. Met behulp van Schnorr signature kunnen meerdere ondertekenaars een geaggregeerde openbare sleutel produceren.

Vervolgens kan deze gezamenlijk ondertekend worden met één handtekening, in plaats van elke openbare sleutel en elke handtekening afzonderlijk op de blockchain te publiceren. Dit is een schaalbaarheidsoplossing en wederom een pluspuntje op het gebied van privacy.

Dit type digitale handtekening zorgt er op zijn beurt weer voor dat een MAST-transactie vermomd is als een doorsnee transactie. Voor een buitenstaander is dat verborgen.

Het principe van deze twee features van de BIP, maakt de Taproot mogelijk.

Taproot

Met Taproot ziet elke bitcoin transactie er exact hetzelfde uit. Of het nu een simpele betaling is, of dat het gaat om een transactie van een complex smart contract.

Met Taproot kun je een simpel P2SH combineren met een Merkle Tree structuur. Een complex script kan dus uiteindelijk op een flexibele manier in een bitcoin transactie gegoten worden. De grootte van de transactie is daarmee ook geminimaliseerd en de privacy is verbeterd. Met de Schnorr Signatures kan er in batches ondertekend worden.

De code is klaar om geïmplementeerd te worden. Er moet echter voor Taproot ook ingestemd worden met de Schnorr Signatures, en dit is een fundamentele verandering van de blockchain. Je zou het ‘qua impact’ kunnen vergelijken met de SegWit-update die is doorgevoerd.

Op dit moment gebruikt het netwerk nog de ECDSA. Dit staat voor Elliptic Curve Digital Signature Algorithm.

Inmiddels is er ook een voorstel gedaan voor de ‘Generalized Taproot‘. Dit is een variant van het principe van Taproot. Verder is er ook nog Graftroot, weer een variant van Taproot.

Bronnen: Blockonomi en BitcoinMagazine

Mis niks meer!

Invalid email address