December 11, 2025
Earlier this year we released a prototype of Phantom, RISC-V FHE VM. Today we are pleased to release our first E2E implementation of Phantom.
In simple terms, Phantom is a RISC-V FHE VM that implements RV32I ISA using FHE circuits. Phantom can therefore execute arbitrary RISC-V binaries on arbitrary inputs, where both the input and the RISC-V binary are encrypted. This means, the executor of the program (i.e., the server) does not learn anything about the program or the input from the execution trace.
Since Phantom is a VM, it is not bounded by the limitations of the circuit model, which allows it to have:
Perhaps the most important feature of Phantom is that it fits well within the Rust \(\to\) RISC-V compilation pipeline: The developer can writes their programs in Rust without having to worry about having to adapt them to FHE.
To start using Phantom, check the README. In particular, follow the template example or the more complex OTC example.
For those interested in learning about the internals of Phantom’s construction or exploring methods to improve its performance, we’re also releasing a technical blog post
On average a cycle takes approx. 655ms on 32 cores (benchmarked on AWS r6i.metal instance) for a ~1KB encrypted program and a ~4KB encrypted memory. The implementation is highly parallelizable and we expect performance to improve with number of cores. Check the technical blog post to understand the bottlenecks and scope of improvements.