nimue icon indicating copy to clipboard operation
nimue copied to clipboard

Separate types and common information at the IO Pattern level

Open mmaker opened this issue 1 year ago • 0 comments

Currently nimue won't fail if the IO Pattern declares absorbing an EC point, and later a scalar is absorbed (if they have the same size). This is for instance the case in curve25519, where both are of 32 bytes. It'd be nice to have the Rust compiler could recognize this at compile time without making the building time explode.

Looking at how other libraries were going about this problem, it seems that:

  • halo2_proofs is using two different domain separators for points and scalars. Yet, it doesn't distinguish between public and private information.
  • hyperplonk is YOLO'ing it by serializing to bytes

mmaker avatar Feb 02 '24 14:02 mmaker