A simple model to make sense of the proliferation of distributed ledger, smart contract and cryptocurrency projects

Just when I think I understand the cryptocurrency/block chain space, I realize I didn’t understand anything at all

Four recent events have made me realize that I don’t understand this space anywhere near as well as I thought I did.   But that’s good: it means I’ve been forced to come up with a new mental model to explain to myself how all these projects relate to each other.

TL;DR: the two questions to ask about a “fiduciary code” requirement are: who do I need to trust and what am I trusting them about?

Who do I trust

A simple model to capture the essential differences between some consensus platforms

The rest of this article describes the four events that influenced me to draw it.

Event 1: Nick Szabo’s “The Dawn of Trustworthy Computing” Article

In his recent article, Nick Szabo introduces two really helpful terms to explain what makes systems like Bitcoin particularly noteworthy.

  • First, he talks about “block chain computers”. He defines these as the combination of the Bitcoin consensus protocol and strong cryptography to create the unforgeable chain of evidence for all data stored in the block chain data structure.   I think this formulation is useful because it shines a bright light on an obvious, but often overlooked fact: a “block chain” is just a data structure, utterly useless on its own. What makes the Bitcoin blockchain remarkable is the network of computers – and protocol they follow – that makes it so hard for any single actor, no matter how determined, to subvert it.
  • Secondly, he talks about “fiduciary code”: the code in an application that needs to be the most reliable and secure. For example, in a banking application, this is likely to be the core ledger: who owns what. He points out that a secure block chain computer is an extremely expensive piece of kit: you should only use it to secure that information that really needs it.

Event 2: Albert Wenger’s “Bitcoin: Clarifying the Foundational Innovation of the Blockchain” Article.

In this piece, Albert Wenger makes a really obvious-in-hindsight point: Bitcoin-like block chains are organizationally-decentralised – no one organization can control it but the entire point of the system is to build and maintain a logically-centralised outcome: a single copy of the ledger, which everybody agrees is the true single copy.

ArthurB uses the term “decentralized mutable singleton” to capture the same idea, I think.

And he echoes one of Szabo’s implicit points: a “block chain” is not something of value in and of itself. This insight is also important because it edges us further away from the idea that “decentralization” is some sort of end-goal or absolute target. I made a similar point in this piece on the “unbundling of trust” but Albert and Arthur have captured the key point far more succinctly.

Event 3: The Eris Launch

On Wednesday this week, Eris Industries held the launch event for their new platform. Tim Swanson has done a good job summarizing the Eris concepts. (Disclosure: I was invited to, and attended, the launch).

I’ll admit I still don’t fully understand it. But the general picture that’s forming for me is of a platform that allows you to build and maintain one of these “decentralized mutable singletons” but to specify precisely who is allowed to update it and under what conditions.

In essence: take the idea of a shared common state (Albert’s Arthur’s “mutable singleton”) but relax the constraint that the maintenance of it necessarily happens in a fully public, adversarial environment, for which something like a proof-of-work system may be required, and allow for the idea that the participants might be known.  [EDIT wrong name!]

Fine… but I think the Eris insight is where they go next. They suggest that if you had such a system then you might also be able to distribute the processing of application logic more broadly, too. And I think it’s the application logic they’re most interested in. Their documentation is full of talk of “smart contracts” and it’s perhaps no surprise that their founders are lawyers. In fact, maybe that’s why I don’t understand it as well as I’d like: lawyers just seem to speak differently. Maybe I need a translator.

And to be clear, the part I don’t fully understand just yet is why you need a “block chain” as the underlying data structure in this model, rather than something based on more general-purpose replicated database technology. But this may turn out just to be an implementation detail: so let’s see how they get on over time.  There seems to be a lot of content, reflective of a lot of thought, on the various Eris sites.

Event 4: I looked at HyperLedger in more detail

I had reason to look at HyperLedger this week and, combined with my study of Eris, it was this event that finally convinced me that my mental model of this space was far too simplistic.

Hyperledger calls itself an “open-source, decentralized protocol for the recording and transferring anything of value”. This is a bit like how I might have described Colored Coins or Ripple to people in the past.

But what makes Hyperledger different is that they allow the creation of multiple ledgers (one per asset per issuer) and each ledger can be configured to have different consensus rules – you don’t have to make the assumption of an adversarial open public environment… so some similar assumptions to Eris here, but with a ledger designed to track assets rather than business logic/contracts.

Where is this heading?

So I spent some time this evening trying to piece all of this together in my brain.

I’m pretty sure these projects all sit in Szabo’s “Fiduciary Code” space: they only really have value or make sense if the facts they’re recording are really important!

But they make different assumptions about the threat model they face – and some of these assumptions are very different to the ones against which Bitcoin was designed.  And they’re different to the assumptions underpinning some other prominent platforms, such as Ripple, which, through its use of validators and “Unique Node Lists” has a model, whereby you trust a set of known entities who, in turn, trust some other entities, and so on.

In addition, the facts these systems are recording are very different: ownership of a real-world asset on Hyperledger is different to ownership of a bitcoin on the Bitcoin ledger; a ledger-native asset has no counterparty risk, whereas a real-world asset needs an identifiable issuer. And they’re both different to a platform that potentially executes legal contracts.

So I tried to think of dimensions along which you might be able to classify these projects… and I came up with too many.

But it’s almost Christmas and I’m not to be deterred!   Is it really too much to ask for a model with just two dimensions, that doesn’t require a 3-D screen to render?! So I kept on going. And, finally, came up with something that looks so trivial, I worry it may be content free.   But here it is anyway.

I think the two dimensions that help me think about these projects are:

  • “Who do I trust to maintain a truthful record?”; and
  • “What do I need the record to be about”?

Here is the model I came up with.   It’s obviously not complete and you could put some projects in multiple boxes… but I think it captures the key distinctions.

Who do I trust

Another way to think about the increasingly confusing cryptocurrency/Block Chain space

But this is just a view. I’d really value comments… especially if I’ve missed something really obvious.

[UPDATE 2015-01-08 DISCLOSURE: Since publishing this post, I have become an advisor to HyperLedger, in a personal capacity]

60 thoughts on “A simple model to make sense of the proliferation of distributed ledger, smart contract and cryptocurrency projects

  1. One nit: With Bitcoin, one is implicity trusting the majority of network participants to act in a way which strengthens the consensus record instead of polluting it. One is not trusting “Nobody” per se, but is instead trusting the core assumption of the protocol design: that positive actors will forever outrace negative actors. This can be quite a leap for some to even comprehend, much less agree with.

  2. @Mark – good point; thanks. I should have been much more explicit on that point… at the very least, I should have perhaps written “bitcoin-as-envisaged”.

  3. Great piece!

    I think that the definition of trust needs to be understood in the context of cybersecurity rather than just absconding / malfeasance. Nick Szabo as usual highlighted this need. Bitcoin marks a substantive difference in the security assumptions behind the distributed consensus than a centralised version. It is not just that I dont “trust” the central bank but the assumptions required to make the central bank a solution are untenable.

    I am not qualified enough to formalise this in any way and my simple mental model of this is still evolving. However I think we need a mental model for people to understand the different security assumptions that are being employed when you move from centralised trusted systems (that often have replicated databases) to (DMMS) decentralised trusted systems such as Bitcoin.

  4. Richard, as usual very clear thinking and good overview.

    One point which I would like to clear up is that Eris was built to run in at least four of boxes of your matrix depending on the application which is in focus at any one time.

    Exactly how Eris is operating can vary drastically depending on how the application designers are using blockchain(s). It is fully capable of running without even using our blockchain design; if an application is using BTC or ETH and not using our chain at all applications will run fine and still be able to utilize the benefits of action oriented scripting across different distributed modules such as the distributed file system.

    One of the primary goals of we have is to enable some choice as to “what” is at the deep backend of a distributed application in an analogous manner to how web application frameworks have enabled greater choice as to what backend is used in any one web application. By default, the Eris blockchain design runs as a no more than an Ethereum clone. We have enabled the ability, as well, to perform in the manner you describe. I admit that we have pushed the performance paradigm which you describe in our messaging as it is a point of differentiation. Yet, both performance paradigms are viable options with Eris.

    Why build this? Our general hypothesis is that the consensus and security parameters for any one blockchain better reside with the folks who are providing the user facing utility. This is simply a hypothesis, which is why Eris also fully integrates BTC (hopefully soon XCP) and Ethereum (POC 7) as well as our own, more light-weight chain design.

    Thanks again Richard.

  5. Hi Richard, excellent article as usual. I have to think more about the classification, and it is potentially a useful one. Thanks for having a look at Hyperledger.

    A different way to look at it.

    Fundamentally, what is the set of problems the whole crypto community is attempting to solve? In my view, there are only 3 problems:

    Problem 1: The core component needed is a public distributed trust ledger. What are the optimal ways of building such a ledger? Optimal design will assure security, up-to a qualitative or quantitative threshold, and minimise performance penalty as compared with centralised ledgers.

    Problem 2: Different applications will require different ledger designs. Central bank money needs to be recorded differently from a stateless crypto-currency. How do we make protocols to connect ledgers? For instance, how do you and I exchange assets on different ledgers with potentially different consensus rules? Which ledger design makes construction of connecting protocols easiest?

    Problem 3: What is the optimal method of applying business logic / flow control on assets recorded on ledgers?

    A solution to the three problems implies a method of building decentralized data storage, decentralized markets etc.

    All projects are offering a combination of solutions to Problems 1, 2 and 3. Bitcoin through bitcoin script is also offering a (bad) solution to problem 3.

    Real question is who comes up with the best combination of solutions.

  6. @keihatsu1 – thanks for the link; I’ll take a look

    @Jonathan – thanks! Excellent – and important – point. If I’m understanding you correctly, you’re pointing out that the old centralised threat model is no longer valid? i.e. “assume datacentres are – or can be made – secure and so focus your worries on the misuse of power by whoever controls the ledger — hence a need for audit, controls, etc., in the traditional world” is no longer valid…… And that’s because the cataclysmic failures of IT security we’ve seen this year show that we can no longer assume that *any* centralised ledger can be made secure simply by building bigger walls around the database.

  7. @casey – thanks for the detailed comment. I was particularly intrigued by this comment: “if an application is using BTC or ETH and not using our chain at all applications will run fine and still be able to utilize the benefits of action oriented scripting across different distributed modules such as the distributed file system.”. I’d love to see an example of this. Is there any running code or a demo (even a youtube video recording, perhaps, of building some code, deploying it, showing it running, etc)? I think that would really help me build up a picture of how this works.

  8. @meher – thanks. Insightful comments (as always!). I *think* the focus of my article was on problem 1) in your list… My thought process was: if you start with the Bitcoin problem statement and threat model, I’m pretty certain that Bitcoin is the only (or one of the very few) reasonable solutions to the problem. Yet multiple other systems exist, which work very differently. So I figured: they must have different foundational assumptions… e.g. perhaps they assume they know who all the actors are. And so forth. But I’m very open to the suggestion that this isn’t 1) true or 2) helpful!

  9. Indeed, we have demonstrator applications which will be released in January which integrate cross chain actions.

    The current demonstrators show how to integrate actions using Thelonious and IPFS and we will be expanding our demonstrator suite after the holidays.

  10. @Richard: Its correct, Hyperledger has different foundational assumptions. Here is one thought process of why systems with different foundational assumptions are necessary for progress in this field.

    The really interesting application looks to be Decentralised Exchange (straight out from your blog on securities settlement). The question is how do we scale the application?

    Natural answer is to scale through Counterparty or Colored coins. However, this entails a fundamental unsolvable problem. Imagine if Apple issues its shares on Counterparty. Total market cap recorded on Bitcoin ledger = 500 billion (Apple) + 10 billion (bitcoin). Size of bulk trades in Apple shares can be as large as 100 million dollars.

    Bitcoin is being secured through mining and cost of a 51% attack (after next block reward having) is around 100 million dollars. Therefore, exchange transaction size equals cost to attack the chain. This creates systemic risk. If we load Bitcoin with other assets like Smart property cars, Microsoft shares etc., we create too much systemic risk.

    As you say: “If you start with the Bitcoin problem statement and threat model, I’m pretty certain that Bitcoin is the only (or one of the very few) reasonable solutions to the problem.”

    Using the bitcoin model (PoW) there can be only one winning ledger. And yet we see that one ledger will not suffice for scaling decentralized exchanges.

    Hence the question becomes: Can we alter foundational assumptions to enable creation of thousands of secure ledgers?

    This line of thought leads to Hyperledger.

  11. @meher – thanks… really helpful. I also worry about the “€500bn of shares being represented by a few thousand satoshis” concept but you’ve taken it further. My worry in the space was/is as follows: the Bitcoin model essentially says: “we make it just as hard to double-spend a few satoshis as we do 1000BTC”. Fine – but I wonder if the *response* of network participants would be the same in both cases. (Trivial example: if 1000BTC was successfully double-spent, perhaps that would destroy confidence in the network… if only a few satoshis were, perhaps people would shrug, fix whatever bug allowed it and move on). But if those satoshis represented the entire issue of Apple stock then there’s a big problem!

    But you make a stronger point, I think: we can only assert that the network is “secure” up to a certain value (i.e. perhaps the correct formulation is that it would cost more than $x bn to subvert it). And that’s a more serious problem if it’s carrying assets worth much more than that.

    So what I guess you guys and the others pursuing alternative consensus schemes need to show is that the model(s) you follow can do better (under whatever set of assumptions you wish to make).

    Thanks again for the comment – thought-provoking, as always.

  12. Pingback: Trade A Truthful Record For Due Process « Trade With Dave
  13. Richard, they always say you can measure the quality of a blog by it’s comments section. I think there are four or five good posts worth of content in this comments section alone. Points I want to pick up on.

    1) Jon Matonis point that the second most secure ledger in the world resides in a data centre, the first is the Bitcoin blockchain because of it’s hashing power needs raising here. Are consensus mechanisms, and ledgers not just another architecture with no inherent increase in security?

    2) If there is no inherent increase in security, is the cost benefit of pushing the ledger into something decentralised (possibly on commodity hardware) worth the change?

    3) If a smart contract sets the rules for your blockchain, isn’t the system that enforces the smart contract (ie. That code) now the weak point, and that will need to be protected the old fashioned way. Likely with logical access management, and overbearing infosec teams.

    4) Whilst the benefits of distributed ledgers are quite clear to me, the benchmarking and costs are not. Until we can either a) Surface those or b) Experiment and benchmark – it’s hard to recommend them as anything more than promising.

    5) But what happens when major corporates like GE or Facebook decide to move small chunks of liquidity using a Ripple or Stellar rail? – The reality here is, incumbents have to figure this out quickly because the logical possibility of being disrupted is more than plausible, it’s starting to look likely (although perhaps that’s group think infecting me).

    6) Decentralised trust is a misnomer, trust is abstracted from the settlement system in different ways. Ripple does this by creating a gateway and pushing the trust responsibility to those entities. Bitcoin abstracts it further by saying ‘We don’t need to trust to settle, but if you do – apply it how you see fit’. Is it not logical that much of the existing banking relationships model could apply to Bitcoin if you see it as an alternative / low cost settlement engine, rather than a replacement of the entire value chain?

  14. Congratulations for such an interesting article but in my opinion is incomplete.
    What do you think about opentransactions.org? Do you think it will be a big player?
    Thanks

  15. At the Bitcoin South conference last month in New Zealand, I spoke about building a general purpose computing platform using the blockchain. The key points and video are at http://bravenewcoin.com/news/vikram-kumar-at-bitcoin-south-announcing-c-web-distributed-computing-with-the-blockchain/

    This shows how a “blockchain computer” is being built but the crucial point is the need to add in concepts from other areas, specifically distributed computing, and that re-using Web components that already exist (such as HTTP, TCP/IP, and Ethernet) to build an open and free platform is the big step forward.

    Thanks for a great discussion here.

  16. @Richard: Thanks for the encouragement. It is truly valuable coming from you.

    Your comment is illuminating, and is similar to my line of thinking. A consensus process should be thought as “secure” enough upto a certain value. We can imagine a heuristic such as: One consensus process should carry upto value 100*Z where Z is the cost to conventionally subvert the consensus process. If cost to subvert Bitcoin is $100 million, then it is permissible for the process to carry upto $10 billion.

    The total quantity of representable assets in decentralized ledgers is humongous. I would not be surprised if it totals $100 trillion. Stated differently: When we start representing cars, central bank money, large cap company shares on the block-chain; it gets out of the reach of a single consensus process like Bitcoin or Ripple.

    IMO, only way to deal with this is to imagine thousands of consensus processes for the whole world. Buried in the statement is the questionable assumption that decentralized consensus to record assets will be commercially successful.

    My gripe with the ideas “Bitcoin is the Internet of Money” or “Ripple is the Internet of Money” is that these are enmeshed in Single Dominant Consensus Process thinking. We need to move beyond and design for thousands of consensus processes. This leads to Questions 1 and 2 in my first comment.

    Hyperledger is the first project to adapt Multiple Consensus Process thinking. It is a protocol by which a consortia of publicly-identified companies can create a consensus process. Example: 20 companies create a consensus process by contributing a high performance node each. Consensus ruleset can stipulate that 10 of these company controlled nodes must conspire or be successfully attacked to create a double spend. If a double spend happens, the errant companies are publicly identified.

    As the reputations of companies are at stake, this arrangement could be secure for 100*Z where Z is the total reparations that could be secured in a court of law. Z could also be thought of as the sum of real goodwill assets of 10 companies. These measures are subjective, and perhaps we will improve upon them in the future.

    Thousands of such consortia for the world to prevent systemic risk. Therefore Hyperledger should be considered as an option.

    Tendermint (http://tendermint.com/) is another project consistent with Multiple Consensus Process thinking. Eris as well, though I don’t understand it.

    Thanks again and look forward to future blog articles. I love them!

  17. Pingback: 7 – A model to make sense of the proliferation of cryptocurrency projects – Exploding Ads
  18. @simon – thanks for the thoughtful comments.

    To your points: 1) and 2) — I’d say that there’s nothing inherent in a decentralised ledger that makes it more secure. – e.g. my silly example in this piece (http://ibm.biz/BdRaCW) shows a decentralised system that would be trivial to break. To me, the one thing that a decentralised system gives over a regular ledger is that, provided you can make it “secure” (a big if, and a word that needs defining more precisely), the promise is that no single entity can rewrite history or exercise censorship/veto powers.

    3) My understanding is that systems like Eris would have rules determining who (i.e. owners of which keys) can change rhe rules for any given “block chain”. So whoever owns the keys has total control, presumably?

    4, 5) interesting points

    6) Ripple also requires you to trust that their consensus system works as claimed.

  19. @david – re Open Transactions. Thanks for the reminder. They’re perennially on my “to read” list. Perhaps you can help me. My superficial skimming so far suggests that this is a library/toolkit and so you’d need to build something around it for real-world projects. 1) is that correct? 2) can you point me to any examples of projects based on OT that also fit into the decentralised/trust-lite world? Thanks!

  20. @vikram – do you have a link to the slides or a written description of the concept/project please? Thanks. (I find I never have the patience to watch videos of presentations!)

  21. Pingback: Distributed Consensus Protocols | Dom Steil
  22. Assumption. The reason banks have their own data centres is because

    1) They hold all the keys
    2) They’re the police of money
    3) Which gives them control granted (and forced) under a legal framework

    I think what’s interesting about Eris is that all of the above remains true, but provides alternative hardware architecture possibilities. So interestingly a lot of what’s happening in Africa (bank in the cloud), could become a bigger reality for traditional western banks if they had a smart contract overlay that was endorsed by regulators (with some sort of shared blockchain used as an audit trail).

    You would probably need the central banks to buy into this, but I actually think they’re pretty interested in doing so.

    I confess I don’t understand counterparty, NXT or the others well enough to comment if the same is true.

  23. That said, 1,2 and 3 in the cloud are possible without smart contracts, what smart contracts give you is a link between the legal (paper) and the code that auto executes. I’m now wondering if there is a central bank with the imagination to see the benefits of doing so

  24. @sytaylor – don’t forget that there’s also a more mundane reason why banks have data centres: they have HUGE amounts of data and they believe that the best (lowest risk?) way to keep it safe is to look after it themselves. e.g. it’s not unusual for a large bank to have *tens of petabytes* of data… probably rising to hundreds in the next few years.

  25. It’s worth pointing out that ripple works without any gateway involvement at all. So it isn’t gateways, per se, that off-chain assets are managed by, but a broader class including gateways as a member.

  26. @Jeff. Thanks for this… I think you may have discovered a fundamental flaw in my understanding of Ripple! My mental model of Ripple is based on the idea that non-XRP assets need to have an issuer (that’s who you rely on to turn your claim on the ledger into the real asset) – and a gateway is what you call an issuer. Your post implies there are other ways of issuing assets onto the ledger without being a gateway, right? Or am I missing something? Feels like there’s probably a primer doc I need to re-read…!

  27. Pingback: The Weekend Read: Jan 10 | Todd Blog
  28. Your post implies there are other ways of issuing assets onto the ledger without being a gateway, right?

    Yeah: *anyone* can issue assets. This scales from two people who use ripple to keep track of IOUs between eachother, to people who are community hubs and small institutions(maybe cooperatives or charities) who could use it as a kind of way to collect donations(for example, I’ve extended a connection to MIRI — anyone who’s connected to them can make payments through me, across the network)
    to people like me, who are known by different groups and communities as hubs between different communities. I’m not a ‘gateway’ and have no interest in acting like one, and small charities and communities certainly aren’t, either. There is a whole spectrum in between us that ripple makes possible.

  29. @Jeff – got it… thanks. So more similar to the original Ripple vision right? I think we just had a difference in terminology. In my mental model, you’re functionally equivalent to what I think of as a gateway (i.e. you issue assets, which could be settled in the real-world (even if they never are) and so are a bridge to the real-world) — but you clearly don’t match the difference of the specific “gateway” definition in today’s Ripple system. Thanks for clarifying.

  30. Pingback: How to explain the value of replicated, shared ledgers from first principles | Richard Gendal Brown
  31. Pingback: The Value of Replicated, Shared Ledgers from First Principles | Bitcoin Mining Review
  32. Pingback: The Value of Replicated, Shared Ledgers from First Principles | desibitcoin.com
  33. Pingback: 如何用第一性原理解释可复制的共享式总账的价值 | 巴比特
  34. Pingback: 如何用第一性原理解释可复制的共享式总账的价值 | 三个硬币
  35. I would like to get a straight and not vague answer from someone.
    I’ve been researching “permission blockchains” for a while now, since our salesmen find it easy to sell.
    I have developed a model in my mind about a questions of this field, it sounds like this.

    The goal of bitcoin consensus is to reach consensus over a large group of people who might not been known.
    It cannot be done, because on the network one person can set up any number of nodes without anyone noticing it, this is the Sybil attack.
    So bitcoin introduced the blockchain. Blocks put on each other, almost like a stack. We only need this kind of data structure, because it works great with proof of whatever concepts to be resistant against Sybil attack.

    So if there is no Sybil attack, because nodes are trusted, then why should I use blockchain? I could do a much better and easier job with objects, arrays, sets, why should I use an overcomplicated stack (meaning: permission blockchain)?
    What are the attributes of the blockchain that are actually useful if there is no Sybil attack possibility?

  36. Following the unfold of Christianity throughout Jerusalem, Judea and Samaria,
    Jesus’ Good News of common salvation needed to unfold outward; no
    geographical barrier, either imaginary or actual, could probably hold it again. And when the Good Information of the Kingdom is preached in the entire world for
    a sworn statement to all of the nations…the end will
    come.” (Matthew 24:14) Amen!

  37. This tune is the musical equivalent of Bieber breaking down in tears at the VMAs Regardless of the
    many snarky feedback I made about it, that sobbing stirred one thing in me.
    It felt like one of the least choreographed moments
    of the complete shitshow spectacle.

  38. We perceive how the advertisements had been offensive to many, and we apologize
    to anybody who felt offended or alienated,” the spokesman stated.
    The Archdiocese of Philadelphia launched a press release Wednesday condemning the advertisements and calling for his or her elimination. Use the brand new Net browser window, which is able to routinely block all website advertisements.

  39. I blog often and I truly thank you for your content. This article
    has truly peaked my interest. I’m going to bookmark your site and keep checking for new information about
    once a week. I opted in for your Feed as well.

  40. Pingback: 14 Bitcoin Blogs You Must Read To Achieve Bitcoin Enlightenment | Bittylicious

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s