protocol

package
v0.0.0-...-4496321 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2017 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ALPHA_MULT = 1     // what should these params be?
	BETA_MULT  = 1     // ..
	GRAPH_SIZE = 65536 // ..
	SEED_SIZE  = 64
)

Variables

View Source
var (
	ErrIncorrectIdx       = Error("Proof has incorrect idx")
	ErrIncorrectNumProofs = Error("Incorrect number of proofs")
	ErrIncorrectSize      = Error("Incorrect size")
	ErrIncorrectValue     = Error("Proof has incorrect value")
	ErrNotVerified        = Error("Proof verification failed")
)

Functions

This section is empty.

Types

type CommitProof

type CommitProof struct {
	ParentProofs [][]*merkle.Proof    `json:"parent_proofs"`
	Proofs       []*merkle.Proof      `json:"proofs"`
	PubKey       crypto.PubKeyEd25519 `json:"public_key"`
	Seed         []byte               `json:"seed"`
	Size         int64                `json:"size"`
}

type Prover

type Prover struct {
	Commit []byte //merkle root hash

	Priv crypto.PrivKeyEd25519
	// contains filtered or unexported fields
}

func NewProver

func NewProver(priv crypto.PrivKeyEd25519) *Prover

func (*Prover) Graph

func (p *Prover) Graph(id int, _type string)

func (*Prover) GraphDoubleButterfly

func (p *Prover) GraphDoubleButterfly(id int)

func (*Prover) GraphLinearSuperConcentrator

func (p *Prover) GraphLinearSuperConcentrator(id int)

func (*Prover) GraphStackedExpanders

func (p *Prover) GraphStackedExpanders(id int)

func (*Prover) MakeCommit

func (p *Prover) MakeCommit()

func (*Prover) MerkleTree

func (p *Prover) MerkleTree(id int)

func (*Prover) NewCommitProof

func (p *Prover) NewCommitProof(parentProofs [][]*merkle.Proof, proofs []*merkle.Proof) *CommitProof

func (*Prover) NewSpaceProof

func (p *Prover) NewSpaceProof(proofs []*merkle.Proof) *SpaceProof

func (*Prover) ProveCommit

func (p *Prover) ProveCommit(challenges []int64) *CommitProof

func (*Prover) ProveSpace

func (p *Prover) ProveSpace(challenges []int64) *SpaceProof

func (*Prover) PubKey

func (p *Prover) PubKey() crypto.PubKeyEd25519

type SpaceProof

type SpaceProof struct {
	Proofs []*merkle.Proof      `json:"proofs"`
	PubKey crypto.PubKeyEd25519 `json:"public_key"`
	Seed   []byte               `json:"seed"`
	Size   int64                `json:"size"`
}

type Verifier

type Verifier struct {
	// contains filtered or unexported fields
}

func NewVerifier

func NewVerifier() *Verifier

func (*Verifier) CommitChallenges

func (v *Verifier) CommitChallenges(seed []byte) (Int64s, error)

func (*Verifier) GraphSize

func (v *Verifier) GraphSize() int64

func (*Verifier) ReceiveCommit

func (v *Verifier) ReceiveCommit(commit []byte, pub crypto.PubKeyEd25519) error

func (*Verifier) SampleChallenges

func (v *Verifier) SampleChallenges(seed []byte, param int) Int64s

func (*Verifier) SpaceChallenges

func (v *Verifier) SpaceChallenges(seed []byte) (Int64s, error)

func (*Verifier) VerifyCommit

func (v *Verifier) VerifyCommit(commitProof *CommitProof) error

func (*Verifier) VerifySpace

func (v *Verifier) VerifySpace(spaceProof *SpaceProof) error

Jump to

Keyboard shortcuts

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