From 867dea3473733946d0eb51b8e3132eb3ccacfb2c Mon Sep 17 00:00:00 2001 From: Hsiao-Wei Wang Date: Tue, 5 Feb 2019 19:16:10 +0800 Subject: [PATCH 1/3] Fix `verify_bitfield` --- specs/core/0_beacon-chain.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/specs/core/0_beacon-chain.md b/specs/core/0_beacon-chain.md index cc78c8b718..ed5d1b3b34 100644 --- a/specs/core/0_beacon-chain.md +++ b/specs/core/0_beacon-chain.md @@ -1099,9 +1099,11 @@ def verify_bitfield(bitfield: bytes, committee_size: int) -> bool: if len(bitfield) != (committee_size + 7) // 8: return False - for i in range(committee_size + 1, committee_size - committee_size % 8 + 8): - if get_bitfield_bit(bitfield, i) == 0b1: - return False + # Check if `bitfield` has padding zeros + if committee_size % 8 != 0: + for i in range(committee_size, committee_size - committee_size % 8 + 8): + if get_bitfield_bit(bitfield, i) == 0b1: + return False return True ``` From 1d76ad65ec4dcde8666d57344057d9060ed30b7f Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Feb 2019 11:49:52 -0800 Subject: [PATCH 2/3] Update 0_beacon-chain.md --- specs/core/0_beacon-chain.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/specs/core/0_beacon-chain.md b/specs/core/0_beacon-chain.md index ed5d1b3b34..6b41e6c8aa 100644 --- a/specs/core/0_beacon-chain.md +++ b/specs/core/0_beacon-chain.md @@ -1100,10 +1100,9 @@ def verify_bitfield(bitfield: bytes, committee_size: int) -> bool: return False # Check if `bitfield` has padding zeros - if committee_size % 8 != 0: - for i in range(committee_size, committee_size - committee_size % 8 + 8): - if get_bitfield_bit(bitfield, i) == 0b1: - return False + for i in range(committee_size, len(bitfield) * 8): + if get_bitfield_bit(bitfield, i) == 0b1: + return False return True ``` From 180c8a0e728cf2f3c21e2ea10a0d439efa9fd792 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Feb 2019 11:51:06 -0800 Subject: [PATCH 3/3] Update 0_beacon-chain.md --- specs/core/0_beacon-chain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/core/0_beacon-chain.md b/specs/core/0_beacon-chain.md index 6b41e6c8aa..77196312b9 100644 --- a/specs/core/0_beacon-chain.md +++ b/specs/core/0_beacon-chain.md @@ -1099,7 +1099,7 @@ def verify_bitfield(bitfield: bytes, committee_size: int) -> bool: if len(bitfield) != (committee_size + 7) // 8: return False - # Check if `bitfield` has padding zeros + # Check `bitfield` is padded with zero bits only for i in range(committee_size, len(bitfield) * 8): if get_bitfield_bit(bitfield, i) == 0b1: return False