Skip to content

Commit c8a8092

Browse files
committed
feat: initialise mdbook for documentation
1 parent d8e74ea commit c8a8092

36 files changed

+626
-0
lines changed

doc/book.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[book]
2+
authors = ["distractedm1nd", "sebasti810"]
3+
language = "en"
4+
multilingual = false
5+
src = "src"
6+
title = "prism-doc"
7+
8+
[preprocessor.katex]
9+
after = ["links"]

doc/src/README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Prism: A Publicly Verifiable Key-Transparency Solution
2+
3+
![Prism Banner](./img/prism_banner.png)
4+
5+
We're excited to announce Prism, the first truly-private messaging platform and an authentication layer for all digital communications. Prism doesn't only enable private chats, it gives users control over their digital identities, and increases security in everyday interactions on the internet.
6+
7+
Prism removes the need for trust in any server or app, giving users the certainty they're interacting with the right person, app, or website through transparent authentication.
8+
9+
## The Encryption Myth
10+
11+
Despite being end-to-end encrypted (an essential security feature in every communication protocol), Signal, WhatsApp, iMessage, are not as secure as we've been led to believe.
12+
At its core, E2EE allows gated access for the sender and receiver to read messages inside a conversation, while anyone else, including the app provider, is locked out (in principle, at least).
13+
14+
But E2EE isn't perfect. It hinges on the trust assumption you're communicating with the person you think is on the other side - a foundation for backdoors and hacks.
15+
16+
## The 'Trust-Assumption' Virus
17+
18+
Each of these apps uses its own key directory, which typically relies on a single authority to establish channels and ensure the integrity of all communications inside the protocol.
19+
20+
Signal, an example hailed as the gold standard of private communication, can't read users' messages due to end-to-end encryption, but lacks cryptographic guarantees and verifiability through its key management method. This tradeoff creates a potential vulnerability as the integrity of the key exchange can be compromised (through a hack, or compliance with government intervention) without users' knowledge.
21+
22+
Specifically, it makes these systems vulnerable to a 'man-in-the-middle attack' (MITM) - in which an unverified 3rd party intercepts a conversation without either party being aware, by sending messages inside a chat and pretending to be the person on the other side. In case you wonder how close it is to reality - back in 2016, the UK government proposed [GHOST](https://theconversation.com/u-k-proposal-to-bcc-law-enforcement-on-messaging-apps-threatens-global-privacy-118142), a protocol designed to integrate with popular messaging apps, designed to achieve the same goal of a MITM attack.
23+
24+
In the physical world, you have control over your identity. You choose what to share, when to share it, and with whom. Online? Your identity is fragmented across dozens of services, each with its own agenda. You're not the user; you're the product. Your digital self is bought, sold, and manipulated without your knowledge or consent. Governments around the world are leveraging the digital revolution to create unprecedented systems of mass surveillance. From China's "Great Firewall" to the NSA's global data collection programs, our online activities are under constant scrutiny. The line between public and private has been blurred beyond recognition.
25+
26+
## The achilles heel of E2EE
27+
28+
To escape criticism around key transparency, Signal and iMessage have introduced their own solutions to allow users to verify their contacts by scanning a QR code or comparing numbers from their screen in person or via a phone call.
29+
30+
While this sounds straightforward, in reality, only [14%](https://www.usenix.org/conference/soups2017/technical-sessions/presentation/vaziripour) of users manage to navigate this on their own. Even with guidance, it takes an average of over 7 minutes to complete, with most users still not fully grasping its purpose.
31+
32+
It's proven - self authentication is a broken user experience.
33+
34+
## Introducing Prism: A New Era for Private Communication
35+
36+
Prism introduces a new standard in key transparency through open-source, verifiable computation.
37+
38+
The Prism tech stack provides robust verifiable encryption through the best of web3. At its core, it leverages zkSNARKs as proofs for key certifications, allowing succinct and verifiable authentication. Prism proofs are posted directly on [Celestia](https://celestia.org)'s decentralized data availability layer, guaranteeing data accessibility and integrity. Light nodes play a crucial role in Prism by verifying proofs at scale, allowing for efficient verification across the network.
39+
40+
Prism is web2 friendly from day 1 with WASM compatibility, allowing existing messaging applications to upgrade their key transparency easily.
41+
42+
## Why you should care
43+
44+
Beyond messaging apps, Prism opens doors to potential improvements in nascent technologies and challenges in today's web. We envision a system for transparent, seamless authentication, where every human, website, app or other digital property is verified on a blockchain.
45+
Prism's verifiable encryption standard opens up possibilities for secure communication across various digital platforms, which can enable exciting use cases like:
46+
47+
1. A user controlled global identity layer
48+
2. Keystore Rollups - allowing users to securely store and manage their cryptographic keys across multiple chains
49+
3. A sandbox environment for testing Trusted Execution Environment (TEE) trust assumptions, ensuring even the most advanced security features are bulletproof.
50+
4. A new trustless, decentralized model for web certificate authority and public key infrastructure (PKI) systems.
51+
52+
Welcome to a new era of digital privacy, where the only person listening is the one you're talking to.
53+
54+
## Getting started
55+
56+
We will introduce some basic concepts of cryptography that are essential for understanding the content. For more information and deeper explanations, we will provide links to relevant literature and texts. If you encounter errors or have suggestions for improvement, please feel free to [contact us](/contact).
57+
58+
[See the bib](/paper)
59+
60+
[Quickstart](/quickstart)
61+
62+
[Architecture](/architecture)

doc/src/SUMMARY.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Summary
2+
3+
* [Introduction](README.md)
4+
* [Prism Quickstart](quickstart.md)
5+
* [Development Status](state.md)
6+
* [Architecture](architecture.md)
7+
* [Account Sources](labels.md)
8+
* [Datastructures](datastructures.md)
9+
* [Insert and Updates](insert-update-proofs.md)
10+
* [Introduction to Cryptography](./explainers/crypto-intro/intro.md)
11+
* [Symmetric Encryption](./explainers/crypto-intro/symmetric.md)
12+
* [Asymmetric Encryption](./explainers/crypto-intro/asymmetric.md)
13+
* [Hybrid Encryption](./explainers/crypto-intro/hybrid.md)
14+
* [Hash Functions](./explainers/crypto-intro/hash-functions.md)
15+
* [Merkle Trees](./explainers/crypto-intro/merkle-trees.md)
16+
* [Merkle Proofs](merkle-proofs.md)
17+
* [Zero Knowledge Proofs (Informal)](informal-zkps.md)
18+
* [Zero Knowledge Proofs (Basics)](zkp-basics.md)
19+
* [Resources](resources.md)
20+
* [Paper](papers.md)
21+
* [Books](books.md)
22+
* [Other Resources](other-resources.md)

doc/src/architecture.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Architecture
2+
3+
We operate as a based rollup on Celestia. The SNARKs are posted to one namespace, and the operations are posted to a secondary namespace, enabling full nodes. This architecture is designed to be trust-minimized and censorship-resistant.
4+
5+
The sequencer is a partially unprivileged sequencer: while anybody can post update operations to the base layer, account creations must be signed by the sequencer. This is a temporary measure discussed in [adr-002 (Account Sources)](https://github.com/deltadevsde/prism/blob/main/adr/adr-002-create-account-op.md).
6+
7+
Light nodes verify the state by downloading and verifying the SNARKs posted to Celestia. There is currently no P2P overlay for the Prism network.
8+
9+
1. An epoch is defined by the valid operations posted to the namespace in the previous Celestia block.
10+
2. Services can replicate the state by running a full node, to serve their own stack and not rely on the liveness of the sequencer.
11+
3. Enables future prover decentralization (perhaps with a prover marketplace).
12+
4. Censorship resistance (updates can be posted directly to the DA layer).
13+
![](/stage2.svg)

doc/src/books.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Books
2+
3+
Here is a list of books for further reading. We will update the list continuously and are grateful for new suggestions.
4+
5+
### Free Books
6+
7+
- [Barak - An intensive introduction to cryptography](https://files.boazbarak.org/crypto/lnotes_book.pdf)
8+
- [Boneh, Shoup - A Graduate Course in Applied Cryptography](http://toc.cryptobook.us/)
9+
- [Rosulek - The Joy of Cryptography](https://joyofcryptography.com/)
10+
- [Thaler - Proofs, Arguments and Zero-Knowledge](https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf)

doc/src/chapter_1.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Chapter 1

doc/src/crypto-intro/asymmetric.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Asymmetric encryption
2+
3+
Asymmetric encryption, also known as public-key encryption, is a method of encrypting data that uses two different keys for the encryption and decryption process. These keys are known as the public key and the private key. The public key is shared openly and can be used by anyone to encrypt data, while the private key is kept secret and is used to decrypt the data.
4+
5+
In a typical scenario, when someone wants to send a secure message to another person, they would use the recipient's public key to encrypt the message. Once the message is encrypted, it can only be decrypted by someone who has the corresponding private key, which should be the intended recipient.
6+
7+
This encryption method provides several advantages over symmetric encryption, such as enhanced security due to the separation of encryption and decryption keys, and easier key distribution since only the public key needs to be shared. However, asymmetric encryption is generally slower than symmetric encryption due to the complexity of the algorithms involved.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Hash functions
2+
3+
A hash function can be conceptualized as a black box with an input and an output. This black box transforms an input, of arbitrary length, into a fixed-size string. One of the most widely recognized hash functions is the SHA256 hash function, which maps an input to a 256-bit string output. Hash functions must satisfy certain critical requirements:
4+
5+
- Hash functions should be **collision resistant**. That is, for each input there should be a unique output. This is theoretically impossible, as there are infinitely many potential inputs and, regardless of the number of bits used in the output, it is impossible to represent an infinite number of inputs. However, it is possible to ensure that it is computationally infeasible to create collisions in practice. For instance, if we hash the strings "Andrea" and "Andreas," the resulting outputs are as follows:
6+
H(Andrea) = **253387e...ba0dc32**
7+
H(Andreas) = **9eea624...27051c8**
8+
Changing even one letter in the input results in an unpredictable change in the entire hash value.
9+
- Hash functions are **one-way functions**. That is, the calculation works in only one direction. If we want to calculate the hash of "Andrea," we can compute H(Andrea) and obtain the result 253387e...ba0dc32. However, we cannot perform the reverse calculation, so we cannot determine the input that resulted in the output value 253387e...ba0dc32. So its impossible to calculate H^-1(253387e...ba0dc32) = Andrea.
10+
- Hash functions are **deterministic**. That is, for a given input, the same hash value is produced consistently across all calculations. Therefore, the output hash value remains constant for the same input.

doc/src/crypto-intro/hybrid.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Hybrid encryption
2+
3+
Hybrid encryption attempts to balance the "weaknesses" of the individual encryption methods (symmetric and asymmetric) and benefit from both advantages.
4+
5+
As previously stated, there are two main advantages and disadvantages there: while symmetric encryption works faster and more efficiently, asymmetric encryption is considered more secure in certain use cases, as the key exchange between two participants of symmetric encryption can be considered problematic.
6+
7+
Hybrid encryption tries to benefit from the advantages of both worlds by encrypting files or secret messages symmetrically. We now encrypt the key we used to encrypt the data with the public key of the second party to whom we want to send the encrypted data. We then send both the encrypted secret message and the encrypted key to decrypt that message. Thanks to the public-key encryption, the communication partner is now able to use its private key to decrypt the symmetric key and thus efficiently decrypt the secret message. In this way, we can provide the security of asymmetric encryption and not have to worry too much about the inefficiency of the process, since no potentially large secret documents need to be encrypted, only a key of usually fixed size.

doc/src/crypto-intro/intro.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Quick Crypto
2+
3+
This section deals with basic concepts of cryptography and explains them from a high level. This has no profound explanations, but tries to provide a superficial, simplified basis to give the reader a general idea for the advanced concepts of prism.

0 commit comments

Comments
 (0)