From 67987ae0bbba7e3963ccba0dd9f1fbaa4c922d4f Mon Sep 17 00:00:00 2001 From: Achim Schneider Date: Sat, 18 Mar 2023 16:40:26 +0100 Subject: [PATCH] use chunks for scalars --- Cargo.lock | 18 +++++++++--------- primitives/arkworks/src/utils.rs | 14 ++++++++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3423c0ca55976..0cfd8e79ee908 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3516,9 +3516,9 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857" +checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes 1.0.7", @@ -10243,7 +10243,7 @@ dependencies = [ [[package]] name = "sp-ark-bls12-377" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-bls12-377", "ark-ff", @@ -10258,7 +10258,7 @@ dependencies = [ [[package]] name = "sp-ark-bls12-381" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-bls12-381", "ark-ec", @@ -10273,7 +10273,7 @@ dependencies = [ [[package]] name = "sp-ark-bw6-761" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-bw6-761", "ark-ff", @@ -10287,7 +10287,7 @@ dependencies = [ [[package]] name = "sp-ark-ed-on-bls12-377" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-ed-on-bls12-377", "ark-ff", @@ -10301,7 +10301,7 @@ dependencies = [ [[package]] name = "sp-ark-ed-on-bls12-381" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-ed-on-bls12-381", "ark-ff", @@ -10332,7 +10332,7 @@ dependencies = [ [[package]] name = "sp-ark-models" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-ec", "ark-ff", @@ -10348,7 +10348,7 @@ dependencies = [ [[package]] name = "sp-ark-utils" version = "0.4.0" -source = "git+https://github.com/paritytech/ark-substrate#9823a947702037ce9662757ef6cc1b176da29546" +source = "git+https://github.com/paritytech/ark-substrate#8219182113e66247f73d36bc7a298104302be936" dependencies = [ "ark-serialize", "ark-std", diff --git a/primitives/arkworks/src/utils.rs b/primitives/arkworks/src/utils.rs index e982f11ae24ce..5dfe7e1ec9036 100644 --- a/primitives/arkworks/src/utils.rs +++ b/primitives/arkworks/src/utils.rs @@ -54,8 +54,11 @@ pub fn msm_g1_generic(bases: Vec, scalars: Vec) -> Vec::G1Affine>(a)) .collect(); - let scalars: Vec<_> = - scalars.iter().map(|a| deserialize_argument::(a)).collect(); + let scalars: Vec<_> = scalars + .chunks(Curve::ScalarField.serialized_size(Compress::No)) + .into_iter() + .map(|a| deserialize_argument::(a)) + .collect(); let result = <::G1 as ark_ec::VariableBaseMSM>::msm(&bases, &scalars).unwrap(); @@ -69,8 +72,11 @@ pub fn msm_g2_generic(bases: Vec, scalars: Vec) -> Vec::G2Affine>(a)) .collect(); - let scalars: Vec<_> = - scalars.iter().map(|a| deserialize_argument::(a)).collect(); + let scalars: Vec<_> = scalars + .chunks(Curve::ScalarField.serialized_size(Compress::No)) + .into_iter() + .map(|a| deserialize_argument::(a)) + .collect(); let result = <::G2 as ark_ec::VariableBaseMSM>::msm(&bases, &scalars).unwrap();