-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbigbook.typ
63 lines (51 loc) · 1.4 KB
/
bigbook.typ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#import "src/preamble.typ":*
#let chapter(filename) = {
include filename
}
#show: evan.with(
title: "Notes on Programmable Cryptography",
author: "0xPARC",
date: datetime.today(),
)
#quote[
I can prove to you that I have a message $M$ such that
$op("sha")(M) = "0xa91af3ac..."$, without revealing $M$.
But not just for the hash function SHA.
I can do this for any function you want.
]
#toc
#pagebreak()
#set heading(offset: 1)
#part[Introduction]
#chapter("src/bigbook-frontmatter.typ")
#chapter("src/intro.typ") // needs some rewriting though
#part[Two-party Computation]
#chapter("src/mpc.typ")
#chapter("src/ot.typ")
#chapter("src/2pc-takeaways.typ")
#part[SNARKs Prelude: Elliptic Curves and Polynomial Commitments]
#chapter("src/ec.typ")
#chapter("src/pair.typ")
#chapter("src/kzg.typ")
#chapter("src/kzg-takeaways.typ")
#part[Your first SNARK: The PLONK Protocol]
#chapter("src/zkintro.typ")
#chapter("src/plonk.typ")
#chapter("src/copy-constraints.typ")
#chapter("src/fs.typ")
#chapter("src/snark-takeaways.typ")
#part[Another STARK: GROTH-16]
#chapter("src/ipa.typ")
#chapter("src/groth16.typ")
#part[Binius]
#chapter("src/sumcheck.typ")
#part[Fully Homomorphic Encryption with LWE]
#chapter("src/fhe0.typ")
#chapter("src/lwe.typ")
#chapter("src/fhe2.typ")
#chapter("src/fhe3.typ")
#chapter("src/fhe-takeaways.typ")
#part[Oblivious RAM]
#part[Obfuscation]
#part[Others]
#chapter("src/cq.typ")