Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/pedersen-commitments #1048

Merged
merged 55 commits into from
Mar 11, 2022
Merged
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
a88be3d
add pedersen.rs and first alias type
danielementary Dec 20, 2021
70f010d
replace ciphertexts in BlindSignRequest by commitments and adapt try_…
danielementary Dec 20, 2021
15c4698
update BlindSignRequest.to_byte_vec
danielementary Dec 20, 2021
b063792
add TODO to issuance.rs
danielementary Dec 20, 2021
90af724
[WIP] update CmCs proof to use commitments
danielementary Dec 20, 2021
978557b
complete ProofCmCs construct implementation
danielementary Dec 21, 2021
e36d621
[WIP] ProofCmCs verify
danielementary Dec 21, 2021
cefd289
complete ProofCmCs verify implementation
danielementary Dec 21, 2021
42a8c04
complete ProofCmCs to_bytes implementation
danielementary Dec 21, 2021
4c6ed27
complete ProofCmCs from_bytes implementation
danielementary Dec 21, 2021
5cb2787
WIP update ProofCmCs roundtrip tests
danielementary Dec 21, 2021
181f71a
WIP update prepare_blind_sign
danielementary Dec 21, 2021
d7db819
update prepare_blind_sign
danielementary Dec 22, 2021
404d4b8
WIP update blind_sign
danielementary Dec 22, 2021
da94f0d
update blind_sign
danielementary Dec 22, 2021
694c4a1
update BlindedSignature and try_from
danielementary Dec 22, 2021
dcf0572
update BlindedSignature unblind
danielementary Dec 22, 2021
4d07b9f
update BlindedSignature to_bytes
danielementary Dec 22, 2021
4c81ee1
move elgamal encrypto to elgamal and manage imports
danielementary Dec 22, 2021
53a09ad
add verification keys for g1 method
danielementary Dec 22, 2021
9ba550e
upadate tests to work with Pedersen commitments
danielementary Dec 22, 2021
6ba9fca
unused remove pedersen.rs
danielementary Dec 22, 2021
690f83c
update error message
danielementary Dec 22, 2021
5b2dfbc
fix proof_cm_cs_bytes_roundtrip test
danielementary Dec 22, 2021
d34433a
Move generation of commitment openings into prepare blind signature f…
aniampio Jan 4, 2022
14fc663
Edits
aniampio Jan 6, 2022
ba9ad4d
Extende the verification key; remove validator's secret key from the …
aniampio Jan 6, 2022
500789b
Update the unblind function throughout the whole nymcoconut repo
aniampio Jan 6, 2022
184e8cc
Fix broken tests
aniampio Jan 7, 2022
3c441f1
Run cargo clippy and fmt
aniampio Jan 7, 2022
43ceb66
Add benchmark measurements
aniampio Jan 7, 2022
8ab6dac
Add more detailed printouts
aniampio Jan 14, 2022
4b88bed
Change byte printout
aniampio Jan 14, 2022
008a6f6
Update benchmarks
aniampio Jan 18, 2022
29ad8e3
add public attributes as part of the commitment
danielementary Jan 24, 2022
bd5a483
update bytes order comment for ProofCmCs
danielementary Jan 24, 2022
d76e238
check proof_cm_cs_bytes_roundtrip test and remove TODO
danielementary Jan 24, 2022
77b6cdd
remove irrelevant prints in blind signature tests
danielementary Jan 24, 2022
e323017
remove inappropriate function to get betas_g1
danielementary Jan 24, 2022
35b4bf8
remove irrelevant prints in verification
danielementary Jan 24, 2022
2eefaf3
Remove print statement and add additional checks on the verification key
aniampio Mar 9, 2022
efb2124
Run clippy
aniampio Mar 9, 2022
5296203
Fix coconut call in validator-api
aniampio Mar 9, 2022
ae6a524
Update dependend packages
aniampio Mar 9, 2022
a9d53aa
Merge branch 'develop' into feature/pedersen-commitments
aniampio Mar 9, 2022
dcaefe4
Update the input to the obtain partial credential function
aniampio Mar 9, 2022
a3b69ed
Fix the verification key bytes calculation
aniampio Mar 9, 2022
47f1b83
Run cargo fmt on keygen.rs
aniampio Mar 9, 2022
571f1bb
Run cargo fmt for validator-api
aniampio Mar 9, 2022
f01c237
Run cargo fmt for credentials
aniampio Mar 9, 2022
57651e2
Replace concat with chain
aniampio Mar 10, 2022
226a875
Remove unneccessary mut
aniampio Mar 10, 2022
f2398b5
Merge branch 'develop' into feature/pedersen-commitments
aniampio Mar 10, 2022
9b4c4c7
Run cargo fmt
aniampio Mar 10, 2022
00d6877
fix type conversion
aniampio Mar 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions common/coconut-interface/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,6 @@ impl VerifyCredentialBody {
pub struct BlindSignRequestBody {
#[getset(get = "pub")]
blind_sign_request: BlindSignRequest,
#[getset(get = "pub")]
public_key: nymcoconut::PublicKey,
public_attributes: Vec<String>,
#[getset(get = "pub")]
total_params: u32,
Expand All @@ -93,13 +91,11 @@ pub struct BlindSignRequestBody {
impl BlindSignRequestBody {
pub fn new(
blind_sign_request: &BlindSignRequest,
public_key: &nymcoconut::PublicKey,
public_attributes: &[Attribute],
total_params: u32,
) -> BlindSignRequestBody {
BlindSignRequestBody {
blind_sign_request: blind_sign_request.clone(),
public_key: public_key.clone(),
public_attributes: public_attributes
.iter()
.map(|attr| attr.to_bs58())
Expand Down
1 change: 1 addition & 0 deletions common/credentials/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bls12_381 = { version = "0.5", default-features = false, features = ["pairings", "alloc", "experimental"] }
thiserror = "1.0"
url = "2.2"

Expand Down
23 changes: 11 additions & 12 deletions common/credentials/src/coconut/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
use coconut_interface::{
aggregate_signature_shares, aggregate_verification_keys, prepare_blind_sign,
prove_bandwidth_credential, Attribute, BlindSignRequest, BlindSignRequestBody, Credential,
ElGamalKeyPair, Parameters, Signature, SignatureShare, VerificationKey,
Parameters, Signature, SignatureShare, VerificationKey,
};
use bls12_381::{Scalar};
use url::Url;

use crate::coconut::bandwidth::PRIVATE_ATTRIBUTES;
Expand Down Expand Up @@ -64,14 +65,14 @@ async fn obtain_partial_credential(
params: &Parameters,
public_attributes: &[Attribute],
private_attributes: &[Attribute],
pedersen_commitments_openings: &[Scalar],
blind_sign_request: &BlindSignRequest,
client: &validator_client::ApiClient,
validator_vk: &VerificationKey,
blind_sign_request: &BlindSignRequest,
elgamal_keypair: &ElGamalKeyPair,
) -> Result<Signature, Error> {

let blind_sign_request_body = BlindSignRequestBody::new(
blind_sign_request,
elgamal_keypair.public_key(),
public_attributes,
(public_attributes.len() + private_attributes.len()) as u32,
);
Expand All @@ -83,11 +84,11 @@ async fn obtain_partial_credential(

let unblinded_signature = blinded_signature.unblind(
params,
elgamal_keypair.private_key(),
validator_vk,
private_attributes,
public_attributes,
&blind_sign_request.get_commitment_hash(),
&*pedersen_commitments_openings,
)?;

Ok(unblinded_signature)
Expand All @@ -110,10 +111,8 @@ pub async fn obtain_aggregate_signature(
let validator_partial_vk = client.get_coconut_verification_key().await?;
validators_partial_vks.push(validator_partial_vk.key.clone());

let elgamal_keypair = coconut_interface::elgamal_keygen(params);
let blind_sign_request = prepare_blind_sign(
let (pedersen_commitments_openings, blind_sign_request) = prepare_blind_sign(
params,
&elgamal_keypair,
private_attributes,
public_attributes,
)?;
Expand All @@ -122,10 +121,10 @@ pub async fn obtain_aggregate_signature(
params,
public_attributes,
private_attributes,
&pedersen_commitments_openings,
&blind_sign_request,
&client,
&validator_partial_vk.key,
&blind_sign_request,
&elgamal_keypair,
)
.await?;
shares.push(SignatureShare::new(first, 1));
Expand All @@ -138,10 +137,10 @@ pub async fn obtain_aggregate_signature(
params,
public_attributes,
private_attributes,
&pedersen_commitments_openings,
&blind_sign_request,
&client,
&validator_partial_vk.key,
&blind_sign_request,
&elgamal_keypair,
)
.await?;
let share = SignatureShare::new(signature, (id + 1) as u64);
Expand Down
6 changes: 3 additions & 3 deletions common/nymcoconut/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ doc-comment = "0.3"
[dev-dependencies.bincode]
version = "1"

#[[bench]]
#name = "benchmarks"
#harness = false
[[bench]]
name = "benchmarks"
harness = false

[features]
default = []
Expand Down
Loading