From add628d26bcb0b55d7f1a4b4c3031f4241922c66 Mon Sep 17 00:00:00 2001 From: vbuterin Date: Thu, 13 Dec 2018 19:06:07 -0500 Subject: [PATCH] Edit BLS spec as per issue #300 See https://github.com/ethereum/eth2.0-specs/issues/300 --- specs/{bls_verify.md => bls_signature.md} | 10 ++++++++++ 1 file changed, 10 insertions(+) rename specs/{bls_verify.md => bls_signature.md} (91%) diff --git a/specs/bls_verify.md b/specs/bls_signature.md similarity index 91% rename from specs/bls_verify.md rename to specs/bls_signature.md index a6c41e555..47f7b69c0 100644 --- a/specs/bls_verify.md +++ b/specs/bls_signature.md @@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain: * Verify that `signature` is a valid G2 point. * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`. +## Operations involving aggregate signatures + +### `bls_aggregate_pubkeys` + +Let `bls_aggregate_pubkeys(pubkeys: [uint384]) -> uint384` return `pubkeys[0] + .... + pubkeys[len(pubkeys)-1]`, where `+` is the elliptic curve addition operation over the G1 curve. + +### `bls_aggregate_signatures` + +Let `bls_aggregate_signatures(signatures: [[uint384]]) -> [uint384]` return `signatures[0] + .... + signatures[len(signatures)-1]`, where `+` is the elliptic curve addition operation over the G2 curve. + ### `bls_verify_multiple` Let `bls_verify_multiple(pubkeys: [uint384], messages: [bytes32], signature: [uint384], domain: uint64) -> bool`: