zkevm-differences is a tool for programmatically hunting opcode incompatibilities between standard Ethereum Virtual Machine (EVM) implementations and certain zkEVM variants.
The script check_opcodes.py
fetches EVM opcode data from a remote URL and compares it against another remote (or inline) source of zkEVM opcodes. Any differences found are printed to the console and can be summarized in differences.md
.
- Python 3.7+
- pip (Python package manager)
- An active internet connection (the script fetches CSV data from remote URLs).
- Clone the repository:
git clone https://github.com/SYS-Labs/zkevm-differences.git cd zkevm-differences
- Install the required Python libraries:
Note: Currently,
pip install requests
requests
is the primary dependency.
-
Run the comparison script:
python check_opcodes.py
-
Review the output:
The script prints any differences found between the EVM and zkEVM opcodes to the terminal. -
Check
differences.md
:- This file may include additional notes or context.
- Feel free to update it with your findings.
Contributions are welcome! If you find issues or have ideas for improving the script:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
Alternatively, you can open an issue to discuss any proposed changes.
This project is released under the MIT License. Feel free to use and modify the code under the terms of the license.