70
AUTHORIZING USERS WITHOUT A BACKEND …AND UCAN TOO

WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

A U T H O R I Z I N G U S E R S WI THOUT A B A C K E N D

… A N D U C A N T O O 😉

Page 2: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

B R O O K LY N Z E L E N K A , @ e x p e d eA U T H O R I Z I N G U S E R S W I T H O U T A B A C K E N D

Page 3: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Cofounder/CTO at Fission

• https://fission.codes

• PLT & VMs

• Previously an Ethereum Core Dev

• EIPs 615, 902, 1066, 1444

• ECIP 1050

• VanFP, Code & Coffee YVR

• Witchcraft, Algae, Exceptional, & others

B R O O K LY N Z E L E N K A , @ e x p e d eA U T H O R I Z I N G U S E R S W I T H O U T A B A C K E N D

Page 4: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

W E H AV E S T I C K E R S !

Page 5: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

W E H AV E S T I C K E R S !P I N G M E A N D W E ’ L L M A I L S O M E

Page 6: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S O M E B A C K G R O U N D C O N T E X T

Page 7: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S O M E B A C K G R O U N D C O N T E X TW H AT S E T O F P R O B L E M S I S F I S S I O N S O LV I N G ?

Page 8: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S H I P P I N G A W E B A P P I N 2 0 2 0 I S T O O H A R D !S O M E B A C K G R O U N D C O N T E X T

Backends

• Multi-tenant

• Increasingly sharded

• Highly concurrent

• Data leaks everywhere 😱

• ACL complexity & GDPR

DevOps

• Expensive & complex

• Very much its specialty

• We’re close to peak Kubernetes

Page 9: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S H I P P I N G A W E B A P P I N 2 0 2 0 I S T O O H A R D !S O M E B A C K G R O U N D C O N T E X T

Backends

• Multi-tenant

• Increasingly sharded

• Highly concurrent

• Data leaks everywhere 😱

• ACL complexity & GDPR

DevOps

• Expensive & complex

• Very much its specialty

• We’re close to peak Kubernetes

Page 10: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

F R O N T E N D I S E AT I N G T H E B A C K E N D 🍔😋S O M E B A C K G R O U N D C O N T E X T

• Frontend is never going away

• Browsers keep getting more powerful (e.g. WebAssembly, WebAuthN)

• Trend to more granular edge — Cloudflare Workers / Fastly Edge Cloud

• Empower front end devs / full stack web apps for the 20’s and beyond 🚀

🌐

C O N TA I N E R S S E R V E R L E S S W E B N AT I V E

☁λ

L A M P

Page 11: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

C O N S T R A I N T SS O M E B A C K G R O U N D C O N T E X T

Page 12: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

C O N S T R A I N T S

• Everything for a modern web app directly in the browser

• Vanilla browsers only — no plug-ins

• As secure or better than with traditional cloud infra

• UX should feel the same or easier

S O M E B A C K G R O U N D C O N T E X T

Page 13: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

“ W E B N AT I V E ”

Local-first, secure, user controlled, global file & hosting platform

COMPUTE

STORAGE

IDENTITYPassword-less login, end-to-end encryption, secure by default

+

🛂

💽

🔨

S O M E B A C K G R O U N D C O N T E X T

Build web apps more like native mobile & desktop

Page 14: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

</shill>

Page 15: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

O K AY , T H E B A C K E N D G O E S A W AY 👍 … N O W W H AT ?

Page 16: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

W E H AV E S O M E N E W B U I L D I N G B L O C K S !N O W W H AT ?

• Start thinking “universally”

• WebCrypto API 🔐

• Self-sovereign identity / DID 🛂

• Content addressing #⃣

• Macaroons 🍪

• Resurrecting SPKI auth 🧟👻

• CQRS applied to authZ (separate methods)(Disclaimer: taken care of under the hood, but interoperable)

Page 17: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

W E H AV E S O M E N E W B U I L D I N G B L O C K S !N O W W H AT ?

• Start thinking “universally”

• WebCrypto API 🔐

• Self-sovereign identity / DID 🛂

• Content addressing #⃣

• Macaroons 🍪

• Resurrecting SPKI auth 🧟👻

• CQRS applied to authZ (separate methods)(Disclaimer: taken care of under the hood, but interoperable)

Page 18: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S T E P O N E U S E R I D S W I T H O U T A D ATA B A S E

Page 19: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S TA N D A R D I Z AT I O N 🏢U S E R I D S W I T H O U T A D ATA B A S E

Page 20: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S TA N D A R D I Z AT I O N 🏢

• W3C, Microsoft, BC, etc

• For users, devices, and more

• Based on public-key cryptography

• Truly “universal” UUIDs

• Agnostic about backing

U S E R I D S W I T H O U T A D ATA B A S E

Page 21: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤U S E R I D S W I T H O U T A D ATA B A S E

Page 22: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤

• Generate your own globally-unique, verifiable user ID!

U S E R I D S W I T H O U T A D ATA B A S E

Page 23: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤

• Generate your own globally-unique, verifiable user ID!

• As many as you like 🤷

U S E R I D S W I T H O U T A D ATA B A S E

Page 24: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤

• Generate your own globally-unique, verifiable user ID!

• As many as you like 🤷

• Many methods — we’re starting with “did:key”

U S E R I D S W I T H O U T A D ATA B A S E

Page 25: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤

• Generate your own globally-unique, verifiable user ID!

• As many as you like 🤷

• Many methods — we’re starting with “did:key”

• Not super readable, so publicize over DNS TXT record

_did.USERNAME.fission.name

U S E R I D S W I T H O U T A D ATA B A S E

Page 26: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S E L F - S O V E R E I G N I D E N T I T Y ( S S I ) 🔑👩🎤

• Generate your own globally-unique, verifiable user ID!

• As many as you like 🤷

• Many methods — we’re starting with “did:key”

• Not super readable, so publicize over DNS TXT record

_did.USERNAME.fission.name

U S E R I D S W I T H O U T A D ATA B A S E

did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUHzngyNKmKx4VKWEJE6sk4SE4Ka3kH92MxU2YC7CcePHy77GzZy8

Ed25519 — AAAAC3NzaC1lZDI1NTE5AAAAIB7/gFUQ9llI1BTrEjW7Jq6fX6JLsK1J4wXK/dn9JMcO

Page 27: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S T E P T W O D I S T R I B U T E D R E A D C O N T R O L

Page 28: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

O C A P / R E A D K E Y SD I S T R I B U T E D R E A D C O N T R O L

Page 29: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

O C A P / R E A D K E Y S

• ACLs

• "Reactive access control”

• Authority by association

D I S T R I B U T E D R E A D C O N T R O L

Page 30: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

O C A P / R E A D K E Y S

• ACLs

• "Reactive access control”

• Authority by association

• OCAP

• “Proactive" access control

• Authority by possession

• “You either have the key, or you don’t”

D I S T R I B U T E D R E A D C O N T R O L

Page 31: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

O C A P / R E A D K E Y S

• ACLs

• "Reactive access control”

• Authority by association

• OCAP

• “Proactive" access control

• Authority by possession

• “You either have the key, or you don’t”

• Normal AES-256 keys

D I S T R I B U T E D R E A D C O N T R O L

Page 32: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

Page 33: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

Page 34: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

• Encrypt the encryption with more encryption

• Each layer (file or dir) is encrypted with a key

• Dirs contain keys for each sub dir / file

• Recurse!

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

Page 35: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

• Encrypt the encryption with more encryption

• Each layer (file or dir) is encrypted with a key

• Dirs contain keys for each sub dir / file

• Recurse!

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

root

Page 36: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

• Encrypt the encryption with more encryption

• Each layer (file or dir) is encrypted with a key

• Dirs contain keys for each sub dir / file

• Recurse!

🔑

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

🔑

root

Page 37: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

• Encrypt the encryption with more encryption

• Each layer (file or dir) is encrypted with a key

• Dirs contain keys for each sub dir / file

• Recurse!

• Access granted to a directory and below

• i.e. Same UX Dropbox/Google Drive

• Full user controlled 🔑

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

🔑

root

Page 38: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Public keys playing double duty: IDs and secure key exchange!

• Encrypt the encryption with more encryption

• Each layer (file or dir) is encrypted with a key

• Dirs contain keys for each sub dir / file

• Recurse!

• Access granted to a directory and below

• i.e. Same UX Dropbox/Google Drive

• Full user controlled

• Revocation = key rotation & DH exchange

🔑

M O R E G R A N U L A R A C C E S S : C R Y P T R E E S 🔐🌳D I S T R I B U T E D R E A D C O N T R O L

🔑

root

Page 39: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

S T E P T H R E E D E L E G AT E D W R I T E A C C E S S

Page 40: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 41: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 42: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 43: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 44: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 45: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 46: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 47: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S TAT U S Q U O : O A U T H

Page 48: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S E L F - S I G N E D T O K E N S ( U C A N )

Page 49: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S E L F - S I G N E D T O K E N S ( U C A N )

Page 50: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S E L F - S I G N E D T O K E N S ( U C A N )

Page 51: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S E L F - S I G N E D T O K E N S ( U C A N )

D O N E !

Page 52: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S E L F - S I G N E D T O K E N S ( U C A N )

D O N E !

Page 53: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

D E L E G AT E D W R I T E A C C E S S

S I D E - B Y - S I D E

Page 54: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

Now can also be:

• Another device (same human)

• A user’s peer (different human)

• Some service

D E L E G AT E D W R I T E A C C E S S

S I D E - B Y - S I D E

Page 55: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

Root Proof

D E L E G AT E D W R I T E A C C E S SG O O G L E ’ S M A C A R O O N S : “ S TA C K E D C O O K I E S ” 🍪 🍪 🍪

Page 56: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Solves for Google’s infra

• Decentralized delegation

• Attenuation

• Shrink size with HMACs

• Assumes auth servers

Root Proof

D E L E G AT E D W R I T E A C C E S SG O O G L E ’ S M A C A R O O N S : “ S TA C K E D C O O K I E S ” 🍪 🍪 🍪

Page 57: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

Delegate 1• Solves for Google’s infra

• Decentralized delegation

• Attenuation

• Shrink size with HMACs

• Assumes auth servers

Root Proof

D E L E G AT E D W R I T E A C C E S SG O O G L E ’ S M A C A R O O N S : “ S TA C K E D C O O K I E S ” 🍪 🍪 🍪

Page 58: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

Delegate 2

Delegate 1• Solves for Google’s infra

• Decentralized delegation

• Attenuation

• Shrink size with HMACs

• Assumes auth servers

Root Proof

D E L E G AT E D W R I T E A C C E S SG O O G L E ’ S M A C A R O O N S : “ S TA C K E D C O O K I E S ” 🍪 🍪 🍪

Page 59: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

Delegate 3

Delegate 2

Delegate 1• Solves for Google’s infra

• Decentralized delegation

• Attenuation

• Shrink size with HMACs

• Assumes auth servers

Root Proof

D E L E G AT E D W R I T E A C C E S SG O O G L E ’ S M A C A R O O N S : “ S TA C K E D C O O K I E S ” 🍪 🍪 🍪

Page 60: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

• Solves for user-centrism

• Decentralized delegation

• Attenuation

• Shrink size with CIDs

• Assumes PKI

Root Proof

Delegate 1

Delegate 2

Delegate 3

D E L E G AT E D W R I T E A C C E S SU C A N : U S E R C O N T R O L L E D A U T H O R I Z AT I O N N E T W O R K 🦜

Page 61: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

E A C H L AY E R F O L L O W S T H I S F O R MD E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:<JWT PROOF>, “exp”:1589423547 } <SIGNATURE>

Page 62: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

E A C H L AY E R F O L L O W S T H I S F O R MD E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:<JWT PROOF>, “exp”:1589423547 } <SIGNATURE>

Page 63: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

E A C H L AY E R F O L L O W S T H I S F O R MD E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:<JWT PROOF>, “exp”:1589423547 } <SIGNATURE>

Page 64: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

E A C H L AY E R F O L L O W S T H I S F O R MD E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:<JWT PROOF>, “exp”:1589423547 } <SIGNATURE>

RecursiveProblem: gets pretty big

Page 65: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

H A S H I N G I T D O W N ⬛◼◾▪D E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:”QmaEmBULputJ5sAJX4bRQYwwWV2DUPnwNSz2R2eTvHV4DT”, “exp”:1589423547 } <SIGNATURE>

Page 66: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

H A S H I N G I T D O W N ⬛◼◾▪D E L E G AT E D W R I T E A C C E S S

{ “alg”: “RS256”, “typ”: “JWT“, “cty”: “JWT“ } { “iss”:“did:key:z1MdJPaWBebKxtE33AszRWYTF67wCLeFdcsqc3R87hyLKzBK…”, “aud”:“did:key:zBR4m3DNZHT1G8Nb2RHzgKK7TrWxEmJjZskgvFdncTthzUH…”, “scp”:“/public/photos/covid2020/”, “pty”:”APPEND_ONLY”, “prf”:”QmaEmBULputJ5sAJX4bRQYwwWV2DUPnwNSz2R2eTvHV4DT”, “exp”:1589423547 } <SIGNATURE>

Page 67: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

R E C A P

Page 68: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

R E C A PW E L L T H AT W A S A L O T O F C O N C E P T S

Page 69: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

W E L L T H AT W A S A L O T O F C O N C E P T SR E C A P

• Fully client-side auth

• User controlled / sharding logical conclusion

• A “universal” user ID table

• Infinite scale 📈

• No need for an auth server

• Online, offline, P2P, or traditional cloud infra ✅✅✅✅

• Crypto keys… crypto keys everywhere!

Page 70: WITHOUT A BACKEND · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev •EIPs 615, 902, 1066, 1444 •ECIP 1050 •VanFP, Code & Co!ee YVR •Witchcraft,

b r o o k l y n @ f i s s i o n . c o d e s g i t h u b . c o m /e x p e d e

@ e x p e d e

🌎🌍🌏 T H A N K Y O U , C O D I N G E A R T H 🎉

h t t p s : / / f i s s i o n . c o d e s h t t p s : / / t a l k . f i s s i o n . c o d e s