przs

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

README

PRZS

Pseudorandom (non-interactive) zero sharing. Provides deterministic sampling so parties can generate additive zero-sum shares without interaction after setup.

Components

  • Seed Setup (przs/setup): commit-and-reveal protocol that establishes pairwise seeds.
  • Sampler: uses established seeds to deterministically derive zero-sum shares via ChaCha8 PRNGs.

Usage

  1. Run the seed setup protocol to obtain przs.Seeds.
  2. Instantiate Sampler with NewSampler(sharingID, quorum, seeds, field).
  3. Call Sample to derive your zero-share; all parties’ samples sum to zero.

Documentation

Overview

Package przs provides pseudorandom (non-interactive) zero sharing. Provides deterministic sampling so parties can generate additive zero-sum shares without interaction after setup.

See README.md for details.

Index

Constants

View Source
const (
	SeedLength = 32
)

Variables

View Source
var (
	// ErrInvalidArgument indicates missing or inconsistent inputs.
	ErrInvalidArgument = errs.New("invalid argument")
	// ErrFailed captures non-recoverable protocol failures.
	ErrFailed = errs.New("failed")
)

Functions

This section is empty.

Types

type Sampler

type Sampler[FE algebra.PrimeFieldElement[FE]] struct {
	// contains filtered or unexported fields
}

Sampler deterministically derives zero-sharing scalars from pairwise seeds.

func NewSampler

func NewSampler[FE algebra.PrimeFieldElement[FE]](sharingID sharing.ID, quorum network.Quorum, seeds Seeds, field algebra.PrimeField[FE]) (*Sampler[FE], error)

NewSampler builds a sampler from per-party seeds agreed during setup.

func (*Sampler[FE]) Sample

func (s *Sampler[FE]) Sample() (FE, error)

Sample draws a zero-share using pairwise PRNGs; the sum across parties is zero.

type Seeds

type Seeds ds.Map[sharing.ID, [SeedLength]byte]

Seeds maps party identifiers to PRZS seed material.

Directories

Path Synopsis
Package przssetup provides commit-and-reveal setup for pairwise seeds used by the PRZS sampler.
Package przssetup provides commit-and-reveal setup for pairwise seeds used by the PRZS sampler.

Jump to

Keyboard shortcuts

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