# Proposal: Second Opinion ZK Oracle

**URL:** <https://research.lido.fi/t/proposal-second-opinion-zk-oracle/10662>\
**Category:** Proposals\
**Created:** [September 12, 2025, 2:03pm UTC](https://research.lido.fi/t/proposal-second-opinion-zk-oracle/10662 "2025-09-12T14:03:17Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Lanski](https://dub1.discourse-cdn.com/flex013/user_avatar/research.lido.fi/lanski/32/4846_2.png) [@Lanski](https://research.lido.fi/u/Lanski)\
**Post date:** [September 19, 2025, 9:46am UTC](https://research.lido.fi/t/proposal-second-opinion-zk-oracle/10662/4 "2025-09-19T09:46:48Z")

</div>

Wow, had to go back a bit and dig into past threads to figure out what’s going on, so I’ll put down what I had to trace back for others to easily inform themselves for the vote.

LIP 23 was passed June 24 to improve the safety check for the accounting report in the case of a negative rebase. Among the improvements, there was the possibility to consult a secondary Oracle, but none was ready at the time:

> [@LIP-23: Negative rebase sanity check with second opinion](https://research.lido.fi/t/lip-23-negative-rebase-sanity-check-with-second-opinion/7543/1):
>
> Initially, it is suggested that there should be no secondary opinion source but rather an interface to integrate a preferred provider later on. Once available, the ideal secondary opinion source would be a ZKP-based Oracle, similar to those discussed on the forum (more details on this in references). Alternatively, options might be considered such as a third-party Oracle committee or even a multisig-controlled manual quasi-Oracle.

At the time, 3 implementations were suggested.

1. One approach was deemed too expensive:

> [@\[ZKLLVM\] Trustless ZK-proof TVL oracle](https://research.lido.fi/t/zkllvm-trustless-zk-proof-tvl-oracle/5028/13):
>
> Hey everyone, sharing a brief update on the state of =nil; Foundation’s [zkOracle for Lido](https://github.com/color-typea/lido-zkllvm-accounting-circuit/tree/circuit_implementation). Recently, we came to a crossroads for development. After running some preliminary tests on our first Prover version, we realized we would not be able to meet the desired requirement for Lido for this zkOracle. Specifically, those requirements are: Proof generation time: 30min Proof generation cost: $200 Our initial tests came out to approximately 2 hours for ~$1k. You can see our [first update here](https://research.lido.fi/t/zkllvm-trustless-zk-proof-tvl-oracle/5028/9). Af…

1. another approach hasn’t updated since 2023 (unless I’ve missed another thread):  
[DendrETH: A trustless oracle for liquid staking protocols](https://research.lido.fi/t/dendreth-a-trustless-oracle-for-liquid-staking-protocols/5136)

2. and this one, whose original thread can be found here:  
[https://research.lido.fi/t/zk-lido-oracle-powered-by-succinct/](https://research.lido.fi/t/zk-lido-oracle-powered-by-succinct/)

* * *

I’m very happy that all this is being built openly and we can see the rationale, design process, effects, audits and tests. Honestly amazing work again by the Lido team building in the open and organising other teams to help build critical pieces.

In the LIP-23 definition, the following security consideration is mentioned:  
“Considering the current design of the [Dual governance](https://research.lido.fi/t/dual-governance-design-and-implementation-proposal/7131), it is possible that the protocol will face a deadlock. If the protocol is in a rage quit state, votes cannot be executed unless all stETH is withdrawn from the rage quit contract. Withdrawal requires an Oracle report, so if something (…) would cause the trigger of the sanity check, the protocol enters a dead-lock situation, where stETH can not be withdrawn due to the lack of Oracle reports, Oracle reports do not pass due to sanity check, and the sanity check cannot be changed since votes are blocked by Dual Governance veto.”

Would the 2nd Opinion Oracle unwind this gridlock described above?

I think you hint at the response to my question here, but I rather ask than assume.

> [@VictorP](#):
>
> **Large or moderate false negative rebase:** Committee collusion could produce a rebase large enough to trigger the sanity checker. This would pause the protocol’s reporting pipeline until the DAO resolves it. Where a second opinion exists, the ZK Oracle’s data would be used to confirm the rebase and restore normal operation.

---

_[View the full topic](https://research.lido.fi/t/proposal-second-opinion-zk-oracle/10662)._
