Crypto API

The crypto API is available from the full node via websockets.

Blinding and Un-Blinding

blind

Get signed blocks.

Generates a Pedersen Commitment: *commit = blind * G + value * G2. The commitment is 33 bytes, the blinding factor is 32 bytes.

Tip: For more information about Pedersen Commitment see: Commitment Scheme

commitment_type graphene::app::crypto_api::blind(
    const fc::ecc::blind_factor_type &blind, 
    uint64_t value)
  • blind: Sha-256 blind factor type

  • value: Positive 64-bit integer value

blind_sum

Get SHA-256 blind factor type.

blind_factor_type graphene::app::crypto_api::blind_sum(
    const std::vector<blind_factor_type> &blinds_in, 
    uint32_t non_neg)
  • blinds_in: List of SHA-256 blind factor types

  • non_neg: 32-bit integer value

Range Proofs

range_get_info

Gets “range proof” information.

The cli_wallet includes functionality for sending blind transfers in which the values of the input and output amounts are “blinded.”

proof: List of proof’s characters

range_proof_sign

Proves with respect to min_value the range for Pedersen Commitment which has the provided blinding factor and value.

  • min_value: Positive 64-bit integer value

  • commit: 33-byte pedersen commitment

  • commit_blind: Sha-256 blind factor type for the correct digits

  • nonce: Sha-256 blind factor type for our non-forged signatures

  • base10_exp: Exponents base 10 in range [-1 ; 18] inclusively

  • min_bits: 8-bit positive integer, must be in range [0 ; 64] inclusively

  • actual_value: 64-bit positive integer, must be greater or equal min_value

Verification

verify_sum

Verifies that commits + neg_commits + excess == 0.

  • commits_in: List of 33-byte Pedersen Commitments

  • neg_commits_in: List of 33-byte Pedersen Commitments

  • excess: Sum of two list of 33-byte Pedersen Commitments where sums the first set and subtracts the second

verify_range

Verifies range proof for 33-byte Pedersen Commitment.

  • commit: 33-byte pedersen commitment

  • proof: List of characters

verify_range_proof_rewind

Verifies range proof rewind for 33-byte Pedersen Commitment.

  • nonce: Sha-256 blind refactor type

  • commit: 33-byte pedersen commitment

  • proof: List of characters

Last updated