Primes privées non interactives pour le calcul général sur Bitcoin
Cet article a été publié pour la première fois sur Medium.
Comment externaliser en toute sécurité n’importe quel calcul
L’échange de solution et de paiement est atomique et sans confiance : soit le créateur de primes apprend la solution et le collectionneur obtient les récompenses, soit rien ne se produit. Le maker déploie un contrat intelligent qui libère des fonds si et seulement si une solution est apportée. Pour éviter que la solution ne fuie, elle est cryptée avec une clé que seules les deux parties connaissent. Pour valider la solution chiffrée, Zero-Knowledge Proof (ZKP) est utilisé pour prouver que la solution chiffrée est valide et qu’elle est chiffrée à l’aide de la bonne clé tout en la gardant confidentielle.
À notre connaissance, il s’agit du premier et du seul moyen d’externaliser en toute sécurité tout calcul sans tiers de confiance.
Le problème du juste échange
Un acheteur veut connaître la solution à un problème de calcul, tel qu’un puzzle Sudoku. Elle ne veut pas ou ne peut pas le résoudre elle-même, alors elle l’externalise en faisant une prime qui paie un vendeur proposant une solution.
Si l’acheteur paie en premier, le vendeur peut ne pas lui indiquer la solution.
L’acheteur paie en premier
De même, si le vendeur divulgue la solution en premier, l’acheteur peut refuser de payer.
Le vendeur révèle en premier
C’est le problème canonique du juste échange. Il est trivial de résoudre s’il existe un tiers de confiance auquel les deux font confiance. Plusieurs tentatives ont été faites pour le résoudre sans séquestre.
Premier essai
Figure 1
Il se compose de trois étapes comme le montre la Fig. 1 :
En raison de la nature transparente d’une blockchain publique, celle-ci souffre de deux inconvénients :
- n’importe qui peut apprendre la solution en observant la solution affichée sur la chaîne. Ceci est problématique si le créateur de primes a l’intention de garder la solution privée, ce qu’il paie
extraire la solution et créer une transaction concurrente pour réclamer lui-même la prime, sans résoudre le problème
Deuxième tentative : Zero Knowledge Contingent Payment (ZKCP)
ZKCP
ZKCP permet à un acheteur d’acheter une solution à un vendeur utilisant Bitcoin qui ne nécessite de faire confiance à personne. Il se compose de deux étapes :
ZKCP présente également des inconvénients :
- Cela nécessite une interaction entre le vendeur et l’acheteur, ce qui n’est pas idéal dans un contexte de blockchain, où les utilisateurs se déconnectent souvent après avoir envoyé une transaction
Notre solution
Notre mécanisme de prime résout tous les problèmes susmentionnés et bénéficie des propriétés saillantes suivantes.
/li>
La difficulté de réaliser une prime répondant à toutes ces exigences vient du fait que l’identité de l’utilisateur qui résout le problème est inconnue au moment où la prime est publiée. Dans la Fig. 1, un attaquant malveillant, tel qu’un mineur, peut espionner TCobtenir le témoin et racheter la récompense lui-même, puisque le contrat intelligent en Tm permet à toute personne ayant w de racheter. De plus, tout tiers peut observer TC sur la blockchain et apprend le secret w, que le créateur de prime paie et peut souhaiter garder privé. Il faut un moyen de chiffrer et de cacher wtout en assurant C(w) est vrai.
Pour prévenir ces attaques, w est crypté avec une clé partagée à l’aide d’un cryptage symétrique. Il est dérivé d’un échange de clés Elliptic Curve Diffie – Hellman (ECDH), comme l’illustre la Fig. 2. L’assurance qualité de la clé publique d’Alice est publiée dans Tm. Bob doit utiliser QA pour dériver la clé partagée. Il expose sa clé publique QB dans TCqu’Alice utilise pour dériver la même clé partagée et déchiffrer la solution chiffrée pour obtenir w.
Figure 2 : Échange de clés ECDH
Circuit ZK
Le contrat intelligent en Tm vérifie la preuve dans TC attestant du circuit composite illustré à la Fig. 3. Il faut plusieurs entrées, dont le témoin privé w, et génère le témoin chiffré avec la clé partagée. L’étape 1 assure la w est valide, et le reste valide w est chiffré avec la bonne clé partagée, afin qu’Alice puisse le déchiffrer. L’étape 2 utilise ECDH pour dériver la clé partagée.
Enc() à l’étape 4 peut être n’importe quel chiffrement symétrique. En pratique, un cryptage compatible ZKP tel que le cryptage Poséidon est souhaité pour plus d’efficacité.
Figure 3 : circuit
Flux de travail final
Le mécanisme de prime amélioré final est illustré à la Fig. 4.
Si un attaquant intercepte TC et change de destinataire, la preuve sera invalidée puisqu’elle est liée à la clé publique de Bob. L’attaquant ne peut pas rediriger et voler la prime. La preuve s’apparente à une signature numérique utilisée dans les transactions de paiement régulières, protégeant contre la falsification. De plus, l’attaquant ne peut pas voir le témoin puisqu’il est crypté.
Figure 4
En pratique, un délai sera ajouté à la prime. Si personne ne le réclame dans un certain délai, Alice peut récupérer son argent.
Comment obtenir la clé publique de Bob
La clé publique QB de Bob, expéditeur de la transaction réclamante, est facilement disponible dans une blockchain basée sur un compte telle qu’Ethereum. Le langage de programmation Solidity d’Ethereum l’expose dans la variable de transaction globale tx.origin ou msg.sender.
Bitcoin vs autres blockchains
Ce mécanisme de prime peut être appliqué dans de nombreuses blockchains. Dans les blockchains où une transaction non confirmée peut être retardée par une transaction ultérieure avec des frais plus élevés, comme BTC et Ethereum, il est possible pour l’émetteur de primes Alice d’intercepter TCdéchiffrer et récupérer le témoin w. Elle peut créer une transaction d’encaissement concurrente à l’aide de w être à l’avant-garde TC avec des frais de transaction plus élevés avant qu’il ne soit extrait dans un bloc. Sur Bitcoin, cela est extrêmement improbable puisque les transactions sont traitées selon le principe du premier arrivé, premier servi.
Configuration de confiance
Il existe deux catégories de ZKP : ceux qui nécessitent une configuration de confiance et ceux qui ne le nécessitent pas. Dans de nombreux cas, ce dernier est préféré car il a tendance à être plus efficace. Si Bob dirige la configuration, il peut créer une fausse preuve et voler la prime sans résoudre pour w. Puisqu’aucun tiers n’est digne de confiance, Alice doit effectuer la configuration.
Différent de ZKCP, ce n’est pas un problème ici si Alice manipule malicieusement la configuration pour apprendre une partie ou l’intégralité du témoin à partir de la preuve, en brisant la propriété de connaissance nulle utilisée par ZKP. Elle déchiffrera la preuve pour obtenir le témoin quand même. Pour plus de sécurité, Bob peut effectuer des vérifications supplémentaires de la configuration pour s’assurer qu’elle est effectuée honnêtement par Alice et que la chaîne de référence commune est bien formée. Il peut également vérifier que sa preuve passe la validation en exécutant le contrat intelligent du vérificateur localement et uniquement en diffusion TC après son passage.
Cas d’utilisation potentiels
L’invention ouvre de nombreuses façons d’externaliser des problèmes de calcul pratiques arbitraires au grand public. Quiconque soumet une solution en premier est assuré d’être payé. Vous trouverez ci-dessous quelques exemples.
- Minage : un pool de minage sous-traite le hachage en proposant de payer tout mineur qui trouve un nonce qui fait qu’un hachage d’en-tête de bloc donné réponde à l’objectif de difficulté de partage. Le mineur n’a pas à faire confiance au pool pour le paiement, comme dans un pool minier traditionnel. Le paiement est sans confiance et instantané
- Apprentissage automatique : une entreprise souhaite entraîner un modèle d’apprentissage automatique, tel que le traitement du langage naturel ou la régression linéaire, sur un ensemble de données donné pour améliorer l’expérience de ses utilisateurs. Il externalise la formation dans l’espoir de trouver le modèle le plus précis à un prix abordable sans une plate-forme centralisée comme Kaggle
- Image haute résolution démontrable : un utilisateur d’un site Web aime une image de faible résolution et qui n’est qu’un aperçu. Il veut acheter la copie haute résolution, probablement en réduisant la taille de l’aperçu
- Problématique du voyageur de commerce : une entreprise de logistique souhaite trouver le chemin le plus court pour livrer efficacement des colis à une liste de destinataires, afin de minimiser les frais de gaz
- Un casse-tête de Sudoku : Alice est une passionnée de Sudoku et a un casse-tête sur lequel elle est perplexe pendant des heures. Elle abandonne et poste une prime à celui qui fournit la solution au puzzle
Les progrès technologiques rapides dans les ZKP ont permis de prouver de nombreuses déclarations d’applications pratiques. Restez à l’écoute !
Remerciements
Dans le cas où des adresses dérivées de hachages de clés publiques sont utilisées dans les transactions, au lieu des clés publiques elles-mêmes, QA et QB sont remplacés par les adresses d’Alice et de Bob, et des étapes supplémentaires sont nécessaires pour s’assurer que les adresses sont dérivées des clés publiques.
Le WI ne suffit pas : les paiements contingents (services) à connaissance zéro sont revisités
Regardez : La présentation de la BSV Global Blockchain Convention, Smart Contracts and Computation on BSV
width= »562″ height= »315″ frameborder= »0″ allowfullscreen= »allowfullscreen »>