Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
U N I V E R S A L H O S T L E S S
F O R A P O S T - S E R V E R L E S S F U T U R E
S U B S T R A T E
✨
🚀
🌖🌑
B R O O K LY N Z E L E N K A , @ e x p e d eA U N I V E R S A L H O S T L E S S S U B S T R AT E
• Cofounder/CTO at Fission
• https://fission.codes
• PLT & VMs
• Previously an Ethereum Core Dev
• EIPs 615, 902, 1066, 1444
• ECIP 1050
• Now spending a lot of time with IPFS & DIDs
• Lots of R&D (but still have to deal with segfaults, &c)
B R O O K LY N Z E L E N K A , @ e x p e d eA U N I V E R S A L H O S T L E S S S U B S T R AT E
TA L K G O A L SA U N I V E R S A L H O S T L E S S S U B S T R AT E
TA L K G O A L S
• Be as fringe as this track gets 😛🤭
• Expose you to a lot of ideas in broad strokes
• Nothing that’s science fiction!
• A peek at what's coming in the next 2-5 years
A U N I V E R S A L H O S T L E S S S U B S T R AT E
TA L K G O A L S
• Be as fringe as this track gets 😛🤭
• Expose you to a lot of ideas in broad strokes
• Nothing that’s science fiction!
• A peek at what's coming in the next 2-5 years
A U N I V E R S A L H O S T L E S S S U B S T R AT E
TA L K G O A L S
• Be as fringe as this track gets 😛🤭
• Expose you to a lot of ideas in broad strokes
• Nothing that’s science fiction!
• A peek at what's coming in the next 2-5 years
A U N I V E R S A L H O S T L E S S S U B S T R AT E
🚫
PA R A D I G M W AV E SA U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S S E R V E R L E S S
☁λ
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
🌐
C O N TA I N E R S S E R V E R L E S S U N I V E R S A L
☁λ
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E BA U N I V E R S A L H O S T L E S S S U B S T R AT E
U P S H O T ?A U N I V E R S A L H O S T L E S S S U B S T R AT E
U P S H O T ?
• Go from zero to production on a plane ✈
• Move data to compute and vice versa 🔄
• Scale linearly 📈
• Serve areas that lack sufficient cloud hardware 🖥
• Anyone can be a service provider (lower bar to entry) 💁/
A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N O W ?A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N O W ?
Social & Business
• Licensing innovation (yes, really)
• Data ethics
• Platform lock-in & profiteering
A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N O W ?
Social & Business
• Licensing innovation (yes, really)
• Data ethics
• Platform lock-in & profiteering
A U N I V E R S A L H O S T L E S S S U B S T R AT E
Technical
• Commons infrastructure
• Content addressing
• Cryptographic advancements
• Distributed computing advancements
• Universality (location, provider, & time independence)
W H Y N O T N O W ?A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N O T N O W ?A U N I V E R S A L H O S T L E S S S U B S T R AT E
C O M M O N S I N F R A S T R U C T U R E
C O M M O N S I N F R A S T R U C T U R E🤝 A S U B S T R A T E F O R E V E R Y O N E 🌍
T E D L E U N G ( 2 0 0 5 )
Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion)
🔑
O P E N S O U R C EC O M M O N S I N F R A S T R U C T U R E
Lots of people work on it, everybody benefits from it, people can build upon it (even in a revenue generating fashion),
and it’s “owned” by everyone.
By participating — even with competitive goals — you are cooperating by serving the content and running compute of others.
🌌
C O M M O N S I N F R A S T R U C T U R E
O P E N N E T W O R K S
I P F S P R I M E R
I P F S P R I M E R🕸 M E E T T H E C O N T E N T - A D D R E S S A B L E W E B 👋
I N T E R P L A N E TA R Y F I L E S Y S T E MI P F S P R I M E R
I N T E R P L A N E TA R Y F I L E S Y S T E MI P F S P R I M E R
I P F S P R I M E R
I N T E R P L A N E TA R Y F I L E S Y S T E M
I P F S P R I M E R
I N T E R P L A N E TA R Y F I L E S Y S T E M
T H E W E B T O D AYI P F S P R I M E R
T H E W E B T O D AY
• Predominantly single-source (per file) server/client
I P F S P R I M E R
T H E W E B T O D AY
• Predominantly single-source (per file) server/client
• Like a key/value store {ip => {path => content}}
I P F S P R I M E R
T H E W E B T O D AY
• Predominantly single-source (per file) server/client
• Like a key/value store {ip => {path => content}}
• “Location addressing”
• DNS maps names to IP addresses
• Focused on the physical network P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
T H E W E B T O D AY
• Predominantly single-source (per file) server/client
• Like a key/value store {ip => {path => content}}
• “Location addressing”
• DNS maps names to IP addresses
• Focused on the physical network
• Mutable addressing
• www.foo.com/baz may be JSON today, but a video tomorrow
• …or altered content
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
• A layer of abstraction above location
C O N T E N T I D
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
• A layer of abstraction above location
• Like a key/value store {hash(content) => content}
• Content hash AKA “content identifier” or CID
• Special “universal” relationship to content
C O N T E N T I D
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
• A layer of abstraction above location
• Like a key/value store {hash(content) => content}
• Content hash AKA “content identifier” or CID
• Special “universal” relationship to content
• Focused on the data
C O N T E N T I D
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
• A layer of abstraction above location
• Like a key/value store {hash(content) => content}
• Content hash AKA “content identifier” or CID
• Special “universal” relationship to content
• Focused on the data
• Does not care where it lives
C O N T E N T I D
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
C O N T E N T A D D R E S S I N G
• A layer of abstraction above location
• Like a key/value store {hash(content) => content}
• Content hash AKA “content identifier” or CID
• Special “universal” relationship to content
• Focused on the data
• Does not care where it lives
• Still have paths
• Immutable DAG
• Why no loops?
C O N T E N T I D
P H YS I CA L LO CAT I O N
V I RT UA L A D D R E S S
I P F S P R I M E R
L I N K E D D ATAI P F S P R I M E R
L I N K E D D ATA
{ Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }}
I P F S P R I M E R
L I N K E D D ATA
{ Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }}
{ Qmabcdef…: { data: “FISSION”, links: [ {name: “city”, hash: Qm1gb5sn…}, {name: “about”, hash: Qmzyxwvu…} ] }}
I P F S P R I M E R
L I N K E D D ATA
{ Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }}
{ Qmabcdef…: { data: “FISSION”, links: [ {name: “city”, hash: Qm1gb5sn…}, {name: “about”, hash: Qmzyxwvu…} ] }}
ipfs cat /ipfs/Qm123456…/company/about/founder => “Brooke”
I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊
💁
I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊
💁
I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊
💁
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁💻
💻
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁💻
💻
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁 💻💻
💻
💻
💻💻
💻💻
💻
💻
💻
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁 💻💻
💻
💻
💻💻
💻💻
💻
💻
💻
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁 💻💻
💻
💻
💻💻
💻💻
💻
💻
💻
I P F S P R I M E R
☕
R O U T I N G & L O O K U P 🔍🌊
💻
💁 💻💻
💻
💻
💻💻
💻💻
💻
💻
💻
I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊
💁
💻💻
💻
I P F S P R I M E R
R O U T I N G & L O O K U P 🔍🌊
💁
💻💻
💻
I P F S P R I M E R
A U T H E N T I C D ATA ( F I N G E R P R I N T I N G )I P F S P R I M E R
A U T H E N T I C D ATA ( F I N G E R P R I N T I N G )I P F S P R I M E R
O N E H U G E N A M E S PA C E T O R U L E T H E M A L L 💍🌋I P F S P R I M E R
O N E H U G E N A M E S PA C E T O R U L E T H E M A L L 💍🌋
• Same file = same hash
• No matter when 🕓
• No matter where 🌍🌌
• No matter who =🤖?@🦊
I P F S P R I M E R
• Zero file duplication per node
• Replication = CDN-ish features
• Immutable data structures
• Files & data living together!
•
O N E H U G E N A M E S PA C E T O R U L E T H E M A L L 💍🌋
• Same file = same hash
• No matter when 🕓
• No matter where 🌍🌌
• No matter who =🤖?@🦊
I P F S P R I M E R
D I D S
D I D S🔑 H I G H LY A U T H E N T I C B
S TA N D A R D I Z AT I O ND I D S
S TA N D A R D I Z AT I O N
• W3C
• Microsoft
• Government of British Columbia
• Based on public-key cryptography
• Truly “universal” UUIDs
• Agnostic about backing
• For users, devices, and more
D I D S
C L A I M SD I D S
C L A I M S
• Principle of least information
• “Can attest that this user is over 18”
• All claims signed with private key
• Age, credentials, country residency, job history, event attendance, …
D I D S
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R YD I D S
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R Y
• Hierarchical deterministic wallets
D I D S
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R Y
• Hierarchical deterministic wallets
• Keychains
• Generally on a blockchain
• Some cases on DNS
D I D S
S E L F - S O V E R E I G N I D E N T I T Y ( S S I )D I D S
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 ID!
D I D S
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 ID!
• As many as you like 🤷
D I D S
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 ID!
• As many as you like 🤷
• Generally use commons infrastructure like a blockchain or DNS
D I D S
P O R T A B L E C O M P U T E
P O R T A B L E C O M P U T E⚡ J U S T A D D M O R E P O W E R T O J S & W A S M A N D S T I R 🤖
D Y N A M I C FA A SP O R TA B L E C O M P U T E
D Y N A M I C FA A S
• Run everything locally by default
• Good for devs with powerful machines
• Slow for students with Chromebooks
P O R TA B L E C O M P U T E
D Y N A M I C FA A S
• Run everything locally by default
• Good for devs with powerful machines
• Slow for students with Chromebooks
• Farm out longer running computation to service providers
• …dynamically at runtime
P O R TA B L E C O M P U T E
D Y N A M I C FA A S
• Run everything locally by default
• Good for devs with powerful machines
• Slow for students with Chromebooks
• Farm out longer running computation to service providers
• …dynamically at runtime
• Heavy compute, parallel workloads, &c
P O R TA B L E C O M P U T E
A P P R O A C H & T R A D E - O F F SP O R TA B L E C O M P U T E
A P P R O A C H & T R A D E - O F F S
• Code-as-data
• Memoization
• Compiler techniques at web scale (“world computer”)
• Network latency (normally zero, now x)
• Restricted subset (e.g. total)
• Event-based w/ two-phase commit
• Trusted (incl. AWS Lambda 🤷)
P O R TA B L E C O M P U T E
T O TA L I T YP O R TA B L E C O M P U T E
T O TA L I T YP O R TA B L E C O M P U T E
Side Effects
Pure Functions
E
T O TA L I T YP O R TA B L E C O M P U T E
Side Effects
Pure Functions
E
T O TA L I T YP O R TA B L E C O M P U T E
Side Effects
Pure Functions
E
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E V E N T B A S E D ( A B S T R A C T U S E R S T R E A M , C R D T S )P O R TA B L E C O M P U T E
Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
E N C R Y P T E D C O M P U T E
E N C R Y P T E D C O M P U T E🙈 T R U S T L E S S D LY S E N D , R U N , & V E R I F Y 💌
Z E R O - K N O W L E D G E P R O O F SE N C R Y P T E D C O M P U T E
Z E R O - K N O W L E D G E P R O O F SE N C R Y P T E D C O M P U T E
Z E R O - K N O W L E D G E P R O O F SE N C R Y P T E D C O M P U T E
Z E R O - K N O W L E D G E P R O O F SE N C R Y P T E D C O M P U T E
🏥 ✴ 🐶
🏥😛 😅
😭
🙆
✴😅
😻😭
👋😻
😛
🌳
🏥🙆
😭🙆
✴ 😅😻
👋
😭 🌳
👋
🙆 ✴
🌳
🐶 😻
🏥
🌳
😻
🐶
Z E R O - K N O W L E D G E P R O O F SE N C R Y P T E D C O M P U T E
🏥 ✴ 🐶
🏥😛 😅
😭
🙆
✴😅
😻😭
👋😻
😛
🌳
🏥🙆
😭🙆
✴ 😅😻
👋
😭 🌳
👋
🙆 ✴
🌳
🐶 😻
🏥
🌳
😻
🐶
• Verify compute result
• Reveal no information
• Interesting for trustless compute providers
C O M P U T I N G O V E R E N C R Y P T E D D ATAE N C R Y P T E D C O M P U T E
Cleartext Cyphertext
Clear Result Encrypted Result
encrypt
encrypt
compute’compute
L I C E N S I N G I N N O V A T I O N
L I C E N S I N G I N N O V A T I O N⚖ F O R T H E F I R S T T I M E I N 1 5 Y E A R S !
W H Y N O W ?L I C E N S E I N N O VAT I O N
W H Y N O W ?
• Cloud providers making record profits on top of FLOSS projects
L I C E N S E I N N O VAT I O N
W H Y N O W ?
• Cloud providers making record profits on top of FLOSS projects
• e.g. Mongo relicensing
L I C E N S E I N N O VAT I O N
W H Y N O W ?
• Cloud providers making record profits on top of FLOSS projects
• e.g. Mongo relicensing
• Why does macOS Catalina ship with zsh instead of bash?
L I C E N S E I N N O VAT I O N
W H Y N O W ?
• Cloud providers making record profits on top of FLOSS projects
• e.g. Mongo relicensing
• Why does macOS Catalina ship with zsh instead of bash?
L I C E N S E I N N O VAT I O N
A S A S H I E L D 🛡L I C E N S E I N N O VAT I O N
A S A S H I E L D 🛡
• Do you think current licenses are the best we’ll ever have?
L I C E N S E I N N O VAT I O N
A S A S H I E L D 🛡
• Do you think current licenses are the best we’ll ever have?
• Anti 996-License-1.0
• Derived from MIT License
• Chinese expression “996.ICU”
L I C E N S E I N N O VAT I O N
D ATA E T H I C S / D ATA L I C E N S E SL I C E N S E I N N O VAT I O N
D ATA E T H I C S / D ATA L I C E N S E S
• In 2001, people stored credit card details directly in their DB
• Why do people think it’s okay to store PII?
• These techniques & platforms make it so you can’t touch user data!
L I C E N S E I N N O VAT I O N
M A K I N G L I F E E A S I E R
M A K I N G L I F E E A S I E R🧱 P U T T I N G I T A L L T O G E T H E R 🥳
T H E N E X T W AV E O F P L AT F O R M SM A K I N G L I F E E A S I E R
Glo
bal
Sto
rage
T H E N E X T W AV E O F P L AT F O R M S
D ATA B AS E 🛢F I L E S 📄
M A K I N G L I F E E A S I E R
Dig
ital
Sca
rcit
yG
loba
lS
tora
ge
T H E N E X T W AV E O F P L AT F O R M S
D ATA B AS E 🛢F I L E S 📄
I D E N T I T Y 🙋 C H E C K P O I N TS 🕚
M A K I N G L I F E E A S I E R
Dig
ital
Sca
rcit
yP
orta
ble
Com
pute
Glo
bal
Sto
rage
T H E N E X T W AV E O F P L AT F O R M S
D ATA B AS E 🛢F I L E S 📄
I D E N T I T Y 🙋 C H E C K P O I N TS 🕚
D I ST R I B U T E D C O M P U T E 🖥 S M A RT C O N T R ACTS 📝
M A K I N G L I F E E A S I E R
R E C A PA U N I V E R S A L H O S T L E S S S U B S T R AT E
R E C A PA U N I V E R S A L H O S T L E S S S U B S T R AT E
• Build and use fully locally
• No such thing as "deployment"
• Zero config
• Default: only serve the app, not data
• Efficient bandwidth
R E C A P
• One login for all accounts
• Device-based authentication
• Military-grade security
• User owned data
• Share nothing with site/app by default
• Flexible FaaS without pre-deployment
• Offline-first and local-network aware
A U N I V E R S A L H O S T L E S S S U B S T R AT E
• Build and use fully locally
• No such thing as "deployment"
• Zero config
• Default: only serve the app, not data
• Efficient bandwidth
T H E E N D O F H I S T O R YA U N I V E R S A L H O S T L E S S S U B S T R AT E
T H E E N D O F H I S T O R Y
Commodity / UtilityCustom Product / Rental
High Touch
Invisible
A U N I V E R S A L H O S T L E S S S U B S T R AT E
T H E E N D O F H I S T O R Y
Commodity / UtilityCustom Product / Rental
High Touch
Invisible
A U N I V E R S A L H O S T L E S S S U B S T R AT E
Barrier to Entry
T H E E N D O F H I S T O R Y
Bespoke
Private Ownership
Shared Hosting
Serverless
Universal
Commodity / UtilityCustom Product / Rental
High Touch
Invisible
A U N I V E R S A L H O S T L E S S S U B S T R AT E
Barrier to Entry
b ro 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 /ex p e d e
@ ex p e d e
Y T H A N K Y O U , M A L M Ö 🎉
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
h t t p s : / / t o o l s . f i s s i o n .c o d e s