Change bls_public_key and bls_signature serialization to be:
Non-Montgomery form and little-endian encoding for the field elements.
Affine form for the group element (the z component is 1 and not included in the serialization).
Binary serialization encodes x component first followed by y component.
Add bls_aggregate_signature which is mutable version of bls_signature. bls_signature is now immutable.
Serialize as variable sized array and instead of a fixed sized array to make it easier to use in external tools that use ABI since our ABI does not handle fixed sized arrays.
Note:start
group: IF
category: INTERNALS
summary: Update internal storage format of BLS keys to optimize usage. No change to external representation of keys.
Note:end
Change
bls_public_key
andbls_signature
serialization to be:Add
bls_aggregate_signature
which is mutable version ofbls_signature
.bls_signature
is now immutable.Serialize as variable sized array and instead of a fixed sized array to make it easier to use in external tools that use ABI since our ABI does not handle fixed sized arrays.
Resolves #2334