pub(crate) fn commit_value<H: Hasher>(
    commitment_key: &[u8],
    label: &AkdLabel,
    version: u64,
    value: &AkdValue,
) -> H::Digest {
    let proof = get_commitment_proof::<H>(commitment_key, label, version, value);
    H::hash(&[i2osp_array(value), i2osp_array(&proof.as_bytes())].concat())
}
// Used by the server to produce a commitment for an AkdLabel, version, and AkdValue
//
// proof = H(commitment_key, label, version, value)
// commmitment = H(value, proof)
//
// The proof value is a nonce used to create a hiding and binding commitment using a
// cryptographic hash function. Note that it is derived from the label, version, and
// value (even though the binding to value is somewhat optional).
//
// Note that this commitment needs to be a hash function (random oracle) output
Used by the server to produce a commitment for an AkdLabel, version, and AkdValue
proof = H(commitment_key, label, version, value)
commmitment = H(value, proof)

The proof value is a nonce used to create a hiding and binding commitment using a
cryptographic hash function. Note that it is derived from the label, version, and
value (even though the binding to value is somewhat optional).

Note that this commitment needs to be a hash function (random oracle) output
Used by the server to produce a commitment for an AkdLabel version and AkdValue proof = H ( commitment_key label version value ) commmitment = H ( value proof ) The proof value is a nonce used to create a hiding and binding commitment using a cryptographic hash function . Note that it is derived from the label version and value ( even though the binding to value is somewhat optional ) . Note that this commitment needs to be a hash function ( random oracle ) output
pub(crate) fn commit_value<H: Hasher>(
    commitment_key: &[u8],
    label: &AkdLabel,
    version: u64,
    value: &AkdValue,
) -> H::Digest {
    let proof = get_commitment_proof::<H>(commitment_key, label, version, value);
    H::hash(&[i2osp_array(value), i2osp_array(&proof.as_bytes())].concat())
}
pub ( crate ) fn commit_value < H : Hasher > ( commitment_key : & [ u8 ] , label : & AkdLabel , version : u64 , value : & AkdValue , ) -> H :: Digest { let proof = get_commitment_proof :: < H > ( commitment_key , label , version , value ) ; H :: hash ( & [ i2osp_array ( value ) , i2osp_array ( & proof . as_bytes ( ) ) ] . concat ( ) ) }
Used by the server to produce a commitment for an AkdLabel, version, and AkdValue
proof = H(commitment_key, label, version, value)
commmitment = H(value, proof)
Used by the server to produce a commitment for an AkdLabel version and AkdValue proof = H ( commitment_key label version value ) commmitment = H ( value proof )
commitment_key
&[u8]
label
&AkdLabel
version
u64
value
&AkdValue
commitment_key
&[u8]
label
&AkdLabel
version
u64
value
&AkdValue