Galois is Union’s Zero-Knowledge Consensus Proving system. We’ve built Galois around three fundamental principles:
- Extremely fast: fast proving times equate to fast bridging and good user experience. Galois can generate consensus proofs for 128 validators within seven seconds.
- Low-cost: Burning millions of dollars in monthly cloud infrastructure costs to generate ZK proofs is not a sustainable model. Generating proofs should be super cheap.
- Censorship-resistance: in order to combat censorship attacks, anyone should be able to generate consensus proofs on their own machines. Galois is so efficient that proof generation only consumes 5GB RAM for 128 validators, enabling the generation of proofs for mainnet on entry-level consumer laptops.
- Decentralized: infrastructure operators do not need complex cloud architecture to operate a relayer and prover. Anyone can participate in the system. Because of this, we focused on efficient CPU-based generation of ZKPs, as we don’t want to depend on specific GPU vendors.1
Transactions through Union to other Counterparties (L1s, L2s, and (sovereign) Rollups) are composed of three steps:
- Emit an IBC send-packet event
- Generate a zero-knowledge consensus proof of Union’s state at block
- Update Counterparty with Union state
Galois benchmarks exceptionally well. Our benchmarks are 100% reproducibly generated with Nix, so anyone can verify them. Third-party validation of these benchmarks has been conducted by Lightshift. View the latest Galois V3 benchmarks here and to see our progress, you can see historical Galois benchmarks for older versions here.
Galois is fully functional, production-ready, extremely reliable, and performant. However, there are always further improvements:
- Verkle tree support.
- Formal verification with Lean.
- Proof caching ensures that the network does not perform redundant work and incentivizes decentralized proving, effectively using Union as a decentralized sequencers orchestration layer.
Note that Galois’ tech stack also supports GPU-based zkp generation, but we designed the system to be independent of GPUs for good performance. ↩