800 Words Explaining Blockchain Without Saying Blockchain

By on ALTCOIN MAGAZINE

Ed Moffatt
Published in
5 min readJul 4, 2019

--

(The post-it in the photo doesn’t count)

I recently tried to explain the technology I work on to a new colleague. It made me think about how when someone asks “what is (technology) X”, they’re very rarely looking for a precise definition of X. They don’t want a really accurate statement of what the word means, and a set of new terms to go look up, they want to understand why the technology exists and what it enables people to do. Hence, I think it can be useful to avoid mentioning X for as long as possible in the explanation.

So, it’s July 4th, my calendar is oddly free during the time I’d usually be on WebEx with my American colleagues, and I thought I’d have a bash at it!

(The meme doesn’t count either)

Ok, Start Counting Now

Our story starts with a group of organizations (companies) who want to co-own some information about shared business processes. For example, say 3 companies are involved in getting a widget from a warehouse (A) to a customer’s house (B). The ideal situation would be that they all have the same information about where the widget is and what status it’s in at any point on its journey from A to B. Also they should agree on how the widget’s location and status will be recorded and updated.

I think it’s easiest to understand how a technology solution to this might work by considering the case when it doesn’t exist. Sticking with our example of 3 companies (call them 1, 2 and 3) involved in the shipping of this widget… We’ll consider 2 methods for how they might handle this.

Method 1 — Individual Ledgers

1, 2 and 3 all want to know the location and status of the widget. One way of achieving this is that they all write down what they know separately. Then, when they hear about something changing, they update what they’ve got written down. This can be described as them each having a separate ledger. Obviously, the pen and paper can be replaced by a slightly more modern system, but in this scenario, you still have 3 separate systems. This might be fine in some business processes, but at the same time there are some problems that can occur:

  • What if 1 thinks the widget is in Kettering, but 2 thinks it’s in Poole? (These are randomly selected places in England btw.) Who’s right?
  • What if 2 thinks the status of the widget is “OK”, but 3 doesn’t have the option of “OK” in their system. They only record status as “GOOD” or “BAD”, so which one should they use in this situation?

Method 2 — One Authority

So, sometimes separate ledgers are no good. What about we agree to just have one ledger then? Company 1 will own the ledger, and then company 2 and 3 can just ask them for the info whenever they need it! Again, as you may have guessed, there are possible issues here:

  • Company 1 is now solely liable for keeping the ledger up to date. Are 2 and 3 happy to trust them? Is 1 happy to take on that responsibility? What if 1 is a US company, 2 and 3 are European, and today is 4th July — 2 desperately needs to know the status of a certain widget, but for some reason, nobody at 1 is picking up the phone!
  • An employee at 1 was supposed to hand the widget to an employee at 2. He forgot, but that’d make him look bad, so he updated the ledger to say he did. Now the single source of truth says it happened — 1 has tampered with the ledger and there’s nothing 2 or 3 can do about it. Not good.

A Better Solution

So where does that leave us? We don’t want 3 separate ledgers, but also we don’t want one company to own a single ledger. There’s a non-tech solution to this in the form of a joint venture: 1, 2 and 3 could contribute board members to a new legal entity, 4, who owns the ledger. If only we could replicate that kind of model with tech, we’d be able to make it more repeatable, efficient, cost-effective… This is why Distributed Ledger Technology (DLT) is useful!

The aims of a Distributed Ledger are that:

  • Each company has its own copy to reference
  • The copies are always the same as each other
  • (As a somewhat trivial extension) whenever one company updates their ledger, the other companies’ copies are also updated
  • The same rules about what can be recorded and how things get updated are shared by all the organizations

It would also then be very useful if it was impossible for one company to tamper with the ledger (the word used here is immutable). Good news everybody, there’s a solution to that…

Hyperledger Fabric has 2 parts to its shared, immutable ledger. First, there’s the bit where all 3 companies can look to see the location and status of a widget, which gets updated for everyone when someone makes a change. This tells everyone about the current state of the world, and that’s the easy way to remember its name: world state.

Next, there’s a record of all the updates that have ever been made to the ledger. In Fabric parlance, we say that the ledger is updated via the organizations submitting transactions. All the transactions get batched up into blocks to be committed to the ledger. When that happens, the latest info about the widget goes into world state, and the block is added to an ordered set of blocks. The blocks are “joined to” each other — each block contains a hash of the previous block, so if any get removed or moved around, this tampering can be detected. Hence, it’s a chain of blocks or a…

BLOCKCHAIN!

--

--

Ed Moffatt
The Dark Side

Blockchain UX Designer @ IBM |Video game artist @ XMPT Games | Alt Metal singer + guitarist @ Prion Son