Riconoscimento del nodo come prova del lavoro


23

Attualmente bitcoin ha un sistema di prova di lavoro (PoW) che utilizza SHA256. Altre funzioni hash utilizzano grafici di prova del sistema di lavoro, inversione parziale della funzione hash.

È possibile utilizzare un problema decisionale nella teoria dei nodi come il riconoscimento dei nodi e trasformarlo in una funzione di prova del lavoro? Qualcuno l'ha già fatto prima? Inoltre, quando avremo questa funzione Proof of Work sarà più utile di ciò che viene attualmente calcolato?


8
Potresti essere interessato a questa domanda correlata sul bitcoin SE: c'è un modo per impostare sistemi di prova di lavoro senza fare un lavoro inutile?
Artem Kaznatcheev

@ArtemKaznatcheev Grazie mal guardato in quello.
Joshua Herman,

Risposte:


7

Se esiste un protocollo Arthur-Merlin per annodare simile ai protocolli Arthur-Merlin [GMW85] e [GS86] per Graph Non Isomorphism, allora credo che potrebbe essere progettata una prova del lavoro di criptovaluta, in cui ogni prova di- il lavoro mostra che è improbabile che due nodi siano equivalenti / isotopici.

Più in dettaglio, come è ben noto nel protocollo Graph Non Isomorphism di [GMW85], Peggy il prover desidera dimostrare a Vicky il verificatore che due grafici (rigidi) e G 1 sui vertici V non sono isomorfi. Vicky può lanciare segretamente una moneta casuale i { 0 , 1 } , insieme ad altre monete per generare una permutazione π S V , e può presentare a Peggy un nuovo grafico π ( G i ) . Peggy deve dedurre i . Chiaramente Peggy è in grado di farlo solo se i due grafici non sono isomorfi.G0G1Vi{0,1}π SVπ(Gi)i

Allo stesso modo, e più rilevante ai fini di una prova di lavoro , come insegnato da [GS86] una versione di Arthur-Merlin dello stesso protocollo include Arthur che concorda con Merlin su , G 1 , come ad esempio le matrici di adiacenza. Arthur sceglie casualmente una funzione hash H : { 0 , 1 } { 0 , 1 } k , insieme a un'immagine y . Arthur fornisce H e Y a Merlin. Merlino deve trovare un ( i , π )G0G1H:{0,1}{0,1}kyHy(i,π)tale che .H(π(Gi))=y

Cioè, Merlino cerca un preimage dell'hash , il preimage è una permutazione di una delle due matrici di adiacenza date. Fintanto che k viene scelto correttamente, se i due grafici G 0 e G 1 non sono isomorfi, ci sarà una maggiore probabilità che venga trovata una pre-immagine, poiché il numero di matrici di adiacenza in G 0G 1 può essere doppio rispetto a grande che se G 0G 1 .HkG0G1G0G1G0G1

Per convertire il protocollo sopra [GS86] in una prova di lavoro, identificare i minatori come Merlin e identificare altri nodi come Arthur. Concordare un hash , che, a tutti gli effetti, può essere l' hash S H A 256 utilizzato in Bitcoin. Allo stesso modo, accetta che y sarà sempre 0 , simile al requisito Bitcoin che l'hash inizia con un certo numero di 0 iniziali.HSHA256y00

  • La rete si impegna a dimostrare che due grafici rigidi e G 1 non sono isomorfi. I grafici possono essere dati dalle loro matrici di adiacenzaG0G1

  • Un minatore utilizza il collegamento al blocco precedente, insieme alla propria radice Merkle di transazioni finanziarie, lo chiama , insieme al proprio nonce c , per generare un numero casuale Z = H ( c B )BcZ=H(cB)

  • Il minatore calcola scegliere ( i , π )W=Zmod2V!(i,π)

  • Il minatore conferma che - cioè per confermare che il π scelto casualmente non è una prova che i grafici sono isomorfiπ(Gi)G1iπ

  • In caso contrario, il minatore calcola un hash W=H(π(Gi))

  • Se inizia con il numero appropriato di 0 "s, allora il minatore" vince "pubblicando ( c , B )W0(c,B)

  • Altri nodi possono verificare che per dedurre ( i , π ) e verificare che W = H ( π ( G i ) ) inizi con la difficoltà appropriata di 0 'sZ=H(cB)(i,π)W=H(π(Gi))0

Il protocollo di cui sopra non è perfetto, penso che alcuni nodi dovrebbero essere elaborati. Ad esempio, non è chiaro come generare due grafici casuali e G 1 che soddisfino buone proprietà di rigidità, ad esempio, né è chiaro come regolare la difficoltà se non testando grafici con più o meno vertici. Tuttavia, penso che questi siano probabilmente superabili.G0G1

Ma per un protocollo simile sull'innesto , sostituire le permutazioni casuali sulla matrice di adiacenza di uno dei due grafici e G 2 con alcune altre operazioni casuali su diagrammi a nodo o diagrammi a griglia ... o qualcosa del genere. Non penso che Reidemeister muova in modo casuale, perché lo spazio diventa troppo ingombrante troppo rapidamente.G1G2

[HTY05] ha proposto un protocollo Arthur-Merlin per annodamento, ma sfortunatamente c'è stato un errore e hanno ritirato la loro richiesta.

[Kup11] ha mostrato che, ipotizzando l'ipotesi di Riemann generalizzata, la nodalità è in , e menziona che ciò mette anche la nodalità in A M , ma sarò onesto non so come tradurlo nel suddetto framework; l' A M protocollo di [Kup11] Penso che consiste nel trovare una rara primo p modulo che un sistema di equazioni polinomiali è 0 . Il primo p è raro in quanto H ( p ) = 0 , e il sistema di equazioni polinomiali corrisponde a una rappresentazione del gruppo del complemento di nodo.NPAMAMp0pH(p)=0

Da notare, vedi questa risposta a una domanda simile su un sito affiliato, che affronta anche l'utilità di prove di lavoro "utili".


Riferimenti:

[GMW85] Oded Goldreich, Silvio Micali e Avi Wigderson. Prove che non producono altro che la loro validità, 1985.

[GS86] Shafi Goldwasser, Michael Sipser. Monete private contro monete pubbliche in Interactive Proof Systems, 1986.

[HTY05] Masao Hara, Seiichi Tani e Makoto Yamamoto. UNKNOTTING è in , 2005.AMcoAM

[Kup11] Greg Kuperberg. Annodato è in , modulo GRH, 2011.NP


1
Che dire delle mosse casuali di Markov? mathworld.wolfram.com/MarkovMoves.html
Joshua Herman

Inoltre puoi considerare i nodi come grafici che sono segni firmati che sono quattro valenza. Quindi devi solo applicare questa limitazione su G1 e G2
Joshua Herman,

Ecco una riduzione di una colorazione di dilemma a un'istanza SAT. arxiv.org/pdf/1505.06595.pdf
Joshua Herman,

Sì, determina se si ha un attraversamento sopra o sotto. Vedi en.wikipedia.org/wiki/Medial_graph
Joshua Herman,

Questo sarebbe d'aiuto per testare la ridigità? Sembra che devi solo costruire un grafico laman che è facile in 2D (e i nodi sono grafici planari). www3.cs.stonybrook.edu/~jgao/CSE590-fall05/notes/lecture3.pdf
Joshua Herman

1

Penso che il modo per farlo sia quello di creare una tabella di nodi a mosaico con una serie di restrizioni per impedire le scorciatoie. Quindi una tabella dei nodi è un insieme di nodi che hanno una determinata proprietà. La proprietà di seguito è un nodo principale.

Rolfsen Knot table

Ora vediamo una tabella di nodi composta da nodi di mosaico: un mosaico di nodi è un tipo di rappresentazione di nodi che usano tessere invece di essere stringhe in uno spazio tridimensionale. Knot Mosaic Table

Ora definiamo formalmente cos'è un mosaico di nodi:

Mosaic Tiles

Da https://arxiv.org/pdf/1602.03733.pdf Un mosaico di nodi è la rappresentazione di un nodo su una griglia n × n composta da 11 tessere, eccole qui sotto.

Questo è il mio punto di partenza nel chiederti un tavolo a nodo di mosaico con una serie di restrizioni. Quello che voglio chiederti è di darmi una tabella con le seguenti proprietà

  1. C
  2. N by M
  3. It must be ambient isotopic to the knot K that we send
  4. It must have a set of operations O of cardinality On that show that it is ambient isotopic to the knot K
  5. All operations must be unique
  6. You must give me the coordinates CR of the operation on the knot itself.
  7. It must be encoded as a knot mosaic.

So lets encode the trefoil in a machine readable format. We take each tile and assign them a number (01-11). Using the programming language racket it will look like this

(define trefoil (array #[#[00 02 01 00]
                         #[02 10 09 01]
                         #[03 09 04 06]
                         #[00 03 05 04]] : Integer))

Which corresponds to 31 in the above table by Rolfesen. Now, lets see a trivial task. Once again using racket

(struct braidcoin ([source_knot : (Matrix Integer)]
                   [target_knot : (Matrix Integer)]
                   [crossing_number : (Refine [n : Integer] (> n 0))]
                   [dimention : (Refine [n : Integer] (> n 0))]
                   [timestamp : date])

Questo ci darebbe il compito banale che sarebbe il tavolo banale avrebbe solo il nodo principale 31. I nodi di origine e di destinazione nella struttura sopra sarebbero gli stessi. Il numero di attraversamento sarebbe tre. La dimensione sarebbe quattro per quattro.

Quindi, ora che abbiamo stabilito quale dovrebbe essere l'output. Ora come affrontiamo la generazione del problema?

Quindi sappiamo che sotto l'isotopia ambientale puoi arrivare a un altro diagramma dei nodi dato un altro diagramma dei nodi in una serie finita di mosse reidmeister. Quindi, consente di generare due collegamenti casuali. All'attività che definiamo vengono dati due collegamenti casuali, voglio che tu mostri che sono equivalenti enumerando ogni possibile nodo che può essere espresso o che mostrano che non sono equivalenti dandomi un insieme di stati o percorsi per un nodo noto in un tavolo.

A way where we can improve the speed of knowing that a knot is in the table or not is by constructing a hash table with indices as the Alexander polynominal. Each instance would have the Alexander Polynominal computed for it and if they share the same Alexander polynominal it would be appended as an element to that table .

I have part of a working program at the following gist: https://gist.github.com/zitterbewegung/4152b322eef5ecccdcf3502e8220844b


3
Given two large, random links, they are unlikely to be equivalent. And they probably won't have the same Alexander polynomial, which will let you prove that they are not equivalent in polynomial time. So the task is easy most of the time. I suspect it's extremely unlikely that you'll generate a genuinely hard example by taking random links.
Peter Shor

@PeterShor yes I recognize that. I don’t think I articulated this well but I am also making an arbitrary amount of these tasks when I am generating it to increase the hardness. Even with that occurring would that not make it harder ?
Joshua Herman

@PeterShor Also the certificate is not just that both knots are not equivalent but I want a set of knot moves to the unknot or to a knot that you could compute that it isn't ambient isotopic (such as the trefoil).
Joshua Herman

1
For "a known knot in a table," do you plan on having an exponential-sized table? Because there are exponentially many knots of a given size.
Peter Shor

Yes and no. The size of each instance of using knothash is bound by the cardinality of the Operation number and also a valid instance of a knot or link encoded as a knot mosaic. I plan on using these parameters to limit the amount of valid solutions so that the hardness of the problem is also a parameter.
Joshua Herman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.