# DSP DEMO #1: TOWARDS AN ECONOMY WITH INTERNET ARCHITECTURE
THURSDAY 21.10.2021 8amPT/11AmET/5pmBERLIN/10pmTHAI
PLACE: ECSA ZOOM https://zoom.us/j/2022138511
RECORDING: https://youtu.be/JYnEsaihczE
#
FOCUS: Welcome to a protocol design journey towards implementing the Distributed Stake Protocol, i.e. matching the architecture of the economic web to the architecture of the physical web. Starting with the simplest possible network as a protocol, smart contract and simulatable locally with the same code base: the socket.
#
CONTENT TIMELINE https://youtu.be/JYnEsaihczE
00:00 Focus: design considerations present in our protocol design & reasons why certain programming patterns important to us
02:00 Towards actually developing the Distributed Stake Protocol (DSP): the minimum economic protocol that we could conceive and goes towards the fully fledged Economic Space Protocol (ESP; drafted in the ECSA economic paper)
05:04 Javascript as a capabilities oriented language: programming language that can be made safe
06:32 What makes DSP _distributed_? Why not just a staking contract, but rather a_protocol_?
07:00 What is the simplest design pattern that can be a protocol, contract, and have network principles in it: the smallest network possible allowing the description of interaction among multiple agents as a protocol (n-party messaging contract): the Socket
08:27 The aim with DSP: not only a smart contract but (1) a low level communication protocol (computers talking DSP), (2) the same code base can at the same time be simulated locally and (3) run as a smart contract
20:00 Reasoning about authority: Principle of Least Authority (POLA)
22:00 Mark Miller and why he is such a proponent of object capabilities
[see chat: Here is Mark Miller thanking Jorge for the idea behind his Agoric project: https://youtu.be/j5SuqIrgRJU. Another good one we did with Mark Miller back in 2016 about solving the conflict about the nature of smart contacts between him and Nick Szabo : https://youtu.be/21R259Wei2w . This is also excellent (and relevant to the session today: Mark’s talk (at TC39 meet 2017, referring to Jorge’s work at 27:55): Extremely Modular Distributed Javascript https://www.youtube.com/watch?v=9WdbTucMaRo]
25:00-34:33 Using the Socket: connecting to the socket server via telnet
34:33 Creating a mode of interacting with each other that (1) presumes a live environment (2) has a shared referential context (everyone connecting to the same VM) and (3) is a live multi-agent programming environment
56:00 Local partition has a state, all of the stuff lives in edges between us
58:38 Zargham: Moving from EVM like single threaded VM in duplication to Distributed shared virtual machine: a virtual machine actually split across us. From a virtually partitioned shared virtual machine to an actually partitioned virtual machine: not remoting in but all collectively being the VM
1:00:00 DSP is not going to be running in one VM: starting with the simplest pieces & reasoning with a lens of authority control takes us there (blockchains, keys etc are only an afterthought)
1:04:00: Creating a grammar for bundles of rights, a grammar for bundling of affordances. A language for expressing bi-directional edges and bundling of affordances passings
1:10:00 Why is POLA so important: network dynamical systems stability
1:20:25 Modeling the network as a whole, as one n-party contract, one object, one class: you can make formal claims about the nature of each layer of the composition
1:33:00 Virtual virtual machine: V2M! How to do message ordering in a virtual virtual machine i.e. how to create network coherence without blockchain (with no central state): solving the message ordering in a different, much more scalable, fully distributed way
1:35 Zargham: so you are basically doing the economic equivalent of robotic swarm coordination. You are doing multi-agent robot coordination.
1:36:55: The secret: you don’t need to have a global time. You don’t need global ordering. No global clock.
1:41:53: Zargham: Why did robotics’ decentralized coordination outpace the economics’ decentralized coordination: co-iteration
1:43:00 Current blockchain reiterate _economically_centralized structures: Having one coin centralizes _economically_.
1:45:00 Zargham: I could already reimplement ERC20 with what you have given me (without any central state)
1:45 A fully distributed network without any central state (no central global coin) with still qualities like having a “global coin”: Let’s build that!
1:48:00 Zargham: So you are matching the ontology of the economic web to the ontology of the physical web. You are proposing an economy with the internet architecture.
#
SESSION CHAT
18:06:56 From Economic Space Agency to Everyone:
ecsa economic paper: https://docs.google.com/document/d/1zdEmi--AZArbNlRqyhVqGxHhBC9lphQIRfpRtJ7xusU/edit
18:15:23 From Vinay's Otter.ai to Everyone:
Does anyone have any questions or action items?
Let's capture them in the meeting notes: https://otter.ai/u/K2RjBrmVeR8KAJuZZ99RQCFJtok
18:16:40 From Michael Zargham to Everyone:
https://en.wikipedia.org/wiki/Closure_(computer_programming)
18:19:08 From Michael Zargham to Everyone:
Virtually partitions the state
18:20:46 From Michael Zargham to Everyone:
Virtual partitions -> nodes
18:20:53 From Michael Zargham to Everyone:
Virtual sockets -> edges
18:21:01 From Michael Zargham to Everyone:
So we have a virtual network
18:21:29 From Michael Zargham to Everyone:
Is this a valid interpretation?
18:22:57 From Michael Zargham to Everyone:
The rights to read or write a particular partition of the state live in the edge abstraction
18:25:00 From Anish Mohammed to Everyone:
That is race conditions
18:26:04 From Vinay Gupta to Everyone:
“A capability is single thing that both designates a resource and authorizes some kind of access to it.”
18:26:11 From Vinay Gupta to Everyone:
http://habitatchronicles.com/2017/05/what-are-capabilities/
18:27:06 From Michael Zargham to Everyone:
I am thinking of this a network of contracts characterized by stateful nodes whose read/write privileges characterized by “contracts” which are defined as relationships in between these nodes. the properties of this architecture increase alignment of the ontology of the peer to peer network and the economic network.
18:27:38 From Vinay Gupta to Everyone:
"principle of least authority" https://wiki.c2.com/?PrincipleOfLeastAuthority
18:27:56 From Michael Zargham to Everyone:
Mark Miller is great.
18:28:43 From Michael Zargham to Everyone:
http://www.erights.org/talks/thesis/index.html
18:30:10 From Economic Space Agency to Everyone:
Here Mark Miller thanking Jorge for the idea behind Agoric:
18:30:14 From Economic Space Agency to Everyone:
https://youtu.be/j5SuqIrgRJU
18:30:49 From Economic Space Agency to Everyone:
Another good one: https://youtu.be/21R259Wei2w
18:31:06 From Economic Space Agency to Everyone:
We did with Mark Miller back in 2016. This is also very good (and relevant to the session today:Mark’s talk (at TC39 meet 2017, referring to Jorge’s work at 27:55): Extremely Modular Distributed Javascript
https://www.youtube.com/watch?v=9WdbTucMaRo
18:31:10 From JC to Everyone:
protocol.hopto.org
18:31:14 From JC to Everyone:
21
18:31:31 From JC to Everyone:
telnet protocol.hopto.org
18:32:21 From Vinay Gupta to Everyone:
(Goes off to install a telnet client… Macs don’t ship with one)
18:32:45 From Vinay Gupta to Everyone:
MacOS doesn’t have telnet built in
18:32:49 From Vinay Gupta to Everyone:
I’m installing Putty
18:32:49 From Michael Zargham to Everyone:
https://www.wikihow.com/Use-Telnet-on-Mac-OS-X
18:35:42 From Vinay Gupta to Everyone:
https://telnet-online.net/
18:37:09 From Teddy (he/him/his) to Everyone:
Just gotta hit enter
18:39:18 From Vinay Gupta to Everyone:
PORT 23 works, not PORT 21
18:39:41 From Vinay Gupta to Everyone:
https://chrome.google.com/webstore/detail/telnet-ssh-client-for-bro/modfdmonoohnnocfkhaopmgikkefnemp/related adds a telnet client straight to Chrome browser
18:39:45 From Olli Sirén to Everyone:
For me as well!
18:40:56 From Michael Zargham to Everyone:
We are able to create bindings between our respective local state mutations?
18:44:44 From Vinay Gupta to Everyone:
If you move to SSH, you can authenticate people using their SSH keys - they’ll just go
18:44:59 From Vinay Gupta to Everyone:
ssh protocol.hop.to
18:45:13 From Vinay Gupta to Everyone:
And it’ll verify their identity against a public key they have sent the server on their first login
18:46:39 From Michael Zargham to Everyone:
^
18:55:54 From Michael Zargham to Everyone:
```
18:55:55 From Michael Zargham to Everyone:
> send(0, send(6, "echo"))
send(0, send(6, "echo"))
undefined
> echo from 6 to 6
6 from 0 to 6
undefined from 0 to 6
18:57:43 From Griff Green to Everyone:
Sorry all.. I have to jump to the next one
18:57:48 From Griff Green to Everyone:
This was fun!! :-D
18:59:52 From Vinay Gupta to Everyone:
Super cool, gotta drop. Lovely work!
19:01:03 From Miha Dyne.org to Everyone:
Hey guys, thank you for the session, unfortunately I need to go. In my case still a lot of pieces missing in order to understand the protocol and the whole picture. Maybe we will see each other again, thanks again.
19:10:57 From Teddy (he/him/his) to Everyone:
Gotta run but thanks all! Great demonstration Jorge! Have a great day!
19:24:28 From Michael Zargham to Everyone:
The network of affordances is a discrete object so it will have sever discontinuities in the properties
19:24:43 From Michael Zargham to Everyone:
When the network is changed that is
19:31:51 From Olli Sirén to Everyone:
I just absolutely love listening to this convo 😍
19:35:03 From f to Everyone:
@olli: yea we need to encourage MZ to retire so he has all time capacity for chats as these
19:35:29 From Olli Sirén to Everyone:
😂
19:54:18 From Michael Zargham to Everyone:
:P Fabian. Correction, I know THIS because of its close relation to my work in multi-agent robotics. I know other things based on other experiences ;P