Skip to content

Separate types and common information at the IO Pattern level #6

@mmaker

Description

@mmaker

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions