Project Name: Zk Labs Tron Rollup
Project Track: Web3
Team Name: ZK Labs
Team Member(s): 5 @ZkLabs
Dorahacks Project Link
Project Goal: Enabling 200x scale for Tron dApps by developing a ZK rollup for the Tron virtual machine.
ZkLabsTronRollup.pdf (491.9 KB)
Project Details:
zkEVM is an EVM equivalent and zk friendly virtual machine. A zkEVM allows for scaling Tron without sacrificing security or compatibility. Zk Labs Tron rollup can support existing applications, tooling, and infrastructure.
Zk Labs is a L2 powered by zero knowledge technology. Zk Labs eliminates the need for a native consensus protocol with ZK-proofs allowing sustained throughput hundreds of times higher than any L1.
We are deploying to Tron as a Zk layer. Zk Labs improves the usability of Tron dApps.
Zk Labs’s execution layer uses MotionEVM, our ZK EVM-compatible runtime. This allows us to port existing EVM infrastructure while adding new features like parallel processing. We plan to benefit the community in the following ways:
- Enable EVM dApps to get high throughputs and leverage Zero Knowledge infrastructure.
- zk Chain and privacy centric zones for dApps to control their own blockspace and avoid congestion.
- Custom sequencer logic such as block times, returning MEV to dApps, subsidizing fees.
- Provide tools to spin up private chains that use the virtual machine and ZK Labs execution layer.
- Advancing the ZK field by contributing to and conducting open research.
Background
It has become clear that rollups will be the dominant scaling solution across public chains.
With zk technology, blockchain-interaction costs will be significantly reduced, especially the transaction cost. Demand will be reduced by a significant amount as exchanges started using rollups, or (in the ideal case) even agreed to meet on the same rollup. In addition to significantly reducing transaction costs for users, this could have the added benefit of greatly reducing gas prices, and freeing up the Layer 1s for more complex contracts.
Zero-Knowledge Rollups
A zkRollup is a native layer 2 scaling solution which uses the blockchain for data avalability instead of computation, which means all funds are held by a smart contract.
For every batch of transactions, a zkSNARK cryptographic proof will be generated off-chain.
This zkSNARK proves the validity of every transaction in a batch which means it is not necessary to rely on Ethereum to verify each signature transaction.
The significance of this is that it allows verification to be carried out in constant time regardless of the number of transactions. This ability to verify proofs both efficiently and in constant time is at the heart of all zkRollups.
Besides, all transaction data is published cheaper on-chain, without signatures — under calldata. Since the data is published on-chain, there are no data availability problems that have plagued other L2 solutions such as Plasma.
Anyone can reconstruct the current state and history from this on-chain data. This prevents censorship and avoids the centralization of coordinators (rollup batch producers) — since anyone can build the state tree from scratch (and therefore become a coordinator).
Why zk-rollups?
The zk-rollup provides a much needed blockchain scaling mechanism that is trust-minimised.
For example, the TRON network handles under 100 transactions per second (tps), while the Visa network averages around 2,000 tps. This limitation in throughput directly affects the price paid for each transaction and constraints its adoption. A zk-rollup increases tps by hundreds of times, closing this efficiency gap.
How is thousands of tps Possible?
Blockchain scalability is improved by compressing each transaction to ~10 bytes: instead of including signatures on-chain, we send a zkSNARK which proves that 1000’s of signature verifications and other transaction validation checks have been correctly carried out off-chain.
Since signatures make up a large percentage of transaction costs (gas), in practice zk-rollups have the effect of significantly reducing the average cost per transaction. This allows zkprotocol to fit more transactions per batch, which results in a greater overall throughput.