The crypto_api class allows computations related to blinded transfers.
More...
#include <api.hpp>
|
fc::ecc::commitment_type | blind (const fc::ecc::blind_factor_type &blind, uint64_t value) const |
| Generates a pedersen commitment: *commit = blind * G + value * G2. The commitment is 33 bytes, the blinding factor is 32 bytes. For more information about pederson commitment check url https://en.wikipedia.org/wiki/Commitment_scheme. More...
|
|
fc::ecc::blind_factor_type | blind_sum (const std::vector< blind_factor_type > &blinds_in, uint32_t non_neg) const |
| Get sha-256 blind factor type. More...
|
|
bool | verify_sum (const std::vector< commitment_type > &commits_in, const std::vector< commitment_type > &neg_commits_in, int64_t excess) const |
| Verifies that commits + neg_commits + excess == 0. More...
|
|
verify_range_result | verify_range (const fc::ecc::commitment_type &commit, const std::vector< char > &proof) const |
| Verifies range proof for 33-byte pedersen commitment. More...
|
|
std::vector< char > | range_proof_sign (uint64_t min_value, const commitment_type &commit, const blind_factor_type &commit_blind, const blind_factor_type &nonce, int8_t base10_exp, uint8_t min_bits, uint64_t actual_value) const |
| Proves with respect to min_value the range for pedersen commitment which has the provided blinding factor and value. More...
|
|
verify_range_proof_rewind_result | verify_range_proof_rewind (const blind_factor_type &nonce, const fc::ecc::commitment_type &commit, const std::vector< char > &proof) const |
| Verifies range proof rewind for 33-byte pedersen commitment. More...
|
|
fc::ecc::range_proof_info | range_get_info (const std::vector< char > &proof) const |
| Gets "range proof" info. The cli_wallet includes functionality for sending blind transfers in which the values of the input and outputs amounts are “blinded.” In the case where a transaction produces two or more outputs, (e.g. an amount to the intended recipient plus “change” back to the sender), a "range proof" must be supplied to prove that none of the outputs commit to a negative value. More...
|
|
The crypto_api class allows computations related to blinded transfers.
Definition at line 439 of file api.hpp.
◆ blind()
Generates a pedersen commitment: *commit = blind * G + value * G2. The commitment is 33 bytes, the blinding factor is 32 bytes. For more information about pederson commitment check url https://en.wikipedia.org/wiki/Commitment_scheme.
- Parameters
-
blind | Sha-256 blind factor type |
value | Positive 64-bit integer value |
- Returns
- A 33-byte pedersen commitment: *commit = blind * G + value * G2
Definition at line 825 of file api.cpp.
◆ blind_sum()
fc::ecc::blind_factor_type graphene::app::crypto_api::blind_sum |
( |
const std::vector< blind_factor_type > & |
blinds_in, |
|
|
uint32_t |
non_neg |
|
) |
| const |
Get sha-256 blind factor type.
- Parameters
-
blinds_in | List of sha-256 blind factor types |
non_neg | 32-bit integer value |
- Returns
- A blind factor type
Definition at line 830 of file api.cpp.
◆ range_get_info()
Gets "range proof" info. The cli_wallet includes functionality for sending blind transfers in which the values of the input and outputs amounts are “blinded.” In the case where a transaction produces two or more outputs, (e.g. an amount to the intended recipient plus “change” back to the sender), a "range proof" must be supplied to prove that none of the outputs commit to a negative value.
- Parameters
-
proof | List of proof's characters |
- Returns
- A range proof info structure with exponent, mantissa, min and max values
Definition at line 879 of file api.cpp.
◆ range_proof_sign()
std::vector< char > graphene::app::crypto_api::range_proof_sign |
( |
uint64_t |
min_value, |
|
|
const commitment_type & |
commit, |
|
|
const blind_factor_type & |
commit_blind, |
|
|
const blind_factor_type & |
nonce, |
|
|
int8_t |
base10_exp, |
|
|
uint8_t |
min_bits, |
|
|
uint64_t |
actual_value |
|
) |
| const |
Proves with respect to min_value the range for pedersen commitment which has the provided blinding factor and value.
- Parameters
-
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 |
- Returns
- A list of characters as proof in proof
Definition at line 851 of file api.cpp.
◆ verify_range()
Verifies range proof for 33-byte pedersen commitment.
- Parameters
-
commit | 33-byte pedersen commitment |
proof | List of characters |
- Returns
- A structure with success, min and max values
Definition at line 843 of file api.cpp.
◆ verify_range_proof_rewind()
Verifies range proof rewind for 33-byte pedersen commitment.
- Parameters
-
nonce | Sha-256 blind refactor type |
commit | 33-byte pedersen commitment |
proof | List of characters |
- Returns
- A structure with success, min, max, value_out, blind_out and message_out values
Definition at line 862 of file api.cpp.
◆ verify_sum()
bool graphene::app::crypto_api::verify_sum |
( |
const std::vector< commitment_type > & |
commits_in, |
|
|
const std::vector< commitment_type > & |
neg_commits_in, |
|
|
int64_t |
excess |
|
) |
| const |
Verifies that commits + neg_commits + excess == 0.
- Parameters
-
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 |
- Returns
- Boolean - true in event of commits + neg_commits + excess == 0, otherwise false
Definition at line 836 of file api.cpp.
The documentation for this class was generated from the following files: