Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Zcash make a significant contro to ZKPs though, what would be the state without their tec?

    Did their advancements have any other implications besides cryptocurrency?

  • Consider also the utility of a weaker technology: Succinct Non-interactive Arguments of Knowledge. Theses can be ZK, but even if not they can take an expensive verification, like a hundreds-wide multisignature, and make it cheap.
  • I don't think ZKPs / programmable cryptography are useless like some of the other commenters. But I do remember being surprised, based on the way that people talk about building on top of it, to learn that the performance is so bad (except on dedicated servers) that it's basically a theoretical technology until that's fixed. Has this changed recently? Not a rhetorical question.
  • Nice article, and I'd like to mention an additional topic that would give the readers some impression:

    Fiat-Shamir transformation. The interactive process between the prover and verifier can be transformed into a non-interactive one with a hash function(modeled as a random oracle). This improves the "user experience" as the entire proving process can be done in a single turn. The idea is to feed the problem itself into the hash function and let it generate randomness that was originally given by the verifier.

  • Amazing article. Will save to explain ZKP to others.

    One tiny correction

    random.randrange(100) gives 300 possible commitments(3 colors for hundred nonces) After seeing a couple of revealed edges, the verifier can figure out the palette and brute-force all 300 combinations, effectively opening every commitment.

    It can be mitigated if we use 128 bits of randomness, e.g. secrets.token_bytes(16).

    Also I would use sha256 instead of hash. Python hash is not considered secure as it does not have proper collision resistance.

Explore Birbla archives