L’utilisation de ZK Snarks a permis la création d’une nouvelle fonctionnalité pour développer des contrats intelligents préservant la vie privée sans sacrifier les caractéristiques de décentralisation.
Les contrats intelligents présentent une approche standard pour exprimer des interactions complexes entre deux ou plusieurs parties désireuses d’échanger des devises ou des données de manière décentralisée. Les contrats intelligents sont effectivement des ententes numériques automatisées sur une blockchain. Traduit en code, ces ententes numériques peuvent suivre, vérifier et exécuter les transactions contraignantes d’un contrat traditionnel lorsque des conditions prédéterminées sont remplies. Pour créer un contrat intelligent exprimant de telles conditions, les développeurs utilisent des langages de programmation. Le code du contrat est stocké et distribué sur un réseau de blockchain décentralisé, ce qui le rend transparent et, si on le souhaite, irréversible.
Kachina est une solution de contrat intelligent préservant la vie privée développée par Input Output Global (IOG) en collaboration avec l’Université d’Édimbourg. Elle permet aux utilisateurs d’utiliser une fonctionnalité de contrat intelligent préservant la vie privée sans sacrifier les caractéristiques de décentralisation.
Préserver la vie privée dans les contrats intelligents
La transparence et les paramètres publics de la plupart des blockchains permettant le développement de contrats intelligents rendent les conditions contractuelles visibles par tous. Si la transparence est l’un des avantages les plus forts de la technologie blockchain, la confidentialité reste essentielle pour les applications utilisant avec des données sensibles.
Les développeurs peuvent utiliser plusieurs techniques cryptographiques pour garantir une confidentialité accrue dans les contrats intelligents. Les preuves à connaissance zéro (Zero Knowledge Proof) et la sécurité des calculs informatiques en sont deux exemples. À l’aide de ces techniques cryptographiques, plusieurs solutions répondant à diverses définitions de la confidentialité et nécessitant des hypothèses de confiance sont apparues. Parmi les exemples, citons Zexe, zkay, Hawk, Zether, Secret Network et d’autres. Les plus expressives de ces solutions, Hawk et Secret, reposent sur des hypothèses de confiance, ce qui limite considérablement le niveau de décentralisation qu’elles pourraient atteindre. Hawk suppose un petit ensemble fixe de participants au cœur du système, tandis que Secret s’appuie sur des environnements d’exécution de confiance (TEE), une technologie qui a fait l’objet de nombreuses attaques portant atteinte à la vie privée. Ces techniques s’opposent fondamentalement aux principes de base d’une plateforme blockchain décentralisée.
Kachina : Fondements des contrats intelligents privés
Kachina identifie une grande classe de calculs distribués exprimables sous forme de contrats intelligents avec des garanties de confidentialité, que les développeurs peuvent mettre en œuvre sans hypothèses de confiance supplémentaires.
Un protocole de contrat intelligent repose uniquement sur des arguments de connaissance succincts non interactifs à connaissance nulle (ZK Snarks) pour assurer la confidentialité. Les garanties de confidentialité de ce protocole sont prouvées dans le cadre de sécurité de la composabilité universelle (UC) par le biais de modélisations et de preuves mathématiques. L’objectif principal du protocole est de fournir une base suffisamment basse et polyvalente pour d’autres systèmes de protection de la vie privée sans exiger que le système sous-jacent soit mis à niveau à chaque nouvelle extension ou modification.
Kachina permet aux auteurs de contrats de combler le fossé entre la blockchain et les machines locales des utilisateurs finaux – celles-ci sont représentées par deux états indépendants, un état public et un état privé. Un contrat intelligent peut mettre à jour à la fois l’état public sur la blockchain (et la partager à tous) et l’état privé en dehors de la blockchain (et le garder en local). Les parties prouvent via la connaissance nulle (Zero knowledge) qu’elles mettent à jour l’état public d’une manière permise : elles fournissent des détails sur l’existence d’un état privé et des entrées pour lesquelles cette mise à jour a un sens.
Les contrats Kachina assurent également :
- La concurrence d’une manière qui préserve la vie privée. Kachina atteint une plus grande concurrence grâce au nouveau concept de transcriptions d’oracle d’état. Il s’agit d’enregistrements des opérations effectuées sur l’état du contrat intelligent qui interagissent avec les requêtes de l’oracle. Les auteurs du contrats intelligent peuvent optimiser les transactions conflictuelles, en assurant une fuite minimale et en permettant les réorganisations.
- Construction modulaire efficace. Kachina est conçu pour être déployé à grande échelle. Les travaux précédents utilisant la connaissance nulle (Zero knowledge) ne maintiennent pas explicitement l’état du contrat intelligent. Kachina permet l’accès à l’état indirectement par des oracles spécifiés par le contrat intelligent. Cet accès indirect assure une plus grande performance et, par conséquent, la complexité de ce qui doit être prouvé est sous le contrôle total de l’auteur du smart contrat et peut être optimisée.
Dans le document de recherche, IOG démontre la polyvalence du protocole Kachina dans l’étude de cas des paiements privés. L’équipe spécifie formellement un contrat de jetons privés grâce à ses fonctions de transition et de fuite. Ce contrat prend en charge les transferts de fonds privés, les requêtes de solde et la création d’actifs.
Bien que la conception proposée soit essentiellement théorique, Kachina prouve la possibilité de créer des contrats intelligents préservant la vie privée sous des contraintes réelles :
L’utilisation d’oracles d’état permet de déplacer la plupart des opérations difficiles à calculer ou nécessitant beaucoup de stockage en dehors de la preuve à connaissance nulle (Zero Knowledge proof), ce qui réduit son coût.
Bien que le système de preuve à connaissance null doive toujours être universel, les constructions ZKP existent et sont pratiques à utiliser dans le cadre proposé. Pour plus de détails, des exemples et des exemples de contrats, lisez https://iohk.io/en/research/library/papers/kachina-foundations-of-private-smart-contracts/
Quentin est ambassadeur pour la blockchain Cardano et animateur du Podcast Cardano FR. Il travaille actuellement à titre d’architecte de solutions TI et de consultant blockchain sur plusieurs projets. Il est également conférencier et contribue au développement de formations académiques et professionnelles pour encourager l’adoption de la technologie blockchain et des cryptomonnaies.