Aș dori să știu ce primitive criptografice ar putea fi folosite pentru ca Alice să-i demonstreze lui Bob că a executat de fapt un program. Scopul este de a realiza o lucrare de dovezi utile, în care Alice demonstrează că a verificat o tranzacție, dar în care această dovadă este legată de cheia publică a lui Alice. Crearea dovezii trebuie să fie posibilă numai prin executarea programului. Verificarea dovezii ar trebui să fie mult mai rapidă folosind cheia publică a lui Alice.
Intrare (cunoscută de toată lumea):
- Identitatea lui Alice (inclusiv cheia publică și alte materiale necesare)
- Intrarea programului
- Programul în sine
- Ieșirea programului
Ieșire (creată de Alice):
Verificare (realizată de Bob):
- Luați toate datele introduse plus dovada execuției și verificați că este corectă
Restrictii:
- Chiar dacă Eve știe toate intrările și ieșirile, nu ar trebui să-i ofere un avantaj în a-și crea propria dovadă de execuție
- Verificarea ar trebui să fie mult mai rapidă decât recrearea dovezii
În prezent, mă uit la funcțiile de întârziere verificabile și la funcția aleatorie verificabilă, dar acest lucru nu pare să atingă ținta. Poate că ar putea fi folosit un fel de ZKP, dar pentru a dovedi o execuție generică a unui program pare foarte greu.