zero-knowledge iterative proof