zkSync has announced that the alpha testnet of zkSync 2.0 is now live. The testnet features zkEVM and zkPorter technology and brings zkSync closer to successfully enabling access to Decentralized Finance for everyone around the world. In addition, interested individuals can check zkSync 2.0 with block explorer.
Some Key Points
- zkEVM is ready with the instruction set finalized, and both implementations complete in circuit and execution environment.
- zkSync’s compiler can compile simple Solidity and Zinc smart contracts into zkEVM bytecode.
- The core infrastructure is functional with the successful integration of the entire node and can deploy or execute compiled smart contracts.
The zkEVM and core 2.0 infrastructure are ready and waiting to be made public. However, the compiler needs a little work so it can cover the edge cases correctly. Access to the zkEVM, compiler, and core SDK will be open as soon as the compiler is 100% ready.
Essential Differences between zkSync 2.0 And Ethereum
Solidity Smart Contracts - Although most opcodes are supported, there are some exceptions
- ADDMOD, SMOD, MULMOD, EXP, and CREATE2 opcodes will not be supported during the current release. However, support for them will be added in the future.
- KECCAK256 opcode will not be supported for the time being, and zkSync will replace its invocations with another hash function. zkSync does plan to reintroduce KECCAK256 as a precompile at a later time.
- As Ethereum is planning to remove the SELFDESTRUCT opcode, zkSync has not included it in zkSync 2.0
- Since 256 bit XOR/AND/OR opcodes exist only on complied solidity code, zkSync may remove support for them.
Gas - zkSync 2.0 has a different concept of gas, and transaction prices will see fluctuations based on the current L1 gas prices and cost of ZKP generation. In addition, all smart contract calls will have a maximum number of zkEVM steps and storage write parameters.
Web3 API - The Web3 API implementation will be included in the next release and will be compatible with the Web3 Standard as defined by Ethereum documentation, allowing services to be easily integrated. zkSync has several features missing on L1, including finalized blocks and notion of command.
Signing Transactions - Users can authorize transactions in two ways on zkSync 2.0. They can sign transactions with their Ethereum wallets (MetaMask) through an EIP712 message, or an account can set up a public key to zkSync’s internal Schnorr signatures and sign transactions. This will allow wallets to interact with zkSync 2.0 without any extra cost.
Storage Efficiency - Storage slots of AMM contracts will be overwritten just once as slot overrides are implemented only once per block.
Smart Contract Limitations - zkSync will initially have a limit of 32 smart contracts per transaction. This limitation will stay in place until the implementation of a reliable accounting mechanism. The team is working on reducing restrictions such as these, with the goal being to have zero limitations in the final version.
zkSync 2.0 Core Infrastructure
zkSync’s core infrastructure consists of the following,
- Full Node - The full node is the pre-circuit executor environment for the zkEVM bytecode, usable seconds after the transaction is sent. It helps in filtering out incorrect transactions, executing the correct transactions in the mempool.
- The Prover - The prover receives witnesses for blocks while generating zero-knowledge proofs.
- The Interactor - The interactor provides tools for interacting with Ethereum L1. It also calculates transaction fees based on ZKP generation, token prices, and gas prices.
- The Paranoid Monitor - Prometheus, elastic, sentry, uptime, several independent incident notification systems, and custom health-check services.
The core infrastructure is functional, with the zkEVM integration already complete.
Disclaimer: This article is provided for informational purposes only. It is not offered or intended to be used as legal, tax, investment, financial, or other advice.