The WebNative Stack

A presentation at IPFS þing in July 2022 in Reykjavík, Iceland by Brooklyn Zelenka

Slide 1

Slide 1

WebNative SDK A Portable Edge App Stack github.com/fission-suite

Slide 2

Slide 2

Just…

Slide 3

Slide 3

Just… An Encrypted-At-Rest File System, Location Independence, User Controlled Data, Self-Modifying Apps, & a Serverless Auth Protocol …in a tench coat

Slide 4

Slide 4

BROOKLYN ZELENKA @expede CTO @ Fission

Slide 5

Slide 5

Intro Condensing The Stack

Slide 6

Slide 6

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Developer 👩💻

Slide 7

Slide 7

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻

Slide 8

Slide 8

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻

Slide 9

Slide 9

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻 Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 Developer 👩💻

Slide 10

Slide 10

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻 Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 Developer 👩💻 Proposed

Slide 11

Slide 11

Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 Current Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 REST / JSON-RPC / GraphQL ↕ Developer 👩💻 Server ⚙ Quick iteration 🔄 Data Store 🗃 DevOps 📤 Developer 👩💻 Focus on end users 💁 Lower barrier to entry 👨🎨 Proposed

Slide 12

Slide 12

Intro High Level Dependencies

Slide 13

Slide 13

Intro High Level Dependencies Compute ⚙

Slide 14

Slide 14

Intro High Level Dependencies Compute ⚙ Data 💾

Slide 15

Slide 15

Intro High Level Dependencies Compute ⚙ Data 💾 Auth 🎟

Slide 16

Slide 16

Intro Stack 1st & 3rd Party Dev’s App Business Logic & View API Platform Abstractions WebNative SDK ⬆ Apps ⬇ Core Technology Portable Computate WebNative Distributed Tasks Distributed Compute Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store Durable Structured Store WebNative Database O ine & Async Sharing Exchange Store Durable File Store WebNative File System Durable Data Command/Mutation UCAN ffl Auth & ID Global: Aggregation, Forms, Feeds Gossip Broadcast Read/Query Cryptree Networking DNS, IPFS, PubSub, Matrix Identity did:key

Slide 17

Slide 17

Intro Stack 1st & 3rd Party Dev’s App Business Logic & View API Platform Abstractions WebNative SDK ⬆ Apps ⬇ Core Technology Portable Computate WebNative Distributed Tasks Distributed Compute Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store Durable Structured Store WebNative Database O ine & Async Sharing Exchange Store Durable File Store WebNative File System Durable Data Command/Mutation UCAN ffl Auth & ID Global: Aggregation, Forms, Feeds Gossip Broadcast Read/Query Cryptree Networking DNS, IPFS, PubSub, Matrix Identity did:key

Slide 18

Slide 18

Intro Mini-Demo

Slide 19

Slide 19

Intro Mini-Demo

Slide 20

Slide 20

AuthN & AuthZ DIDs, Self-Authenticated History, UCAN, and More

Slide 21

Slide 21

AuthN & AuthZ Non-Extractable Keys

Slide 22

Slide 22

AuthN & AuthZ Non-Extractable Keys

Slide 23

Slide 23

AuthN & AuthZ Non-Extractable Keys 🗝

Slide 24

Slide 24

AuthN & AuthZ Non-Extractable Keys 🦹 🗝

Slide 25

Slide 25

AuthN & AuthZ Non-Extractable Keys 🦹 🗝

Slide 26

Slide 26

AuthN & AuthZ Non-Extractable Keys 🦹 🏰🏰🏰🏰🏰🏰🏰 🗝

Slide 27

Slide 27

AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝

Slide 28

Slide 28

AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝

Slide 29

Slide 29

AuthN & AuthZ Non-Extractable Keys 🦹 🏰🏰🏰🏰🏰🏰🏰 📝 🗝

Slide 30

Slide 30

AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝

Slide 31

Slide 31

AuthN & AuthZ DIDs 🔑

Slide 32

Slide 32

AuthN & AuthZ DIDs • W3C • Microsoft • Government of British Columbia • Based on public-key cryptography • Truly “universal” user IDs • Agnostic about backing • For users, devices, and more 🔑

Slide 33

Slide 33

AuthN & AuthZ .well-known

Slide 34

Slide 34

AuthN & AuthZ .well-known 👩💻

Slide 35

Slide 35

AuthN & AuthZ Wherefore Art Thou UCAN?

Slide 36

Slide 36

AuthN & AuthZ Wherefore Art Thou UCAN? DIDs say who you are

Slide 37

Slide 37

AuthN & AuthZ Wherefore Art Thou UCAN? DIDs say who you are UCANs show what you can do

Slide 38

Slide 38

AuthN & AuthZ Wherefore Art Thou UCAN? AuthN DIDs say who you are UCANs show what you can do AuthZ

Slide 39

Slide 39

AuthN & AuthZ Anatomy of a Capability

Slide 40

Slide 40

AuthN & AuthZ Anatomy of a Capability [ { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ]

Slide 41

Slide 41

AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] (URI)

Slide 42

Slide 42

AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, Action / “verb” { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] (URI)

Slide 43

Slide 43

AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, (URI) “can”: “crud/read” }, Action / “verb” { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] Extensible fields

Slide 44

Slide 44

AuthN & AuthZ Chain Witnesses

Slide 45

Slide 45

AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨

Slide 46

Slide 46

AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐

Slide 47

Slide 47

AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐

Slide 48

Slide 48

AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐

Slide 49

Slide 49

AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐

Slide 50

Slide 50

AuthN & AuthZ Chain Witnesses Root 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐

Slide 51

Slide 51

AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 Root Witness From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] From: 🧑🚀 To: 👨🦳 Caps: [💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐

Slide 52

Slide 52

AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 Root Witness Invoked From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] From: 🧑🚀 To: 👨🦳 Caps: [💐] From: 👨🦳 To: 👩💻 Caps: [💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐

Slide 53

Slide 53

AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw

Slide 54

Slide 54

AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw

Slide 55

Slide 55

AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } ✅ Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw

Slide 56

Slide 56

AuthN & AuthZ Proof Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” } “iss”: “did:key:z6Mkp5Esz9s2MHsqYvLoccyHwX5SeyZKpq79Gt45fFGEZR99”, “aud”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” } ], “prf”: [] Signature 4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG 4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDe xo76kAw

Slide 57

Slide 57

AuthN & AuthZ OAuth Sequence

Slide 58

Slide 58

AuthN & AuthZ UCAN Sequence 🕙 🕙

Slide 59

Slide 59

WebNative File System 💾📂🌳

Slide 60

Slide 60

File System Grouped by User, Not by App

Slide 61

Slide 61

File System Grouped by User, Not by App f f f Alice’s Stu Bob’s Stu Carol’s Stu

Slide 62

Slide 62

File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 f f f Alice’s Stu Bob’s Stu Carol’s Stu

Slide 63

Slide 63

File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 Alice’s Stu Bob’s Stu Carol’s Stu f f f Carol’s Videogame 👾

Slide 64

Slide 64

File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 Alice’s Stu Bob’s Stu f f f Alice’s Music Player 🎶 Carol’s Stu Carol’s Videogame 👾

Slide 65

Slide 65

File System Persistent Versioning

Slide 66

Slide 66

File System Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0

Slide 67

Slide 67

File System Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0 🕙

Slide 68

Slide 68

File System Persistent Versioning Photos@r0 Photos@r1 Vacation Avatars@r0 Avatars@r1 beach.png caricature.jpg headshot.png Revision 0 Revision 1 🕙

Slide 69

Slide 69

File System Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 🕙 Avatars@r1

Slide 70

Slide 70

File System Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 🕙 Avatars@r1

Slide 71

Slide 71

File System Confluence

Slide 72

Slide 72

File System Confluence One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉

Slide 73

Slide 73

File System Confluence One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉 Single File History / “Causal Shadow”

Slide 74

Slide 74

File System Confluence F B E One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure D Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉 A C Single File History / “Causal Shadow”

Slide 75

Slide 75

File System Mergable, Trivially F B E D A C

Slide 76

Slide 76

File System Mergable, Trivially F B E D A C

Slide 77

Slide 77

File System Mergable, Trivially F B E D A C

Slide 78

Slide 78

File System Mergable, Trivially F B E D A C

Slide 79

Slide 79

File System Sharing is Caring User Entry (stable) 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)

Slide 80

Slide 80

File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)

Slide 81

Slide 81

File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)

Slide 82

Slide 82

File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s) Receiver Secret WNFS

Slide 83

Slide 83

File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s) Receiver Secret WNFS

Slide 84

Slide 84

File System Subgraph Access

Slide 85

Slide 85

File System Subgraph Access 🗝

Slide 86

Slide 86

File System Subgraph Access 🗝 🗝

Slide 87

Slide 87

File System Subgraph Access 🗝 🗝 🗝

Slide 88

Slide 88

File System Subgraph Access 🗝 🗝 🗝 🔩➡🗝

Slide 89

Slide 89

File System Skip Ratchet

Slide 90

Slide 90

File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 91

Slide 91

File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 92

Slide 92

File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 93

Slide 93

File System Skip Ratchet current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 94

Slide 94

File System Skip Ratchet current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 95

Slide 95

File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 96

Slide 96

File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 97

Slide 97

File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards

Slide 98

Slide 98

File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards O(2 * log n) Θ(1) 🎉

Slide 99

Slide 99

File System Dark Forest

Slide 100

Slide 100

File System Dark Forest

Slide 101

Slide 101

File System WebNative is Carcinising

Slide 102

Slide 102

Preview: Codename “Dialog” Embarrassingly Parallel Multiverse Database

Slide 103

Slide 103

Preview: Codename “Dialog” Property Graph XYZ Name: @expede From JAN-2000 🔒 Work: Fission From AUG-2019 KEB 🔒 Red Switches Switches: Blue From JAN-2020 From FEB-2020 Wireless

Slide 104

Slide 104

Preview: Codename “Dialog” Property Graph XYZ Name: @expede From JAN-2000 🔒 Work: Fission From AUG-2019 KEB 🔒 Red Switches Switches: Blue From JAN-2020 From FEB-2020 Wireless

Slide 105

Slide 105

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020

Slide 106

Slide 106

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020

Slide 107

Slide 107

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020

Slide 108

Slide 108

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020

Slide 109

Slide 109

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020 🏢

Slide 110

Slide 110

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020 👩🚀📱 🏢

Slide 111

Slide 111

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 👨🍳💻 KEB Owner:XYZ From JAN-2020 🏢 KEB Switches: Blue From FEB-2020 👩🚀📱

Slide 112

Slide 112

Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs ➡⬅ XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 👨🍳💻 KEB Owner:XYZ From JAN-2020 🏢 KEB Switches: Blue From FEB-2020 👩🚀📱

Slide 113

Slide 113

Preview: Codename “Dialog” Scale, Aggregation, & Real Time Global: Aggregation, Forms, Feeds Gossip Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store

Slide 114

Slide 114

Preview: Codename “Dialog” Scale, Aggregation, & Real Time Collaboration, Chat, Instant Sync

Slide 115

Slide 115

✨ white paper.fission.codes ✨ ✨ github.com/ucan-wg ✨ brooklyn@fission.codes @expede