diff --git a/docs/EVM_Circuit.md b/docs/EVM_Circuit.md index 6f1e6b4a05..99df9e2586 100644 --- a/docs/EVM_Circuit.md +++ b/docs/EVM_Circuit.md @@ -16,7 +16,7 @@ link to the original HackMD file: https://hackmd.io/@dieGzUCgSGmRZFQ7SDxXCA/BJF7 ## Purpose and Design -The [Ethereum Virtual Machine] (EVM) is a state machine that defines the rules of valid state transition in the Ethereum protocol. This means that it specifies a deterministic function under which the next valid EVM state is computed from the current EVM state. The execution part of EVM uses [opcodes] to realize these state transitions, which results in an Exection trace. +The [Ethereum Virtual Machine] (EVM) is a state machine that defines the rules of valid state transition in the Ethereum protocol. This means that it specifies a deterministic function under which the next valid EVM state is computed from the current EVM state. The execution part of EVM uses [opcodes] to realize these state transitions, which results in an Execution trace. ![EVMExecutionTrace-Circuit](https://hackmd.io/_uploads/SJyjmfR_3.png) diff --git a/docs/Keccak_Circuit.md b/docs/Keccak_Circuit.md index 01cd2b926f..d2a75214d7 100644 --- a/docs/Keccak_Circuit.md +++ b/docs/Keccak_Circuit.md @@ -174,7 +174,7 @@ In the Keccak Circuit, it corresponds to the column $\verb"data_rlc"$. #### output_rlc (hash_rlc) We are given the Keccak hash output being the $256$-bit word $$A[3][0] || A[2][0] || A[1][0] || A[0][0] \ .$$ -We divide each of above $4$ words into byte representation as $A[i][0]=\overline{A[i][0][7], ..., A[i][0][0]}$. This gives $32$ bytes $A[0][0][0..7]$, $A[1][0][0..7]$, $A[2][0][0..7]$, $A[3][0][0..7]$ for $i=0,1,2,3$. Then RLC using Keccak output $\verb"challenge"$ (= the challenge for evm word, i.e., after `FirstPhase`) to obtain $$\verb"ouput_rlc"=A[0][0][0]+A[0][0][1]*\verb"challenge"+...+A[3][0][7] * \verb"challenge"^{31} \ .$$ +We divide each of above $4$ words into byte representation as $A[i][0]=\overline{A[i][0][7], ..., A[i][0][0]}$. This gives $32$ bytes $A[0][0][0..7]$, $A[1][0][0..7]$, $A[2][0][0..7]$, $A[3][0][0..7]$ for $i=0,1,2,3$. Then RLC using Keccak output $\verb"challenge"$ (= the challenge for evm word, i.e., after `FirstPhase`) to obtain $$\verb"output_rlc"=A[0][0][0]+A[0][0][1]*\verb"challenge"+...+A[3][0][7] * \verb"challenge"^{31} \ .$$ which is the output of Keccak hash's RLC that we use in our zkevm-circuits' Keccak table. In the Keccak Circuit, it corresponds to the column $\verb"hash_rlc"$. ## The Keccak table diff --git a/integration-tests/tests/readme.md b/integration-tests/tests/readme.md index efed79a489..8765133b7c 100644 --- a/integration-tests/tests/readme.md +++ b/integration-tests/tests/readme.md @@ -4,7 +4,7 @@ Testings in `mainnet.rs` enable accessing a RPC node with debug API, and test any block or single transaction from the node. Trace and block witness would be rebuilt from the input data (block or tx) and then being mocking proven by a specified circuit. -The running parameters are specified by enviroment variables: +The running parameters are specified by environment variables: * CIRCUIT: the circuit used to launch mocking proven, can be `super` (by default), `evm`, `copy`, `rlp`, `tx`, `state`, and we can use `none` to make a dry-run (no provding but only building of witness) * GETH0_URL: the url of RPC node, like "https://eth-goerli.g.alchemy.com/v2/"