Hello! I’m trying to figure out how the proving system works. I see there are two provers in the 0xPolygonHermez and 0xPolygonZero orgs: zkevm-prover and eth-tx-proof. According to the docs, their internal structure is pretty similar (1, 2): both are divided in the same arithmetic, keccak, etc modules.

There is also a blogpost which states that the Polygon zkEVM Prover now supports a Type 1 mode, linking to the 0xPolygonZero repo.

So the question is, what is the difference? What is the place of each of them in the ecosystem?