The cryptographic algorithms and protocols that are used by the Provably system to construct the three kinds of proofs mentioned before are implemented in the Rust programming language using well-known, open-source cryptographic libraries. Provably itself will be open sourced after its release.
Pedersen commitment: an unconditionally hiding and computationally binding (under the discrete log assumption in large prime order groups) commitment scheme.
Bulletproofs: a Zero Knowledge protocol providing an inner-product argument (IPA) that has logarithmic proof size (in the length of the vectors of the IPA), linear proving time, and logarithmic verification time. Such protocol is particularly well-suited for providing a ZK range proof: proving that a hidden value lies in a given interval without disclosing any information about the value.
Merkle/Verkle Trees: the Merkle Tree is a tree data structure where each node stores the hash values of its children. As such, the root hash value is a compact digital fingerprint of a possibly large collection of items suitable for proving membership/non-membership. Proving membership has logarithmic size (in the collection's size).The Verkle tree is a Merkle tree variant that uses Pedersen vector commitments instead of hash values . This results in shorter proofs.
Chaum-Pedersen equality proof: the equality proof Provably relies upon is the Chaum-Pedersen Zero Knowledge proof that allows to check the equality of two Pedersen committed values.