Description
Describe what you want implemented
Constraint are builder structures that will allow the user to specify the circuits without using complicated method arguments where the order of the selectors isn't concise or uniform.
Describe "Why" this is needed
Currently the API is over-complicated and misleading because many gates have different implementations that are not always documented correctly or even implemented securely.
Centralizing the circuit description is a major improvement in terms of usability and security since a single implementation of the selectors will either always be correct or always be wrong, not depending on methods provided by the composer itself.
Describe alternatives you've considered
Refactoring all the functions of the composer to achieve uniformity is a viable alternative, but it will not solve the problem of the complexity of the arguments of the gates
Additional context
This improvement will facilitate future API refactoring to build the circuit using DSLs.
Activity