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 ¶ added in v0.4.0
CalculateScalarOffset computes the scalar offset used for the final blinder computation value * asset_blinder + value_blinder
func ComputeAndAddToScalarOffset ¶ added in v0.4.0
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 ¶ added in v0.4.0
func CreateBlindValueProof ¶ added in v0.4.0
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 ¶ added in v0.4.0
func NewZKPGeneratorFromBlindingKeys( inBlindingKeys [][]byte, opts *ZKPGeneratorOpts, ) *zkpGenerator
func NewZKPGeneratorFromMasterBlindingKey ¶ added in v0.4.0
func NewZKPGeneratorFromMasterBlindingKey( masterBlindingKey []byte, opts *ZKPGeneratorOpts, ) (*zkpGenerator, error)
func NewZKPGeneratorFromOwnedInputs ¶ added in v0.4.0
func NewZKPGeneratorFromOwnedInputs( ownedInputs map[uint32]psetv2.OwnedInput, opts *ZKPGeneratorOpts, ) (*zkpGenerator, error)
func NewZKPValidator ¶ added in v0.4.0
func NewZKPValidator() *zkpValidator
func RangeProof ¶
func RangeProof(args RangeProofArgs) ([]byte, error)
RangeProof method calculates range proof
func SubtractScalars ¶ added in v0.4.0
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 ¶ added in v0.4.0
func VerifyBlindValueProof ¶ added in v0.4.0
func VerifyRangeProof ¶ added in v0.4.0
func VerifySurjectionProof ¶ added in v0.0.4
func VerifySurjectionProof(args VerifySurjectionProofArgs) bool
VerifySurjectionProof method verifies the validity of a surjection proof
Types ¶
type FinalValueBlindingFactorArgs ¶ added in v0.0.4
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 ¶ added in v0.4.0
type RangeProofArgs ¶ added in v0.0.4
type SurjectionProofArgs ¶ added in v0.0.4
type UnblindIssuanceResult ¶ added in v0.0.4
type UnblindIssuanceResult struct { Asset *UnblindOutputResult Token *UnblindOutputResult }
func UnblindIssuance ¶ added in v0.0.4
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 ¶ added in v0.0.4
func UnblindOutputWithKey( out *transaction.TxOutput, blindKey []byte, ) (*UnblindOutputResult, error)
UnblindOutputWithKey method unblinds a confidential transaction output with the given blinding private key.
func UnblindOutputWithNonce ¶ added in v0.0.4
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 VerifySurjectionProofArgs ¶ added in v0.0.4
type ZKPGeneratorOpts ¶ added in v0.4.0
type ZKPGeneratorOpts struct {
Rng RandomNumberGenerator
}