The future is green
Matrix as the future of the Web?
Benjamin Kampmann
@gnunicorn:matrix.org
2022-08-27, Matrix Summit Berlin
It'se me, Ben
formerly
Freelance Dev since 2011
Rust Dev since 2015 (before Python, JS, etc)
prev. Core Dev @ Parity on Substrate (blockchain dev framework); App-SDK Dev @ MaidSafe
Co-Host RustFest 2016 & 2017
more about me on gnunicorn.org
what is matrix?
like, technically. for real. what is it?
client
events
servers
full-node
chain
transactions
thin/light client
blockchain
activity stream
activities
stream
consumer
things are happening
effektio
peer-2-peer
thirdroom
peer-2-peer
client
servers
client
servers
Domain Name System
room: !asdf:matrix.org
client
servers
Domain Name System
room: !asdf:???
InterPlantary FileSystem (ipfs)
content addressing: hash(content) -> unique key
resolution: Distributed Hash Table
node identity: private-public-keypair
BitTorrent
content addressing of blocks: hash(content) -> unique key
resolving: magnet-links via Distributed Hash Table
identity: none
Bitcoin (and most other blockchains)
content addressing over state graph of a block
resolving: ask any other node - they have it all
account identity: private-public-keypair
Peer-2-Peer Matrix
- Private-Public-Keys already exist in Olm for e2ee
- Use public-key as node-address rather than DNS...
- Events per content-addressing? How to deal with redactions?
- IPFS for attachments?
effektio
rise of the state machine
the mobile-first community building and organizing platform
think telegram, but with task-list
effektio
Polls & Voting
News, Social Feed, Chat,
Task-Lists
stateful things
Abstracting virtual objects over multiple events
Example: Polls
- creation event
- vote events
- close event
all mutate the same virtual object.
but same already true for message ("editing", or reactions)
Blockchains
- event = transaction
- a specific, well defined set of transactions are valid
- transactions are applied on a global state
- violations checked (e.g. transfer more money than you have)
- order matters
- checksum over entire state for consensus
Engineering
- finite state machine
- no-side-effects
- define all possible states, operations (possible per state) and potential violations
- state -> operation -> new state (or failure)
- allows nice fuzz-checking for all states and possible transitions
Challenges
for matrix
- breaks the "linear" concept of the event stream
- rather spans a tree of root events and events referencing them, other fetch mechanism
- b/c of e2ee only clients can actually check for violations
- order of transactions matters
- merging separated server might alter object later, rewind needed
- spec abstract objects with finite statemachines in mind
third room
room events
- spec for each event
- doesn't allow for local innovation
- makes development round-trips slow
- can render the system in an
embedded state machine
- can be defined by the room locally
- define any custom logic
- full authority around certain event namespace
- can be updated by room admins
- doesn't need spec for each event
smart contracts
Ethereum (eth)
Solidity: custom programming language for EVM
Cosmos / Polkadot / Substrate
WebAssembly based Smart-Contracts
Wasmer (-wasi) execution environment
WebBrowser
HTML display language
JavaScript and WebAssembly for interactivity
a far time ahead, in a galaxy close to home
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine. Wherever you go, any room or space, it quickly loads the custom state machine to offer any kind of localized service, you can interact with right away. You can sync any of these changes with your friends off-grid. All that, federated and end-to-end-encrypted.
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine. Wherever you go, any room or space, it quickly loads the custom state machine to offer any kind of localized service, you can interact with right away. You can sync any of these changes with your friends off-grid.
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine. Wherever you go, any room or space, it quickly loads the custom state machine to offer any kind of localized service, you can interact with right away.
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine. Wherever you go, any room or space, it quickly loads the custom state machine to offer any kind of localized service,
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine. Wherever you go, any room or space,
You surf Matrix with your favorite client. It has support for third room and an embedded sandboxed WebAssembly engine.
You surf Matrix with your favorite client. It has support for third room
You surf Matrix with your favorite client.
Thanks!
MatrixSummit 2022: The future is green
By Benjamin Kampmann
MatrixSummit 2022: The future is green
- 410