UCAN for FileCoin

A presentation at UCAN for FileCoin in August 2021 in by Brooklyn Zelenka

Slide 1

Slide 1

UCAN & WNFS ๐ŸŒณ What, Why, and Integration ๐Ÿฆœ

Slide 2

Slide 2

Decentralized Digital Identity DIDs ๐Ÿ›‚

Slide 3

Slide 3

Decentralized Digital Identity DIDs

Slide 4

Slide 4

Decentralized Digital Identity DIDs โ€ข One or more public keys โ€ข Truly โ€œuniversalโ€ user IDs โ€ข Agnostic about backing โ€ข Self-attesting โ€ข Database โ€ข Blockchain โ€ข For users, devices, and more โ€ข Relates to verifiable credentials

Slide 5

Slide 5

Decentralized Digital Identity did:key & UCAN

Slide 6

Slide 6

Decentralized Digital Identity did:key & UCAN โ€ข โ€œJustโ€ a public key (e.g. RSA, EdDSA)

Slide 7

Slide 7

Decentralized Digital Identity did:key & UCAN โ€ข โ€œJustโ€ a public key (e.g. RSA, EdDSA) โ€ข Self-certifying, extremely flexible

Slide 8

Slide 8

Decentralized Digital Identity did:key & UCAN โ€ข โ€œJustโ€ a public key (e.g. RSA, EdDSA) โ€ข Self-certifying, extremely flexible โ€ข Well suited to capabilities/authZ (vs identity/authN)

Slide 9

Slide 9

Decentralized Digital Identity did:key & UCAN โ€ข โ€œJustโ€ a public key (e.g. RSA, EdDSA) โ€ข Self-certifying, extremely flexible โ€ข Well suited to capabilities/authZ (vs identity/authN) โ€ข Made practical with UCANs โ€ข did:key โ†’ authN โ€ข UCAN โ†’ authZ

Slide 10

Slide 10

Decentralized Digital Identity Variety

Slide 11

Slide 11

Decentralized Digital Identity Variety โ€ข Microsoft ION, 3Boxโ€™s Ceramic, Sovrin, did:key, and well over 400 others

Slide 12

Slide 12

Decentralized Digital Identity Variety โ€ข Microsoft ION, 3Boxโ€™s Ceramic, Sovrin, did:key, and well over 400 others โ€ข Can federate, but hasnโ€™t been done yet win the wild โ€ข Fission working towards interop with ION as first step

Slide 13

Slide 13

User Controlled, Local-First, Universal Auth & ID UCAN ๐Ÿ•Š

Slide 14

Slide 14

UCAN Fission Use Case โ†’ Highly Flexible & Secure

Slide 15

Slide 15

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins

Slide 16

Slide 16

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys

Slide 17

Slide 17

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned

Slide 18

Slide 18

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility

Slide 19

Slide 19

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility โ€ข Wonโ€™t always have access to the โ€œrootโ€ device

Slide 20

Slide 20

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility โ€ข Wonโ€™t always have access to the โ€œrootโ€ device ffl โ€ข Must work o ine

Slide 21

Slide 21

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility โ€ข Wonโ€™t always have access to the โ€œrootโ€ device โ€ข Must work o ine ffl โ€ข Extensible semantics

Slide 22

Slide 22

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility โ€ข Wonโ€™t always have access to the โ€œrootโ€ device โ€ข Must work o ine โ€ข Extensible semantics ffl โ€ข Flexible granularity

Slide 23

Slide 23

UCAN Fission Use Case โ†’ Highly Flexible & Secure โ€ข Work directly in a browser without plugins โ€ข Browser is hostile โ€” compatible with WebCrypto non-exportable keys โ€ข User controlled / user owned โ€ข Pseudonymous, principle of least authority & least visibility โ€ข Wonโ€™t always have access to the โ€œrootโ€ device โ€ข Must work o ine โ€ข Extensible semantics โ€ข Flexible granularity ffl โ€ข Revocable

Slide 24

Slide 24

UCAN Object Capability Model (OCAP)

Slide 25

Slide 25

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€

Slide 26

Slide 26

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€ ๐Ÿ‘ฉ๐ŸŽค

Slide 27

Slide 27

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€ ๐Ÿ‘ฉ๐ŸŽค โš™

Slide 28

Slide 28

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€ ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 29

Slide 29

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 30

Slide 30

UCAN Object Capability Model (OCAP) โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 31

Slide 31

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 32

Slide 32

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ โ€ข OCAP is โ€œproactive authโ€ โ€ข Contains all the info about access โ€ข Any guarding done up front (e.g. time limiting) โ€ข Generally some reference, proof, or key โ€ข Anything directly created (parenthood) โ€ข Delegate subset of access to another (introduction) โ€ข Long history (e.g. X.509, SDSI, SPKI, Macaroons) ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 33

Slide 33

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ โ€ข OCAP is โ€œproactive authโ€ โ€ข Contains all the info about access โ€ข Any guarding done up front (e.g. time limiting) โ€ข Generally some reference, proof, or key ๐Ÿ‘ฉ๐ŸŽค โ€ข Anything directly created (parenthood) โ€ข Delegate subset of access to another (introduction) โ€ข Long history (e.g. X.509, SDSI, SPKI, Macaroons) ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™

Slide 34

Slide 34

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ โ€ข OCAP is โ€œproactive authโ€ โ€ข Contains all the info about access โ€ข Any guarding done up front (e.g. time limiting) โ€ข Generally some reference, proof, or key ๐Ÿ‘ฉ๐ŸŽค ๐Ÿ‘ฎ โœ‹ โš™ โ€ข Anything directly created (parenthood) โ€ข Delegate subset of access to another (introduction) โ€ข Long history (e.g. X.509, SDSI, SPKI, Macaroons) ๐Ÿ‘ฉ๐ŸŽค โš™

Slide 35

Slide 35

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ โ€ข OCAP is โ€œproactive authโ€ โ€ข Contains all the info about access โ€ข Any guarding done up front (e.g. time limiting) โ€ข Generally some reference, proof, or key ๐Ÿ‘ฉ๐ŸŽค โœ‹ ๐Ÿ‘ฎ โš™ ๐Ÿ‘ฉ๐ŸŽค ๐ŸŽŸ โš™ โ€ข Anything directly created (parenthood) โ€ข Delegate subset of access to another (introduction) โ€ข Long history (e.g. X.509, SDSI, SPKI, Macaroons)

Slide 36

Slide 36

UCAN Object Capability Model (OCAP) ACL โ€ข ACL is โ€œreactive authโ€ ๐Ÿ“‘ โ€ข OCAP is โ€œproactive authโ€ โ€ข Contains all the info about access โ€ข Any guarding done up front (e.g. time limiting) โ€ข Generally some reference, proof, or key ๐Ÿ‘ฉ๐ŸŽค โ€ข Anything directly created (parenthood) โ€ข Delegate subset of access to another (introduction) โ€ข Long history (e.g. X.509, SDSI, SPKI, Macaroons) ๐Ÿ‘ฎ โœ‹ โš™ OCAP ๐Ÿ‘ฉ๐ŸŽค ๐ŸŽŸ โš™

Slide 37

Slide 37

UCAN Chained Attenuation

Slide 38

Slide 38

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป

Slide 39

Slide 39

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ

Slide 40

Slide 40

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ

Slide 41

Slide 41

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ

Slide 42

Slide 42

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿงธ

Slide 43

Slide 43

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿงธ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ

Slide 44

Slide 44

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐ŸŒˆ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐ŸŽจ ๐Ÿงธ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ

Slide 45

Slide 45

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐ŸŒˆ ๐ŸŒˆ ๐Ÿงธ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐ŸŽจ โ˜โš™ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ

Slide 46

Slide 46

UCAN Chained Attenuation ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐ŸŒˆ ๐ŸŒˆ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐ŸŽจ โ˜โš™ ๐Ÿ’ƒ

Slide 47

Slide 47

UCAN Tradeoffs & Hybridization

Slide 48

Slide 48

UCAN Tradeoffs & Hybridization โ€ข Pure ACL, reactive โ€ข Centrally view who has access to what โ€ข Check on every request, bottleneck โ€ข At-will revocation โ€ข Access rules grow in complexity โ€ข More complex provisioning

Slide 49

Slide 49

UCAN Tradeoffs & Hybridization โ€ข Pure ACL, reactive โ€ข Pure OCAP, proactive โ€ข Centrally view who has access to what โ€ข Works o ine & everywhere โ€ข Check on every request, bottleneck โ€ข User owned or provisioned โ€ข At-will revocation โ€ข No resource contention, infinite scale โ€ข Access rules grow in complexity โ€ข Easy interop (as weโ€™ll see) โ€ข More complex provisioning โ€ข Principle of least authority โ€ข Revocation more di cult ff ffi ffl โ€ข Tracking possible but has tradeo s

Slide 50

Slide 50

UCAN OAuth Sequence

Slide 51

Slide 51

UCAN UCAN Sequence ๐Ÿ•™ ๐Ÿ•™

Slide 52

Slide 52

UCAN Revocation Cascade ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐ŸŒˆ ๐ŸŒˆ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐ŸŽจ โ˜โš™ ๐Ÿ’ƒ

Slide 53

Slide 53

UCAN Revocation Cascade UCAN CID ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘จ๐Ÿฆณ๐Ÿ–ฅ ๐Ÿ‘จ๐Ÿฆณ๐Ÿ“ฑ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿฌ ๐Ÿพ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐ŸŒˆ ๐ŸŒˆ ๐Ÿ‘ฉ๐Ÿš€ ๐Ÿถ ๐Ÿงธ ๐ŸŒˆ ๐Ÿถ ๐Ÿพ ๐Ÿงธ ๐Ÿ‘จ๐ŸŽจ โ˜โš™ ๐Ÿ’ƒ

Slide 54

Slide 54

UCAN JWT

Slide 55

Slide 55

UCAN Auth Chaining โ€ข OCAP, provable chains, revocable โ€ข Non-exportable 2048-bit RSA (WebCrypto), Ed25519 & BLS everywhere else

Slide 56

Slide 56

UCAN Trustless Interop ๐Ÿ›‚ OIDC Server ๐Ÿค– ๐Ÿ‘ฝ Service A Service B UCAN with ๐Ÿ’ ID / email Describes o er for ๐Ÿค– OIDC Login OIDC Token O er for ๐Ÿค–+๐Ÿ’ Secured with signature ๐Ÿ‘ฝ and HMAC ๐Ÿ’๐Ÿ›‚ ๐Ÿ’โ€™s OIDC token? ๐Ÿ’โ€™s OIDC token! Check ๐Ÿ’ HMAC and ๐Ÿ‘ฝ signature Update ๐Ÿค– subscription for ๐Ÿ’ ff ff 204 Accepted ๐Ÿ’ User

Slide 57

Slide 57

High Level Auth Topologies OCAP FileCoin & Accounts โœ

Slide 58

Slide 58

OCAP FileCoin & Accounts Fully Managed (Similar to Today)

Slide 59

Slide 59

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“

Slide 60

Slide 60

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ ๐Ÿง˜

Slide 61

Slide 61

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ ๐Ÿง˜ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข

Slide 62

Slide 62

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข

Slide 63

Slide 63

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ

Slide 64

Slide 64

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ€ n io s i v o Pr ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข ๐Ÿ’พ ๐Ÿ’ฐ1 ๐Ÿ’ฐ AN โ€œ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ UC ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ

Slide 65

Slide 65

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ€ n io s i v o Pr ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข ๐Ÿ’พ ๐Ÿ’ฐ1 ๐Ÿ’ฐ AN โ€œ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ UC ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ ๐Ÿ’ฐ๐Ÿ’พ UCAN 2 ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ“ฑ ๐Ÿ’ฐ ๐Ÿ’พ

Slide 66

Slide 66

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ€ n io s i v o Pr ๐Ÿ’พ ๐Ÿ’ฐ1 ๐Ÿ’ฐ AN โ€œ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ UC ๐Ÿ’ฐ๐Ÿ’พ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ UCAN 2 ๐Ÿ’ฐ ๐Ÿ’พ UC AN 3 TX ๐Ÿงพ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ“ฑ ๐Ÿ’ฐ ๐Ÿ’พ

Slide 67

Slide 67

OCAP FileCoin & Accounts Fully Managed (Similar to Today) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ€ n io s i v o Pr TX ๐Ÿงพ ๐Ÿ’พ ๐Ÿ’ฐ1 ๐Ÿ’ฐ AN โ€œ ๐Ÿง˜ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ UC ๐Ÿ’ฐ๐Ÿ’พ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ”‘ ๐Ÿ›ข๐Ÿ›ขDB๐Ÿ›ข๐Ÿ›ข ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ UCAN 2 ๐Ÿ’ฐ ๐Ÿ’พ UC AN 3 TX ๐Ÿงพ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ“ฑ ๐Ÿ’ฐ ๐Ÿ’พ

Slide 68

Slide 68

OCAP FileCoin & Accounts BLS Cosigner (Self Sovereign) โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ Registration ๐Ÿง˜ 2/3 PK for ๐Ÿ”? ๐Ÿ—1+๐Ÿ—2 = ๐Ÿ”‘ PK(๐Ÿ—2,) ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ—2 {PK(๐Ÿ”‘ID), PK(๐Ÿ—1) } ๐Ÿ— ( K UCAN 1 ๐Ÿง˜ TX ๐Ÿงพ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ—3 (๐Ÿ”A, ๐Ÿ—1) ๐Ÿ’ฐ๐Ÿ’พ 3) P ๐Ÿ—1+๐Ÿ—3 = ๐Ÿ”‘ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ“ฑ UCAN 2 TX ๐Ÿ’ฐ๐Ÿ’พ ๐Ÿ— ๐Ÿงพ1 ๐Ÿ’ฐ (๐Ÿ”B, ๐Ÿ—1) ๐Ÿ’พ

Slide 69

Slide 69

OCAP FileCoin & Accounts Delegate-Aware Blockchain ๐Ÿ’ฐ ๐Ÿ’ฐ๐Ÿ’ฐ ๐Ÿ”‘ ๐Ÿ’พ ๐Ÿ’พ๐Ÿ’พ โœจโœจโœจ โœจโœจโœจ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ โ›“ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’พ UCAN 1 UCAN 2 TX ๐Ÿ’ฐ๐Ÿ’พ ๐Ÿ— ๐Ÿงพ UCAN 2 ๐Ÿคน โ€œDumbโ€ Relay TX ๐Ÿ’ฐ๐Ÿ’พ ๐Ÿ— ๐Ÿงพ ๐Ÿ‘ฉ๐Ÿ’ป๐Ÿ“ฑ ๐Ÿ’ฐ ๐Ÿ— ๐Ÿ’พ

Slide 70

Slide 70

OCAP FileCoin & Accounts Bonus: Payment Channel Interop

Slide 71

Slide 71

OCAP FileCoin & Accounts Bonus: Payment Channel Interop โœจ๐Ÿง‘๐ŸŽจ๐Ÿ’ป๐Ÿ”‘ ๐Ÿง‘๐ŸŽจ๐Ÿ“ฑ๐Ÿ— ๐Ÿ‘ฉ๐Ÿ”ง๐Ÿ–ฅ

Slide 72

Slide 72

OCAP FileCoin & Accounts Bonus: Payment Channel Interop โœจ๐Ÿง‘๐ŸŽจ๐Ÿ’ป๐Ÿ”‘ ๐Ÿง‘๐ŸŽจ๐Ÿ“ฑ๐Ÿ— UCAN{ max: 200๐Ÿ’ฐ, from: ๐Ÿ”‘, to: ๐Ÿ—, sig: โœ } ๐Ÿ‘ฉ๐Ÿ”ง๐Ÿ–ฅ

Slide 73

Slide 73

OCAP FileCoin & Accounts Bonus: Payment Channel Interop โœจ๐Ÿง‘๐ŸŽจ๐Ÿ’ป๐Ÿ”‘ ๐Ÿง‘๐ŸŽจ๐Ÿ“ฑ๐Ÿ— UCAN{ max: 200๐Ÿ’ฐ, from: ๐Ÿ”‘, to: ๐Ÿ—, sig: โœ } sendTx(๐Ÿ‘ฉ๐Ÿ”ง, 100๐Ÿ’ฐ, UCAN{ max: 200๐Ÿ’ฐ, from: ๐Ÿ”‘, to: ๐Ÿ— sig: โœ }) 100๐Ÿ’ฐ ๐Ÿ‘ฉ๐Ÿ”ง๐Ÿ–ฅ

Slide 74

Slide 74

OCAP FileCoin & Accounts Bonus: Payment Channel Interop โœจ๐Ÿง‘๐ŸŽจ๐Ÿ’ป๐Ÿ”‘ ๐Ÿง‘๐ŸŽจ๐Ÿ“ฑ๐Ÿ— UCAN{ max: 200๐Ÿ’ฐ, from: ๐Ÿ”‘, to: ๐Ÿ—, sig: โœ } sendTx(๐Ÿ‘ฉ๐Ÿ”ง, 100๐Ÿ’ฐ, UCAN{ max: 200๐Ÿ’ฐ, from: ๐Ÿ”‘, to: ๐Ÿ— sig: โœ }) 100๐Ÿ’ฐ Countersigned Tx! Countersigned Tx! ๐Ÿ‘ฉ๐Ÿ”ง๐Ÿ–ฅ

Slide 75

Slide 75

User Controlled, Serverless, Universal Auth & ID Read vs Write ๐Ÿ‘“๐Ÿ–‹

Slide 76

Slide 76

Securing Data Access WNFS Layout

Slide 77

Slide 77

Securing Data Access WNFS Layout alice.fission.name

Slide 78

Slide 78

Securing Data Access WNFS Layout Public Photos Avatars Apps alice.fission.name

Slide 79

Slide 79

Securing Data Access WNFS Layout alice.fission.name Public Photos Avatars Private Apps Photos Apps Family Photos My Gallery

Slide 80

Slide 80

Securing Data Access WNFS Layout alice.fission.name Public Photos Avatars Private Apps Shared By Me Photos Apps Family Photos My Gallery Keys and Keys Keysand and Pointers Pointers Pointers

Slide 81

Slide 81

Securing Data Access WNFS Layout alice.fission.name Public Photos Avatars Private Apps Shared By Me Photos Apps Family Photos My Gallery Keys and Keys Keysand and Pointers Pointers Pointers Shared w/ Me Keys and Pointers

Slide 82

Slide 82

Securing Data Access Virtual Nodes

Slide 83

Slide 83

Securing Data Access Virtual Nodes Raw Node

Slide 84

Slide 84

Securing Data Access Virtual Nodes Raw Node File Node Raw Data Metadata

Slide 85

Slide 85

Securing Data Access Virtual Nodes Raw Node File Node Raw Data Metadata Directory Node Index Metadata

Slide 86

Slide 86

Securing Data Access Virtual Nodes File Node Raw Node โ€ข Virtual Node Raw Data โ€ข Consistent interface โ€ข Arbitrary metadata โ€ข Tags, creators, MIME, sources, &c Metadata Directory Node Index Metadata

Slide 87

Slide 87

Securing Data Access Hard & Soft Links

Slide 88

Slide 88

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate

Slide 89

Slide 89

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate โ€ข Soft links โ€ข Like a symlink or web link โ€ข 2 pointers ~ latest โ€ข May break โ€ข Always some version available

Slide 90

Slide 90

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate โ€ข Soft links โ€ข Like a symlink or web link โ€ข 2 pointers ~ latest โ€ข May break โ€ข Always some version available

Slide 91

Slide 91

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate โ€ข Soft links โ€ข Like a symlink or web link โ€ข 2 pointers ~ latest โ€ข May break โ€ข Always some version available

Slide 92

Slide 92

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate โ€ข Soft links โ€ข Like a symlink or web link โ€ข 2 pointers ~ latest โ€ข May break โ€ข Always some version available

Slide 93

Slide 93

Securing Data Access Hard & Soft Links โ€ข Hard links โ€ข New for the web! โ€ข Direct reference โ€ข 2 pointers ~ duplicate โ€ข Soft links โ€ข Like a symlink or web link โ€ข 2 pointers ~ latest โ€ข May break โ€ข Always some version available

Slide 94

Slide 94

Securing Data Access Persistent Versioning

Slide 95

Slide 95

Securing Data Access Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0

Slide 96

Slide 96

Securing Data Access Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0 ๐Ÿ•™

Slide 97

Slide 97

Securing Data Access Persistent Versioning Photos@r0 Photos@r1 Vacation Avatars@r0 Avatars@r1 beach.png caricature.jpg headshot.png Revision 0 Revision 1 ๐Ÿ•™

Slide 98

Slide 98

Securing Data Access Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 ๐Ÿ•™ Avatars@r1

Slide 99

Slide 99

Securing Data Access Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 ๐Ÿ•™ Avatars@r1

Slide 100

Slide 100

Securing Data Access Persistent Versioning Photos@r0 Generation 0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 ๐Ÿ•™ Avatars@r1

Slide 101

Slide 101

Securing Data Access Persistent Versioning Generation 0 Generation 1 Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 ๐Ÿ•™ Avatars@r1

Slide 102

Slide 102

Securing Data Access Rearranged Photos@r1 Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Avatars@r1 headshot.png

Slide 103

Slide 103

Securing Data Access Private Nodes ๐Ÿ™ˆ CBOR Binary Encrypted Node ๐Ÿ”’ AES256 + ๐Ÿ”‘ Virtual Node = Index ๐Ÿ”‘ ๐Ÿ”‘ Metadata ๐Ÿ”‘

Slide 104

Slide 104

Securing Data Access Cryptree ๐ŸŽ„ Virtual Node Virtual Node ๐Ÿ”‘ Index ๐Ÿ”‘ ๐Ÿ”‘ Metadata ๐Ÿ”‘ ๐Ÿ”‘ ๐Ÿ”‘ Index Metadata

Slide 105

Slide 105

Cryptree ๐ŸŽ„ Virtual Node Virtual Node ๐Ÿ”‘ Index ๐Ÿ”‘ ๐Ÿ”‘ Metadata ๐Ÿ”‘ ๐Ÿ”‘ name: โ€œbeach.jpgโ€ revision: 42 key: โ€œB374A26A71490437Aโ€ฆโ€ ๐Ÿ”‘

, } , { Securing Data Access Index Metadata

Slide 106

Slide 106

๐Ÿ”‘ Cryptree ๐ŸŽ„ Virtual Node Virtual Node ๐Ÿ”‘ Index ๐Ÿ”‘ ๐Ÿ”‘ Metadata ๐Ÿ”‘ ๐Ÿ”‘ name: โ€œbeach.jpgโ€ revision: 42 key: โ€œB374A26A71490437Aโ€ฆโ€ ๐Ÿ”‘

, } , { Securing Data Access Index Metadata

Slide 107

Slide 107

๐Ÿ”‘ Cryptree ๐ŸŽ„ Virtual Node Virtual Node ๐Ÿ”‘ Index ๐Ÿ”‘ ๐Ÿ”‘ Metadata ๐Ÿ”‘ ๐Ÿ”‘ name: โ€œbeach.jpgโ€ revision: 42 key: โ€œB374A26A71490437Aโ€ฆโ€ ๐Ÿ”‘

, } , { Securing Data Access Index Metadata

Slide 108

Slide 108

Securing Data Access Subtree Read Access

Slide 109

Slide 109

Securing Data Access Future Light Cone Restriction

Slide 110

Slide 110

Securing Data Access Future Light Cone Restriction โ€ข Ratchet keys for backwards secrecy โ€ข Spiral ratchet for quick fast forwards

Slide 111

Slide 111

Securing Data Access Future Light Cone Restriction โ€ข Ratchet keys for backwards secrecy โ€ข Spiral ratchet for quick fast forwards

Slide 112

Slide 112

Securing Data Access Future Light Cone Restriction โ€ข Ratchet keys for backwards secrecy โ€ข Spiral ratchet for quick fast forwards

Slide 113

Slide 113

Securing Data Access Encrypted Tree is Surprisingly Efficient

Slide 114

Slide 114

Securing Data Access Encrypted Tree is Surprisingly Efficient HAMT (weight 16)

Slide 115

Slide 115

Securing Data Access Encrypted Tree is Surprisingly Efficient HAMT 163 = 4,096 items (weight 16) 164 = 65,536 items

Slide 116

Slide 116

Securing Data Access Encrypted Tree is Surprisingly Efficient HAMT 163 = 4,096 items (weight 16) 164 = 65,536 items Append-only Quick Read/Write Merkleized Concurrency Friendly

Slide 117

Slide 117

Securing Data Access Encrypted Tree is Surprisingly Efficient HAMT 163 = 4,096 items (weight 16) 164 = 65,536 items Append-only Quick Read/Write Merkleized Concurrency Friendly ๐Ÿ”‘

Slide 118

Slide 118

Securing Data Access Namefilters & Hidden Paths

Slide 119

Slide 119

Securing Data Access Namefilters & Hidden Paths โ€ข Bare Filter โ€ข parentFilte โ€ข AND bloom(SHA(aesKey) โ€ข AND bloom(SHA(aesKey ++ revisionRatchet) โ€ข Saturation โ€ข nameFilter AND bloom(SHA(nameFilter) ) ) ) r โ€ข Repeat until threshold bits flipped

Slide 120

Slide 120

Securing Data Access Access-Mediated Collaborative Rooting

Slide 121

Slide 121

Securing Data Access Access-Mediated Collaborative Rooting Rev 0

Slide 122

Slide 122

Securing Data Access Access-Mediated Collaborative Rooting Rev 0

Slide 123

Slide 123

Securing Data Access Access-Mediated Collaborative Rooting Rev 0 Rev 1 (Partial)

Slide 124

Slide 124

Securing Data Access Access-Mediated Collaborative Rooting Rooting progress Rev 0 Rev 1 (Partial)

Slide 125

Slide 125

Securing Data Access Access-Mediated Collaborative Rooting Rooting progress Rev 0 Rev 1 (Partial)

Slide 126

Slide 126

Securing Data Access Access-Mediated Collaborative Rooting Rooting progress No common root at this layer! Attached via HAMT Rev 0 Rev 1 (Partial)

Slide 127

Slide 127

Securing Data Access Progressive Fast Forward Rev 0 Rev 1 (Partial)

Slide 128

Slide 128

Securing Data Access Progressive Fast Forward Rev 0 Rev 1 (Partial) Rev 2 (Partial)

Slide 129

Slide 129

Securing Data Access Progressive Fast Forward Rev 3 (Complete) Rev 0 Rev 1 (Partial) Rev 2 (Partial)

Slide 130

Slide 130

Securing Data Access Progressive Fast Forward Rev 3 (Complete) Rev 0 Rev 1 (Partial) Rev 2 (Partial)

Slide 131

Slide 131

Securing Data Access Progressive Fast Forward Rev 3 (Complete) Rev 0 Rev 1 (Partial) Rev 2 (Partial)

Slide 132

Slide 132

Securing Data Access Merkle CRDT Single File Version Shadow

Slide 133

Slide 133

Securing Data Access Merkle CRDT โ€ข Original paper from PL โ€ข Persistent data structure by default โ€ข Confluent with automated reconciliation โ€ข Innate causal clock via Merkle DAG โ€ข Coarse grained (path-level) Single File Version Shadow

Slide 134

Slide 134

Securing Data Access Async Granting Read & Write

Slide 135

Slide 135

Securing Data Access Async Granting Read & Write Shared by Me

Slide 136

Slide 136

Securing Data Access Async Granting Read & Write Shared by Me did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur

Slide 137

Slide 137

Securing Data Access Async Granting Read & Write Shared by Me did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur Human Readable Name ๐Ÿ”‘ Symlink

Slide 138

Slide 138

Securing Data Access Async Granting Read & Write Shared by Me did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur Human Readable Name ๐Ÿ”‘ Symlink

Slide 139

Slide 139

Securing Data Access Async Granting Read & Write Shared by Me did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur Human Readable Name ๐Ÿ”‘ Symlink

Slide 140

Slide 140

Securing Data Access Async Granting Read & Write Shared with Me Shared by Me did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB did:key:zStEksDrxkwYmpzqB dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU dAQjjx1PRbHG3fq4ChGeJcYU YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur YU44a4CBUExTTjeCbop6Uur Human Readable Name ๐Ÿ”‘ Symlink