You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now the signature logic across SSZ object is ad-hoc. The following are dealt differently:
Beacon blocks: custom signed header
Attestations: external signature
Exits: overwrite signature field with 0x0
RANDAO reveals: sign raw data
Here's one way to unify the signature logic (discussed with Danny and Vitalik):
Remove signatures from the existing SSZ objects
For every SSZ object o have a corresponding "signature header" h and canonical signature h.signature.
The signature header h is defined below, where h.root = tree_hash_root(o) and h.signature = bls_sign(h) of where h.signature is first set to EMPTY_SIGNATURE .
Adding an empty signature field to every SSZ object seems like a bad idea; it would just add a lot of hashing overhead. The cleanest would just be for every type T have a type SignedT = {data: T, signature: Signature}.
However there is another issue which is that for attestations, we need to have the attestation and custody bitfields not be signed over, because the signers don't know who each other are, so the signature mechanism is not going to fit it well no matter how it is done.
Another more general possibility that covers these cases and others is to establish a rule that the signature is the signature of all fields that come before it. This way we can just use order of appearance in the object to denote order of signing and what does and does not need to be signed.
Right now the signature logic across SSZ object is ad-hoc. The following are dealt differently:
signature
field with 0x0Here's one way to unify the signature logic (discussed with Danny and Vitalik):
o
have a corresponding "signature header"h
and canonical signatureh.signature
.h
is defined below, whereh.root = tree_hash_root(o)
andh.signature = bls_sign(h)
of whereh.signature
is first set toEMPTY_SIGNATURE
.The text was updated successfully, but these errors were encountered: