From 8a023f3b25a3ae8b214291583eb6eabe53d73222 Mon Sep 17 00:00:00 2001 From: mjalalzai <33738574+MForensic@users.noreply.github.com> Date: Mon, 28 Aug 2023 11:25:52 -0700 Subject: [PATCH] Aggregation cost --- scripts/authenticator_cost.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/scripts/authenticator_cost.py b/scripts/authenticator_cost.py index 81edb2f..de475f2 100644 --- a/scripts/authenticator_cost.py +++ b/scripts/authenticator_cost.py @@ -18,3 +18,26 @@ def verify_signatures(committee_size, depth): end_time = time.time() elapsed_time = end_time - start_time return elapsed_time + + + +def aggregate_signatures(committee_size): + # Simulate aggregating 3 * committee_size signatures + start_time = time.time() + + # ECDSA key generation + private_keys = [ecdsa.SigningKey.generate() for _ in range(3 * committee_size)] + # public_keys = [private_key.get_verifying_key() for private_key in private_keys] + + # Simulate signature aggregation + shared_message = b"Shared message to be signed" + signatures = [private_key.sign(shared_message) for private_key in private_keys] + aggregated_signature = sum(signatures, ecdsa.util.numbertheory.ordercurve.order) + + # Verify aggregated signature against the shared message + public_key = ecdsa.VerifyingKey.from_public_point(aggregated_signature, curve=ecdsa.SECP256k1) + assert public_key.verify(aggregated_signature, shared_message) + + end_time = time.time() + elapsed_time = end_time - start_time + return elapsed_time