Privacy en efficiëntie door Schnorr

Op dit moment gebruikt Bitcoin het Elliptic Curve Digital Signature Algorithm (ECDSA) voor het maken van digitale, cryptografische handtekeningen. Het Schnorr algoritme is echter efficiënter én bevordert de privacy - een toevoeging die al lange tijd bovenaan de wensenlijst van Bitcoinontwikkelaars staat. Met de activatie van Segregated Witness zal het makkelijker worden om Schnorr toe te voegen aan Bitcoin door middel van script versioning.

Digitale handtekening

Iedere transactie wordt voorzien van een digitale handtekening voordat deze verstuurd wordt. Met deze handtekening bewijst de eigenaar van een bitcoinadres dat hij of zij toegang heeft tot de privésleutel die bij het bitcoinadres hoort, zonder de privésleutel vrij te geven. Elke input in een transactie heeft zijn eigen digitale handtekening, en elke handtekening moet opgenomen worden in de transactie om te bewijzen dat de transactie rechtmatig wordt uitgegeven.

Omdat transacties vaak meerdere en soms wel tientallen of honderden inputs hebben, betekent dit dat er veel ruimte in een block opgaat aan de digitale handtekeningen in transacties. Daarnaast zijn er ook transacties met maar één enkele input, maar meerdere digitale handtekeningen. Dit zijn de zogenaamde multi-signature transacties; transacties waarbij twee of meer privésleutels nodig zijn om de bitcoins van een enkel adres uit te geven.

Schnorr

Schnorr is een alternatief voor ECDSA, dat op dit moment zit ingebakken in het protocol. Ten opzichte van ECDSA is Schnorr efficiënter; de digitale handtekeningen zijn sneller te verifiëren. Maar de belangrijkste voordelen van Schnorr zitten in het verkleinen van de hoeveelheid data die nodig is voor de digitale handtekeningen en in het verbeteren van de privacy.

tekeningschnorr

Kleinere transacties

Met Schnorr kunnen verschillende digitale handtekeningen verenigd worden in één enkele, nieuwe handtekening. Hierdoor hebben zelfs transacties met veel verschillende inputs maar één handtekening nodig. Dit leidt direct tot een duidelijk voordeel voor de benodigde data in een transactie, wat betekent dat er meer transacties in een block passen.

Hoeveel ruimtewinst er precies behaald wordt hangt af van het aantal en het soort transacties in een block, maar het verschil zal vooral voor multi-signature transacties merkbaar zijn. Ook voor multi-signature transacties is met Schnorr namelijk nog maar één enkele handtekening nodig, ongeacht of het een twee-van-drie of een vijftig-van-vijftig multi-signature transactie is; de hoeveelheid data die nodig is voor de digitale handtekening is evenveel als voor een standaardtransactie met een enkele input.

utxorepartition Verdeling van multi-signature transacties (bron: p2sh.info)

Gezien de historische groei van het aantal multi-signature transacties, zoals te zien in de grafiek hierboven, zijn er significante datavoordelen te behalen door de grootte van de multi-signature transacties te verkleinen. Met name omdat de verwachting is dat het gebruik van multi-signature transacties zal stijgen door verdere adoptie van payment channels in het Lightning Network.

Betere privacy

De mogelijkheid om verschillende digitale handtekeningen in een enkele handtekening te combineren brengt ook privacyvoordelen met zich mee. Bij transacties met veel verschillende inputs wordt er vaak vanuit gegaan dat alle inputs van dezelfde persoon zijn, maar dit is niet altijd het geval. Bij het zogenaamde CoinJoin worden verschillende transacties van meerdere partijen gecombineerd tot één transactie. Dit heeft als voordeel dat het moeilijker te achterhalen is welke inputs naar een bepaald adres zijn verstuurd, wat tot betere privacy leidt.

Een CoinJoin transactie is vergelijkbaar met een groep mensen die allen een euro munt hebben, al deze munten samen in een pot gooien en er vervolgens weer evenveel uithalen als oorspronkelijk van hen was. Het is dan erg lastig om het spoor van de munten te achterhalen.

Transacties die gebruik maken van gecombineerde digitale handtekeningen via Schnorr zijn goedkoper dan transacties die normale ECDSA handtekeningen gebruiken. Dit is niet alleen gunstig voor de privacy-fanaten, maar ook voor de rest van de gebruikers: het doen van een transactie waarbij meerdere inputs gebundeld worden is nu de goedkoopste optie en biedt tegelijkertijd de meeste privacy. De transactie zal kleiner zijn en de fee die betaald moet worden voor de grootte van de transactie wordt verdeeld over alle deelnemers. Er is met Schnorr dus een financiële prikkel om de optie met de meeste privacy te kiezen, wat goed is voor de privacy van Bitcoin als geheel.

De implementatie van Schnorr is niet simpel en er zijn nog een aantal obstakels die overwonnen moeten worden. Niet alleen is Schnorr minder gestandaardiseerd dan ECSDA, iets wat belangrijk is voor veilige implementatie van cryptografische algoritmes, ook is er weinig gedocumenteerd over de exacte specificatie. Dit maakt het een uitdaging om te implementeren, maar wanneer af ook een indrukwekkende prestatie.

Script versioning

In de cryptografie worden digitale handtekeningen de witness genoemd. Zoals de naam al suggereert, scheidt Segregated Witness de data voor digitale handtekeningen van de rest van de data in een transactie. Deze scheiding maakt dat het mogelijk wordt om flexibeler om te gaan met het doen van aanpassingen aan het algoritme dat gebruikt wordt voor het maken van de digitale handtekeningen. Waar dit normaal via een hard fork zou moeten, kan dit nu via een soft fork. Dit is wenselijk, want een soft fork wordt over het algemeen gezien als de veiligere manier van aanpassingen doen aan het protocol.

Door een versienummer toe te voegen aan elke verandering aan het Bitcoin script kunnen gebruikers ervoor kiezen om mee te doen met specifieke versies, waar dit bij een hard fork niet optioneel is. Door deze manier van script versioning kunnen er zonder risico op een hard fork toch verbeteringen gedaan worden aan het protocol. Schnorr is een van de voorgestelde verbeteringen, maar ook Merkelized Abstract Syntax Trees (MAST) zijn wenselijk.


Belangrijke thema’s in dit artikel. Klik op een thema en ontdek meer.