Oredev — web3 · •Cofounder/CTO at Fission • •PLT & VMs •Previously an Ethereum Core Dev...

Post on 21-Sep-2020

0 views 0 download

transcript

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