Wouter Hoeffnagel - 13 mei 2024

Multi-Party Computation

Cryptografie draait om het verzenden van berichten die alleen de bedoelde ontvanger kan begrijpen. In onze internetperiode speelt cryptografie een steeds belangrijkere rol bij het veilig opslaan en overdragen van digitale informatie. Het idee achter cryptografie is eenvoudig, maar het vakgebied is gebaseerd op zeer complexe wiskunde om berichten te versleutelen en te coderen volgens een ‘geheim’ recept of algoritme. In de wereld van blockchain is de ‘boodschap’ die wordt opgeslagen en overgedragen een digitaal bezit, en de ‘sleutel’ tot dat digitale bezit is het decoderingsinstrument dat wordt gebruikt om het te ontvangen. Om die privésleutels optimaal te beschermen en een enkelvoudig falingspunt te voorkomen, komt Multi-Party Computation om de hoek kijken: het verspreidt over verschillende knooppunten in een netwerk het berekenen en het gebruik van de privésleutel.

Multi-Party Computation image

Efficiënt en veilig gebruik van digitale activa

Om digitale activa te gebruiken, heb je een openbare sleutel en je eigen privésleutel nodig. De ‘privésleutel’ die toegang geeft tot een digitaal bezit moet altijd veilig worden bewaard, omdat iedereen die de privésleutel kent, het bezit naar zijn eigen sleutel en portemonnee kan verplaatsen. Het veilig bewaren van de privésleutel zelf, actief en veilig, is cruciaal in het hele proces van het beheer van digitale activa. Historisch gezien zijn er enkele eenvoudige opties geweest voor het veilig opslaan van privésleutels. Deze opties vallen meestal onder warme, koude of op hardware gebaseerde opslag.

Bij warme opslag wordt je privésleutel, zij het afgeschermd, online bewaard. Bij koude opslag is de opslag offline, losgekoppeld van digitale verbindingen. Met een hardware wallet wordt de privésleutel offline en op een apart fysiek apparaat bewaard. Dit waren tot nog toe de meest gebruikte methoden om digitale activa veilig te stellen. Er komt echter altijd een moment waarop de privésleutel online moet worden gebruikt of worden overgedragen. Multi-Party Computation (MPC) blijkt een interessante oplossing te zijn om zowel digitale opslag als de overdracht van digitale activa fysiek te spreiden. MPC maakt ook snelle overdracht en regelmatige aanpassingen mogelijk, wat nieuwe intrigerende veiligheidsstrategieën mogelijk maakt.

Wat is MPC?

MPC maakt het mogelijk voor meerdere partijen – elk met hun eigen privégegevens – om een berekening te evalueren zonder ooit de privégegevens van elke partij bekend te maken. De twee eigenschappen die een protocol voor multi-party computation moet garanderen, zijn allereerst privacy. De privé-informatie die elke partij heeft, kan nooit worden afgeleid uit de uitvoering van het protocol. Ten tweede is de juistheid en nauwkeurigheid van het proces belangrijk. Als een partij binnen de groep besluit informatie te delen of af te wijken van de instructies tijdens de uitvoering van het protocol, zal MPC niet toestaan dat zij de eerlijke partijen dwingen een onjuist resultaat te geven of de geheime informatie van een eerlijke partij te lekken.

In een MPC heeft een bepaald aantal deelnemers elk een stukje privégegevens. Samen kunnen de deelnemers de waarde van een openbare functie op basis van die privégegevens berekenen, terwijl ze hun eigen stukje gegevens geheim houden. In feite is dit een wiskundig probleem dat we via verschillende, fysiek gescheiden computers kunnen oplossen. Stel dat drie mensen willen weten wie het hoogste salaris heeft, zonder aan elkaar te onthullen hoeveel elk van hen verdient. Dit is eigenlijk een klassiek voorbeeld van multi-party computation, ook bekend als ‘Het probleem van de miljonair’. Met behulp van alleen hun eigen salarissen willen ze weten welk salaris het hoogste is, maar ze delen geen feitelijke cijfers met elkaar. Het doel van MPC is om dit wiskundige probleem via een protocol en meerdere computers op te lossen zonder hulp van een derde ‘onafhankelijke’ partij. Net zoals andere Web3-technieken zoals blockchain of quantum-safe opslag dat doen.

Geschiedenis van MPC

De ontwikkeling van MPC (multi-party computation; ook privacy-preserving computation) begon in de jaren ’80 als een relatief recente doorbraak binnen de wereld van de eeuwenoude cryptografie. Tot die tijd richtte cryptografie zich voornamelijk op het verbergen van inhoud. Dit nieuwe type berekening – ook wel mental poker genoemd – draait om het verbergen van informatie tijdens het berekenen met gegevens opgeslagen op verschillende locaties. Hoewel de techniek in de jaren negentig al sterk werd verbeterd, vond pas in 2008 de eerste grootschalige praktische toepassing van een meerpartijenberekening plaats, gedemonstreerd tijdens een digitale veiling in Denemarken.

In 2010 werd MPC voor het eerst gebruikt om digitale activa veilig te beschermen en vonden steeds snellere toepassingen plaats. In 2019 werd MPC-CMP geïntroduceerd, het eerste automatische, sleutelvernieuwende MPC-algoritme. Tegenwoordig wordt MPC gebruikt voor praktische toepassingen zoals elektronisch stemmen, digitale veilingen en privacygerichte datamining. Een van de belangrijkste toepassingen van multi-party computation is het beveiligen van digitale activa, en recentelijk is MPC de standaard geworden voor instellingen die hun activa willen beveiligen en toch snelle en gemakkelijke toegang willen behouden.

Het gebruik van MPC

Met MPC hoeven privésleutels (en andere gevoelige informatie, zoals authenticatiegegevens) niet langer op één plek te worden opgeslagen. Het risico dat gepaard gaat met het opslaan van privésleutels op één enkele locatie, ook wel een ‘single point of compromise’ genoemd, wordt hierdoor vermeden. Met MPC wordt de privésleutel opgedeeld in gedeelde bestanden, gecodeerd en verdeeld over meerdere partijen. Deze partijen berekenen onafhankelijk hun deel van de private sleutel om een handtekening te produceren zonder de encryptie aan de andere partijen bekend te maken. Dit betekent dat de privésleutel nooit op één plek wordt gevormd; het bestaat in plaats daarvan in een volledig ‘vloeibare’ vorm.

Wanneer een aanvaller slechts één compromis hoeft te hacken om een privésleutel te stelen, worden de digitale activa die de sleutel ontgrendelt wijd open gelaten voor diefstal. Door multi-party computation wordt dit probleem opgelost, omdat de privésleutel nu niet langer op enig moment in het bezit is van één partij. Het is gedecentraliseerd en wordt beheerd door meerdere partijen (d.w.z. apparaten), waarbij elke partij blind is voor de andere. Telkens wanneer de sleutel nodig is, wordt MPC in gang gezet om te bevestigen dat alle partijen, of een vooraf bepaald aantal partijen uit de volledige set, het verzoek goedkeuren. Gebruikers kunnen nu hun bezittingen online bewaren zonder dat ze ingewikkelde apparaten voor koude opslag nodig hebben.

De toekomst van MPC

De laatste innovatie is het nieuwe MPC-CMP-protocol, waarmee digitale activatransacties in slechts één ronde worden ondertekend. Dit lost ook uitdagingen op voor bedrijven die koude opslag via een ‘air-gap’ willen gebruiken met multi-party computation. Hierdoor kan ook worden ingespeeld op regio’s met specifieke regelgeving voor de beveiliging van MPC-wallets, zoals bijvoorbeeld snelle, automatische sleutelvernieuwing. Dat betekent dat een kwaadwillende actor slechts enkele momenten de tijd heeft om alle ‘sleutelscherven’ te stelen voordat de shares worden vernieuwd en ze opnieuw moeten beginnen. Hierdoor wordt een nieuwe beschermingslaag toegevoegd aan het meerlagige beveiligingssysteem. MPC is open source en peer-reviewed, wat betekent dat alle beheerders van digitale activa en MPC-leveranciers toegang hebben tot het nieuwe protocol en het gratis kunnen gebruiken.

Door: Hans Timmerman (foto)

Dutch IT Golf Cup BW tm 16-09-2024 Dutch IT Security Day BW tm 15-10-2024
DIC Awards BN tm 21-10-2024