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.
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.
Photo by Google DeepMind
————————– Translated with ChatGPT ———————
Multi-Party Computation
Cryptography revolves around sending messages that only the intended recipient can understand. In our internet era, cryptography plays an increasingly important role in securely storing and transmitting digital information. The idea behind cryptography is simple, but the field is based on highly complex mathematics to encrypt and encode messages according to a ‘secret’ recipe or algorithm. In the world of blockchain, the ‘message’ being stored and transmitted is a digital asset, and the ‘key’ to that digital asset is the decryption tool used to receive it. To optimally protect those private keys and prevent a single point of failure, Multi-Party Computation comes into play: it spreads the use of the private key across various nodes.
Efficient and secure use of digital assets
To use digital assets, you need a public key and your own private key. The ‘private key’ that grants access to a digital asset must always be securely stored, as anyone who knows the private key can move the asset to their own key and wallet. Safely storing the private key itself, actively and securely, is crucial in the entire process of managing digital assets. Historically, there have been some simple options for securely storing private keys. These options usually fall under hot, cold, or hardware-based storage.
In hot storage, your private key, albeit shielded, is stored online. In cold storage, the storage is offline, disconnected from digital connections. With a hardware wallet, the private key is stored offline and on a separate physical device. These have been the most commonly used methods to secure digital assets so far. However, there always comes a moment when the private key needs to be used or transferred online. Multi-Party Computation (MPC) proves to be an interesting solution to physically spread both digital storage and the transfer of digital assets. MPC also enables fast transfer and regular adjustments, enabling new intriguing security strategies.
What is MPC?
MPC allows multiple parties – each with their own private data – to evaluate a computation without ever revealing the private data of each party. The two properties that a multi-party computation protocol must guarantee are, firstly, privacy. The private information that each party holds can never be deduced from the execution of the protocol. Secondly, the accuracy and precision of the process are important. If a party within the group decides to share information or deviate from the instructions during the execution of the protocol, MPC will not allow them to force the honest parties to provide an incorrect result or leak the secret information of an honest party.
In MPC, a certain number of participants each have a piece of private data. Together, the participants can calculate the value of a public function based on that private data while keeping their own piece of data secret. In fact, this is a mathematical problem that we can solve using various physically separated computers. Suppose three people want to know who has the highest salary without revealing how much each of them earns. This is actually a classic example of multi-party computation, also known as ‘The Millionaire’s Problem’. Using only their own salaries, they want to know which salary is the highest, but they do not share actual figures with each other. The goal of MPC is to solve this mathematical problem via a protocol and multiple computers without the need for assistance from a third ‘independent’ party. Just like other Web3 technologies such as blockchain or quantum-safe storage do.
History of MPC
The development of MPC (Multi-Party Computation) began in the 1980s as a relatively recent breakthrough within the world of ancient cryptography. Until then, cryptography primarily focused on concealing content. However, this new type of calculation revolves around concealing information while computing with data from multiple sources. Although the technique was greatly improved in the 1990s, it wasn’t until 2008 that the first large-scale practical application of multi-party computation took place, demonstrated during a digital auction in Denmark.
In 2010, MPC was first used to securely protect digital assets, and in 2019, MPC-CMP was introduced, the first automatic, key-refreshing MPC algorithm. Today, MPC is used for practical applications such as electronic voting, digital auctions, and privacy-focused data mining. One of the primary applications of multi-party computation is securing digital assets, and recently, MPC has become the standard for institutions looking to secure their assets while maintaining fast and easy access.
The Use of MPC
With MPC, private keys (and other sensitive information, such as authentication data) no longer need to be stored in one location. This avoids the risk associated with storing private keys in a single location, also known as a ‘single point of compromise.’ With MPC, the private key is divided into shared files, encrypted, and distributed among multiple parties. These parties independently calculate their portion of the private key to produce a signature without disclosing the encryption to the other parties. This means that the private key is never formed in one place; instead, it exists in a completely ‘liquid’ form.
When an attacker only needs to hack one compromise to steal a private key, the digital assets unlocked by the key are left wide open for theft. Multi-party computation solves this problem because the private key is no longer owned by one party at any given time. It is decentralized and managed by multiple parties (i.e., devices), with each party being blind to the others. Whenever the key is needed, MPC is initiated to confirm that all parties, or a predetermined number of parties from the full set, approve the request. Users can now store their assets online without the need for complicated cold storage devices.
The Future of MPC
The latest innovation is the new MPC-CMP protocol, which allows digital asset transactions to be signed in just one round. This also addresses challenges for companies wishing to use cold storage via an ‘air-gap’ with multi-party computation. This can also accommodate regions with specific regulations for MPC wallet security, such as rapid, automatic key refreshing. This means that a malicious actor only has a few moments to steal all the ‘key shards’ before the shares are renewed and they have to start over. This adds a new layer of protection to the multi-layered security system. MPC is open-source and peer-reviewed, meaning that all digital asset administrators and MPC providers have access to the new protocol and can use it for free.