diff --git a/prover/zkevm/prover/statemanager/lookups.go b/prover/zkevm/prover/statemanager/lookups.go deleted file mode 100644 index 75e6816625..0000000000 --- a/prover/zkevm/prover/statemanager/lookups.go +++ /dev/null @@ -1,36 +0,0 @@ -package statemanager - -import ( - "github.com/consensys/linea-monorepo/prover/protocol/ifaces" - "github.com/consensys/linea-monorepo/prover/protocol/wizard" - mimcCodeHash "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/mimccodehash" - "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/statesummary" -) - -// lookupStateSummaryCodeHash adds the lookup constraints to ensure the MiMC -// CodeHash module and the StateSummary module contains consistent consistent -// pairs of (MiMCCodeHash, KeccakCodeHash) -func lookupStateSummaryCodeHash(comp *wizard.CompiledIOP, - accountPeek *statesummary.AccountPeek, - codeHash *mimcCodeHash.Module) { - // All the state manager operations are performed in round zero - round := 0 - - // Lookup between code hashes (Keccak and MiMC) between state summary initial account and MiMC code hash module - comp.InsertInclusionDoubleConditional(round, - ifaces.QueryID("LOOKUP_MIMC_CODEHASH_INITIAL_ACCOUNT_INTO_STATE_SUMMARY"), - []ifaces.Column{accountPeek.Initial.KeccakCodeHash.Hi, accountPeek.Initial.KeccakCodeHash.Lo, accountPeek.Initial.MiMCCodeHash, accountPeek.Initial.CodeSize}, - []ifaces.Column{codeHash.CodeHashHi, codeHash.CodeHashLo, codeHash.NewState, codeHash.CodeSize}, - accountPeek.Initial.ExistsAndHasNonEmptyCodeHash, - codeHash.IsHashEnd, - ) - - // Lookup between code hashes (Keccak and MiMC) between state summary final account and MiMC code hash module - comp.InsertInclusionDoubleConditional(round, - ifaces.QueryIDf("LOOKUP_MIMC_CODEHASH_FINAL_ACCOUNT_INTO_STATE_SUMMARY"), - []ifaces.Column{accountPeek.Final.KeccakCodeHash.Hi, accountPeek.Final.KeccakCodeHash.Lo, accountPeek.Final.MiMCCodeHash, accountPeek.Final.CodeSize}, - []ifaces.Column{codeHash.CodeHashHi, codeHash.CodeHashLo, codeHash.NewState, codeHash.CodeSize}, - accountPeek.Final.ExistsAndHasNonEmptyCodeHash, - codeHash.IsHashEnd, - ) -} diff --git a/prover/zkevm/prover/statemanager/state_manager.go b/prover/zkevm/prover/statemanager/state_manager.go index a115ba281a..76c416fff9 100644 --- a/prover/zkevm/prover/statemanager/state_manager.go +++ b/prover/zkevm/prover/statemanager/state_manager.go @@ -6,6 +6,7 @@ import ( "github.com/consensys/linea-monorepo/prover/utils" "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/accumulator" "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/accumulatorsummary" + "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/codehashconsistency" "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/mimccodehash" "github.com/consensys/linea-monorepo/prover/zkevm/prover/statemanager/statesummary" ) @@ -18,6 +19,7 @@ type StateManager struct { accumulatorSummaryConnector accumulatorsummary.Module StateSummary statesummary.Module // exported because needed by the public input module mimcCodeHash mimccodehash.Module + codeHashConsistency codehashconsistency.Module } // Settings stores all the setting to construct a StateManager and is passed to @@ -51,7 +53,7 @@ func NewStateManager(comp *wizard.CompiledIOP, settings Settings) *StateManager sm.accumulatorSummaryConnector.ConnectToStateSummary(comp, &sm.StateSummary) sm.mimcCodeHash.ConnectToRom(comp, rom(comp), romLex(comp)) sm.StateSummary.ConnectToHub(comp, acp(comp), scp(comp)) - lookupStateSummaryCodeHash(comp, &sm.StateSummary.Account, &sm.mimcCodeHash) + sm.codeHashConsistency = codehashconsistency.NewModule(comp, "CODEHASHCONSISTENCY", &sm.StateSummary, &sm.mimcCodeHash) return sm } @@ -79,10 +81,7 @@ func NewStateManagerNoHub(comp *wizard.CompiledIOP, settings Settings) *StateMan sm.accumulatorSummaryConnector.ConnectToStateSummary(comp, &sm.StateSummary) sm.mimcCodeHash.ConnectToRom(comp, rom(comp), romLex(comp)) - - // Waiting for the resolution of the mimc code hash issue - // - // lookupStateSummaryCodeHash(comp, &sm.StateSummary.Account, &sm.mimcCodeHash) + sm.codeHashConsistency = codehashconsistency.NewModule(comp, "CODEHASHCONSISTENCY", &sm.StateSummary, &sm.mimcCodeHash) return sm } @@ -95,6 +94,7 @@ func (sm *StateManager) Assign(run *wizard.ProverRuntime, shomeiTraces [][]state sm.accumulator.Assign(run, utils.Join(shomeiTraces...)) sm.accumulatorSummaryConnector.Assign(run) sm.mimcCodeHash.Assign(run) + sm.codeHashConsistency.Assign(run) }