The term ‘the Blockchain’ seems to have already achieved the linguistic pattern of ‘the Internet’ or of ‘Artificial Intelligence’ which is to say it refers to the idea of a (composite) technology more so than any technology in particular. So, I am going to focus on the the word ‘Network.’
As someone who has studied the evolution of networked dynamical systems for over a decade, I have a strong attachment to this word retaining some technical precision. For Blockchain week, I have decided to present the definition of the word ‘network’ and to explore that definition in the context of blockchains.
Let’s begin with the definition of Network. My informal definition like one might find in a dictionary is as follows
Network (noun): a group or system of interconnected people or things.
More dictionary definitions can be found here. A formal mathematical definition of a (finite) network is a set of vertices and set of edges:
This is an abstract concept and there is a large body of mathematical theory that can be used to understand networks and processes that evolve along the edges of a network. The downside of such a powerful and general tool is that people sometimes get so used to the informal use of the term that they confuse networks with each other, especially when those networks are closely related; worse yet that confusion leads to the term network falling into the category of pseudo-technical throwaway words that are too imprecise to be useful.
To make it practical we’re going to talk about a blockchain network and specific one, the Bitcoin Network. That’s not confusing — it’s just one Network and we all understand it pretty well, right? Maybe not.
Let’s make sure by applying the formal definition of network to describe “The Bitcoin Network” as we know it. It turns out we need to think about three different networks to get it right.
The first network is a computation and communication network whose vertices are nodes. Nodes in the Bitcoin ‘communication and computation network’ are hardware with software implementing the bitcoin protocol; edges are the defined by the peer nodes that each node communicates with directly. This is a permissionless network in the sense that being a member of this network simply requires that you run the software and connect to at least one peer who is themselves a node in the network; at this point your node is a node in the Bitcoin (communication and computation) network. The set of nodes and edges of this communication and computation network are actually time varying, for simplicity here, we will think about a snapshot to keep the concept simple.
So what does this communication and computation network do?
It runs a consensus protocol which maintains the state of an economic network which we will call the “Bitcoin Financial Network.”
The Bitcoin Financial network is composed of vertices called addresses; these vertices are precisely the unique public keys for every Bitcoin address. Edges between these accounts are defined by transactions. The financial network also has its edges defined by a process, in this case that process is sending and receiving Bitcoin. It turns out transactions moving bitcoin around between accounts and occasionally creating new Bitcoin is a well defined linear system, so it can handled in a manner a control engineer would consider relatively common.
One of our favorite properties of the Bitcoin Network is that we know the balance of every account even though the network only maintains the history of transactions. Considering the balances as the state of a dynamical system called the Bitcoin Financial Network, the transactions are the state changes. Fortunately, in dynamical systems theory it is a fundamental result that if you know the initial condition (genesis block) and all the state changes since, you also know all the states since. In this view, the history of the Bitcoin Financial Network is actually the trajectory of a second order dynamical system. To find the above clip and learn more check out MIT Open courseware.
Thank you for indulging a brief theoretical digression; practically it is important to note the coupling between the ‘Bitcoin Communication and Computation” Network and the ‘Bitcoin Financial Network.
Before taking criticism from readers who are practiced with networked dynamical systems, let me point out that strictly speaking these are both time varying networks because new nodes and accounts come into existence, new peer sets are selected and new transactions create edges that may not have existed before.
There is nothing particularly special about this financial network as compared to other financial networks once the definition is applied properly. One might say its pseudonymity makes it different and I agree to a point. However, at the end of the day it is a well defined financial network defined by transactions between addresses; our ability or inability to map these addresses to the identities issued by governments or approved by banks is critical for understanding the relation of the bitcoin financial network to other fiat financial networks, but not for characterizing the Bitcoin Network itself.
The notion of uniqueness of identity is what provides distinction between vertices in the Bitcoin Financial Network and our Fiat Financial network allowing us to clearly see two connected, but distinct networks according to our formal definition of a network¹ . Due to the practical ease of creating many addresses, it is common practice for individual members of society, human beings or businesses to possess many bitcoin address, thus mapping the Bitcoin Financial Network to other financial networks whose members are those entities requires identity mappings.
The fact that it is possible to have multiple addresses mapped to one legal identity is neither good nor bad; it is a simple property of the system which may be viewed in either light depending on context or inclination.
While these mappings theoretically exist, they are not practically available; nonetheless, they are formally well defined and to the extent that they are required for Bitcoin’s apparently growing role as a global currency, we can reasonably expect some subset of these mappings to become increasingly available, whether provided be decentralized networks or by centralized gatekeepers of the Fiat Financial Network. I expect that institutions, corporations and governments will invest in curating these mappings.
Let’s isolate the definition of a Blockchain network as being comprised of two networks:
- A computation and communication network of nodes responsible for maintaining the state of an economic network
- An economic network of addresses (public keys) whose state variables evolve according to rules enforced by the computation and communication network.
The Bitcoin Network has been used as the benchmark example but this definition is sufficient to handle the Ethereum network including smart contacts when the definitions are applied carefully. In fact this hierarchical view of the decentralized world allows us to think about relationships between different decentralized networks which are merely implied by mappings that pass through our government issued identities even when those mappings are not actually available to use.
One can easily imagine data service providers working to create correlations of this pseudonymous behavior in a manner similar to that used for conventional web activity analysis. Additionally, cross-chain bridges that do not require theoretical mappings through our real world identities are also gaining popularity (in white-papers) so such a characterization will likely need to include direct network to network links soon. Interestingly, these relationships are well defined as bipartite graphs over with vertex sets defined within the respective networks so our formal network definition can continue to help us even as the wiring gets messier.
Taking a look in the opposite direction, there is some consolidation of networks when you examine the many ‘economies’ being built on top of the Ethereum computation and communication network using smart contracts.
One can also reason about localized economic networks, which were built inside of the Ethereum network (or other general computation enabling decentralized networks) by considering them susbset of the larger economic network supported by the Ethereum computation and communication network.
The problem here is that the Ethereum network currently has the computing power of an Apple from the 80’s (fact credit to Dieter Shirley). In its current form, the Ethereum communication and computation network being shared by lots of different ‘economies’ just wont fly as more projects produce non-trivial computation loads. Continued work on scaling solutions will help, but there are other vectors for improvement. Interestingly, sharding solutions look a lot like having many interoperable Ethereum-type decentralized networks with interchain bridges out of the box. I hope this works out, but how accounts are partitioned across shards will matter a lot in practice and I imagine the equivalent of repartitioning is a long way off.
Having started on this path with bio-inspired multi-agent coordination in 2004, I am biased toward engineering economies by carefully deriving (and enforcing via smart contracts) the simplest possible rules (state transition functions) which have formal mathematical properties regarding the implied dynamical systems and their reachable (and unreachable) states. To me, the idea that we can use configuration spaces to prove formally that something cannot happen in an economic system, has more in common with cryptography, than proving that doing something would be irrational for the actor. There will be more to come on this topic!
Thanks for reading. Special thanks to researchers from MIT Institute for Data Systems and Society (including my former PhD Advisor), the MIT Media Lab’s Human Dynamics research group, and fellows from the Berkman Klein Center for Internet and Society at Harvard with whom I had the pleasure of discussing these concepts this week.
¹ it is possible with some careful definitions to compress all networks discussed into one network with different types of nodes and edges with different well defined properties. While it might be fun to work through this on a whiteboard, I don’t think it actually helps us understand the situation better.