Identity on the Web and the Blockchain.

A Graph or a Chain of Claims?

Henry Story
Cyber Security Southampton
9 min readJul 25, 2018

--

Tim Bouma wrote a short piece where he argued that identity was a chain of claims. To which @Drabiv answered that it was a Graph of Claims. Who is right?

Well, one easy way to determine a winner would be by noticing that all chains are graphs, and therefore @Drabiv would win by being more general. On the other hand, if identity were just a chain, then Tim Bouma would win by being more precise.

But seriously, what is going on? At one level Tim Bouma recognises the act of identity as “binding my name to my person”. This is known as reference. Names are arbitrary, because a name being a string of characters, could refer to anything. All this makes Reference a topic a lot more subtle than one may think: to wit the 400 page book by Gareth Evans “The Varieties of Reference”. That was written in 1982 and the field has evolved since then!

Now, assuming that one does not start from scratch, but with an existing understood vocabulary and stable interpretations, then the problem of reference can be simplified into the problem of finding a way to identify an object using those well-understood concepts. Given the vast number of ways of describing objects, it soon becomes evident that the best way to describe an object is with a graph. For this reason we came to the WebID 1.0 — Web Identity and Discovery proposal which presents the relation between a URI and it’s referent via its sense (following Frege). The https URL with the hash, refers to Tim Berners-Lee via the description — which is a (pointed) graph — found at the location without the hash, as per URI RFC 3986 §3.5.

The sense of the URI has to locate a position in the graph — the pointed graph — since the graph can as illustrate describe many people. The pointer helps determine the subject of the graph that describes the real 4 dimensional person. In any case Graphs form a crucial component in finding the referent of a name (URL).

Graphs are like strings, algebraic objects: they are when given, entirely given, and have clear identity criteria. Just as there is a precise procedure for appending or finding out if two strings are equal, so one can take the union of two (RDF) graphs and determine when any two are isomorphic.

a slide from a deck by Lawrence S. Moss from the Mathlogaps 2008 “Coalgebra and Circularity“ workshop, showing the symmetries between properties of algebras and coalgebras.

However objects in the world can change: descriptions about them will need to be updated, errors may need to be rectified. As a result, we need to consider co-algebraic systems. Co-algebras — the exact mathematical duals of algebras — are the space of streams, processes, OO programming and much more… (see the 1997 paper A tutorial on (co) algebras and (co) induction, by Bart Jacobs and J. Rutten). For algebras equational reasoning is central, whereas for coalgebras modal logic is.

The web is such a coalgebraic system, since URIs refer to Resources that have State that can change. The Representation (an algebraic object) that is returned from a resource, can be different at different points in time, as we all know. So the Representation returned by the resource named by a URI could indeed be thought of as a chain. On the Web, it is (relatively) easy to come to a consensus about what the current version of the state of a resource on the web is: it is what is retrieved from the resource by doing an HTTP GET. For resources that give the time at the moment of the request, this could be thought of as an infinite chain of possible descriptions, only some of which are ever seen…

There are ways of building algebraic chains of signed descriptions too of course which is what the blockchain is. One can determine if two instances of a blockchain are the same following a well-defined procedure since it is an algebraic construct. However, the blockchain must evolve. This is the process of deciding on what the next version of the blockchain should be. The next blockchain state could be one of any number of compatible blockchain extensions. All future possible blockchain states of a given state necessarily have specific properties: they all contain the same history as the actual state. Every possible next version of a blockchain state has the property that the new transactions compute correctly with the previous ones… Thus we see modal logic entering into the specification of a blockchain.

The bitcoin blockchain whose validity can be determined entirely without reference to anything outside itself— since literals are self referential, or more practically we just have account structures that transfer numerical values between each other — has developed a costly consensus mechanism (see the Bitcoin Energy Consumption Index) on what the next version of the blockchain is to be. This consensus is necessary, or people could pay two different accounts with the same money, and it is expensive because the algorithm requires global agreement on what the next version is, in a world where trust in any party has to be excluded. That aside, we can see that the blockchain is an algebraic structure of a chain of blocks, while also being a co-algebraic process of stepping from one such chain of blocks to the next, as determined by a consensus algorithm.

For Blockchains which try to extend the project of bitcoin by having contents whose truth is determined by reference to states outside the blockchain — as the Ethereum blockchain wants to do — determining the truth and hence the validity of the content of the chain would require looking up those states outside of the blockchain, such as checking the weather at a place, or the value of a stock at a time on the market. However, observing the world is coalgebraic (As is underlined by the title of Bart Jacobs’ 2017 book “Introduction to Coalgebra: Towards Mathematics of States and Observation”)

Terrence Eden “How I Became Leonardo Da Vinci

This is beautifully illustrated by the prank — which has all the attributes of a work of conceptual art — played by Terence Eden who succeeded in getting a certificate of authenticity by Verisart that he was the author of the Mona Lisa, by just submitting a form with a picture of the famous painting. Verisart, a small startup, would never have the funds to do the due diligence required in verifying most works of art, and certainly not the Mona Lisa, which has had a number of excellent copies of it made that fooled even the best specialists at various times. All Verisart can do is register claims for works of art, by someone holding a particular public key. So the word Veris which is brings to mind the Latin “Veritas” — which we know as Truth in English — is misleading here, since it can induce someone to believe that the content of the record added to the blockchain has been veri-fied. For if one thing is widely agreed about the function of Truth it is that when applied to statements it is disquotational: if you say “S” is True you are just saying S. If you say “Terrence Eden created the Mona Lisa” is True, then you are saying that he did create the Mona Lisa. The same reasoning applies to the claim that he is indeed named “Terence Eden” or that the accompanying picture is a real likeness of him. The only trustworthy identifier is that the agent in possession of the private key paired with the public key in the blockchain submitted the statement that a person with that likeness was indeed the creator of the Mona Lisa. The blogs and tweets that then made the stunt public do enlarge the web of relations in a way that make those statements more believable. At any rate they give a larger surface to locate the author.

If verifying the truth of the blockchain required checking the state of the world, then coming to a consensus as to the validity of the blockchain would be close to impossible. Two verifiers that had different ideas of the state of the world could come to different conclusions as to the validity of a blockchain. On the other hand, if the mechanism for verification is to specify a rule that executes depending on statements placed into the blockchain then the verification of the blockchain would turn out to just be a verification of the signatures and the execution of a set of function as is done by Ethereum. Take for example the betting rule if the meteorological office enters a claim that the weather in Paris was sunny on 1 August, then pay Mr Z €5. Such a rule could indeed be automated and only rely on contents of the blockchain including functions that are allowed to act on the contents of some of the claims.

Still this raises some questions: what happens when the money involved is so large that it is in the interest of the office to lie about such a statement, or what if one of their sensors breaks and the wrong information is entered, or if they forget to enter the information? This can not happen in the bitcoin blockchain because it is a purely mathematical operation, where all the rules are defined in the system, without any reference outside of it. However, for systems that make claims about the world, and since empirical sentences truth is defined by reference to the world, then it will be inevitable that some claims will be false. Therefore some mechanism of redress is needed. Some agency, call it a court of law, must be able to either undo previous changes or coerce someone into entering an new record for damage reparations. Who has the legitimacy to do such things? Well, it is the existing legal institutions which are well versed in the complexity of interpretation of the law, and dealing with many different often incompatible points of view on a single reality. So we are back to an institutional web of trust, as described in my post “From Digital Sovereignty to the Web of Nations”. However, since nations are also in competition and in disagreement as to what the truth is or how to look at the world, it may be worth allowing things to evolve in parallel and only require consensus in the smallest areas where it is needed, rather than full global consensus. So if someone wants have a bet on the weather, it may be fine for them to just have a contract between the parties involved and perhaps a notary, without requiring everyone else to be party to that too. Local consensus could in many cases be the more efficient way to go.

Now that we are starting to get a feeling of the interaction on the web and in the blockchain between algebraic and co-algebraic aspects we can see that the coalgebraic one naturally gives rise to a historical notion of a chain of states, with the future being open.

There are other types of chains which build on the fact that our abilities are limited and that we need to depend on other institutions specializing in particular types of knowledge and skills. (This is developed in Why Did the PGP Web of Trust Fail?) For example, verifying that a company is indeed a British company requires verifying with the company registry determined by the United Kingdom, to see if that company is listed there. To be able to automate discovery of the URL of the UK registry web site requires an Institutional Web of Trust (IWoT) which has roots in nations and their diplomatic relations. A country’s company registry keeps track of companies that as @Drabiv points out may change, fuse, split and die (and so the history of a company may be best described by a graph). Each description is a statement by some institution that something is the case at a point in time. This allows the building up of verification chains that can be submitted to a court of law to explain why an agent who by necessity has limited capacity to know, came to the conclusions it did, by relying on more knowledgeable actors than himself, as agreed to by the courts. These actors furthermore have real world enforcement power (courts, police, educational institutions, prisons,…) to apply the rules. Identity is thus also a political process as described in “Stopping (https) Phishing” involving many different actors with the ability to make reliably different types of claims as related to their ability to enforce them.

--

--

Henry Story
Cyber Security Southampton

is writing his PhD on http://co-operating.systems/ . A Social Web Architect, he develops in Scala ideas guided by Philosophy, and a little Category Theory.