From fb75c6dd55d21d864e79994659bab149078282f0 Mon Sep 17 00:00:00 2001 From: Ben Edgington Date: Wed, 30 Jan 2019 16:45:46 +0000 Subject: [PATCH] Fix to verify bitfields and aggregate signature. In blockprocessing, `crosslink_committee` is not defined. This is a fix. In Phase 0 this check is redundant since we've already asserted that the custody bitfield is all zero, but it will matter in later phases. --- specs/core/0_beacon-chain.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specs/core/0_beacon-chain.md b/specs/core/0_beacon-chain.md index 5ba1b242c..71ad5c708 100644 --- a/specs/core/0_beacon-chain.md +++ b/specs/core/0_beacon-chain.md @@ -1632,7 +1632,8 @@ For each `attestation` in `block.body.attestations`: assert attestation.custody_bitfield == b'\x00' * len(attestation.custody_bitfield) # [TO BE REMOVED IN PHASE 1] assert attestation.aggregation_bitfield != b'\x00' * len(attestation.aggregation_bitfield) - for i in range(len(crosslink_committee)): + assert len(attestation.aggregation_bitfield) <= len(attestation.custody_bitfield) + for i in range(len(attestation.aggregation_bitfield)): if get_bitfield_bit(attestation.aggregation_bitfield, i) == 0b0: assert get_bitfield_bit(attestation.custody_bitfield, i) == 0b0