La seguente semplice tecnica che chiamo la soluzione lotteria tecnica (SLT) può essere utilizzata insieme ad altre tecniche (come avere più problemi di prigionieri di guerra, la tecnica menzionata nella risposta di Noah Stephens-Davidowitz, ecc.) Per aiutare a trasformare le sfide computazionali in prove praticabili di problemi di lavoro. SLT aiuta a migliorare i problemi con i problemi di mining di criptovaluta diversi dalle condizioni 1-4.
Supponiamo che sia una sfida computazionale del modulo "trova un hash adatto insieme a una stringa tale che ".Cx ( k , x ) ∈ Dkx(k,x)∈D
Problema impostazione: Supponiamo che sia un set, sia una funzione di hash crittografica e sia una costante. Supponiamo inoltre che sia un'informazione che è facile da ottenere dopo che si determina che ma che non può essere ottenuto diversamente.D H C Dati (Ψ(C)DHC( k , x ) ∈ DData(k,x)(k,x)∈D
Problema obiettivo: trovare una coppia tale che sia un hash adatto e dove e dove .( k , x ) k ( k , x ) ∈ D H ( k | |Ψ(C)(k,x)k(k,x)∈DH(k||x||Data(k,x))<C
Analizziamo ora in che modo il problema soddisfa i requisiti 1-4.Ψ(C)
- Dobbiamo supporre che sia già randomizzato affinché SLT soddisfi questa proprietà.C
2-3. in genere diventerà più difficile di e questa è una buona cosa. La difficoltà di un problema di prova di lavoro deve essere finemente sintonizzabile, ma il problema originale può o meno avere un livello di difficoltà finemente sintonizzabile (ricorda che la difficoltà nel mining di Bitcoin viene modificata ogni due settimane) . La difficoltà del problema è uguale alla difficoltà di trovare qualche adatto moltiplicato per . Pertanto, poiché la costante è finemente sintonizzabile, anche la difficoltà di è finemente sintonizzabile.C C Ψ ( C ) (Ψ(C)CCΨ(C)2 n(k,x)∈D2nCΨ ( C )CΨ(C)
Anche se il problema è più difficile del problema originale , quasi tutto il lavoro per risolvere il problema sarà speso semplicemente per trovare una coppia con anziché calcolare gli hash (non è possibile calcolare se oppure no fino a quando uno ha calcolato e non è possibile calcolare se non si verifica che ).C Ψ ( C ) ( k , x ) ( k , x ) ∈ D H ( k | | x | | Dati ( k , x ) ) < Dati C ( k , x ) Dati ( k , xΨ(C)CΨ(C)(k,x)(k,x)∈DH(k||x||Data(k,x))<CData(k,x)Dati ( k , x ) ∈ DData(k,x)Data(k,x)∈D
Naturalmente, il fatto che sia più difficile di presenta alcune nuove preoccupazioni. Per un problema utile, è molto probabile che si desideri memorizzare le coppie dove in alcuni database. Tuttavia, per ricevere la ricompensa in blocchi, il minatore deve rivelare solo una coppia dove e invece di tutte le coppie indipendentemente dal fatto che oppure no. Una possibile soluzione a questo problema è che i minatori rivelino semplicemente tutte le coppie doveC ( k , x ) ( k , x ) ∈ D ( k , x ) ( k , x ) ∈ D H ( k | | x | | Dati ( k , x ) ) < C ( k , x ) ∈ D H ( k | | x | |Ψ(C)C(k,x)(k,x)∈D(k,x)(k,x)∈DH(k||x||Data(k,x))<C(k,x)∈D( D Ψ ( C ) CH(k||x||Data(k,x))<C( k , x ) ∈ D ( k , x ) ∈ D ( k , x ) ∈(k,x)(k,x)∈Dper cortesia. I minatori avranno anche la possibilità di respingere le catene se i minatori non hanno inviato la loro giusta quota di coppie . Forse, si dovrebbe contare il numero di coppie per il calcolo su chi ha anche la catena valida più lunga. Se la maggior parte dei minatori pubblica le proprie soluzioni, il processo di risoluzione di produrrà altrettante soluzioni quanto il processo di risoluzione di .(k,x)∈D(k,x)∈DΨ(C)C
Nello scenario in cui i minatori pubblicano tutte le coppie , soddisferebbero lo spirito delle condizioni 2-3.Ψ ( C )(k,x)∈DΨ(C)
- 4Ψ(C) può o meno soddisfare la condizione seconda del problema specifico.4
Other Advantages of this technique:
La SLT offre altri vantaggi rispetto alle condizioni 1-4 che sono desiderabili o necessarie per un problema di prova del lavoro.
Miglioramento del bilancio sicurezza / efficienza: SLT aiuterà nel caso in cui potrebbe essere troppo facile da risolvere o troppo difficile da verificare. In generale, è molto più difficile da risolvere rispetto a , ma è facile da verificare quanto . Ψ ( C ) CCΨ(C)CΨ(C)C
Rimozione di un problema rotto / insicuro: SLT potrebbe essere usato per rimuovere algoritmicamente problemi POW difettosi in una criptovaluta con un problema POW di backup e più problemi POW. Supponiamo che un'entità trovi un algoritmo molto veloce per risolvere il problema . Quindi un tale problema non è più un problema di prova di lavoro adatto e dovrebbe essere rimosso dalla criptovaluta. La criptovaluta deve quindi avere un algoritmo che rimuove dalla criptovaluta ogni volta che qualcuno ha pubblicato un algoritmo che risolve il problema troppo rapidamente ma che non rimuove mai il problema altrimenti. Ecco uno schema di tale algoritmo di rimozione dei problemi utilizzato per rimuovere un problema che chiameremo ProblemaCCCCCA .
un. Alice paga una grossa commissione (la commissione coprirà i costi sostenuti dai minatori per la verifica dell'algoritmo) e quindi pubblica l'algoritmo che chiameremo Algorithm K che rompe il Problema nella blockchain. Se l'algoritmo K si basa su una grande quantità di dati pre-calcolati , Alice pubblica la radice Merkle di questo dati pre-calcolato .APCPC
b. Le istanze casuali del Problema A sono prodotte dalla Blockchain. Alice quindi pubblica le parti dei dati pre-calcolati che sono necessari affinché l'algoritmo K funzioni correttamente insieme al loro ramo Merkle per dimostrare che i dati provengono effettivamente dal . Se l'algoritmo di Alice si è alimentato rapidamente con il dati pre-calcolato , il problema viene rimosso e Alice riceve una ricompensa per la pubblicazione dell'algoritmo che rimuove il problema dalla blockchain.PCPC
Questa procedura di rimozione dei problemi è computazionalmente costosa per i minatori e i validatori. Tuttavia, SLT rimuove la maggior parte delle difficoltà computazionali di questa tecnica in modo che possa essere utilizzata, se necessario, in una criptovaluta (i casi in cui questa tecnica viene utilizzata saranno probabilmente piuttosto rari).
I pool di data mining sono più fattibili: nelle criptovalute, spesso è molto difficile vincere la ricompensa del blocco. Poiché i premi del blocco sono molto difficili da vincere, i minatori spesso estraggono miniere in cose chiamate pool di miniere in cui i minatori uniscono le loro risorse per risolvere un problema e in cui condividono la ricompensa del blocco in proporzione alla quantità di "near miss" che hanno trovato . Un possibile problema per è che potrebbe essere difficile produrre una nozione qualitativa di ciò che costituisce un "near miss" per il problema e che l'algoritmo per trovare un near miss potrebbe essere diverso dal algoritmo per risolvere . Dal momento che i minatori della piscina cercheranno quasi mancati incidenti, potrebbero non essere molto efficienti nel risolvereC C C Ψ ( C ) ( k , x ) ( k , x ) ∈ D H ( k | | x | | Dati ( k , x ) ) ≥ C Ψ (CCCC (e quindi poche persone si uniranno ai pool di mining). Tuttavia, per , esiste una chiara nozione di near miss, vale a dire, un near miss è una coppia dove ma dove e l'algoritmo per la ricerca dei quasi incidenti per sarà lo stesso dell'algoritmo per la ricerca di soluzioni per .Ψ(C)(k,x)(k,x)∈DH(k||x||Data(k,x))≥CΨ ( C )Ψ(C)Ψ(C)
Freeness di avanzamento: si dice che un problema di prova di lavoro è libero da progressi se il tempo impiegato da un'entità o un gruppo di entità per trovare il blocco successivo sulla blockchain segue la distribuzione esponenziale dove la costante è direttamente proporzionale alla quantità di potenza di calcolo tale entità utilizza per risolvere il problema . Per i problemi di mining di criptovaluta è necessaria la libertà di progresso affinché i minatori possano ricevere una ricompensa in blocco in proporzione alla loro potenza di mining per ottenere il decentramento. La SLT aiuta sicuramente i problemi di mining a realizzare progressi senza sosta.e - λ x λ PPe−λxλP