Wat is een Threshold Signature Scheme (TSS)?
Basisprincipes
Threshold Signature Scheme (TSS) is een cryptografische primitive die gedistribueerde sleutelgeneratie en ondertekening mogelijk maakt. De toepassing ervan in blockchain-clients kan een breed scala aan voordelen bieden, vooral op het gebied van beveiliging. Deze innovatie kan ook de ontwikkeling van sleutelbeheeroplossingen, zoals crypto wallets, beïnvloeden en zelfs de weg vrijmaken voor native ondersteuning in DeFi-gebruiksscenario's. Aangezien het echter nog een relatief nieuwe technologie is, is het essentieel om rekening te houden met de beperkingen en potentiële risico's die TSS met zich meebrengt.
Laten we Threshold Signature Scheme verkennen, de potentiële voordelen in de context van blockchain definiëren en uiteenzetten hoe het in een blockchain-client kan worden geïntegreerd. Het artikel vergelijkt TSS ook met andere vergelijkbare cryptografische technieken, zoals Shamir secret sharing en Multisig. Daarnaast worden de verschillende manieren besproken waarop TSS kan worden gebruikt voor gedistribueerd sleutelbeheer, gevolgd door een overzicht van de risico's en beperkingen van deze technologie.
De kracht van cryptografie
Voordat we ingaan op de details van het Threshold Signature Scheme, is het belangrijk om een basisbegrip van cryptografie te hebben. Sinds de jaren 70 wordt asymmetrische cryptografie, ook wel public key cryptography (PKC) genoemd, veel toegepast in internetsystemen zoals TLS en PGP. PKC maakt gebruik van twee sleutels: een publieke en een private. De publieke sleutel kan vrij gebruikt en gepubliceerd worden, terwijl de private sleutel vertrouwelijk wordt gehouden om veiligheid te waarborgen.
PKC heeft twee hoofdtoepassingen: encryptie en digitale handtekeningen. Beide toepassingen vertrouwen op een reeks van drie algoritmen. Ten eerste wordt het private en publieke sleutelpaar gegenereerd. Ten tweede wordt een ciphertext/handtekening aangemaakt. Ten slotte wordt het decryptie/verificatieproces uitgevoerd. Wat digitale handtekeningen betreft, vereist het ondertekeningsalgoritme de private sleutel, die alleen bij de eigenaar bekend is, om een unieke handtekening te produceren die aan een bericht kan worden toegevoegd. Iedereen met de publieke sleutel kan vervolgens de authenticiteit en juistheid van de handtekening verifiëren.
Blockchain
Blockchain-technologie is sterk in populariteit gegroeid vanwege het vermogen om gebeurtenissen te organiseren en vast te leggen via een consensuslaag, die potentieel gebruikt kan worden om gedecentraliseerde economieën en zelfs regeringen op te bouwen. Digitale handtekeningen zijn de enige vorm van cryptografie die nodig is om een basis blockchain te laten draaien. In de context van blockchain fungeren private sleutels als identiteiten, terwijl handtekeningen dienen als publieke verklaringen of claims van een identiteit. De blockchain valideert en ordent deze verklaringen op basis van een set regels, waarbij wordt gegarandeerd dat de handtekeningen niet vervalst kunnen worden en juist zijn.
Moderne cryptografische technieken, zoals zero-knowledge proofs, homomorfe encryptie en multi-party computation, hebben het arsenaal aan beschikbare tools in cryptografie uitgebreid. Blockchain-onderzoek heeft in het afgelopen decennium aanzienlijk bijgedragen aan vooruitgang in toegepaste cryptografie. Dit artikel richt zich op één van die doorbraken: efficiënte en veilige threshold signatures.
MPC en het TSS
Het threshold signature scheme is een methode die gedistribueerde sleutelgeneratie (DKG) en gedistribueerde ondertekening combineert in een threshold signature scheme. Multi-party computation (MPC) is een tak van cryptografie die al bijna 40 jaar bestaat. Het stelt partijen die elkaar niet volledig vertrouwen in staat om gezamenlijk een functie over hun inputs te berekenen, terwijl die inputs privé blijven. Stel je bijvoorbeeld voor dat werknemers van een bedrijf willen weten wie het meest verdient zonder hun salarissen aan elkaar te onthullen. Met MPC wordt de berekening zo uitgevoerd dat zelfs niet één salaris uitlekt tijdens de berekening. Op een gedistribueerde manier kunnen we MPC gebruiken om een digitale handtekening te berekenen. Er zijn drie stappen bij het aanmaken van een handtekening: sleutelgeneratie, ondertekening en verificatie.
In de eerste stap genereren we een sleutel die publiek is en gebruikt wordt om toekomstige handtekeningen te verifiëren, evenals individuele geheimen voor elke partij, bekend als geheime delen. Om privacy en correctheid te behouden, moet de functie voor alle partijen dezelfde publieke sleutel opleveren en een verschillend geheim deel voor elke partij. Het privacycriterium dicteert dat geen geheime deeledata wordt onthuld tussen de partijen, terwijl het correctheidscriterium ervoor zorgt dat de publieke sleutel een functie is van de geheime delen.
In de tweede stap gebruikt elke partij zijn geheime deel als input voor een handtekeninggeneratiefunctie en een bericht dat bekend is bij alle partijen. De output van deze stap is een digitale handtekening, en het private eigenschap zorgt ervoor dat er tijdens de berekening geen lekkage van geheime delen plaatsvindt.
De derde stap omvat een verificatiealgoritme dat hetzelfde blijft als in de klassieke opzet. Iedereen met kennis van de publieke sleutel kan de handtekeningen verifiëren en valideren, waardoor het compatibel is met single-key handtekeningen.
Samengevat is TSS de naam die wordt gegeven aan deze combinatie van gedistribueerde sleutelgeneratie en gedistribueerde ondertekening in een threshold signature scheme dat MPC gebruikt.
Integratie van TSS met blockchains
Om TSS-technologie in een blockchain te integreren, moeten we de blockchain-client aanpassen zodat deze gedistribueerde berekeningen uitvoert in plaats van commando's die met een private sleutel werken. In traditioneel blockchain-ontwerp wordt een nieuw adres gemaakt door een private sleutel te genereren, de publieke sleutel te berekenen en vervolgens het blockchain-adres af te leiden van de publieke sleutel.
Met TSS kan een groep partijen gezamenlijk de publieke sleutel berekenen, waarbij elke partij een geheim deel van de private sleutel bezit. Het aandeel van elke partij blijft vertrouwelijk, waardoor de private sleutel een gedistribueerd object wordt. De blockchain zelf blijft onaangetast. Deze aanpak heeft als voordeel dat er geen single point of failure is voor de private sleutel, omdat elke partij slechts een deel ervan bezit.
Op dezelfde manier wordt bij het ondertekenen van transacties één enkele partij vervangen door een gedistribueerde ondertekening tussen meerdere partijen. Elke partij kan een geldige handtekening genereren als er voldoende eerlijke partijen meewerken. Bovendien kan gedistribueerde sleutelgeneratie omgaan met verschillende toegangsstructuren. De "t van n"-instelling kan tot t willekeurige uitval tolereren zonder de veiligheid aan te tasten.
TSS vs. Multisig
In wezen proberen multisig en TSS vergelijkbare doelen te bereiken. Multisig vindt echter on-chain plaats, terwijl TSS cryptografie off-chain gebruikt. Hoewel sommige blockchains TSS-functionaliteit als ingebouwde of programmeerbare feature hebben, is multisig een applicatielaag op de blockchain.
Een nadeel van multisig is dat de toegangsstructuur op de blockchain wordt blootgesteld, wat de privacy kan schaden. Bovendien zijn multisig-transacties duurder vanwege de informatie over verschillende ondertekenaars die op de blockchain moet worden gecommuniceerd. Daarentegen vouwt TSS de details van ondertekenaars samen tot een reguliere ogende transactie, waardoor kosten dalen terwijl privacy behouden blijft.
Ondanks het gemak dat multisig niet-interactief kan zijn, is het blockchain-specifiek en moet het voor elke blockchain opnieuw worden geïmplementeerd, of het wordt soms helemaal niet ondersteund. TSS daarentegen steunt op cryptografie, wat het universeel ondersteund maakt.
TSS vs. Shamir
Er zijn twee hoofdverschillen bij het vergelijken van het Shamir secret sharing scheme (SSSS) met TSS. Ten eerste is er in SSSS één enkele partij genaamd "de dealer" die de geheime delen van de private sleutel genereert en vervolgens verspreidt naar verschillende locaties. Dit betekent dat de private sleutel aanvankelijk op één locatie wordt gegenereerd en daarna verdeeld, wat resulteert in een potentieel single point of failure. In tegenstelling daarmee vertrouwt TSS niet op een enkele dealer. In plaats daarvan is de sleutelgeneratie gedistribueerd, waardoor de private sleutel nooit op één locatie bestaat.
Ten tweede moeten in SSSS de partijen de volledige private sleutel reconstrueren om te ondertekenen, wat elke keer opnieuw een potentieel single point of failure creëert wanneer een handtekening nodig is. TSS behandelt ondertekening anders door deze gedistribueerd uit te voeren zonder de geheime delen te reconstrueren.
Samengevat zorgt TSS ervoor dat de private sleutel gedurende zijn levenscyclus nooit op één locatie aanwezig is, terwijl SSSS een single point of failure kent tijdens sleutelgeneratie en ondertekening.
Threshold-wallets
In tegenstelling tot traditionele cryptocurrency-wallets werkt een wallet gebaseerd op TSS-technologie anders. Gewoonlijk genereert een conventionele wallet een seed phrase om adressen deterministisch af te leiden. De gebruiker kan vervolgens deze hierarchische deterministische (HD) structuur gebruiken om private sleutels te bereiken die corresponderen met wallet-adressen en transacties te ondertekenen, en om alle wallet-sleutels te herstellen met behulp van de seed phrase.
In een threshold-wallet zijn de zaken echter complexer. Hoewel het mogelijk is om een HD-structuur te genereren, moet de generatie daarvan op gedistribueerde wijze worden berekend met behulp van een ander MPC-protocol. De partijen moeten gezamenlijk beslissen welke volgende sleutel gebruikt wordt, waarbij elke partij een eigen seed phrase heeft. De seed phrases worden afzonderlijk gegenereerd en nooit gecombineerd zodat één partij alleen niet de private sleutels kan afleiden vanuit zijn seed.
TSS-gebaseerde wallets bieden een beveiligingsfunctie waarmee private sleutels geroteerd kunnen worden zonder de bijbehorende publieke sleutel en blockchain-adres te veranderen. Deze eigenschap, ook bekend als proactive secret sharing, neemt de geheime delen als input en levert een nieuwe set geheime delen op. Oude geheime delen kunnen worden verwijderd en nieuwe kunnen op dezelfde manier worden gebruikt.
Deze tijdsdimensie in de beveiligingsstructuur maakt het moeilijk voor een aanvaller om een threshold-wallet te compromitteren. Het combineren van geheime delen vóór en na rotatie geeft aanvallers die een handtekening willen vervalsen geen extra macht.
Een nadeel van dit type wallet is echter het ontbreken van een seed phrase, waardoor het onverenigbaar is met single-key walletsystemen. Het is essentieel om goed te overwegen welke partijen de geheime delen zullen houden. Er zijn drie mogelijke architecturen:
- Uitbesteden van TSS: De gebruiker laat "n" servers de berekening namens hen uitvoeren en besteedt daarmee sleutelgeneratie, beheer en ondertekening uit aan serviceproviders. Serviceproviders zouden echter kunnen colluderen en de activa van de gebruiker kunnen stelen.
- Gebruik van meerdere apparaten: De gebruiker voert TSS uit tussen eigen apparaten, zoals een IoT-apparaat, een mobiele telefoon en een laptop. Dit kan echter omslachtig zijn bij het uitvoeren van transacties.
- Hybride: TSS draait met sommige partijen die gecontroleerd worden door externe serviceproviders en sommige partijen op door de gebruiker beheerde apparaten. Deze optie biedt een snelle en gebruiksvriendelijke manier om transacties uit te voeren zonder veiligheid op te offeren.
Samengevat voegt TSS-technologie een nieuw beveiligingsniveau toe aan cryptocurrency-wallets, waardoor ze minder vatbaar zijn voor aanvallen. De hybride aanpak wordt gezien als de beste optie voor gebruikers, omdat het een balans biedt tussen gemak en veiligheid.
TSS en Smart Contracts
Digitale handtekeningen hebben veel toepassingen die uitdagend kunnen zijn. TSS is een cryptografische primitive die de veiligheid verbetert. TSS-gebaseerde cryptografie kan veel functionaliteiten in blockchains vervangen. Atomic swaps, erfenissen, layer 2 scaling-oplossingen en gedecentraliseerde applicaties kunnen worden gebouwd met het TSS-framework, waarbij dure en risicovolle on-chain smart contract-operaties worden vervangen door betrouwbare en goedkopere alternatieven. Multi-Hop Locks, die slim tweepartij-handtekeningen gebruiken, kunnen een vervanging zijn voor het Bitcoin Lightning-netwerk voor een veilig en privé betalingskanaalnetwerk. ShareLock, dat is gebaseerd op het verifiëren van een enkele threshold-handtekening, is waarschijnlijk de meest kosteneffectieve on-chain mix-oplossing voor Ethereum.
Risico's
Ondanks de groeiende populariteit van TSS-implementaties in de afgelopen jaren, kent de technologie nog steeds enkele beperkingen en zorgen als een relatief nieuw vakgebied. Hoewel TSS-protocollen de veiligheid kunnen verbeteren, zijn ze ook veel complexer dan klassieke public key cryptografie en hebben ze nog niet dezelfde mate van uitgebreide testen ondergaan. Daarnaast vereist TSS vaak andere (soms zwakkere) cryptografische aannames dan traditionele opzetten, wat kan leiden tot de ontdekking van nieuwe aanvalsvectoren. Security engineers en cryptografen kunnen echter helpen bij een veilige uitrol van TSS in uw systeem. Positief gezien dragen kwalitatieve bijdragen, peer reviews, audits en verbeteringen in algoritmische prestaties allemaal bij aan sterkere TSS-implementaties.
Conclusie
Concluderend is Threshold Signature Scheme een innovatieve cryptografische technologie die het potentieel heeft om een breed scala aan voordelen te bieden, vooral op het gebied van blockchain-beveiliging. De toepassing ervan in blockchain-clients kan sleutelbeheersystemen, zoals crypto wallets, revolutioneren en zelfs de weg vrijmaken voor native ondersteuning in DeFi-gebruiksscenario's. Hoewel TSS verschillende voordelen biedt, is het nog steeds een nieuwe technologie en is het van cruciaal belang om de beperkingen en potentiële risico's te overwegen. Het is daarom belangrijk om op de hoogte te blijven van de laatste ontwikkelingen en onderzoeksresultaten rond TSS om weloverwogen beslissingen te nemen over implementatie.