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)
- 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.
- 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.
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 .
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).
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).
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.