Un défi informatique peut-il être transformé en preuve de travail?

20

L'apparence apparemment inutile de l'extraction de crypto-monnaie a soulevé la question d'alternatives utiles, voir ces questions sur Bitcoin , CST , MO . Je me demande s'il existe un algorithme qui peut convertir pratiquement n'importe quel défi de calcul C (dont la solution peut être vérifiée efficacement) en un autre tel défi Ψ(C) (qui est utilisé pour la preuve de travail) de telle sorte que

  1. La fonction Ψ est randomisée, en utilisant une séquence aléatoire (publique) r .
  2. Résoudre Ψ(C) est généralement aussi dur que la résolution de C .
  3. Si une solution est trouvée pour , puis une solution peut être efficacement calculé pour le défi d' origine .xΨ(C)Ψ1(x)C
  4. Connaître une solution pour n'aide pas à trouver une solution pour .CΨ(C)

4 '(mise à jour). Comme l'a souligné Noah dans un commentaire, la condition précédente doit être renforcée pour exiger que le prétraitement ne donne également aucun avantage dans la résolution de .CΨ(C)

Cette dernière condition est nécessaire pour que personne ne peut être mis dans une position avantageuse simplement parce qu'ils savent une solution de . En utilisant cette méthode, les gens pourraient soumettre des problèmes de calcul qu'ils souhaitent résoudre et une autorité centrale pourrait en choisir quelques-uns dignes d'être résolus (comme trouver des étrangers ou casser des mots de passe). Notez que cela ne semble pas être un problème si le problème prend même une semaine à résoudre (je suppose que ces extraterrestres ne peuvent pas être aussi bons à se cacher;), car cela pourrait entraîner une plus grande récompense pour une solution. Quoi qu'il en soit, ces sujets ne sont pas liés à la solution de mon problème théorique, mais bien sûr, je suis heureux d'en discuter dans les commentaires / sur le forum.C

Une solution possible serait la suivante: mappe en , c'est-à-dire pour résoudre et un autre défi difficile à calculer. Un problème avec ceci est que connaître une solution à rend la résolution de un peu plus facile (combien plus facile dépend de la difficulté de ). Un autre problème est que est devenu plus difficile que .ΨC(C,HASHr)CCΨ(C)HASHrΨ(C)C

domotorp
la source
3
Peut-être que cela pourrait être pertinent: eprint.iacr.org/2017/203.pdf
Andreas Björklund
3
Quelle est la différence entre un «défi informatique» et un «défi de preuve de travail»?
Ou Meir
2
Bien sûr, mais la définition même des preuves de travail nécessite généralement de considérer plusieurs défis, car la propriété principale qui les définit est la non-amortissabilité. C'est la raison pour laquelle des travaux tels que eprint.iacr.org/2017/203.pdf ont été effectués - vous avez besoin de garanties de non-amortissement pour presque toutes les applications de PoW, en particulier les crypto-monnaies. Quoi qu'il en soit, cherchez-vous une solution vérifiable publiquement, ou une solution vérifiable en privé suffirait-elle? Voulez-vous un schéma pratiquement efficace, ou êtes-vous d'accord avec une solution théorique?
Geoffroy Couteau
5
@domotorp pourquoi pensez-vous que eprint.iacr.org/2017/203.pdf n'est pas pertinent pour votre question?
Alon Rosen
5
Même s'il n'apporte pas de réduction par rapport à tout problème du pire des cas en P, le document donne un PoW utile basé sur un large éventail de problèmes. Plus précisément, tout problème réductible aux vecteurs orthogonaux (OV), y compris tous les problèmes de graphes statables dans une logique de premier ordre. Elle s'applique également au problème k-OV (supposé nécessiter environ n ^ k temps), ainsi qu'à d'autres problèmes du monde de la complexité. Donc, même si ce n'est peut-être pas aussi général que vous vous attendez, les résultats sont encore assez généraux. Et pour les problèmes que j'ai mentionnés ci-dessus, les propriétés 1-4 sont en effet satisfaites.
Alon Rosen

Réponses:

8

( Remarque : Andreas Björklund a suggéré une solution dans les commentaires qui, je pense, est meilleure que celle décrite ci-dessous. Voir http://eprint.iacr.org/2017/203 , par Ball, Rosen, Sabin et Vasudevan. En bref, ils fournissent des preuves de travail basées sur des problèmes tels que les vecteurs orthogonaux dont la dureté est bien comprise et auxquels de nombreux problèmes (par exemple, k-SAT) peuvent être réduits de manière relativement efficace. Leur instance PoW est aussi difficile que un vecteur orthogonal dans le pire des cas, même si l'instance d'entrée est facile, de sorte qu'ils évitent un inconvénient majeur de la solution décrite ci-dessous.Ψ(C)C

La solution décrite ci-dessous pourrait bénéficier de sa simplicité --- elle peut être décrite à un non-expert --- mais elle me semble beaucoup moins intéressante théoriquement.)

Une solution est possible si l'on fait l'hypothèse forte que "l'algorithme le plus rapide pour est fondamentalement aléatoire" (et si nous modélisons une fonction de hachage cryptographique comme un oracle aléatoire). Une façon de formaliser cela est de dire queC

  1. CTFNPFP (sinon, je suppose que ce n'est pas vraiment un défi valide);
  2. l'algorithme randomisé le plus rapide pour s'exécute au temps attendu sur une instance typique; etCT
  3. il existe une fonction efficacement calculable de au domaine des solutions à pour telle qu'il existe toujours un avec une solution à .f{0,1}kCklog2Ts{0,1}kf(s)C

Notez que l'hypothèse que implique que la recherche par force brute de est essentiellement l'algorithme optimal pour . C'est donc une hypothèse assez forte. D'un autre côté, si ne satisfait pas ces propriétés, alors il m'est difficile d'imaginer satisfaire à la fois vos conditions (2) et (4).klog2T{0,1}kCC

Puis, étant donné une fonction de hachage , que nous modélisons comme un oracle aléatoire, nous définissons comme suit, où pour certains est l'entrée aléatoire de . Le but est de sortir telle sorte que soit une solution à . En d'autres termes, devrait hacher à "bonnes pièces aléatoires" pour l'algorithme ci-dessus.H:{0,1}{0,1}kΨH(C;r)r{0,1}kΨHx{0,1}f(H(r,x))C(r,x)

Voyons que cela satisfait toutes vos conditions.

  1. "La fonction est randomisée, en utilisant une séquence aléatoire (publique) ." Vérifier!Ψr
  2. "La résolution de est généralement aussi difficile que la résolution de ." Notez que l'algorithme randomisé simple pour s'exécute dans le temps prévu au plus plus les frais généraux polynomiaux, et par hypothèse est essentiellement le temps d'exécution de l'algorithme optimal pour .Ψ(C)CΨH(C,r)2k2kTC
  3. "Si une solution est trouvée pour , alors une solution peut être calculée efficacement pour le défi d'origine ." Cela peut être fait en calculant , qui est une solution à par hypothèse.xΨ(C)Ψ1(x)Cf(H(r,x))C
  4. "Connaître une solution pour n'aide pas à trouver une solution pour ." Par définition, la résolution de nécessite de trouver tel que est une solution à . Puisque nous avons modélisé comme un oracle aléatoire, nous pouvons réduire la durée d'exécution attendue de tout algorithme qui résout ce problème par la complexité de requête optimale attendue du problème de requête dans lequel est donné par une boîte noire et nous sommes invités à trouver un solution au même problème. Et, encore une fois parce que est un oracle aléatoire, la complexité de la requête attendue est juste l'inverse de la fraction des élémentsCΨ(C)ΨH(C;r)xf(H(r,x))CHHHx{0,1}k qui sont des solutions (jusqu'à un facteur constant). Par hypothèse, le temps d'exécution optimal attendu de tout algorithme pour est , ce qui implique que cette fraction ne peut pas être beaucoup plus grande que . Puisque et est choisi uniformément au hasard, cela est même vrai avec le prétraitement qui peut dépendre de et (mais pas ) , et en particulier c'est vrai même si nous connaissons une solution à à l'avance.CT2k2kkr{0,1}HCrC
Noah Stephens-Davidowitz
la source
Ceci est une très bonne solution. Le seul endroit où je vois une possibilité d'amélioration est la condition (2). Pour de nombreux problèmes en , il existe des algorithmes en temps pour certains . Ce serait bien si quelque chose comme ça pouvait être préservé, mais je ne sais pas si cela peut être fait. Votre méthode est sûrement déjà supérieure à celles utilisées actuellement pour les crypto-monnaies! NPcnc<2
domotorp
En fait, il n'y a peut-être même pas grand-chose à changer dans la blockchain. Seule la communauté peut convenir qu'à un moment donné, un doit être ajouté à la blockchain dont le hachage résout le problème pratique. En fait, peut-être que la blockchain standard peut continuer, et cela pourrait simplement être un défi solo indépendant. Peut-être que sur le marché, une telle instance solo vaudra plus que les pièces traditionnelles, tout comme Rogue One vaut mieux que sw7 ou sw8. x
domotorp
Content que tu aimes ça :). Je veux juste préciser que si mes conditions sur impliquent que "la recherche par force brute sur un espace de recherche est essentiellement optimale", elles n'impliquent pas que la recherche par force brute sur l'espace de recherche d'origine est essentiellement optimale. Par exemple, pour SAT, ce n'est pas la même chose que d'exiger l'algorithme le plus rapide pour s'exécuter en temps. C2n
Noah Stephens-Davidowitz
En cas de composition - par exemple, le problème de calcul admet une définition de problème dans laquelle le problème de calcul peut être composé de problèmes plus petits, dont la solution est plus facile, et il existe une solution qui n'est pas basée sur la composition, la non-amortissabilité expliquerait cela. ?
user3483902
Je pense qu'un autre problème avec cette solution est ce que vous avez souligné dans un commentaire à ma question, à savoir que si quelqu'un peut prétraiter de manière efficace, il peut obtenir un sérieux avantage. Je pense que c'est une question assez sensible. Imaginez que je soumette un problème dont la solution (dans un format standard) peut être vérifiée en temps, mais j'ai une méthode secrète pour le vérifier en temps. Cela me donne un avantage considérable pour résoudre . CnnΨ(C)
domotorp
1

La technique simple suivante que j'appelle la technique de loterie en solution (SLT) peut être utilisée en conjonction avec d'autres techniques (comme avoir plusieurs problèmes de prisonnier de guerre, la technique mentionnée dans la réponse de Noah Stephens-Davidowitz, etc.) pour aider à transformer les défis informatiques en preuves viables des problèmes de travail. Le SLT aide à atténuer les problèmes liés aux problèmes d'extraction de crypto-monnaie autres que les conditions 1-4.

Supposons que soit un défi de calcul de la forme «trouver un hachage approprié avec une chaîne telle que ».Ckx(k,x)D

Problème Configuration : Supposons que est un ensemble, est une fonction de hachage cryptographique et est une constante. Supposons en outre que est une information facile à obtenir après avoir déterminé que mais qui ne peut pas être obtenue autrement.Ψ(C)DHCData(k,x)(k,x)D

Problème Objectif : Trouver une paire telle que est un hachage approprié et où , et où .Ψ(C)(k,x)k(k,x)DH(k||x||Data(k,x))<C

Voyons maintenant comment le problème satisfait aux exigences 1-4.Ψ(C)

  1. Nous devons supposer que est déjà randomisé pour que le SLT satisfasse cette propriété.C

2-3. deviendra généralement plus difficile que et c'est une bonne chose. La difficulté d'un problème de preuve de travail doit être finement ajustable, mais le problème d'origine peut ou peut ne pas avoir un niveau de difficulté finement ajustable (rappelez-vous que la difficulté à extraire Bitcoin est ajustée toutes les deux semaines) . La difficulté du problème est égale à la difficulté de trouver un certain multiplié par . Par conséquent, comme la constante est finement réglable, la difficulté de est également finement réglable.Ψ(C)CCΨ(C)(k,x)D2nCCΨ(C)

Même si le problème est plus difficile que le problème d'origine , presque tout le travail pour résoudre le problème sera consacré à la simple recherche une paire avec plutôt que de calculer des hachages (on ne peut pas calculer si ou pas avant un a calculé et on ne peut pas calculer moins de vérifier que ).Ψ(C)CΨ(C)(k,x)(k,x)DH(k||x||Data(k,x))<CData(k,x)Data(k,x)Data(k,x)D

Bien sûr, le fait que soit plus difficile que présente de nouvelles préoccupations. Pour un problème utile, il est très probable que l'on veuille stocker les paires où dans une base de données. Cependant, pour recevoir la récompense en bloc, le mineur ne doit révéler qu'une paire où et au lieu de toutes les paires indépendamment du fait que ou non. Une solution possible à ce problème est que les mineurs révèlent simplement toutes les paires oùΨ(C)C(k,x)(k,x)D(k,x)(k,x)DH(k||x||Data(k,x))<C(k,x)DH(k||x||Data(k,x))<C(k,x)(k,x)Dpar courtoisie. Les mineurs auront également la possibilité de rejeter les chaînes si les mineurs ont pas posté leur juste part de paires . Peut-être, on devrait compter le nombre de paires pour le calcul de qui a également la chaîne valide la plus longue. Si la plupart des mineurs publient leurs solutions, alors le processus de résolution de produira autant de solutions que le processus de résolution de .(k,x)D(k,x)DΨ(C)C

Dans le scénario où les mineurs affichent toutes les paires , satisferaient l'esprit des conditions 2-3.(k,x)DΨ(C)

  1. Ψ(C) peut ou non satisfaire la condition fonction du problème spécifique.4

Other Advantages of this technique:

Le SLT offre d'autres avantages que les conditions 1 à 4 qui sont souhaitables ou nécessaires pour un problème de preuve de travail.

  1. Améliorer l'équilibre sécurité / efficacité: le SLT aidera dans le cas où peut être trop facile à résoudre ou trop difficile à vérifier. En général, est beaucoup plus difficile à résoudre que , mais est à peu près aussi facile à vérifier que .CΨ(C)CΨ(C)C

  2. Suppression d'un problème cassé / non sécurisé: le SLT pourrait être utilisé pour éliminer par algorithme les mauvais problèmes de POW dans une crypto-monnaie avec un problème de POW de sauvegarde et plusieurs problèmes de POW. Supposons qu'une entité trouve un algorithme très rapide pour résoudre le problème . Ensuite, un tel problème n'est plus un problème de preuve de travail approprié et devrait être supprimé de la crypto-monnaie. La crypto-monnaie doit donc avoir un algorithme qui supprime de la crypto-monnaie chaque fois que quelqu'un a publié un algorithme qui résout le problème trop rapidement mais qui ne supprime jamais le problème sinon. Voici un aperçu d'un tel algorithme de suppression de problème utilisé pour supprimer un problème que nous appellerons ProblèmeCCCCA .

une. Alice paie des frais importants (les frais couvriront les coûts que les mineurs encourent pour vérifier l'algorithme) puis publient l'algorithme que nous appellerons l'algorithme K qui brise le problème dans la blockchain. Si l'algorithme K repose sur une grande quantité de données précalculées , Alice publie la racine Merkle de ce données précalculées .APCPC

b. Des instances aléatoires du problème A sont produites par la Blockchain. Alice publie ensuite les parties des données précalculées qui sont nécessaires pour que l'algorithme K fonctionne correctement avec leur branche Merkle afin de prouver que les données proviennent réellement du . Si l'algorithme d'Alice s'est alimenté rapidement avec le données précalculé , le problème est supprimé et Alice reçoit une récompense pour avoir publié l'algorithme qui supprime le problème de la blockchain.PCPC

Cette procédure de suppression des problèmes coûte cher en calcul aux mineurs et aux valideurs. Cependant, le SLT supprime la plupart des difficultés de calcul de cette technique afin qu'elle puisse être utilisée si nécessaire dans une crypto-monnaie (les instances où cette technique est utilisée seront probablement assez rares).

  1. Les pools miniers sont plus réalisables: dans les crypto-monnaies, il est souvent très difficile de gagner la récompense du bloc. Étant donné que les récompenses en bloc sont très difficiles à gagner, les mineurs exploitent souvent des choses appelées pools de minage dans lesquels les mineurs combinent leurs ressources pour résoudre un problème et dans lesquels ils partagent la récompense en bloc proportionnellement au nombre de «quasi-accidents» qu'ils ont trouvés. . Un problème possible pour est qu'il peut être difficile de produire une notion qualitative de ce qui constitue un «quasi-accident» pour le problème et l'algorithme pour trouver un quasi-accident peut être différent de la algorithme pour résoudre . Étant donné que les mineurs de la piscine rechercheront des quasi-accidents, ils peuvent ne pas être très efficaces pour résoudreCCCC (et donc, peu de personnes rejoindront les pools de minage). Cependant, pour , il existe une notion claire d'un quasi-accident, à savoir, un quasi-accident est une paire où mais où , et l'algorithme de recherche des quasi-accidents pour sera le même que l'algorithme de recherche de solutions à .Ψ(C)(k,x)(k,x)DH(k||x||Data(k,x))CΨ(C)Ψ(C)

  2. Non-progrès: un problème de preuve de travail est dit sans progrès si le temps qu'il faut à une entité ou un groupe d'entités pour trouver le bloc suivant sur la blockchain suit la distribution exponentielle où la constante est directement proportionnelle à la quantité de puissance de calcul que l' entité utilise pour résoudre un problème . L'absence de progrès est nécessaire pour les problèmes d'extraction de crypto-monnaie afin que les mineurs reçoivent une récompense de bloc proportionnelle à leur puissance d'extraction pour réaliser la décentralisation. Le SLT aide certainement les problèmes miniers à atteindre la liberté de progrès.PeλxλP

Joseph Van Nom
la source