# Blocknative Relay proposer public key update

**URL:** <https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092>\
**Category:** Node Operators\
**Created:** [March 10, 2023, 8:48pm UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092 "2023-03-10T20:48:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ldelisle\_blocknative](https://dub1.discourse-cdn.com/flex013/user_avatar/research.lido.fi/ldelisle_blocknative/32/1992_2.png) [@ldelisle\_blocknative](https://research.lido.fi/u/ldelisle_blocknative)\
**Post date:** [March 10, 2023, 8:48pm UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092/1 "2023-03-10T20:48:53Z")

</div>

**Events**

Earlier today, Friday, March 10, blocks sent through the Blocknative Relay began sending invalid `proposer public key`s. The blocks were committed by Validators but on `getPayload` requests the relay could not deliver a block as it was stored under an invalid `proposer public key`. A fix was developed ( [Add proposer pubkey check in getheader by aratz-lasa · Pull Request #103 · blocknative/dreamboat · GitHub](https://github.com/blocknative/dreamboat/pull/103)) and deployed to Goerli and Mainnet at 13:30 UTC on Friday, March 10, and the issue has been resolved. This fix prevents `getHeader` requests for blocks with invalid `proposer public key`s. The Blocknative Relay no longer delivers bids if the block does not have the correct `proposer public key` .

**Impact**

We are aware of several slots that were missed due to an invalid `proposer public key` . We are continuing to determine the impact on validators and slots.

**Improvements**

- Implemented [Add proposer pubkey check in getheader by aratz-lasa · Pull Request #103 · blocknative/dreamboat · GitHub](https://github.com/blocknative/dreamboat/pull/103) that prevents the return of `getHeader` if the requested proposer address differs. Instead, validators would receive no builder bid.
- Improvements on internal missed slot observability.

---

<div class="post-metadata">

**Author:** ![Izzy](https://dub1.discourse-cdn.com/flex013/user_avatar/research.lido.fi/izzy/32/320_2.png) [@Izzy](https://research.lido.fi/u/Izzy)\
**Post date:** [March 20, 2023, 7:36am UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092/2 "2023-03-20T07:36:34Z")

</div>

Thank you for the incident update. I can confirm that from our side it looks like normal operation has resumed, so NOs may consider re-enabling the blocknative relay.

---

<div class="post-metadata">

**Author:** ![Kuhan](https://avatars.discourse-cdn.com/v4/letter/k/0ea827/32.png) [@Kuhan](https://research.lido.fi/u/Kuhan)\
**Post date:** [March 24, 2023, 10:36am UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092/3 "2023-03-24T10:36:53Z")

</div>

Thank you for the write up. It doesn’t explain _why_ the requests were being stored under an “invalid proposer public key” nor what had changed to cause this given everything was working fine previously?

---

<div class="post-metadata">

**Author:** ![ldelisle\_blocknative](https://dub1.discourse-cdn.com/flex013/user_avatar/research.lido.fi/ldelisle_blocknative/32/1992_2.png) [@ldelisle\_blocknative](https://research.lido.fi/u/ldelisle_blocknative)\
**Post date:** [March 31, 2023, 2:13am UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092/4 "2023-03-31T02:13:41Z")

</div>

The Blocknative team analyzed the reported missed slots by Lido and determined that 17 slots were missed due to a bug in the validation of blocks. We reimbursed the total rewards (0.934127638 ETH) for those slots to the Lido Execution Layer Rewards Vault contract, 0x388C818CA8B9251b393131C08a736A67ccB19297, in the following transaction: [0xb9afce10d52fabb9065cbbae69947750fa5f15695c1073f50c077f015a93ae87](https://etherscan.io/tx/0xb9afce10d52fabb9065cbbae69947750fa5f15695c1073f50c077f015a93ae87).

We determined the expected rewards by looking at our bid at the end of the proposal period for each missed slot (12 second mark):

- 5966288; 0.025005669 ETH
- 5961902; 0.050399232 ETH
- 5963874; 0.066077672 ETH
- 5966857; 0.059810491 ETH
- 5966915; 0.030232819 ETH
- 5965996; 0.103487019 ETH
- 5966989; 0.027248057 ETH
- 5967046; 0.019968912 ETH
- 5967087; 0.059889327 ETH
- 5967821; 0.093399725 ETH
- 5967826; 0.019235052 ETH
- 5968113; 0.126925462 ETH
- 5968129; 0.039550142 ETH
- 5968146; 0.028233159 ETH
- 5968151; 0.094648156 ETH
- 5968239; 0.064705085 ETH
- 5968937; 0.025311660 ETH

Total: 0.934127638 ETH

The fix was implemented within 7 hours of initial issue reporting, which you can see in the public repository here: [Add proposer pubkey check in getheader by aratz-lasa · Pull Request #103 · blocknative/dreamboat · GitHub](https://github.com/blocknative/dreamboat/pull/103). This fix resolved responding to a `getHeader` request with an invalid block hash because the submitted block had an incorrect proposer public key.

The validation error was exposed during a phased release in alpha testing external (non-Blocknative) builders submitting to the Blocknative Relay. We suspended the alpha testing on Friday, March 17 at 17:00 UTC to conduct a comprehensive review of the relay code and further enhance validation of submitted blocks. We expect to re-enable external block builder submissions following successful completion of this evaluation.

---

<div class="post-metadata">

**Author:** ![Sven](https://avatars.discourse-cdn.com/v4/letter/s/e47c2d/32.png) [@Sven](https://research.lido.fi/u/Sven)\
**Post date:** [March 31, 2023, 10:28am UTC](https://research.lido.fi/t/blocknative-relay-proposer-public-key-update/4092/6 "2023-03-31T10:28:04Z")

</div>

Thank you @ldelisle_blocknative for the post-mortem and insight into the fix, we very much appreciate the transparency and the follow-up on this incident.
