diff --git a/beacon-chain/rpc/validator/proposer.go b/beacon-chain/rpc/validator/proposer.go index ecb05e4bc29..2706a04ecac 100644 --- a/beacon-chain/rpc/validator/proposer.go +++ b/beacon-chain/rpc/validator/proposer.go @@ -358,7 +358,11 @@ func (vs *Server) filterAttestationsForBlockInclusion(ctx context.Context, slot break } - if _, err := blocks.ProcessAttestation(ctx, bState, att); err != nil { + // TODO(4512): Until we align bls lib to latest IETF spec with `FastAggregateVerify`, + // we assume complete honest model and skip attestation's signature verification before + // including in block. We do verify everything about the attestation and just not + // its signature. + if _, err := blocks.ProcessAttestationNoVerify(ctx, bState, att); err != nil { inValidAtts = append(inValidAtts, att) continue diff --git a/beacon-chain/rpc/validator/proposer_test.go b/beacon-chain/rpc/validator/proposer_test.go index 0fd6131216d..259f512d779 100644 --- a/beacon-chain/rpc/validator/proposer_test.go +++ b/beacon-chain/rpc/validator/proposer_test.go @@ -1050,7 +1050,7 @@ func TestFilterAttestation_OK(t *testing.T) { aggBits.SetBitAt(0, true) atts[i] = ðpb.Attestation{Data: ðpb.AttestationData{ CommitteeIndex: uint64(i), - Target: ðpb.Checkpoint{}, + Target: ðpb.Checkpoint{Epoch: 1}, Source: ðpb.Checkpoint{Root: params.BeaconConfig().ZeroHash[:]}}, AggregationBits: aggBits, } @@ -1075,7 +1075,7 @@ func TestFilterAttestation_OK(t *testing.T) { } atts[i].Signature = bls.AggregateSignatures(sigs).Marshal()[:] } - + atts[0].Data.Target.Epoch = 0 received, err = proposerServer.filterAttestationsForBlockInclusion(context.Background(), 1, atts) if err != nil { t.Fatal(err)