Update 0_beacon-chain.md

This commit is contained in:
Justin 2019-01-23 12:47:11 +00:00 committed by GitHub
parent 696a6c140a
commit ee081e160c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -1526,13 +1526,17 @@ For each `attestation` in `block.body.attestations`:
* Verify that `attestation.data.justified_slot` is equal to `state.justified_slot if attestation.data.slot >= state.slot - (state.slot % EPOCH_LENGTH) else state.previous_justified_slot`.
* Verify that `attestation.data.justified_block_root` is equal to `get_block_root(state, attestation.data.justified_slot)`.
* Verify that either `attestation.data.latest_crosslink_root` or `attestation.data.shard_block_root` equals `state.latest_crosslinks[shard].shard_block_root`.
* `attestation.aggregate_signature` verification:
* Verify bitfields:
```python
assert verify_bitfield(attestation.aggregation_bitfield)
assert verify_bitfield(attestation.custody_bitfield)
assert attestation.custody_bitfield & attestation.aggregation_bitfield == attestation.custody_bitfield
```
* Verify aggregate signature:
```python
participants = get_attestation_participants(state, attestation.data, attestation.aggregation_bitfield)
custody_bit_0_participants = get_attestation_participants(state, attestation.data, attestation.custody_bitfield)
custody_bit_1_participants = [i in participants for i not in custody_bit_0_participants]