confidential

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssetCommitment

func AssetCommitment(asset, factor []byte) ([]byte, error)

AssetCommitment method generates asset commitment

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 NonceHash

func NonceHash(pubKey, privKey []byte) (
	result [32]byte,
	err error,
)

NonceHash method generates hashed secret based on ecdh.

func RangeProof

func RangeProof(args RangeProofArgs) ([]byte, error)

RangeProof method calculates range proof

func SurjectionProof

func SurjectionProof(args SurjectionProofArgs) ([]byte, bool)

SurjectionProof method generates surjection proof

func ValueCommitment

func ValueCommitment(value uint64, generator, factor []byte) ([]byte, error)

ValueCommitment method generates value commitment

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 RangeProofArgs

type RangeProofArgs struct {
	Value               uint64
	Nonce               [32]byte
	Asset               []byte
	AssetBlindingFactor []byte
	ValueBlindFactor    [32]byte
	ValueCommit         []byte
	ScriptPubkey        []byte
	MinValue            uint64
	Exp                 int
	MinBits             int
}

type SurjectionProofArgs

type SurjectionProofArgs struct {
	OutputAsset               []byte
	OutputAssetBlindingFactor []byte
	InputAssets               [][]byte
	InputAssetBlindingFactors [][]byte
	Seed                      []byte
}

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 VerifySurjectionProofArgs

type VerifySurjectionProofArgs struct {
	InputAssets               [][]byte
	InputAssetBlindingFactors [][]byte
	OutputAsset               []byte
	OutputAssetBlindingFactor []byte
	Proof                     []byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL