88
88
89
89
< nav id ="sidebar " class ="sidebar " aria-label ="Table of contents ">
90
90
< div class ="sidebar-scrollbox ">
91
- < ol class ="chapter "> < li class ="chapter-item "> < a href ="index.html "> Introduction</ a > </ li > < li class ="chapter-item "> < a href ="quickstart.html "> Prism Quickstart</ a > </ li > < li class ="chapter-item "> < a href ="state.html "> Development Status</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/intro.html "> Introduction to Cryptography</ a > < a class ="toggle "> < div > ❱</ div > </ a > </ li > < li > < ol class ="section "> < li class ="chapter-item "> < a href ="crypto-intro/symmetric.html "> Symmetric Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/asymmetric.html "> Asymmetric Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/hybrid.html "> Hybrid Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/hash-functions.html "> Hash Functions</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/merkle-trees.html "> Merkle Trees</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/cryptographic_commitment.html "> Cryptographic Commitments</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/general-merkle-proofs.html "> Merkle Proofs</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="architecture.html " class ="active "> Architecture</ a > </ li > < li class ="chapter-item "> < a href ="labels.html "> Account Sources</ a > </ li > < li class ="chapter-item "> < a href ="datastructures.html "> Datastructures</ a > </ li > < li class ="chapter-item "> < a href ="insert-update-proofs.html "> Insert and Updates</ a > </ li > < li class ="chapter-item "> < a href ="jellyfish-merkle-proofs.html "> Jellyfish Merkle Proofs</ a > </ li > < li class ="chapter-item "> < a href ="informal-zkps.html "> Zero Knowledge Proofs (Informal)</ a > </ li > < li class ="chapter-item "> < a href ="zkp-basics.html "> Zero Knowledge Proofs (Basics)</ a > </ li > < li class ="chapter-item "> < a href ="resources.html "> Resources</ a > </ li > </ ol >
91
+ < ol class ="chapter "> < li class ="chapter-item "> < a href ="index.html "> Introduction</ a > </ li > < li class ="chapter-item "> < a href ="quickstart.html "> Prism Quickstart</ a > </ li > < li class ="chapter-item expanded "> < a href ="architecture.html " class ="active "> Architecture</ a > </ li > < li class ="chapter-item "> < a href ="datastructures.html "> Datastructures</ a > </ li > < li class ="chapter-item "> < a href ="labels.html "> Account Sources</ a > </ li > < li class ="chapter-item "> < a href ="state.html "> Development Status</ a > </ li > < li class ="chapter-item affix "> < li class ="spacer "> </ li > < li class ="chapter-item affix "> < li class ="part-title "> Prerequites</ li > < li class ="chapter-item "> < a href ="insert-update-proofs.html "> Inserts and Updates</ a > </ li > < li class ="chapter-item "> < a href ="jellyfish-merkle-proofs.html "> Jellyfish Merkle Proofs</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/intro.html "> Introduction to Cryptography</ a > < a class ="toggle "> < div > ❱</ div > </ a > </ li > < li > < ol class ="section "> < li class ="chapter-item "> < a href ="crypto-intro/symmetric.html "> Symmetric Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/asymmetric.html "> Asymmetric Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/hybrid.html "> Hybrid Encryption</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/hash-functions.html "> Hash Functions</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/merkle-trees.html "> Merkle Trees</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/cryptographic_commitment.html "> Cryptographic Commitments</ a > </ li > < li class ="chapter-item "> < a href ="crypto-intro/general-merkle-proofs.html "> Merkle Proofs</ a > </ li > < li class ="chapter-item "> < a href ="informal-zkps.html "> Zero Knowledge Proofs (Informal)</ a > </ li > < li class ="chapter-item "> < a href ="zkp-basics.html "> Zero Knowledge Proofs (Basics)</ a > </ li > </ ol > </ li > < li class ="chapter-item "> < a href ="resources.html "> Resources</ a > </ li > </ ol >
92
92
</ div >
93
93
< div id ="sidebar-resize-handle " class ="sidebar-resize-handle ">
94
94
< div class ="sidebar-resize-indicator "> </ div >
@@ -179,25 +179,45 @@ <h1 class="menu-title">Prism Documentation</h1>
179
179
< link rel ="stylesheet " href ="https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css ">
180
180
< h1 id ="architecture "> < a class ="header " href ="#architecture "> Architecture</ a > </ h1 >
181
181
< p > 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.</ p >
182
- < p > 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 < a href ="https://github.com/deltadevsde/prism/blob/main/adr/adr-002-create-account-op .md "> adr-002 (Account Sources )</ a > .</ p >
182
+ < p > 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 < a href ="https://github.com/deltadevsde/prism/blob/main/adr/adr-003-service-registration .md "> adr-003 (Service Registration )</ a > .</ p >
183
183
< p > Light nodes verify the state by downloading and verifying the SNARKs posted to Celestia. There is currently no P2P overlay for the Prism network.</ p >
184
184
< ol >
185
185
< li > An epoch is defined by the valid operations posted to the namespace in the previous Celestia block.</ li >
186
186
< li > Services can replicate the state by running a full node, to serve their own stack and not rely on the liveness of the sequencer.</ li >
187
187
< li > Enables future prover decentralization (perhaps with a prover marketplace).</ li >
188
- < li > Censorship resistance (updates can be posted directly to the DA layer).
189
- < img src ="/stage2.svg " alt ="" /> </ li >
188
+ < li > Censorship resistance (updates can be posted directly to the DA layer).</ li >
190
189
</ ol >
190
+ < pre class ="mermaid "> graph TD
191
+ User[User] -->|interacts with| ChatApp[Chat Application]
192
+ subgraph ChatApp[Chat Application]
193
+ LuminaPrism[Lumina+Prism]
194
+ end
195
+ LuminaPrism -->|uses| ServiceAPI[Service API]
196
+ LuminaPrism -->|downloads + verifies SNARK| Celestia
197
+
198
+ subgraph ChatServiceInfra[Chat Service Infrastructure]
199
+ ChatServer[Chat Service Server]
200
+ PrismNode[Prism Full Node]
201
+ end
202
+
203
+ ServiceAPI -->|requests keys and merkle proofs| ChatServiceInfra
204
+ ServiceAPI -->|verifies merkle proofs against commitment in SNARK| ChatServiceInfra
205
+
206
+ ChatServer -->|uploads key updates| Celestia
207
+
208
+ Celestia -->|gives key updates from last celestia block| Sequencer
209
+ Sequencer[Sequencer/Prover] -->|posts snark to celestia| Celestia
210
+ </ pre >
191
211
192
212
</ main >
193
213
194
214
< nav class ="nav-wrapper " aria-label ="Page navigation ">
195
215
<!-- Mobile navigation buttons -->
196
- < a rel ="prev " href ="crypto-intro/general-merkle-proofs .html " class ="mobile-nav-chapters previous " title ="Previous chapter " aria-label ="Previous chapter " aria-keyshortcuts ="Left ">
216
+ < a rel ="prev " href ="quickstart .html " class ="mobile-nav-chapters previous " title ="Previous chapter " aria-label ="Previous chapter " aria-keyshortcuts ="Left ">
197
217
< i class ="fa fa-angle-left "> </ i >
198
218
</ a >
199
219
200
- < a rel ="next prefetch " href ="labels .html " class ="mobile-nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
220
+ < a rel ="next prefetch " href ="datastructures .html " class ="mobile-nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
201
221
< i class ="fa fa-angle-right "> </ i >
202
222
</ a >
203
223
@@ -207,11 +227,11 @@ <h1 id="architecture"><a class="header" href="#architecture">Architecture</a></h
207
227
</ div >
208
228
209
229
< nav class ="nav-wide-wrapper " aria-label ="Page navigation ">
210
- < a rel ="prev " href ="crypto-intro/general-merkle-proofs .html " class ="nav-chapters previous " title ="Previous chapter " aria-label ="Previous chapter " aria-keyshortcuts ="Left ">
230
+ < a rel ="prev " href ="quickstart .html " class ="nav-chapters previous " title ="Previous chapter " aria-label ="Previous chapter " aria-keyshortcuts ="Left ">
211
231
< i class ="fa fa-angle-left "> </ i >
212
232
</ a >
213
233
214
- < a rel ="next prefetch " href ="labels .html " class ="nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
234
+ < a rel ="next prefetch " href ="datastructures .html " class ="nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
215
235
< i class ="fa fa-angle-right "> </ i >
216
236
</ a >
217
237
</ nav >
@@ -252,6 +272,8 @@ <h1 id="architecture"><a class="header" href="#architecture">Architecture</a></h
252
272
253
273
<!-- Custom JS scripts -->
254
274
< script src ="custom.js "> </ script >
275
+ < script src ="mermaid.min.js "> </ script >
276
+ < script src ="mermaid-init.js "> </ script >
255
277
256
278
257
279
</ div >
0 commit comments