Hardware Acceleration
Validity and Zero Knowledge rollups add significant overheads to processing transactions and smart contracts. These costs are incurred in on-chain as well as off-chain activities. On-chain activities include publishing/data storage and verification while off-chain costs include computation, hardware infrastructure, and network management.
We have created a compiler on RISC-V instructions and wish to improve it further to reduce program lengths. Our zkEVM Soma relies entirely on lookup operations and draws inspiration from the Lasso/Jolt Paradigm. It consists of four key components: a) Committing to the witness (MSME over BN 254), b) Verifying Memory Consistency, c) Validating Operations through Lookups, and d) Ensuring the validity of indexes in Lookups through constraints. We have extensively benchmarked our first version of the VM, and our simulations have revealed performance bottlenecks primarily in the MSME commitment stage, followed by memory checks and lookup operations. Our initial strategy for hardware acceleration involves running MSME on FPGA followed by a more refined approach where we can perform Field operations on FPGA.
While the overall system remains in active development, we have identified certain fundamental operations (listed above) that will presumably not change and will remain bottlenecks. Therefore, we’ve finalized the system requirements for the first implementation. We have also selected two FPGA models that seem to fit the requirements. We have already made progress on the design analysis for the implementation on FPGA. We’ve largely fixed inputs and outputs. Our team is trying to work out the frequencies of both and finalize what devices the FPGA connects to and how often. Below is a list of activities we have planned in this direction and updates regarding their completion:
Particulars | Status |
Lasso and Jolt Implementation | Done |
Custom Complier Dev Risc | Done |
Custom Compiler Dev RiscV with a reduced ISA | In-progress |
Defining System Requirements | Done |
Allocating functionality to the FPGA | In-progress |
Identifying FPGA features | Done |
Implementing FPGA design(HDL,RTL) | Not Started |
Testing | Not Started |
ASIC Development | Not Started |
Last updated