suppose we have the 3-col example we saw in class, if we wont do the permutation on the graph before sending it to the verifier, we actually gave the verifier the coloring and it is clearly not ZK any more.

what would happen if we activated the simulator constructed for malicious verifier on this non-ZK protocol ?

malicious verifier would try to pick different edge in each iteration, while we pick random edge, and if the edges are different we rewind.

In the non-ZK example we would probebly do alot of rewinds (because the verifier asks for specific edge while we pick random) but the communication still be indistinguishable from communication with real prover, because the rewinds are unnoticed, and eventually we will randomly pick a edge that equal to the verifiers request edge.

This way we prooved that something that is clearly not a ZK is ZK.

I would like to know what went wrong in the proof, thank you !