confidential

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: MIT Imports: 4 Imported by: 7

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 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 RangeProofArgs added in v0.0.4

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 added in v0.0.4

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

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 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