-
Notifications
You must be signed in to change notification settings - Fork 929
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
Aggregate signature verification (on an Attestation) fails due to custody_bitfield #775
Comments
This is a duplicate (non-)issue of #651.
The zero sum is the point at infinity.
As mentioned above it's not |
Thanks for the quick fix. |
JustinDrake
added a commit
that referenced
this issue
Mar 15, 2019
pipermerriam
pushed a commit
to pipermerriam/eth2.0-specs
that referenced
this issue
Mar 28, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Honest Validator spec states that the
attestation.custody_bitfield
should be a byte array filled with zeros.However, during per-block processing, when processing attestations we use
attestation.custody_bitfield
to getcustody_bit_1_participants
. These participants are later passed on tobls_aggregate_pubkeys
to generate an aggregate public key. Havingcustody_bitfield
set to all zeros, thecustody_bit_1_participants
becomes an empty list.First,
bls_aggregate_pubkeys
function seems to be undefined when there are no public keys, as in this case, becausecustody_bitfield
was set to all zeros.Second, during
process_attestations
,bls_verify_multiple
is used to check the aggregate signature on the attestation, however,bls_verify_multiple
currently takes two message hashes. One whereAttestationDataAndCustodyBit
has itscustody_bit
set to false and another with itscustody_bit
set to true.bls_verify_multiple
require two aggregate public keys when passed two message hashes. Specifically, the message hash withcustody_bit
set to true requires the aggregate public key of Validators who had theircustody_bitfield
set, which in our case is none. This makesbls_verify_multiple
to produce an assert.The text was updated successfully, but these errors were encountered: