Home » De grote Taproot-upgrade: mythes en waarheden

De grote Taproot-upgrade: mythes en waarheden

by Patricia

Vorige week werd Taproot, een van de belangrijkste upgrades in de geschiedenis van Bitcoin, geactiveerd. Maar wat het eigenlijk doet, is moeilijk te begrijpen en wordt niet zelden verkeerd voorgesteld. Daarom hebben we een deskundige gevraagd.

Vorige week werd Taproot geactiveerd, een van de grootste Bitcoin-upgrades aller tijden, waar de gemeenschap al jaren reikhalzend naar uitziet. Maar wat is Taproot precies? En wat doet het?

Wie het nieuws over Taproot leest met deze vraag in het achterhoofd, zal nogal wat verwarring oogsten. Dus dit artikel begint met een klein overzicht van wat de anderen schrijven.

Wanneer persbureaus al berichten over een bitcoin upgrade …

Een van de opvallendste kenmerken van Taproot is dat het de eerste Bitcoin-upgrade is die nieuwswaardig was voor persbureau DPA. Dit verklaart waarom u plotseling informatie over Taproot vindt in bijna elk medium, van de Süddeutsche en de FAZ tot de Wiener Standard en de small-town Gazette. Of, beter gezegd: verkeerde informatie.

Taproot, legt Finanzen.net uit, heeft een “verreikende betekenis voor de Bitcoin-blockchain”. De upgrade maakt Bitcoin “nog wendbaarder en flexibeler” en maakt “de weg vrij voor belangrijke technologische innovaties”. De FAZ en vele andere kranten citeren het DPA-rapport dat de upgrade “meer privacy, minder opslagbehoeften en dalende kosten” met zich meebrengt.

Dit alles blijft zo vaag dat het noch fout noch goed kan zijn. Wie concreter wil weten, leert eerder minder, en als dat zo is, dan graag verkeerd of misleidend. Finanzen.net, bijvoorbeeld, zegt dat Taproot “slechts één publieke sleutel voor betalingen genereert in plaats van meerdere publieke sleutels […]”, wat, afgezien van de verwarring van termen, op zijn best slechts half juist is. Verder maakt Taproot “complexere slimme contracten op de Bitcoin blockchain” mogelijk, waardoor Bitcoin mogelijk binnenkort de concurrentie met Ethereum aan zou kunnen gaan.

In de FAZ verneemt men dat de Schnorr-handtekeningen “meer privacy bieden voor Bitcoin”. De krant en de DPA vroegen blockchain-professor Philipp Sandner om een verklaring hierover, en hij doceerde dat “deze Schnorr-transacties (…) een bundel transacties met een enkele handtekening vrijgeven”. Zelfs een professor kan het soms zo mis hebben dat men niet weet waar te beginnen.

De meest competente bron van informatie over Taproot is Heise. Het IT-magazine legt uit dat de upgrade het “Pay-to-Taproot (P2TR) transactietype” introduceert, “dat de concepten van Schnorr-handtekeningen en ‘Merklized Alternative Script Trees’ combineert”. Maar zelfs Heise stoot af wanneer het blad beweert dat Taproot de privacy van transacties verhoogt of dat Schnorr je toelaat een transactie te ondertekenen met een gekrenkte handtekening.

Dit is op zijn best half waar, en laat vooral zien hoe moeilijk het is om een technisch hoogstaande upgrade als Taproot te begrijpen – en uit te leggen.

Upgrade like a wrap

We proberen een beetje orde in de Taproot chaos te brengen. Daartoe hebben wij contact opgenomen met Mark Erhardt, ook bekend als Murch op het internet. Mark werkt in New York bij Chaincode Labs, nadat hij eerder werkte voor BitGo in Palo Alto. Dichter bij de centra van Bitcoin-ontwikkeling dan de Badener kun je niet komen.

Mark heeft ons niet alleen geholpen om Taproot conceptueel beter te begrijpen, maar ook om te begrijpen wat de upgrade nu concreet inhoudt.

Wat is Taproot aan het veranderen? Wat zijn de voordelen van de update?

Taproot bestaat ruwweg uit twee componenten: Schnorr handtekeningen en een scriptboom. Beide componenten staan los van elkaar, maar ze werken samen, en elk ervan is niet gemakkelijk te begrijpen. Dit is een van de hindernissen om te begrijpen wat Taproot echt doet – en wat het niet doet.

Schnorr – de betere ECDSA

Schnorr handtekeningen zijn het makkelijkst te begrijpen. Mark legt uit dat deze al bestonden vóór het handtekeningalgoritme ECDSA, dat door Bitcoin wordt gebruikt.

“Het handtekening proces is super interessant, maar de uitvinder, Klaus-Peter Schnorr, heeft het gepatenteerd. Omdat de octrooivergoeding te duur was, vonden andere cryptografen ECDSA uit om ook op basis van elliptische krommen te tekenen. In de tussentijd is de octrooibescherming echter verlopen.”

ECDSA is goed, heel goed zelfs, en daarom koos Satoshi dit algoritme voor Bitcoin. Maar het is niet zo goed als Schnorr, en zonder de octrooibescherming zou er waarschijnlijk voor niemand een reden zijn geweest om ECDSA te gebruiken in plaats van Schnorr.

Het belangrijkste verschil zit in een klein, maar deels cruciaal detail: “De handtekeningen zijn niet lineair in ECDSA, wel in Schnorr,” legt Mark uit. “Als een handtekeningenschema lineair is, kun je meerdere handtekeningen samenvoegen, zodat je met het aggregaat kunt controleren. Dat kan niet met niet-lineaire systemen, zoals ECDSA.”

In theorie is het dus waar wat de FAZ en Heise beweren: men zou alle handtekeningen in een transactie kunnen samenvoegen tot één via Schnorr. Op dit moment, als een transactie veel inputs heeft – dus het combineert veel munten – moet je elke input ondertekenen en elke handtekening naar de blockchain schrijven. Dat verklaart een groot deel van de transactiegegevens. Schnorr zou dit kunnen veranderen.

Zou kunnen! Want “helaas heeft deze aggregatie het niet gehaald in de Taproot upgrade,” verduidelijkt Mark. “Dat zou extra definities en discussies hebben vereist, dus besloten ze het later te doen. “

Signatures secretly aggregate

Niettemin is het samenvoegen van Schnorr handtekeningen met Taproot nu al mogelijk. Maar alleen niet voor normale transacties, alleen voor multisig transacties. Multisig betekent dat twee of meer partijen een transactie moeten ondertekenen, zodat munten kunnen worden uitgegeven vanaf een speciaal adres (multisig-adres).

“Laten we zeggen dat we samen een portefeuille maken waar we alleen geld kunnen uitgeven als we allebei tekenen. Dat zou een “2 bij 2 multisig” zijn. Dankzij Taproot, kunnen we onze publieke sleutels samenvoegen: Je geeft me je publieke sleutel, ik combineer die met de mijne, en het resultaat is niet te onderscheiden van een normaal adres. Dus je kunt niet zien dat het een gedeelde portefeuille is.”

Dit “niet kunnen vertellen” is de definitieve reden waarom men zegt dat Taproot de privacy verbetert.

Voorheen konden multisig-adressen gemakkelijk worden herkend. Ze begonnen met een drie, in plaats van een één zoals bij traditionele adressen. SegWit heeft dit een beetje verzacht, aangezien een SegWit adresformaat ook met een 3 begint. Toch zorgen de verschillende adrestypes voor verschillen die de privacy van Bitcoin deels ondermijnen.

Met Taproot kunnen dergelijke verschillen volledig worden weggewerkt. Het maakt niet uit wat voor uitgangscondities een adres heeft – één handtekening, meerdere handtekeningen, timelocks, slimme contracten – ze zien er allemaal hetzelfde uit.

Maar Schnorr handtekeningen alleen zijn niet genoeg voor dit. Want deze zijn alleen effectief voor eenvoudige multisig-constructies: “2 van 2”, “3 van 3”, enzovoort. In de praktijk zijn echter andere modellen populairder, namelijk de zogenaamde drempelhandtekeningen, zoals “2 of 3”: Een derde partij heeft een reservesleutel en treedt op als een andere sleutel verloren gaat, of bemiddelt als de andere twee het niet eens zijn.

In dergelijke modellen werkt aggregatie door Schnorr-handtekeningen niet. Dus op dit punt moeten we het hebben over het tweede deel van Taproot: de scriptboom.

Een scriptboom voor de andere gevallen

Marks voormalige werkgever, wallet provider BitGo, biedt een klassieke “2 of 3”-constructie: er zijn drie sleutels. Eén wordt bewaard door de klant, één door BitGo, en de derde is een goed beveiligde, koud opgeslagen backup. Van deze drie sleutels zijn er twee nodig om een transactie te verzenden, die gewoonlijk die van de cliënt en BitGo zijn.

“Er is een verwachting welke twee sleutels gebruikt zullen worden. Dit kan nu worden bediend met geaggregeerde Schnorr-handtekeningen. Dus we vormen een P2TR-uitgang met de sleutels van jou en van BitGo, en als het normale geval zich voordoet, kunnen we ondertekenen met een samengevoegde handtekening.”

Deze manier om transacties door twee partijen te laten ondertekenen is de meest elegante, eenvoudige en mooie manier. Ter vergelijking: de huidige methode met “P2SH”-adressen (pay-to-script hash) is ronduit monsterlijk ingewikkeld.

Maar wat als het op de back-up zaak aankomt? Als ik mijn sleutel verlies en BitGo tekent met de reservesleutel? Of als BitGo faalt en ik de reservesleutel in het spel moet brengen?

“Deze andere, niet-verwachte paden zijn als bladeren verweven in de scriptboom die Taproot heeft geïntroduceerd,” legt Mark uit. En natuurlijk, deze verklaring schreeuwt om zelf verklaard te worden.

Van de bladeren tot de wortel

Een scriptboom is eigenlijk “gewoon” een Merkle of hash boom van scripts. Maar wat is een hashboom?

Een hashboom is een speciale rangschikking van een groot aantal hashes. Bijvoorbeeld, laten we zeggen dat we vier bitcoin transacties hebben en we hashen ze. Dan zouden we vier hashes hebben. In een hashboom worden zij de “bladeren” genoemd.

Het doel van de oefening is om van de bladeren naar de takken naar de wortel van de hashboom te gaan. Om dit te doen, voegen we eerst de eerste en tweede hash samen en hashen dat. We doen hetzelfde met de derde en de vierde. De twee hashes die we als resultaat hebben – de takken – hashen we ook. Dit geeft ons de wortel: een hash die staat voor een veelheid van hashes.

Deze hashboom ziet eruit als een omgekeerde boom: De kroon zit onderaan, de wortel bovenaan. Beeld van wikipedia.org, licentie: Creative Commons

Deze hashboom ziet eruit als een omgekeerde boom: De kroon zit onderaan, de wortel bovenaan. Beeld van wikipedia.org, licentie: Creative Commons


Wat doet zo’n wortel? Hiermee kan met één hash een verscheidenheid aan gegevens worden bewezen. Een voorbeeld is een Bitcoin-blok: de miners nemen een groot aantal transacties – meestal een paar duizend – en vormen daaruit de wortel van de hashboom. Deze wortel is de basis van het delven, en stelt iedereen in staat te controleren of een blok geldig is.

In de door Taproot geïntroduceerde scriptbaim is elk “blaadje” een manier om Bitcoins uit te geven – een script. Het hierboven genoemde multisig-adres bevat niet alleen het aggregaat van twee openbare sleutels, maar ook de root van de scriptboom.

Als het onverwachte geval zich voordoet dat ik teken met mijn en de reservesleutel omdat BitGo faalt, gebeurt het volgende, legt Mark uit: “Ik onthul het corresponderende script, dat is opgeslagen in een blad van de scriptboom. Om te bewijzen dat het oorspronkelijke adres deze uitgangsvoorwaarden codeert, onthul ik de hashes van andere bladeren en takken, zodat de wortel kan worden gereconstrueerd. Dan voldoe ik aan het script in het blad met de handtekeningen van de twee sleutels.”

Wij hebben dus een procedure waarbij multisig-transacties gewoonlijk – wanneer het verwachte geval zich voordoet – eleganter, eenvoudiger en ook meer privé zijn. Alleen in de onverwachte gevallen treedt de scriptboom in werking. Het resultaat is even complex als de P2SH methode – maar het is iets meer besloten.

Omdat bij P2SH het hele script wordt gehasht, dat alle mogelijkheden bevat van hoe munten moeten worden uitgegeven. Om een geldige transactie te schrijven, moet ik de zuivere tekst van het script laten zien. Ik moet dus bekendmaken om welke publieke sleutels het gaat, ook al worden ze helemaal niet gebruikt.

Met P2TR, daarentegen, is het voldoende als ik de optie schrijf die werkelijk in platte tekst in de transactie voorkomt. Alle andere opties blijven verborgen.

De doorbraak voor multisig

We hoeven niet te discussiëren of Taproot elegant is. Dat is het ook. De scriptboom is een nuttige toevoeging aan Schnorr-handtekeningen. Het is begrijpelijk dat een ontwikkelaar als Mark enthousiast is over Taproot en niet kan wachten tot de upgrade in alle portemonnees komt.

Maar degenen voor wie technische elegantie geen doel op zich is, maar een middel, zullen zich nu waarschijnlijk afvragen: wat is het nut in reële termen? Wat kan Bitcoin nu beter doen met Taproot dan voorheen?

“Multisig is een veel veiliger standaard om geld te beheren,” zegt Mark. “Je kunt back-ups maken, en het moeilijker maken om geld uit te geven. Het maakt je minder kwetsbaar.”

Tot nu toe hadden de multisig-methodes echter aanzienlijke nadelen: ze waren vaak complex, zowel voor de gebruiker als voor de ontwikkelaar, ze beperkten de privacy en kostten meer aan kosten. Al deze nadelen verdwijnen met Taproot. “Je geeft minder privé-informatie weg, je geeft minder prijs over je opstelling, en je kunt meer doen met minder gegevens op de blockchain.”

Mark hoopt dat Taproot Multisig zal helpen doorbreken. Dat meer portemonnees Multisig gaan gebruiken, dat er betere standaarden komen, en dat de gebruikerservaring, die nu vaak nog knudde is, beter wordt.

Wat Taproot niet doet

Ondanks al het enthousiasme waarschuwt Marcus voor overdreven en valse verwachtingen. Wat ons terugbrengt naar waar we begonnen. Over het DPA-rapport en de interpretatie ervan in de redactiekamers.

“Soms zeggen mensen dat Taproot DeFi naar Bitcoin brengt omdat het slimme contracten mogelijk maakt. Dit is verkeerd. Smart Contracts bestaan al, en alles wat Taproot kan was al eerder mogelijk – het was alleen ingewikkelder, duurder en minder privé.”

Er doen ook enkele misvattingen de ronde over privacy met Taproot. “Gisteren las ik in een grote Duitse krant dat Bitcoin anoniemer wordt door Taproot. Dat is ook niet waar. Het is waar dat je niet meer kunt zien of een of meer partijen tekenen. Maar het adres is nog steeds pseudoniem en je kunt nog steeds zien welke munten worden uitgegeven. “

Blockchain analisten zullen geen probleem hebben met het analyseren en clusteren van wallets en adressen zoals voorheen, zelfs na Taproot. “Je leert gewoon iets minder over de setup onder de motorkap. Of het nu een normaal adres is, een Lightning kanaal of een multisig setup, je ziet het niet meer. Maar de algemene traceerbaarheid van de geldstroom blijft hetzelfde. “

Nu is het de beurt aan het ecosysteem

Zoals zo vaak het geval is met Bitcoin, duurt het even voordat een upgrade wallets en gebruikers bereikt. Denk maar aan SegWit. Het duurde lang voordat de upgrade bij een groot deel van de transacties was ingevoerd, en nog langer voordat de ondersteuning voor bech32-adressen op grote schaal werd ingevoerd.

Murch hoopt dat het sneller zal gaan voor Taproot. “BitGo-portemonnees kunnen al munten ontvangen met Taproot. Dit toont aan dat het deze keer sneller kan.”

Om te begrijpen waar het hier om gaat, en waarom het niet eenvoudig is, moet u een paar meer technische details kennen. Op het gevaar af u te overweldigen, moeten we het hebben over de betrokken adresformaten.

    De standaardadressen heten “Pay-to-Public-Key-Hash” (P2PKH) en beginnen met een 1.
  • De “Pay-to-Script-Hash” (P2SH) adressen waar we het al over hadden beginnen met een 3. Deze werden gebruikt voor multisig en andere slimme contracten zoals time-locks.
  • SegWit was oorspronkelijk ook gebouwd op adressen die met een 3 begonnen: De “Geneste SegWit Adressen” of – sorry: “Pay to Script Hash Pay to Witness Public Key Hash” (P2SH-P2WPKH). Hier werd min of meer het script voor SegWit gehasht en overgebracht naar een P2SH adres. Hierdoor kon SegWit op een minder verstorende manier worden geïntroduceerd.
  • De eigen SegWit-v0 adressen, of Pay to Witness Public Key Hash (P2WPKH) adressen, die technisch efficiënter werken, gebruiken het bech32 formaat. Deze nieuw ontwikkelde standaard ziet er heel anders uit, de adressen zijn langer, bestaan alleen uit kleine letters en beginnen met “bc1”.

Pay-to-Taproot (P2TR) gebruikt ook de bech32-standaard. Er is echter een klein verschil in het genereren van de adressen, en daarom zijn de tot nu toe gebruikte v0-adressen niet compatibel. Dit is opzettelijk om te voorkomen dat iemand geld verliest.

“In voorbereiding op Taproot ontdekten we dat sommige wallets de Witness-versie in bech32-adressen negeerden en altijd uitgangen definieerden als Native-Segwit-v0,” legt Mark uit. “Als een van deze wallets geld naar een P2TR-adres had gestuurd, zou het P2TR-script in de uitvoer zijn gecodeerd, maar zou vanwege de versiefout de voltooiing van een P2WPKH-script nodig zijn geweest om uit te geven. De ontvanger zou het geld niet hebben kunnen uitgeven.”

Voor Mark is het daarom belangrijk dat zoveel mogelijk wallets eerst toestaan dat geld naar Taproot-adressen wordt gestuurd. Zolang dit niet op grote schaal mogelijk is, zal het voor gebruikers altijd nadelig zijn om deze adressen te gebruiken.

De kernontwikkelaars hebben hun werk gedaan. Maar het werk voor het ecosysteem begint nu pas.

Related Posts

Leave a Comment