Herodotus Docs

Why Herodotus?

The complexity of building dApps has increased as Ethereum started to scale. Engineering teams hop over this complexity by introducing new trust assumptions, which we understand but at the same time believe are overall the wrong direction for the industry.
We believe that by taking advantage of cryptographic state commitments naturally embedded in every blockchain. We want to provide a solution for all these products that do not compromise the security inherited from the base layer. At the same time maintains the best possible user and developer experience.
We achieve this by combining zero-knowledge proofs, light clients, and state proofs.
With Ethereum and other blockchains scaling through sharding, achieved by multiple L2s being deployed. Building applications with synchronous assumptions is much harder and, in most cases, no longer possible.
By leveraging the fact that any Blockchain, by definition, is a data structure that behaves like a linked list, where all the elements in the list are linked cryptographically, that is because every block refers to its parent hash.
This fact allows us to walk through all historical blocks ever present on the chain in a cryptographically verifiable manner. As each one of these blocks contains a cryptographic commitment of its state, we are able to prove any data present inside each block at the time of its inclusion in the blockchain.
Herodotus leverages the fact that stateful blockchains such as Ethereum or Starknet commit and store their state cryptographically by using dedicated data structures such as:
  • Merkle Patricia Trees
  • Merkle Trees
  • Verkle Trees
The common property of these is the ability to prove the inclusion of any data saved in the data structure.
In the blockchain landscape, such data can be, for example:
  • Smart contract storage
  • Account balances
  • Account nonces
  • Smart contracts code commitments
  • Transactions
  • Transaction logs
Proving any of those is possible, given the root of a tree.
Herodotus makes sure such roots are available on each network supported by our infrastructure. To read more about how this is achieved, please check the next sections.