Verificare privată a unei soluții Sudoku, discuție Bowe-Maxwell și tranzacție bitcoin la atelierul Financial Crypto 2016.
Problema rezolvată cu verificarea a fost:
- cumpărătorul este reticent să-și trimită prima monedă, riscând să primească biți aleatori;
- vânzătorul este reticent să-și trimită mai întâi soluția la puzzle, riscând să nu primească nicio recompensă.
A fost introdusă și implementată o dovadă non-interactivă pentru a verifica că:
- textul simplu este o soluție validă de Sudoku pentru puzzle-ul la îndemână;
- textul cifrat a fost produs cu o cheie;
- cheia este o pre-imagine la valoarea hash, care a fost trimisă cumpărătorului cu textul cifrat.
Acest hash ar putea fi folosit pentru a crea tranzacții HTLC, astfel încât vânzătorul să-și revendice monedele doar publicând cheia pe blockchain.
Ei bine, de fapt a fost folosit un script, dar să rămânem la HTLC ca o simplificare.
Răspunsul practic scurt este: s-ar verifica o preimagine hash cu o dovadă zkSNARK.
Un alt răspuns (general) este că există un sistem de dovezi interactiv pentru orice limbaj NP.
Un anunț nerușinat: a fost proiectat un circuit alternativ de verificare a soluției Sudoku, pornind de la reprezentarea seturilor polinomiale și soluția „cărți de joc” a lui Naor, prezentată la IEEE ATIT 2019.
https://github.com/vadym-f/Sudoku_solvability_proof/tree/master/IEEE_ATIT_2019