elibensasson / libSTARK

A library for zero knowledge (ZK) scalable transparent argument of knowledge (STARK)
Other
507 stars 90 forks source link

Make it non-interactive #6

Open ariary opened 6 years ago

ariary commented 6 years ago

Hi! Nice work and concept. However, as all interactive protocol could be transformed in a non-interactive one (using Fiat-Shamir), and as it is mentionned in the whitepaper that it is possible, I want to know: What are the modifications we have to do on the current implementation to make it non-interactive? Or Will there be a future release implementing a non-interactive version?

Thank's in advance

MichaelRiabzev commented 6 years ago

This version is not very far from a full noninteractive version. To change it to be noninteractive one should change the query generation algorithm in the verifier, where queries are currently generated prior to any interaction, and in particular independent of the commitments sent by the prover. Changing those to use a PRG seeded by prover's commitments, should basically do the trick. (In addition to separation of prover and verifier to different executables, writing all communication from prover to verifier into a file, and simulating communication on both sides for proof generation and verification).