A commitment scheme is a protocol where one party commits themselves to a secret value without revealing it. At a later point, the value can be revealed.
Commitment schemes should be hiding and binding. That is, the output of the commitment should not reveal any information about the secret value, and once the commitment is completed, the party should not be able to reveal any value except the one they committed to.
Additional properties may include non-determinism and non-malleability.
Commitments are typically made to either a single bit or to an integer value. In the case bit commitments, non-determinism is strictly necessary for hiding.