Agenda
Project / work-stream updates:
- Project 1) 2) 6) [Ignacio]
- Project 3) [Marcin]
- Project 4) [Francesco]
- Project 5) [Han]
- Project 7) [Cody]
More updates:
Meeting Time: Wednesday, July 08, 2026 at 15:00 UTC (60 minutes)
Project / work-stream updates:
More updates:
Meeting Time: Wednesday, July 08, 2026 at 15:00 UTC (60 minutes)
This was the sixth CGE VM breakout call focused on project updates and technical presentations. Ignacio led the meeting and shared updates on projects 1 and 2, including the release of CGVM version 0.50 with rebases on LabCell and DevNet6, support for external transaction tools for benchmark fixture filling, and improvements to execution witness testing and validation. Marcin provided updates on project 3 regarding CGVM Guest API Standardization, reporting on 8 accepted standards and 2 currently under review, with particular focus on ELF loading specifications and memory allocation considerations for precompiles. Francesco presented on project 4, discussing the sync protocol challenge of validating proofs from weak subjectivity checkpoints to the head of the chain, and proposed using recursive execution proofs with Merkle trees or MMR data structures to simplify consensus client implementations. Han shared updates on project 5’s infrastructure work, including scalability checks on the EF cluster that showed near-linear scaling and CPU bounding issues between 2-4 GPUs, and updates to zkBoost requiring new API changes for proof requests and verification. Cody and Francesco then presented on project 7’s security work, with Cody discussing RISC-V compliance testing, formal verification progress, and a new fuzzing project, while Francesco demonstrated the SAIL-based EVM formal specification that could enable feature parity with Python specs and support for RISC-V guest program verification. Ben, an intern, presented his work comparing heap allocators in Zisk, finding that Bump allocator was naturally most efficient but noting memory usage concerns, particularly at higher gas limits where it could cause out-of-memory issues, recommending more sophisticated allocators for safety.
The meeting began with participants joining and checking audio and recording functionality. Ladislaus made sure everyone had proper access and made Ignacio a co-host. The group agreed to wait for additional participants before starting the main discussion, with Ignacio planning to share his screen once the meeting commenced.
Ignacio provided updates on several CGE VM projects, highlighting the release of CGVM version 0.50 which includes rebases on LabCell and DevNet6, support for external transition tools for filling test fixtures, and new tests for invalid guest program inputs and chain config validation. He also introduced a new CLI tool for creating stateless input bytes using RPCs from CLs and ELs in devnets, and discussed progress on a Hive dashboard tracking execution witness compliance across different EVMs including Etherex and Besu. The team identified and fixed a bug in Geth regarding execution witness generation, and Ignacio mentioned upcoming work on including benchmark fixtures using Geth in the next release.
Marcin provided an update on project 3, CKVM Guest API Standardization, reporting that eight standards have been accepted and two are open for review. He explained key changes to the ELF loading standard, particularly regarding the interpretation of executable and readable flags, recommending that zkVMs support “execute and read” rather than “execute only.” Marcin also shared results from vendor testing, noting that only SP1 and Zisk support standard-compliant arbitrary length outputs, and identified a collision issue where precompiles in static libraries must not allocate in the guest heap.
Francesco presented an update on project number four, focusing on the sync protocol for nodes joining the network. He discussed the challenge of validating payloads from the weak subjectivity checkpoint up to the chain head, which could involve up to 26.9 gigabytes of proof content. Francesco proposed using recursive execution proofs and data structures like Merkle trees or MMRs to simplify the sync process and reduce complexity in consensus clients. The next steps include specifying the approach and creating a proof-of-concept implementation to evaluate feasibility.
Han presented an update on project number five, focusing on the scalability check of the EF cluster. The benchmark results showed good scaling overall, except for CPU bounding when increasing from 2 to 4 GPUs. Han also mentioned running benchmarks on mainnet blocks and identified issues with the prover being out of memory during testing. A new release of zkBoost was created to adapt to spec-compatible input, requiring API changes and updates to the proof type enum. When asked about CPU saturation stats, Han noted that while GPU idling was observed, strong evidence from CPU stats was lacking.
Cody reported progress on the RISC-V compliance testing project, including upgrading the test suite to version 4.0 which found additional bugs, and ongoing work on formal verification of RISC-V compliance for ZISC following previous work by Nethermind and other teams. He mentioned meeting with Hector of ZISC to review the effort from a ZISC expertise standpoint and noted that a fuzzing project through a grant has finished with infrastructure being built for fuzzing on array. Cody also highlighted the release of the Flock proving system as a potential innovation to remove dependence on algebraic hashing, and introduced Tao’s work on an EVM specification in SAIL language, which could help achieve feature parity with Python specs for formal verification collaboration.
Francesco presented SAIL, a formal specification of the EVM that includes EVM core components and a kernel interface for host interaction. He demonstrated how SAIL can compile to various backends including RISC-V and C, and mentioned ongoing work to align the state model with execution specs for potential adoption by the spec team. Francesco also discussed experiments using ISLARIS for RISC-V guest program verification and expressed interest in community collaboration on leveraging these tools for security hardening.
Ben presented his internship findings on optimizing zkVMs, focusing on guest program improvements for IFRX and ZISK pairs which achieved a 42% combined speedup. He conducted a performance comparison of different allocators (BAM, BLMalloc, TALC, and TLFS) on mainnet blocks and EST fixtures, finding that BAM was the most efficient but could cause memory issues at higher gas limits. The team discussed concerns about memory limits in zkVMs, with Marcin noting potential limitations to 1GB and Yi confirming 4GB support in OpenVM 2.1, leading to a consensus that more sophisticated allocators like unalloc might be safer than the current BAMA approach.
vj4R3xn.)vj4R3xn.)vj4R3xn.)YouTube recording available: https://youtu.be/omWy4vNM6Pg