This issue tracks all development of the commitment scheme API.
A commitment scheme for a given oracle function oracle : Data → Query → Response consists of a randomized commitment function commit: Data → Randomness → OracleComp oSpec Commitment, plus an opening phase which is an interactive proof for the relation ((cm, x, y), (m, r)) => commit(m; r) = cm ∧ oracle m x = y.
Examples of commitment schemes we plan to formalize include Merkle trees, Ligero, FRI, Brakedown, STIR, WHIR, etc.
The BCS transform (or its generalization thereof) takes in an interactive oracle reduction, and commitment schemes for the oracles present in the reduction, and outputs an interactive (non-oracle) reduction where all oracles are replaced by commitments, and there is an opening phase attached at the end.
Currently, this is not yet a priority, as we are still trying to figure out how to compose IORs with themselves. Nevertheless, here are some immediate tasks that can be worked on:
This issue tracks all development of the commitment scheme API.
A commitment scheme for a given oracle function
oracle : Data → Query → Responseconsists of a randomized commitment functioncommit: Data → Randomness → OracleComp oSpec Commitment, plus an opening phase which is an interactive proof for the relation((cm, x, y), (m, r)) => commit(m; r) = cm ∧ oracle m x = y.Examples of commitment schemes we plan to formalize include Merkle trees, Ligero, FRI, Brakedown, STIR, WHIR, etc.
The BCS transform (or its generalization thereof) takes in an interactive oracle reduction, and commitment schemes for the oracles present in the reduction, and outputs an interactive (non-oracle) reduction where all oracles are replaced by commitments, and there is an opening phase attached at the end.
Currently, this is not yet a priority, as we are still trying to figure out how to compose IORs with themselves. Nevertheless, here are some immediate tasks that can be worked on: