UltrafastSecp256k1 3.68.0
Ultra high-performance secp256k1 elliptic curve cryptography library
Loading...
Searching...
No Matches
ufsecp_schnorr_snark_witness_t Struct Reference

#include <ufsecp.h>

Public Attributes

uint8_t msg [32]
 
uint8_t sig_r [32]
 
uint8_t sig_s [32]
 
uint8_t pub_x [32]
 
uint8_t r_y [32]
 
uint8_t pub_y [32]
 
uint8_t e [32]
 
ufsecp_ff_limbs_t lmb_sig_r
 
ufsecp_ff_limbs_t lmb_sig_s
 
ufsecp_ff_limbs_t lmb_pub_x
 
ufsecp_ff_limbs_t lmb_r_y
 
ufsecp_ff_limbs_t lmb_pub_y
 
ufsecp_ff_limbs_t lmb_e
 
int valid
 

Detailed Description

Complete PLONK prover witness for one BIP-340 Schnorr verification.

BIP-340 verify steps: R = lift_x(sig_r) (even Y) P = lift_x(pubkey_x) (even Y) e = H("BIP0340/challenge" || R.x || P.x || msg) mod n valid = (s*G == R + e*P) AND (R.y is even)

Definition at line 1194 of file ufsecp.h.

Member Data Documentation

◆ e

uint8_t ufsecp_schnorr_snark_witness_t::e[32]

challenge scalar

Definition at line 1204 of file ufsecp.h.

◆ lmb_e

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_e

challenge limbs

Definition at line 1212 of file ufsecp.h.

◆ lmb_pub_x

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_pub_x

P.x limbs

Definition at line 1209 of file ufsecp.h.

◆ lmb_pub_y

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_pub_y

P.y limbs

Definition at line 1211 of file ufsecp.h.

◆ lmb_r_y

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_r_y

R.y limbs

Definition at line 1210 of file ufsecp.h.

◆ lmb_sig_r

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_sig_r

R.x limbs

Definition at line 1207 of file ufsecp.h.

◆ lmb_sig_s

ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_sig_s

s limbs

Definition at line 1208 of file ufsecp.h.

◆ msg

uint8_t ufsecp_schnorr_snark_witness_t::msg[32]

message (32 bytes, per BIP-340)

Definition at line 1196 of file ufsecp.h.

◆ pub_x

uint8_t ufsecp_schnorr_snark_witness_t::pub_x[32]

x-only public key

Definition at line 1199 of file ufsecp.h.

◆ pub_y

uint8_t ufsecp_schnorr_snark_witness_t::pub_y[32]

P.y (lifted, even Y)

Definition at line 1203 of file ufsecp.h.

◆ r_y

uint8_t ufsecp_schnorr_snark_witness_t::r_y[32]

R.y (lifted, even Y)

Definition at line 1202 of file ufsecp.h.

◆ sig_r

uint8_t ufsecp_schnorr_snark_witness_t::sig_r[32]

R.x from signature

Definition at line 1197 of file ufsecp.h.

◆ sig_s

uint8_t ufsecp_schnorr_snark_witness_t::sig_s[32]

s scalar from signature

Definition at line 1198 of file ufsecp.h.

◆ valid

int ufsecp_schnorr_snark_witness_t::valid

1 = signature valid, 0 = invalid

Definition at line 1215 of file ufsecp.h.


The documentation for this struct was generated from the following file: