From 0f398576533d9f3aa88692668e06cb1c4abc187b Mon Sep 17 00:00:00 2001 From: terence Date: Tue, 18 Mar 2025 12:27:06 -0700 Subject: [PATCH] Clean up infinity signature usages (#15072) --- beacon-chain/rpc/eth/validator/BUILD.bazel | 1 + beacon-chain/rpc/eth/validator/handlers_block.go | 7 ++++--- beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel | 1 + .../rpc/prysm/v1alpha1/validator/proposer_altair.go | 3 ++- changelog/tt_clean_up.md | 3 +++ consensus-types/primitives/BUILD.bazel | 1 - consensus-types/primitives/randao.go | 3 --- crypto/bls/blst/signature_test.go | 3 +-- 8 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 changelog/tt_clean_up.md delete mode 100644 consensus-types/primitives/randao.go diff --git a/beacon-chain/rpc/eth/validator/BUILD.bazel b/beacon-chain/rpc/eth/validator/BUILD.bazel index 3dda038b07..442d16bd2e 100644 --- a/beacon-chain/rpc/eth/validator/BUILD.bazel +++ b/beacon-chain/rpc/eth/validator/BUILD.bazel @@ -37,6 +37,7 @@ go_library( "//consensus-types/blocks:go_default_library", "//consensus-types/primitives:go_default_library", "//consensus-types/validator:go_default_library", + "//crypto/bls/common:go_default_library", "//encoding/bytesutil:go_default_library", "//monitoring/tracing/trace:go_default_library", "//network/httputil:go_default_library", diff --git a/beacon-chain/rpc/eth/validator/handlers_block.go b/beacon-chain/rpc/eth/validator/handlers_block.go index 1f229e1719..1f86305df6 100644 --- a/beacon-chain/rpc/eth/validator/handlers_block.go +++ b/beacon-chain/rpc/eth/validator/handlers_block.go @@ -16,6 +16,7 @@ import ( fieldparams "github.com/prysmaticlabs/prysm/v5/config/fieldparams" "github.com/prysmaticlabs/prysm/v5/consensus-types/blocks" "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" + "github.com/prysmaticlabs/prysm/v5/crypto/bls/common" "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" "github.com/prysmaticlabs/prysm/v5/monitoring/tracing/trace" "github.com/prysmaticlabs/prysm/v5/network/httputil" @@ -57,7 +58,7 @@ func (s *Server) ProduceBlockV2(w http.ResponseWriter, r *http.Request) { var randaoReveal []byte if rawSkipRandaoVerification == "true" { - randaoReveal = primitives.PointAtInfinity + randaoReveal = common.InfiniteSignature[:] } else { rr, err := bytesutil.DecodeHexWithLength(rawRandaoReveal, fieldparams.BLSSignatureLength) if err != nil { @@ -109,7 +110,7 @@ func (s *Server) ProduceBlindedBlock(w http.ResponseWriter, r *http.Request) { var randaoReveal []byte if rawSkipRandaoVerification == "true" { - randaoReveal = primitives.PointAtInfinity + randaoReveal = common.InfiniteSignature[:] } else { rr, err := bytesutil.DecodeHexWithLength(rawRandaoReveal, fieldparams.BLSSignatureLength) if err != nil { @@ -174,7 +175,7 @@ func (s *Server) ProduceBlockV3(w http.ResponseWriter, r *http.Request) { var randaoReveal []byte if rawSkipRandaoVerification == "true" { - randaoReveal = primitives.PointAtInfinity + randaoReveal = common.InfiniteSignature[:] } else { rr, err := bytesutil.DecodeHexWithLength(rawRandaoReveal, fieldparams.BLSSignatureLength) if err != nil { diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel index 4eb081712a..b05c99b247 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel @@ -73,6 +73,7 @@ go_library( "//container/trie:go_default_library", "//contracts/deposit:go_default_library", "//crypto/bls:go_default_library", + "//crypto/bls/common:go_default_library", "//crypto/hash:go_default_library", "//crypto/rand:go_default_library", "//encoding/bytesutil:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_altair.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_altair.go index c99fdd51ca..306b796a70 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_altair.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_altair.go @@ -8,6 +8,7 @@ import ( "github.com/prysmaticlabs/prysm/v5/consensus-types/interfaces" "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" "github.com/prysmaticlabs/prysm/v5/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/crypto/bls/common" "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" "github.com/prysmaticlabs/prysm/v5/monitoring/tracing/trace" ethpb "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" @@ -96,7 +97,7 @@ func (vs *Server) getSyncAggregate(ctx context.Context, slot primitives.Slot, ro syncSig := bls.AggregateSignatures(sigsHolder) var syncSigBytes [96]byte if syncSig == nil { - syncSigBytes = [96]byte{0xC0} // Infinity signature if itself is nil. + syncSigBytes = common.InfiniteSignature // Infinity signature if itself is nil. } else { syncSigBytes = bytesutil.ToBytes96(syncSig.Marshal()) } diff --git a/changelog/tt_clean_up.md b/changelog/tt_clean_up.md new file mode 100644 index 0000000000..89e75b9f6d --- /dev/null +++ b/changelog/tt_clean_up.md @@ -0,0 +1,3 @@ +### Ignored + +- Clean up infinity signature usages \ No newline at end of file diff --git a/consensus-types/primitives/BUILD.bazel b/consensus-types/primitives/BUILD.bazel index f9258a4114..708fda6383 100644 --- a/consensus-types/primitives/BUILD.bazel +++ b/consensus-types/primitives/BUILD.bazel @@ -11,7 +11,6 @@ go_library( "execution_address.go", "kzg.go", "payload_id.go", - "randao.go", "slot.go", "sszbytes.go", "sszuint64.go", diff --git a/consensus-types/primitives/randao.go b/consensus-types/primitives/randao.go deleted file mode 100644 index db4148d210..0000000000 --- a/consensus-types/primitives/randao.go +++ /dev/null @@ -1,3 +0,0 @@ -package primitives - -var PointAtInfinity = append([]byte{0xC0}, make([]byte, 95)...) diff --git a/crypto/bls/blst/signature_test.go b/crypto/bls/blst/signature_test.go index 31b5fe526e..bd8908b961 100644 --- a/crypto/bls/blst/signature_test.go +++ b/crypto/bls/blst/signature_test.go @@ -171,8 +171,7 @@ func TestEth2FastAggregateVerify_ReturnsTrueOnG2PointAtInfinity(t *testing.T) { var pubkeys []common.PublicKey msg := [32]byte{'h', 'e', 'l', 'l', 'o'} - g2PointAtInfinity := append([]byte{0xC0}, make([]byte, 95)...) - aggSig, err := SignatureFromBytes(g2PointAtInfinity) + aggSig, err := SignatureFromBytes(common.InfiniteSignature[:]) require.NoError(t, err) assert.Equal(t, true, aggSig.Eth2FastAggregateVerify(pubkeys, msg)) }