FHE
1.
Introduction
❱
1.1.
Prerequisites
1.2.
Why is a compiler needed for FHE?
2.
Sunscreen's FHE compiler
❱
2.1.
Features
2.2.
Who should use it?
2.3.
Performance
3.
Getting started
❱
3.1.
Installation
3.2.
My first FHE program
4.
What's in an FHE program?
❱
4.1.
Types
❱
4.1.1.
Signed
4.1.2.
Fractional
4.1.3.
Rational
4.2.
How to write an FHE program
❱
4.2.1.
Factoring FHE programs
4.2.2.
Limitations
4.3.
Troubleshooting
5.
Runtime
❱
5.1.
Key generation
5.2.
Encryption
5.3.
Running FHE programs
5.4.
Decryption
5.5.
Serialization
6.
From toy programs to real life
❱
6.1.
Unified parameters
6.2.
Chaining
7.
Applications
❱
7.1.
AMMs & private token swaps
7.2.
Private information retrieval
❱
7.2.1.
Take 1
7.2.2.
Take 2
7.3.
Genomics & private tests
8.
FAQ
9.
Advanced topics
❱
9.1.
Why the BFV scheme?
9.2.
Writing even better FHE programs
❱
9.2.1.
Plaintext modulus
9.2.2.
Noise
9.2.3.
Pruning public keys
9.3.
WASM support
9.4.
Funky math: carryless arithmetic
9.5.
Batching
ZKP
10.
Introduction
❱
10.1.
A ZKP crash course
10.2.
Prerequisites
11.
Sunscreen's ZKP compiler
12.
Getting started
❱
12.1.
Installation
12.2.
My first ZKP program
13.
What's in a ZKP program?
❱
13.1.
Types
13.2.
Attributes
13.3.
Constraints
13.4.
Limitations
13.5.
Troubleshooting
14.
Compiling
15.
Runtime
❱
15.1.
Proving
15.2.
Verifying
15.3.
Serialization
16.
Applications
❱
16.1.
Private set inclusion
16.2.
Sudoku
17.
FAQ
18.
Advanced topics
❱
18.1.
Writing even better ZKP programs
❱
18.1.1.
Gadgets
18.1.2.
Constant inputs
18.1.3.
Creating ZKP types
18.2.
WASM support
Light
Rust
Coal
Navy
Ayu
Sunscreen BFV Documentation
Applications
In this section, we'll look at some less trivial ZKP programs.