<aside>

This is an AI driven research / web survey. I’ve asked Perplexity, Claude (Opus) and Gemini to research contract authenticated signature verification (EVM) using the following prompt. Afterwards I askes Claude to summarize the individual agents’ findings. I’ve added the respective responses at the bottom of this summary.

https://claude.ai/share/7f2f6105-9edf-4860-ab09-189a5543a432

</aside>

<aside> 👉

It would be very useful to be able to prove that an EIP-1271 signature was considered valid by the underlying contract account at a certain block height. As a side effect of the EIP-1271 contract signature method, signature validity can change over time and the information that some signature was considered valid at some point in time is not persisted on chain. How could one prove that a certain solidity view function would return a certain value at a given block height, using an Ethereum RLP / Merkle state proof over a block's trusted historic stateroot. When we assume that creating this proof requires executing the respective solidity function (isSignatureValid in our example), it's also mandatory to prove that the actually executed code is the one the verifier expects. From my understanding this kind of proof can only be generated in zero knowledge, eventually making use of zkEVM implementations, but that won't be compatible with the way how Solidity works. Which approaches or protocols address that problem today and what would be a better environment than Ethereum / EVM based chains to create and verify this kind of proof?

</aside>

Ethereum's state commitment only stores raw storage values, not the outputs of view function executions. While you can prove that specific storage slots contained certain values at a given block using RLP/Merkle state proofs, proving that isValidSignature() would return 0x1626ba7e requires reconstructing and executing the contract logic—something standard Merkle proofs cannot accomplish.

Current Technical Approaches

Merkle State Proofs + Storage Reconstruction

The foundational approach leverages Ethereum's merkle-patricia trie (MPT) architecture through EIP-1186 storage proofs. This involves:

  1. Obtaining the historical block header containing the trusted stateRoot
  2. Generating account proofs to verify the contract's state at that block
  3. Extracting storage proofs for all slots affecting isValidSignature logic
  4. Reconstructing the execution environment with proven historical state

Herodotus Protocol represents the most advanced implementation, using ZK-STARKs with dual Merkle Mountain Range (MMR) accumulators to verify data from any point in Ethereum's history. They've successfully created proofs for all Ethereum blocks since genesis, processing blocks in batches of ~1,350 and publishing proofs on-chain.

However, this approach faces significant limitations:

Zero-Knowledge Execution Proofs

zkEVM implementations offer a more direct solution by proving contract execution rather than just storage state:

Axiom Protocol pioneered this with their ZK coprocessor architecture, enabling smart contracts to trustlessly compute over Ethereum's entire history. Their three-stage process (Read → Compute → Verify) allows proving arbitrary computations over historical state, including complex EIP-1271 validation logic. However, they recently announced ending support for Axiom V2 in December 2024.