charon
charon copied to clipboard
Fix Signature Verification Issue Causing Missed Blocks on Gnosis Chain
🎯 Problem to be solved
An issue in Charon is apparently causing validators on the Gnosis chain to miss block proposals. The issue appears to be related to a v1 endpoint failing to verify signatures, likely due to problems with the state root or version used by Charon for verification. This impacts the performance of Gnosis validators, with even a small set of 30 validators missing proposals every 20 minutes.
🛠️ Proposed solution
- [ ] Add detailed logging to the problematic functions (verify eth2 sign data, verify partial sig) to gather more information
- [ ] Investigate differences in signing or key mechanisms specific to Gnosis compared to other chains
- [ ] Arrange a call with external experts (e.g., Dappline) to review the code and discuss potential solutions
- [ ] Analyze the state root and version handling in Charon, focusing on Gnosis-specific implementations
15:49:00.138 ERRO vapi Validator api 5xx response: signature not verified {"status_code": 500, "message": "Internal server error", "duration": "3.133976ms", "vapi_endpoint": "submit_proposal_v1"} tbls/herumi.go:297 .Verify tbls/tbls.go:122 .Verify eth2util/signing/signing.go:109 .Verify core/eth2signeddata.go:41 .VerifyEth2SignedData core/validatorapi/validatorapi.go:1110 .verifyPartialSig core/validatorapi/validatorapi.go:417 .SubmitProposal core/validatorapi/router.go:804 .func11