Poly

scalus.cardano.onchain.plutus.crypto.accumulator.Poly
object Poly

On-chain polynomial operations for bilinear accumulator verification.

Computes product polynomials and polynomial commitments on G1/G2 curve groups. Used by both G1Accumulator and G2Accumulator for membership and non-membership verification.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Poly.type

Members list

Value members

Concrete methods

def getFinalPoly(binomials: List[BigInt]): List[BigInt]

Compute the product polynomial ∏(x + aᵢ) from a list of elements.

Compute the product polynomial ∏(x + aᵢ) from a list of elements.

Returns coefficients in ascending degree order [c₀, c₁, ..., cₙ].

Value parameters

binomials

the elements aᵢ to multiply as (x + aᵢ) factors

Attributes

Returns

the product polynomial coefficients

def getG1Commitment(setup: List[G1Element], subset: List[BigInt]): G1Element

Compute a polynomial commitment on G1: Σ(coeffᵢ · g1Powersᵢ).

Compute a polynomial commitment on G1: Σ(coeffᵢ · g1Powersᵢ).

Value parameters

setup

powers of tau on G1: [τ⁰·G1, τ¹·G1, ...]

subset

elements whose product polynomial to commit

Attributes

Returns

the G1 commitment point

def getG2Commitment(setup: List[G2Element], subset: List[BigInt]): G2Element

Compute a polynomial commitment on G2: Σ(coeffᵢ · g2Powersᵢ).

Compute a polynomial commitment on G2: Σ(coeffᵢ · g2Powersᵢ).

Value parameters

setup

powers of tau on G2: [τ⁰·G2, τ¹·G2, ...]

subset

elements whose product polynomial to commit

Attributes

Returns

the G2 commitment point

Concrete fields

lazy val sirDeps: List[SIRModuleWithDeps]
lazy val sirModule: Module