pub fn binding_verification_key(&self) -> redpallas::VerificationKeyBytes<Binding> {
        let cv: ValueCommitment = self.actions().map(|action| action.cv).sum();
        let cv_balance: ValueCommitment =
            ValueCommitment::new(pallas::Scalar::zero(), self.value_balance);

        let key_bytes: [u8; 32] = (cv - cv_balance).into();
        key_bytes.into()
    }
/// Calculate the Action binding verification key.
///
/// Getting the binding signature validating key from the Action description
/// value commitments and the balancing value implicitly checks that the
/// balancing value is consistent with the value transferred in the
/// Action descriptions, but also proves that the signer knew the
/// randomness used for the Action value commitments, which
/// prevents replays of Action descriptions that perform an output.
/// In Orchard, all Action descriptions have a spend authorization signature,
/// therefore the proof of knowledge of the value commitment randomness
/// is less important, but stills provides defense in depth, and reduces the
/// differences between Orchard and Sapling.
///
/// The net value of Orchard spends minus outputs in a transaction
/// is called the balancing value, measured in zatoshi as a signed integer
/// cv_balance.
///
/// Consistency of cv_balance with the value commitments in Action
/// descriptions is enforced by the binding signature.
///
/// Instead of generating a key pair at random, we generate it as a function
/// of the value commitments in the Action descriptions of the transaction, and
/// the balancing value.
///
/// https://zips.z.cash/protocol/protocol.pdf#orchardbalance
Calculate the Action binding verification key.
Getting the binding signature validating key from the Action description
value commitments and the balancing value implicitly checks that the
balancing value is consistent with the value transferred in the
Action descriptions, but also proves that the signer knew the
randomness used for the Action value commitments, which
prevents replays of Action descriptions that perform an output.
In Orchard, all Action descriptions have a spend authorization signature,
therefore the proof of knowledge of the value commitment randomness
is less important, but stills provides defense in depth, and reduces the
differences between Orchard and Sapling.

The net value of Orchard spends minus outputs in a transaction
is called the balancing value, measured in zatoshi as a signed integer
cv_balance.

Consistency of cv_balance with the value commitments in Action
descriptions is enforced by the binding signature.

Instead of generating a key pair at random, we generate it as a function
of the value commitments in the Action descriptions of the transaction, and
the balancing value.


Calculate the Action binding verification key . Getting the binding signature validating key from the Action description value commitments and the balancing value implicitly checks that the balancing value is consistent with the value transferred in the Action descriptions but also proves that the signer knew the randomness used for the Action value commitments which prevents replays of Action descriptions that perform an output . In Orchard all Action descriptions have a spend authorization signature therefore the proof of knowledge of the value commitment randomness is less important but stills provides defense in depth and reduces the differences between Orchard and Sapling . The net value of Orchard spends minus outputs in a transaction is called the balancing value measured in zatoshi as a signed integer cv_balance . Consistency of cv_balance with the value commitments in Action descriptions is enforced by the binding signature . Instead of generating a key pair at random we generate it as a function of the value commitments in the Action descriptions of the transaction and the balancing value .
pub fn binding_verification_key(&self) -> redpallas::VerificationKeyBytes<Binding> {
        let cv: ValueCommitment = self.actions().map(|action| action.cv).sum();
        let cv_balance: ValueCommitment =
            ValueCommitment::new(pallas::Scalar::zero(), self.value_balance);
        let key_bytes: [u8; 32] = (cv - cv_balance).into();
        key_bytes.into()
    }
pub fn binding_verification_key ( & self ) -> redpallas :: VerificationKeyBytes < Binding > { let cv : ValueCommitment = self . actions ( ) . map ( | action | action . cv ) . sum ( ) ; let cv_balance : ValueCommitment = ValueCommitment :: new ( pallas :: Scalar :: zero ( ) , self . value_balance ) ; let key_bytes : [ u8 ; 32 ] = ( cv - cv_balance ) . into ( ) ; key_bytes . into ( ) }
Calculate the Action binding verification key.
Calculate the Action binding verification key .
&self