Documentation
¶
Index ¶
- Variables
- func AssetCommitment(asset, factor []byte) ([]byte, error)
- func CalculateScalarOffset(amount uint64, assetBlinder, valueBlinder []byte) ([]byte, error)
- func ComputeAndAddToScalarOffset(scalar []byte, value uint64, assetBlinder, valueBlinder []byte) ([]byte, error)
- func CreateBlindAssetProof(asset, assetCommitment, assetBlinder []byte) ([]byte, error)
- func CreateBlindValueProof(rng func() ([]byte, error), valueBlinder []byte, amount uint64, ...) ([]byte, error)
- func FinalValueBlindingFactor(args FinalValueBlindingFactorArgs) ([32]byte, error)
- func NewZKPGeneratorFromBlindingKeys(inBlindingKeys [][]byte, opts *ZKPGeneratorOpts) *zkpGenerator
- func NewZKPGeneratorFromMasterBlindingKey(masterBlindingKey []byte, opts *ZKPGeneratorOpts) (*zkpGenerator, error)
- func NewZKPGeneratorFromOwnedInputs(ownedInputs map[uint32]psetv2.OwnedInput, opts *ZKPGeneratorOpts) (*zkpGenerator, error)
- func NewZKPValidator() *zkpValidator
- func NonceHash(pubKey, privKey []byte) ([32]byte, error)
- func RangeProof(args RangeProofArgs) ([]byte, error)
- func SubtractScalars(a []byte, b []byte) ([]byte, error)
- func SurjectionProof(args SurjectionProofArgs) ([]byte, bool)
- func ValueCommitment(value uint64, generator, factor []byte) ([]byte, error)
- func VerifyBlindAssetProof(asset, assetCommitment, proof []byte) bool
- func VerifyBlindValueProof(value uint64, valueCommitment, assetCommitment, proof []byte) bool
- func VerifyRangeProof(valueCommitment, assetCommitment, script, proof []byte) bool
- func VerifySurjectionProof(args VerifySurjectionProofArgs) bool
- type FinalValueBlindingFactorArgs
- type RandomNumberGenerator
- type RangeProofArgs
- type SurjectionProofArgs
- type UnblindIssuanceResult
- type UnblindOutputResult
- type VerifySurjectionProofArgs
- type ZKPGeneratorOpts
Constants ¶
This section is empty.
Variables ¶
var ( ErrPrivKeyMult = errors.New("privKey mult error") ErrPrivKeyTweakAdd = errors.New("privKey tweak add error") ErrPrivKeyNegate = errors.New("privKey negate error") ErrInvalidValueBlinder = errors.New("invalid value blinder") )
var (
Zero = make([]byte, 32)
)
Functions ¶
func AssetCommitment ¶
AssetCommitment method generates asset commitment
func CalculateScalarOffset ¶
CalculateScalarOffset computes the scalar offset used for the final blinder computation value * asset_blinder + value_blinder
func ComputeAndAddToScalarOffset ¶
func ComputeAndAddToScalarOffset( scalar []byte, value uint64, assetBlinder, valueBlinder []byte, ) ([]byte, error)
ComputeAndAddToScalarOffset computes a scalar offset and adds it to another existing one
func CreateBlindAssetProof ¶
func CreateBlindValueProof ¶
func FinalValueBlindingFactor ¶
func FinalValueBlindingFactor( args FinalValueBlindingFactorArgs, ) ([32]byte, error)
FinalValueBlindingFactor method calculates the blinder as the sum of all previous blinders of a tx.
func NewZKPGeneratorFromBlindingKeys ¶
func NewZKPGeneratorFromBlindingKeys( inBlindingKeys [][]byte, opts *ZKPGeneratorOpts, ) *zkpGenerator
func NewZKPGeneratorFromMasterBlindingKey ¶
func NewZKPGeneratorFromMasterBlindingKey( masterBlindingKey []byte, opts *ZKPGeneratorOpts, ) (*zkpGenerator, error)
func NewZKPGeneratorFromOwnedInputs ¶
func NewZKPGeneratorFromOwnedInputs( ownedInputs map[uint32]psetv2.OwnedInput, opts *ZKPGeneratorOpts, ) (*zkpGenerator, error)
func NewZKPValidator ¶
func NewZKPValidator() *zkpValidator
func RangeProof ¶
func RangeProof(args RangeProofArgs) ([]byte, error)
RangeProof method calculates range proof
func SubtractScalars ¶
SubtractScalars subtract b from a in place
func SurjectionProof ¶
func SurjectionProof(args SurjectionProofArgs) ([]byte, bool)
SurjectionProof method generates surjection proof
func ValueCommitment ¶
ValueCommitment method generates value commitment
func VerifyBlindAssetProof ¶
func VerifyBlindValueProof ¶
func VerifyRangeProof ¶
func VerifySurjectionProof ¶
func VerifySurjectionProof(args VerifySurjectionProofArgs) bool
VerifySurjectionProof method verifies the validity of a surjection proof
Types ¶
type FinalValueBlindingFactorArgs ¶
type FinalValueBlindingFactorArgs struct {
InValues []uint64
OutValues []uint64
InGenerators [][]byte
OutGenerators [][]byte
InFactors [][]byte
OutFactors [][]byte
}
FinalValueBlindingFactorArgs is the type provided to the function that calculates the blinder of the last output of a tx.
type RandomNumberGenerator ¶
type RangeProofArgs ¶
type SurjectionProofArgs ¶
type UnblindIssuanceResult ¶
type UnblindIssuanceResult struct {
Asset *UnblindOutputResult
Token *UnblindOutputResult
}
func UnblindIssuance ¶
func UnblindIssuance( in *transaction.TxInput, blindKeys [][]byte, ) (*UnblindIssuanceResult, error)
type UnblindOutputResult ¶
type UnblindOutputResult struct {
Value uint64
Asset []byte
ValueBlindingFactor []byte
AssetBlindingFactor []byte
}
UnblindOutputResult is the type returned by the functions that unblind tx outs. It contains the unblinded asset and value and also the respective blinding factors.
func UnblindOutputWithKey ¶
func UnblindOutputWithKey( out *transaction.TxOutput, blindKey []byte, ) (*UnblindOutputResult, error)
UnblindOutputWithKey method unblinds a confidential transaction output with the given blinding private key.
func UnblindOutputWithNonce ¶
func UnblindOutputWithNonce( out *transaction.TxOutput, nonce []byte, ) (*UnblindOutputResult, error)
UnblindOutputWithNonce method unblinds a confidential transaction output with the given ecdh nonce calculated for example with the above NonceHash func.
type ZKPGeneratorOpts ¶
type ZKPGeneratorOpts struct {
Rng RandomNumberGenerator
}