Taproot: Wordt het een 'speedy' activatie of loopt het uit op een splitsing?
De lang verwachte upgrade Taproot wordt misschien over een paar maanden al geactiveerd op het Bitcoinnetwerk. Als de activatiemethode 'Speedy Trial' slaagt, dan is het in november zover. Zo niet, dan dreigt de onenigheid over de activatiemethode tot een splitsing van het netwerk en de community te leiden.
Taproot komt eraan. Tenminste, dat is de bedoeling. Hoewel de ontwikkelaars, de community en de miners de upgrade bijna unaniem lijken te steunen dreigt onenigheid over de activatiemethode op een conflict uit te lopen, met in het ergste geval zelfs een splitsing van het netwerk als gevolg.
Taproot is een beoogde upgrade van het Bitcoinprotocol, dat de privacy van smart contracts verbetert door ze eruit te laten zien als normale bitcointransacties. Onder andere multisig-transacties, CoinJoins en transacties om Lightning Network kanalen te openen of sluiten zijn daardoor niet meer van normale transacties te onderscheiden.
Ook onderdeel van de upgrade zijn Schnorr Signatures, op basis waarvan Taproot werkt, waardoor digitale ondertekeningen minder data in beslag nemen en efficiënter te verifiëren zijn. Dat helpt de transactiekosten te verlagen en vermindert de hardware-vereisten.
Verdeeldheid
Iedereen lijkt het erover eens dat de upgrade er moet komen. De code is al gereed en alle grote miningpools hebben hun steun aangekondigd. Toch zorgen ideologische verschillen van mening over de manier van activatie op het netwerk voor verdeeldheid binnen de Bitcoincommunity.
Bitcoin heeft namelijk een turbulente geschiedenis wanneer het op upgrades aankomt. De laatste upgrade was in 2017 toen onenigheid over de manier van opschalen leidde tot een historische 'burgeroorlog', waarbij de community de SegWit upgrade uiteindelijk afdwong via een User Activated Soft Fork (UASF). Een deel van de miners weigerde mee te upgraden en ging hun eigen weg, met een splitsing van het netwerk als gevolg.
Twee kampen
Om vergelijkbare problemen te voorkomen ontstond het afgelopen jaar discussie over de manier waarop Taproot geactiveerd zou moeten worden. Traditioneel namen de miners het voortouw bij upgrades, maar aangezien de activatie van SegWit aantoonde dat gebruikers uiteindelijk doorslaggevend zijn vinden sommigen dat het roer om moet en dat de beslissing überhaupt niet bij de miners zou moeten liggen.
De community lijkt verdeeld over twee kampen:
LOT=FALSE: Het eerste kamp stelt voor om Taproot automatisch te activeren zodra 90% van de miners binnen een bepaalde periode hun steun aangeeft. Als dat niet binnen de tijd lukt vindt de upgrade niet plaats en moet daarna worden beslist hoe verder te gaan. In de code staat de parameter Lock-in On Timeout (LOT) hierbij ingesteld op false; oftewel LOT=FALSE. Het is een voorzichtig en coöperatief plan, maar verre van gegarandeerd. Als de miners echter niet meewerken kan Taproot na het verstrijken van de tijd eventueel alsnog via een UASF worden geactiveerd.
LOT=TRUE: Het tweede kamp heeft een vergelijkbaar, maar minder vrijblijvend plan. Daarbij krijgen de miners ook een tijdslimiet om hun steun aan te geven, waarbij de upgrade eveneens bij een meerderheid van 90% van de miners actief wordt. Het grote verschil is dat als de miners niet voldoende steun aangeven Taproot na het verstrijken van de tijdslimiet wél wordt geactiveerd. Bij deze variant staat Lock-in On Timeout ingesteld op true; oftewel LOT=TRUE. Hierbij zou de community de upgrade dus de facto afdwingen bij de miners.
Onderling kwamen de twee kampen er niet uit. Als gevolg zijn er nu twee verschillende en concurrerende Bitcoin Core clients: één met LOT=FALSE en één met LOT=TRUE. Die zijn een tijdje compatibel met elkaar, maar afhankelijk van hoe de situatie zich ontwikkelt kunnen de verschillende implementaties ertoe leiden dat het netwerk splitst - precies wat men hoopte te vermijden.
Speedy Trial
Misschien komt het niet zover, want de miners lijken immers helemaal niet van plan de upgrade te blokkeren. Als compromis kwamen de twee kampen daarom overeen eerst een 'Speedy Trial' uit te proberen.
Dat is een initiele periode van drie maanden waarin LOT=FALSE geldt. Als meer dan 90% van de miners gedurende deze periode via de software aangeeft de upgrade te steunen, dan wordt Taproot in november al geactiveerd. Dat is de meest gunstige uitkomst.
Als er onvoldoende steun is wordt Taproot (nog) niet actief. De ontwikkelaars van de LOT=FALSE-client gaan de situatie dan heroverwegen, maar bij de LOT=TRUE-clients loopt de teller nog een jaar langer door tot oktober 2022. Als de miners tegen die tijd nog steeds Taproot niet hebben geactiveerd, schakelen LOT=TRUE-clients in november 2022 automatisch over op Taproot.
Splitsing?
LOT=TRUE-clients zullen vanaf dat moment blocks van clients die Taproot niet ondersteunen afwijzen. Het risico is dat de blockchain zich daardoor vertakt, wat een splitsing van het netwerk zou betekenen.
Er is ook nog een ander risico. LOT=FALSE clients baseren zich namelijk op een bepaalde datum en tijd, terwijl LOT=TRUE-clients uitgaan van block heights. Daartussen zit een klein verschil. Kwaadwillende miners zouden kunnen aangeven Taproot te steunen en daarmee Taproot bij de ene client activeren, waarna ze in theorie snel hun steun kunnen intrekken om te voorkomen dat de andere clients Taproot activeren.
Dat levert niet meteen een probleem op, maar als een ongeldige Taproot transactie gedaan wordt zouden de clients die Taproot hebben geactiveerd de transactie afwijzen terwijl clients die de Taproot regels niet volgen dat niet doen. Ook daardoor kan de blockchain splitsen.
Afwachten
Het wordt dus spannend. In het meest gunstige geval wordt Taproot in november al geactiveerd en ondergaat het Bitcoinnetwerk de grootste upgrade sinds 2017. Tegelijkertijd kan het vanaf dat moment ook misgaan als de miners onbetrouwbaar blijken.
Als Taproot tijdens Speedy Trial niet wordt geactiveerd begint het touwtrekken erna waarschijnlijk opnieuw. De grote vraag is dan of de miners en het LOT=FALSE-kamp zich in het jaar erna alsnog bij het LOT=TRUE-kamp aansluiten om een mogelijke splitsing te voorkomen.
Voorlopig is het vooral een kwestie van afwachten om te zien wat de miners tijdens Speedy Trial doen. Ondertussen hebben de ontwikkelaars van beide kampen wellicht nog een kans om de problemen rond de incompatibiliteit te verminderen.
Speedy Trial start (waarschijnlijk) op 2 mei en duurt tot augustus. Daarna weten we of Taproot in november wordt geactiveerd, of dat het verhaal nog een staartje krijgt.
De Bitcoin Core client met LOT=FALSE vind je hier en de Bitcoin Core client met LOT=TRUE vind je hier.
Lees ook het artikel over de activering van Taproot door Aaron van Wirdum op Bitcoinmagazine.com.