Skip to content

Commit

Permalink
fix: fixed N_06 (#28)
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasPiellard committed Nov 17, 2023
1 parent 43a670a commit 441b4e3
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 42 deletions.
37 changes: 16 additions & 21 deletions contracts/verifiers/PlonkVerifierFull.sol
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ contract PlonkVerifier {
uint256 private constant vk_s3_com_y = 3950283788807144685755254392627057902299881176666195233354776073965155557919;

uint256 private constant vk_coset_shift = 5;


uint256 private constant vk_qc_0_x = 2614573220337297659179308133300379021102641010525403337401619021428140031269;
uint256 private constant vk_qc_0_y = 5896590631125620550976365652082599923038691774487942725877415439318691171350;
Expand Down Expand Up @@ -267,15 +266,13 @@ contract PlonkVerifier {

// s number of public inputs, p pointer the public inputs
function check_inputs_size(s, p) {
let input_checks := 1
for {let i} lt(i, s) {i:=add(i,1)}
{
input_checks := and(input_checks,lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)){
error_inputs_size()
}
p := add(p, 0x20)
}
if iszero(input_checks) {
error_inputs_size()
}
}

function check_proof_size(actual_proof_size) {
Expand All @@ -286,8 +283,6 @@ contract PlonkVerifier {
}

function check_proof_openings_size(aproof) {

let openings_check := 1

// linearised polynomial at zeta
let p := add(aproof, proof_linearised_polynomial_at_zeta)
Expand All @@ -297,7 +292,9 @@ contract PlonkVerifier {

// quotient polynomial at zeta
p := add(aproof, proof_quotient_polynomial_at_zeta)
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}

// proof_l_at_zeta
p := add(aproof, proof_l_at_zeta)
Expand All @@ -319,7 +316,9 @@ contract PlonkVerifier {

// proof_s1_at_zeta
p := add(aproof, proof_s1_at_zeta)
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}

// proof_s2_at_zeta
p := add(aproof, proof_s2_at_zeta)
Expand All @@ -333,20 +332,15 @@ contract PlonkVerifier {
error_proof_openings_size()
}


// proof_openings_qci_at_zeta
p := add(aproof, proof_openings_qci_at_zeta)
for {let i:=0} lt(i, vk_nb_custom_gates) {i:=add(i,1)}

// proof_openings_selector_commit_api_at_zeta
p := add(aproof, proof_openings_selector_commit_api_at_zeta)
for {let i:=0} lt(i, vk_nb_commitments_commit_api) {i:=add(i,1)}
{
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}
p := add(p, 0x20)
}

if iszero(openings_check) {
error_proof_openings_size()
}

}
// end checks -------------------------------------------------

Expand Down Expand Up @@ -936,6 +930,7 @@ contract PlonkVerifier {


let _mPtr := add(mPtr, add(offset, 0xe0))

let _poscaz := add(aproof, proof_openings_qci_at_zeta)
for {let i:=0} lt(i, vk_nb_custom_gates) {i:=add(i,1)}
{
Expand Down
40 changes: 19 additions & 21 deletions contracts/verifiers/PlonkVerifierFullLarge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ contract PlonkVerifier {

uint256 private constant vk_coset_shift = 5;


uint256 private constant vk_qc_0_x = 3884624064879507288554125065509059886567955998027552754695080199794317463496;
uint256 private constant vk_qc_0_y = 3095893745686259387023328325251031582843387681306303361911851672293653329255;

Expand Down Expand Up @@ -158,6 +159,7 @@ contract PlonkVerifier {
// -------- utils (for hash_fr)
uint256 private constant bb = 340282366920938463463374607431768211456; // 2**128
uint256 private constant zero_uint256 = 0;

uint8 private constant lenInBytes = 48;
uint8 private constant sizeDomain = 11;
uint8 private constant one = 1;
Expand Down Expand Up @@ -264,15 +266,13 @@ contract PlonkVerifier {

// s number of public inputs, p pointer the public inputs
function check_inputs_size(s, p) {
let input_checks := 1
for {let i} lt(i, s) {i:=add(i,1)}
{
input_checks := and(input_checks,lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)){
error_inputs_size()
}
p := add(p, 0x20)
}
if iszero(input_checks) {
error_inputs_size()
}
}

function check_proof_size(actual_proof_size) {
Expand All @@ -283,8 +283,6 @@ contract PlonkVerifier {
}

function check_proof_openings_size(aproof) {

let openings_check := 1

// linearised polynomial at zeta
let p := add(aproof, proof_linearised_polynomial_at_zeta)
Expand All @@ -294,7 +292,9 @@ contract PlonkVerifier {

// quotient polynomial at zeta
p := add(aproof, proof_quotient_polynomial_at_zeta)
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}

// proof_l_at_zeta
p := add(aproof, proof_l_at_zeta)
Expand All @@ -316,7 +316,9 @@ contract PlonkVerifier {

// proof_s1_at_zeta
p := add(aproof, proof_s1_at_zeta)
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}

// proof_s2_at_zeta
p := add(aproof, proof_s2_at_zeta)
Expand All @@ -330,20 +332,15 @@ contract PlonkVerifier {
error_proof_openings_size()
}


// proof_openings_qci_at_zeta
p := add(aproof, proof_openings_qci_at_zeta)
for {let i:=0} lt(i, vk_nb_custom_gates) {i:=add(i,1)}

// proof_openings_selector_commit_api_at_zeta
p := add(aproof, proof_openings_selector_commit_api_at_zeta)
for {let i:=0} lt(i, vk_nb_commitments_commit_api) {i:=add(i,1)}
{
openings_check := and(openings_check, lt(calldataload(p), r_mod))
if iszero(lt(calldataload(p), r_mod)) {
error_proof_openings_size()
}
p := add(p, 0x20)
}

if iszero(openings_check) {
error_proof_openings_size()
}

}
// end checks -------------------------------------------------

Expand Down Expand Up @@ -933,6 +930,7 @@ contract PlonkVerifier {


let _mPtr := add(mPtr, add(offset, 0xe0))

let _poscaz := add(aproof, proof_openings_qci_at_zeta)
for {let i:=0} lt(i, vk_nb_custom_gates) {i:=add(i,1)}
{
Expand Down Expand Up @@ -1238,4 +1236,4 @@ contract PlonkVerifier {
}
}
}
}
}

0 comments on commit 441b4e3

Please sign in to comment.