Эх сурвалжийг харах

[zk/circuit/lead_contract] remove redundant cm1 coordinates public inputs

mohab metwally 3 жил өмнө
parent
commit
b6c07453ee

+ 2 - 3
src/crypto/leadcoin.rs

@@ -12,7 +12,7 @@ use crate::{
     zk::circuit::lead_contract::LeadContract,
 };
 
-pub const LEAD_PUBLIC_INPUT_LEN: usize = 6;
+pub const LEAD_PUBLIC_INPUT_LEN: usize = 4;
 
 #[derive(Debug, Default, Clone, Copy)]
 pub struct LeadCoin {
@@ -42,7 +42,6 @@ pub struct LeadCoin {
 impl LeadCoin {
     pub fn public_inputs_as_array(&self) -> [pallas::Base; LEAD_PUBLIC_INPUT_LEN] {
         let po_nonce = self.nonce_cm.unwrap();
-        let po_cm = self.cm.unwrap().to_affine().coordinates().unwrap();
         let po_pk = self.keypair.unwrap().public.0.to_affine().coordinates().unwrap();
         let y_mu = self.y_mu.unwrap();
         let rho_mu = self.rho_mu.unwrap();
@@ -61,7 +60,7 @@ impl LeadCoin {
                 .hash(y_coord_arr);
         let cm_pos = self.idx;
         let public_inputs: [pallas::Base; LEAD_PUBLIC_INPUT_LEN] =
-            [*po_cm.x(), *po_cm.y(), po_nonce, *po_pk.x(), *po_pk.y(), po_y];
+             [po_nonce, *po_pk.x(), *po_pk.y(), po_y];
         public_inputs
     }
 

+ 4 - 23
src/zk/circuit/lead_contract.rs

@@ -92,12 +92,10 @@ impl LeadConfig {
     }
 }
 
-const LEAD_COIN_COMMIT_X_OFFSET: usize = 0;
-const LEAD_COIN_COMMIT_Y_OFFSET: usize = 1;
-const LEAD_COIN_NONCE2_OFFSET: usize = 2;
-const LEAD_COIN_PK_X_OFFSET: usize = 3;
-const LEAD_COIN_PK_Y_OFFSET: usize = 4;
-const LEAD_Y_COMMIT_BASE_OFFSET: usize = 5;
+const LEAD_COIN_NONCE2_OFFSET: usize = 0;
+const LEAD_COIN_PK_X_OFFSET: usize = 1;
+const LEAD_COIN_PK_Y_OFFSET: usize = 2;
+const LEAD_Y_COMMIT_BASE_OFFSET: usize = 3;
 
 #[derive(Default, Debug)]
 pub struct LeadContract {
@@ -441,8 +439,6 @@ impl Circuit<pallas::Base> for LeadContract {
         };
 
         let coin_commit = com.add(layouter.namespace(|| "nonce commit"), &blind)?;
-        let coin_commit_x: AssignedCell<Fp, Fp> = coin_commit.inner().x();
-        let coin_commit_y: AssignedCell<Fp, Fp> = coin_commit.inner().y();
 
         // nonce2  =  PRF_{root_sk}(coin_nonce)
         // poured coin nonce as a poseidon of the previous nonce, and
@@ -511,8 +507,6 @@ impl Circuit<pallas::Base> for LeadContract {
             coin_commit_r.mul(layouter.namespace(|| "coin serial number commit R"), coin2_blind)?
         };
         let coin2_commit = com2.add(layouter.namespace(|| "nonce commit"), &blind)?;
-        let coin2_commit_x: AssignedCell<Fp, Fp> = coin2_commit.inner().x();
-        let coin2_commit_y: AssignedCell<Fp, Fp> = coin2_commit.inner().y();
 
         // path is valid path to staked coin's commitment
         let path: Value<[pallas::Base; MERKLE_DEPTH_ORCHARD]> =
@@ -642,19 +636,6 @@ impl Circuit<pallas::Base> for LeadContract {
             true,
         )?;
 
-        layouter.constrain_instance(
-            coin_commit_x.cell(),
-            config.primary,
-            LEAD_COIN_COMMIT_X_OFFSET,
-        )?;
-
-        // constrain coin's pub key y value
-        layouter.constrain_instance(
-            coin_commit_y.cell(),
-            config.primary,
-            LEAD_COIN_COMMIT_Y_OFFSET,
-        )?;
-
         layouter.constrain_instance(coin2_nonce.cell(), config.primary, LEAD_COIN_NONCE2_OFFSET)?;
 
         layouter.constrain_instance(coin_pk_x.cell(), config.primary, LEAD_COIN_PK_X_OFFSET)?;