Skip to content

Commit

Permalink
refactor!: start on bigbook content
Browse files Browse the repository at this point in the history
  • Loading branch information
vEnhance committed Aug 15, 2024
1 parent 9aec39b commit 0d5b2c2
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 34 deletions.
53 changes: 32 additions & 21 deletions bigbook.typ
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
#import "src/preamble.typ":*
#let chapter(filename) = {
include filename
pagebreak(weak: true)
}
#let part(s) = {
set text(size:1.4em, fill: rgb("#002299"))
heading(numbering: none, s)
}

#show: evan.with(
title: "Notes on Programmable Cryptography",
author: "0xPARC",
Expand All @@ -24,27 +18,44 @@
#toc
#pagebreak()

#chapter("src/frontmatter.typ")
#chapter("src/intro.typ")
#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[zkSNARK constructions]
#chapter("src/h-zksnark.typ")
#part[SNARKs Prelude: Elliptic Curves and Polynomial Commitments]
#chapter("src/ec.typ")
#chapter("src/pair.typ")
#chapter("src/kzg.typ")
#chapter("src/ipa.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")
#chapter("src/cq.typ")

#part[Multi-party computation and garbled circuits]
#chapter("src/h-mpc.typ")
#chapter("src/mpc.typ")
#part[Binius]
#chapter("src/sumcheck.typ")

#part[Fully homomorphic encryption]
#chapter("src/h-fhe.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[Appendix: Classical PCP]
#chapter("src/h-classical-pcp.typ")
#chapter("src/sumcheck.typ")
#chapter("src/pcp.typ")
#part[Oblivious RAM]

#part[Others]
#chapter("src/cq.typ")
7 changes: 0 additions & 7 deletions easy.typ
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@
#let chapter(filename) = {
include filename
}
#let part(s) = {
let rstate = state("rhead", "")
rstate.update(rhead => s)
pagebreak(weak: true)
// set text(fill: rgb("#002299"))
heading(offset: 0, s)
}

#show: evan.with(
title: "Three Easy Pieces in Programmable Cryptography",
Expand Down
16 changes: 10 additions & 6 deletions old-stuff/frontmatter.typ → src/bigbook-frontmatter.typ
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
#import "preamble.typ":*

= Frontmatter

These are compiled lecture notes from a reading group hosted by the
#link("https://0xparc.org", "0xPARC Foundation").
It's not meant to be a exhaustive textbook or mathematically complete reference,
= About this novel

This novel _Notes on Programmable Cryptography_ is a sequel
to the novella _Three Easy Pieces in Programmable Cryptography_,
from the #link("https://0xparc.org", "0xPARC Foundation").
Whereas the novella was short enough to print and give to friends
as a souvenir to read on a plane ride,
this novel is meant to be a bit of a deeper dive.
Nonetheless, it's still not meant to be a exhaustive textbook or mathematically complete reference;
but rather a introduction to the general landscape and ideas for newcomers.

We assume a bit of general undergraduate math background, but not too much.
(For example, I'll just use the word "abelian group" freely,
(For example, we'll just use the word "abelian group" freely,
and the reader is assumed to know modular arithmetic.)
We don't assume specialized knowledge like elliptic curve magic.

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 8 additions & 0 deletions src/preamble.typ
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@

#let pmod(x) = $space (mod #x)$
#let rstate = state("rhead", "Table of contents")
#let part(s) = {
let rstate = state("rhead", "")
rstate.update(rhead => s)
pagebreak(weak: true)
// set text(fill: rgb("#002299"))
heading(offset: 0, s)
}


// Main entry point to use in a global show rule
#let evan(
Expand Down
File renamed without changes.

0 comments on commit 0d5b2c2

Please sign in to comment.