# [−][src]Module bulletproofs::r1cs::constraint_system

Definition of the constraint system trait.

## Traits

 ConstraintSystem The interface for a constraint system, abstracting over the prover and verifier's roles. RandomizableConstraintSystem An extension to the constraint system trait that permits randomized constraints. Gadgets that do not use randomization should use trait bound CS: ConstraintSystem, while gadgets that need randomization should use trait bound CS: RandomizedConstraintSystem. Gadgets generally should not use this trait as a bound on the CS argument: it should be used by the higher-order protocol that composes gadgets together. RandomizedConstraintSystem Represents a constraint system in the second phase: when the challenges can be sampled to create randomized constraints.