Kann jede rechnerische Herausforderung in einen Arbeitsnachweis umgewandelt werden?


20

Die scheinbare Sinnlosigkeit des Cryptocurrency Mining warf die Frage nach nützlichen Alternativen auf, siehe diese Fragen zu Bitcoin , CST , MO . Ich frage mich, ob es einen Algorithmus gibt, der praktisch jede rechnerische Herausforderung (deren Lösung effizient verifiziert werden kann) in eine andere solche Herausforderung (die zum Nachweis der Arbeit verwendet wird) umwandeln kann, so dass Ψ ( C )CΨ(C)

  1. Die Funktion wird mit einer (öffentlichen) Zufallsfolge randomisiert .rΨr
  2. Lösen ist typischerweise so hart wie die Lösung .CΨ(C)C
  3. Wenn eine Lösung x für Ψ(C) , kann eine Lösung Ψ1(x) für die ursprüngliche Herausforderung effizient berechnet werden C.
  4. Die Kenntnis einer Lösung für C hilft nicht, eine Lösung für Ψ(C) .

4 '(Update). Wie Noah in einem Kommentar hervorhob, sollte die vorherige Bedingung dahingehend verschärft werden, dass die Vorverarbeitung von C auch bei der Lösung von keinen Vorteil bringen sollte Ψ(C).

Diese letzte Bedingung ist erforderlich, damit niemand in eine vorteilhafte Position gebracht werden kann, nur weil er eine Lösung von kennt C. Mit dieser Methode können Benutzer zu lösende Rechenprobleme einreichen, und eine zentrale Behörde kann solche auswählen, die es wert sind, gelöst zu werden (z. B. Ausländer zu finden oder Passwörter zu knacken). Beachten Sie, dass es kein Problem zu sein scheint, wenn das Problem nur eine Woche dauert (ich denke, diese Aliens können sich nicht so gut verstecken;), da dies zu einer höheren Belohnung für eine Lösung führen könnte. Wie auch immer, diese Themen haben nichts mit der Lösung meines theoretischen Problems zu tun, aber ich diskutiere sie natürlich gerne in den Kommentaren / im Forum.

Eine mögliche Lösung wäre der folgende: abbildet C in ( C , H A S H r ) , das, zu lösen , ist C , und eine andere, rechnerisch schwer Herausforderung. Ein Problem dabei ist , dass eine Lösung zu wissen , C macht die Lösung Ψ ( C ) etwas leichter (wie viel einfacher ist abhängig von der Schwierigkeit von H A S H r ). Ein weiteres Problem ist , dass Ψ ( C ) wurde schwieriger als C .ΨC(C,HASHr)CCΨ(C)HASHrΨ(C)C


3
Vielleicht ist dies relevant: eprint.iacr.org/2017/203.pdf
Andreas Björklund

3
Was ist der Unterschied zwischen einer "Computer-Challenge" und einer "Proof-of-Work-Challenge"?
Oder Meir

2
Sicher, aber die Definition von Arbeitsnachweisen erfordert normalerweise die Berücksichtigung mehrerer Herausforderungen, da die Kerneigenschaft, die sie definiert, die Nichtamortisierbarkeit ist. Dies ist der Grund, warum Arbeiten wie eprint.iacr.org/2017/203.pdf durchgeführt wurden - Sie benötigen Garantien für die Nichtamortisierbarkeit für fast alle Anwendungen von PoWs, insbesondere Kryptowährungen. Wie auch immer, suchen Sie eine öffentlich überprüfbare Lösung, oder würde eine privat überprüfbare Lösung ausreichen? Möchten Sie ein praktisch effizientes Schema oder sind Sie mit einer theoretischen Lösung einverstanden?
Geoffroy Couteau

5
@domotorp Warum ist eprint.iacr.org/2017/203.pdf Ihrer Meinung nach für Ihre Frage nicht relevant?
Alon Rosen

5
Obwohl es keine Reduktion von Worst-Case-Problemen in P bietet, liefert das Papier nützliche PoW auf der Grundlage einer breiten Palette von Problemen. Insbesondere jedes auf orthogonale Vektoren (OV) reduzierbare Problem, einschließlich aller Diagrammprobleme, die in der Logik erster Ordnung feststellbar sind. Dies gilt auch für das k-OV-Problem (das voraussichtlich ungefähr n ^ k Zeit benötigt) sowie für andere Probleme aus der feinkörnigen Komplexitätswelt. Obwohl die Ergebnisse vielleicht nicht so allgemein sind, wie Sie es erwarten würden, sind sie dennoch recht allgemein. Und für die oben genannten Probleme sind die Eigenschaften 1 bis 4 in der Tat zufriedenstellend.
Alon Rosen

Antworten:


8

( Anmerkung : Andreas Björklund schlug in den Kommentaren eine Lösung vor, die meines Erachtens besser ist als die unten beschriebene. Siehe http://eprint.iacr.org/2017/203 von Ball, Rosen, Sabin und Vasudevan. Kurz gesagt: sie geben Beweise für Arbeit basiert auf Probleme wie Orthogonal - Vektoren , deren Härte gut verstanden und auf die viele Probleme (zB k-SAT) können relativ effizient reduziert werden. Die PoW Beispiel ist so hart wie ein Worst-case - Orthogonal Vektoren, auch wenn die Eingabeinstanz C einfach ist, so dass sie einen wesentlichen Nachteil der nachfolgend beschriebenen Lösung vermeiden.Ψ(C)C

Die nachfolgend beschriebene Lösung könnte von ihrer Einfachheit profitieren - sie kann einem Nichtfachmann beschrieben werden -, aber theoretisch scheint sie mir viel weniger interessant zu sein.)

Eine Lösung ist möglich, wenn man stark davon ausgeht, dass "der schnellste Algorithmus für grundsätzlich zufällig ist" (und wenn wir eine kryptographische Hash-Funktion als zufälliges Orakel modellieren). Eine Möglichkeit, dies zu formalisieren, besteht darin, dies zu sagenC

  1. (ansonsten denke ich, dass es keine wirklich gültige Herausforderung ist);CTFNPFP
  2. der schnellste randomisierte Algorithmus für läuft in einer typischen Instanz in der erwarteten Zeit T ; undCT
  3. es gibt eine effizient berechenbare Funktion von { 0 , 1 } k bis zur Domäne der Lösungen für C für k log 2 T, so dass es immer ein s {gibtf{0,1}kCklog2T mit f ( s ) einer Lösung für C existiert .s{0,1}kf(s)C

Beachten Sie, dass die Annahme, dass klog2T bedeutet, dass die Brute-Force-Suche von im Wesentlichen der optimale Algorithmus für C ist . Das ist also eine ziemlich starke Annahme. Wenn C diese Eigenschaften jedoch nicht erfüllt, kann ich mir nur schwer vorstellen, beide Bedingungen (2) und (4) zu erfüllen.{0,1}kCC

Dann definieren wir mit einer gegebenen Hash-Funktion , die wir als zufälliges Orakel modellieren, Ψ H ( C ; r ) wie folgt, wobei r { 0 , 1 } l für einig l » kH:{0,1}{0,1}kΨH(C;r)r{0,1}k ist die zufällige Eingabe zu . Das Ziel ist es, x { 0 , 1 } so auszugeben , dassΨHx{0,1} ist eine Lösung für C . Mit anderen Worten, ( r , x ) sollte für den obigen Algorithmus zu "guten Zufallsmünzen" gehasht werden.f(H(r,x))C(r,x)

Lassen Sie uns sehen, dass dies alle Ihre Bedingungen erfüllt.

  1. "Die Funktion Ψ wird mit einer (öffentlichen) Zufallsfolge r randomisiert ." Prüfen!Ψr
  2. "Das Lösen von ist typischerweise so schwer wie das Lösen von C. " Beachten Sie, dass der einfache randomisierte Algorithmus für Ψ H ( C , r ) in der erwarteten Zeit höchstens 2 ausgeführt wirdΨ(C)CΨH(C,r) plus Polynom-Overheadund dass 2 kT im Wesentlichen die Laufzeit des optimalen Algorithmus für C ist .2k2kTC
  3. "Wenn eine Lösung für Ψ ( C ) gefunden wird , kann eine Lösung Ψ - 1 ( x ) effizient für die ursprüngliche Herausforderung C berechnet werden ." Dies kann durch Berechnen erfolgenxΨ(C)Ψ1(x)C , was eine Lösung für C unter Annahme ist.f(H(r,x))C
  4. "Eine Lösung für hilft nicht, eine Lösung für Ψ ( C ) zu finden ." Um Ψ H ( C ; r ) zu lösen , muss x per Definition so gefunden werden, dass f ( H ( r , x ) ) eine Lösung für C ist . Da wir H als zufälliges Orakel modelliert haben , können wir die erwartete Laufzeit jedes Algorithmus, der dieses Problem löst, durch die optimale erwartete Abfragekomplexität des Abfrageproblems senken, in dem H auftrittCΨ(C)ΨH(C;r)xf(H(r,x))CHH mit einem schwarzen Kasten gegeben und wir werden gebeten , eine Lösung für das gleiche Problem zu finden und wieder da. ein zufälliges Orakel ist die erwartete Abfragekomplexität nur die Umkehrung des Bruchteils der Elemente x { 0 , 1 } kHx{0,1}kDas sind Lösungen (bis zu einem konstanten Faktor). Durch die Annahme, erwartet , dass die optimalen Zeitpunkt eines Algorithmus für die Ausführung von ist T 2 k , der , daß diese Fraktion kann nicht viel größer als bedeuten 2 - k } l gleichmäßig zufällig ausgewählt, dies gilt sogar mit Vorverarbeitung , dass erlaubt ist, hängen von H und C abCT2k2k . Da und r { 0 , 1kr{0,1}HC (nicht jedoch von ), und dies gilt insbesondere auch dann, wenn wir im Voraus eine Lösung für C kennen .rC

Dies ist eine sehr schöne Lösung. Der einzige Ort, an dem ich Verbesserungsmöglichkeiten sehe, ist Bedingung (2). Für viele Probleme in gibt es Algorithmen in c n -Zeit für einige c < 2 . Es wäre schön, wenn so etwas erhalten bleiben könnte, aber ich bin mir nicht sicher, ob es möglich ist. Sicherlich ist Ihre Methode bereits den derzeit für Kryptowährungen verwendeten Methoden überlegen! NPcnc<2
Domotorp

Tatsächlich muss vielleicht nicht einmal viel in der Blockchain geändert werden. Nur die Community kann zustimmen, dass zu einem bestimmten Zeitpunkt ein an die Blockchain angehängt werden muss, deren Hash das praktische Problem löst. Vielleicht kann die Standard-Blockchain sogar fortgesetzt werden, und dies könnte nur eine unabhängige Solo-Herausforderung sein. Möglicherweise ist eine solche Solo-Instanz auf dem Markt mehr wert als herkömmliche Münzen, genau wie Rogue One besser ist als sw7 oder sw8. x
Domotorp

Froh, dass Sie es mögen :). Ich möchte nur klarstellen, dass meine Bedingungen für zwar implizieren, dass "eine Brute-Force-Suche über einen bestimmten Suchraum im Wesentlichen optimal ist", aber nicht, dass eine Brute-Force-Suche über den ursprünglichen Suchraum im Wesentlichen optimal ist. Für SAT bedeutet dies beispielsweise nicht, dass der schnellste Algorithmus in 2 n Zeit ausgeführt werden muss. C2n
Noah Stephens-Davidowitz

Im Falle der Zusammensetzung, zum Beispiel, gibt das Rechenproblem eine Problemdefinition an, in der das Rechenproblem aus kleineren Problemen zusammengesetzt werden kann, deren Lösung einfacher ist, und es gibt eine Lösung, die nicht auf der Zusammensetzung basiert, was die Nichtamortisierbarkeit erklären würde ?
user3483902

Ich denke, ein weiteres Problem bei dieser Lösung ist das, worauf Sie in einem Kommentar zu meiner Frage hingewiesen haben, nämlich dass, wenn jemand C vorverarbeiten kannC auf effiziente Weise , kann er einen ernsthaften Vorteil erzielen. Ich halte das für ein heikles Thema. Stellen Sie sich vor, ich reiche ein Problem ein, dessen Lösung (in einem Standardformat) in Zeit überprüft werden kann , aber ich habe eine geheime Methode, um es in einzucheckenn zeit. Dies gibt mir einen ziemlichen Vorteil beim Lösen vonΨ(C). nΨ(C)
Domotorp

1

Die folgende einfache Technik, die ich als Lösungslotterietechnik (SLT) bezeichne, kann in Verbindung mit anderen Techniken (z. B. mit mehreren POW-Problemen, der in der Antwort von Noah Stephens-Davidowitz genannten Technik usw.) verwendet werden, um die Umwandlung von rechnerischen Herausforderungen in brauchbare Beweise zu unterstützen von Arbeitsproblemen. Mit dem SLT können Probleme mit dem Cryptocurrency-Mining behoben werden, die nicht die Bedingungen 1 bis 4 betreffen.

Angenommen, ist eine Rechenaufgabe der Form „finde einen geeigneten Hash k zusammen mit einer Zeichenkette x, so dass ( kCkx ."(k,x)D

Problem Setup: Angenommen, D ist eine Menge, H ist eine kryptografische Hash-Funktion und C ist eine Konstante. Nehmen wir weiterhin an, dass Daten ( k , x ) eine Information sind, die leicht zu erhalten ist, nachdem man bestimmt hat, dass ( k , x ) D ist , die aber auf andere Weise nicht erhalten werden kann.Ψ(C)DHCData(k,x)(k,x)D

Aufgabe Ziel: Finde ein Paar ( k , x ), so dass k ein geeigneter Hash ist und wo ( k , x ) D und wo H ( k | | x | | Daten ( k , x) istΨ(C)(k,x)k(k,x)D .H(k||x||Data(k,x))<C

Lassen Sie uns nun untersuchen, wie das Problem die Anforderungen 1-4 erfüllt.Ψ(C)

  1. Wir müssen davon ausgehen, dass für die SLT bereits randomisiert ist, um diese Eigenschaft zu erfüllen.C

2-3. wird normalerweise schwieriger als C und das ist eine gute Sache. Die Schwierigkeit eines Proof-of-Work-Problems muss genau einstellbar sein, aber das ursprüngliche Problem C kann einen genau einstellbaren Schwierigkeitsgrad haben oder auch nicht (denken Sie daran, dass die Schwierigkeit beim Mining von Bitcoin alle zwei Wochen angepasst wird). Die Schwierigkeit des Problems Ψ ( C ) ist gleich der Schwierigkeit, ein geeignetes ( k , x ) D multipliziert mit 2 n zu findenΨ(C)CCΨ(C)(k,x)D . Da die KonstanteCfein einstellbar ist, ist daher auch die Schwierigkeit vonΨ(C)fein einstellbar.2nCCΨ(C)

Auch wenn das Problem schwieriger ist als das ursprüngliche Problem C , wird fast die gesamte Arbeit zur Lösung des Problems Ψ ( C ) darauf verwendet, einfach ein Paar ( k , x ) mit ( k , x ) ∈ zu finden D anstatt Hashes zu berechnen (man kann nicht berechnen, ob H ( k | | x | | Daten ( k , x ) ) < C ist)Ψ(C)CΨ(C)(k,x)(k,x)DH(k||x||Data(k,x))<C oder nicht), bis man Daten berechnet hat ( , und man kann nicht berechnen Daten ( k , x ) , es sei dennman überprüftdass Daten ( k , x ) D ).Data(k,x)Data(k,x)Data(k,x)D

Die Tatsache, dass schwieriger ist als C, wirft natürlich einige neue Bedenken auf. Für ein nützliches Problem ist es sehr wahrscheinlich, dass man die Paare ( k , x ), bei denen ( k , x ) D ist, in einer Datenbank speichern möchte . Um die Blockbelohnung zu erhalten, muss der Bergmann jedoch nur ein Paar ( k , x ) aufdecken , bei dem ( k , x ) D und H ( k | |Ψ(C)C(k,x)(k,x)D(k,x)(k,x)DH(k||x||Data(k,x))<C instead of all the pairs (k,x)D regardless of whether H(k||x||Data(k,x))<C or not. One possible solution to this problem is for the miners to simply reveal all pairs (k,x) where (k,x)D out of courtesy. Miners will also have the ability to reject chains if the miners have not posted their fair share of pairs (k,x)D. Perhaps, one should count the number of pairs (k,x)D for the calculation as to who has the longest valid chain as well. If most of the miners post their solutions, then the process of solving Ψ(C) will produce just as many solutions as the process of solving C.

In the scenario where the miners post all of the pairs (k,x)D, Ψ(C) would satisfy the spirit of conditions 2-3.

  1. kann die Bedingung 4 erfüllen oder nichtΨ(C)4 depending on the specific problem.

Other Advantages of this technique:

The SLT offers other advantages than conditions 1-4 which are desirable or necessary for a proof-of-work problem.

  1. Verbesserung des Gleichgewichts zwischen Sicherheit und Effizienz: Das SLT hilft in dem Fall, dass möglicherweise zu leicht zu lösen oder zu schwer zu überprüfen ist. Im Allgemeinen ist Ψ ( C ) viel schwieriger zu lösen als C , aber Ψ ( C ) ist ungefähr so ​​einfach zu verifizieren wie CCΨ(C)CΨ(C)C .

  2. Removal of a broken/insecure problem: The SLT could be used to algorithmically remove bad POW problems in a cryptocurrency with a backup POW-problem and multiple POW problems. Suppose that an entity finds a very quick algorithm for solving problem C. Then such a problem is no longer a suitable proof-of-work problem and it should be removed from the cryptocurrency. The cryptocurrency must therefore have an algorithm that removes C from the cryptocurrency whenever someone has posted an algorithm that solves problem C too quickly but which never removes problem C otherwise. Here is an outline of such a problem removal algorithm being used to remove a problem which we shall call Problem A.

a. Alice pays a large fee (the fee will cover the costs that the miners incur for verifying the algorithm) and then posts the algorithm which we shall call Algorithm K that breaks Problem A to the blockchain. If Algorithm K relies upon a large quantity of pre-computed data PC, then Alice posts the Merkle root of this pre-computed data PC.

PCPC

Dieses Verfahren zum Entfernen von Problemen ist für die Bergleute und Prüfer rechenintensiv. Das SLT beseitigt jedoch den größten Teil der Rechenschwierigkeiten dieser Technik, sodass es bei Bedarf in einer Kryptowährung verwendet werden kann (Fälle, in denen diese Technik verwendet wird, sind wahrscheinlich recht selten).

  1. Mining pools are more feasible: In cryptocurrencies, it is often very difficult to win the block reward. Since the block rewards are very difficult to win, miners often mine in things called mining pools in which the miners combine their resources in solving a problem and in which they share the block reward in proportion to the amount of “near misses” they have found. A possible issue for C is that it may be difficult to produce a qualitative notion of what constitutes as a “near miss” for the problem C and the algorithm for finding a near miss may be different from the algorithm for solving C. Since the pool miners will be looking for near misses, they may not be very efficient at solving C (and hence, few people will join mining pools). However, for Ψ(C), there is a clear cut notion of a near miss, namely, a near miss is a pair (k,x) where (k,x)D but where H(k||x||Data(k,x))C, and the algorithm for finding near misses for Ψ(C) will be the same as the algorithm for finding solutions to Ψ(C).

  2. Progress freeness: A proof-of-work problem P is said to be progress free if the amount of time it takes for an entity or group of entities to find next block on the blockchain follows the exponential distribution eλx where the constant λ is directly proportional to the amount of computational power that entity is using to solve Problem P. Progress freeness is required for cryptocurrency mining problems in order for the miners to receive a block reward in proportion to their mining power to achieve decentralization. The SLT certainly helps mining problems achieve progress freeness.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.