package octez-libs

  1. Overview
  2. Docs
A package that contains multiple base libraries used by the Octez suite

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65

doc/octez-libs.plompiler/Plompiler/Gadget/PoseidonFull/V/argument-1-L/Ecc/index.html

Module L.Ecc

Addition on ECC curves.

val weierstrass_add : (scalar * scalar) repr -> (scalar * scalar) repr -> (scalar * scalar) repr t

weierstrass_add (px, py) (qx, qy) returns a pair (rx, ry) representing point addition over the Jubjub curve in Weierstrass coordinates of the given input points. Namely, it enforces constraints rx = λ² - (px + qx) and ry = λ * (px - rx) - py, where λ := (qy - py) / (qx - px).

val edwards_add : (scalar * scalar) repr -> (scalar * scalar) repr -> (scalar * scalar) repr t

edwards_add (px, py) (qx, qy) returns a pair (rx, ry) representing point addition over the Jubjub curve in Edwards coordinates of the given input points. Namely, it enforces constraints rx = (px * qy + qx * py) / (1 + d * px * py * qx * qy) and ry = (py * qy - a * px * qx) / (1 - d * px * py * qx * qy) where a := -1 and d are fixed parameters of the Jubjub curve in this representation. See Lib_plonk.Ecc_gates.

val edwards_cond_add : (scalar * scalar) repr -> (scalar * scalar) repr -> bool repr -> (scalar * scalar) repr t

edwards_cond_add p q b returns edwards_add p q if b is true and p otherwise.

OCaml

Innovation. Community. Security.