Why are blockchain purists so angry with Accenture? The consulting firm is working on what it calls an editable version of blockchain technology, and it hasn’t left lovers of bitcoin, the original blockchain tech, very happy.
Accenture announced its project for an editable blockchain last September, in conjuction with Dr Giuseppe Ateniese, a cryptographer and professor of computer science at the Stevens Institute of Technology. The system, now patented, challenges one of the bitcoin blockchain’s central features: immutability.
When you send me money electronically, you’re generally doing it via a central party, like PayPal or a bank. This central party plays an important role: if I later claim that I didn’t get it, or you claim that you didn’t send it, the bank or PayPal has a record of who’s telling the truth.
Public blockchains like bitcoin’s were designed to take central parties like banks out of the equation, and enable people to deal with each other directly, even if they don’t trust each other not to lie about who sent money and who didn’t.
Bitcoin’s blockchain is able to do this because neither the sending or receiving party can go back and rewrite it. Transactions are divided into groups called blocks (think of them as pages in a digital bookkeeper’s ledger). Everyone on the bitcoin network keeps a copy of the ledger which is constantly updated, with a new block containing the latest transactions every 10 minutes or so.
Let’s say you send me some bitcoin, and then you wish you hadn’t, and decide to fraudulently edit the ledger. Couldn’t you just go back and rewrite the block containing that transaction and send it to everyone on the network? Thanks to the magic of cryptography, you’d soon be spotted.
How bitcoin stops fraud
Every transaction for each block in the blockchain (or page in the ledger) are run through a cryptographic function that uses a block’s transactions to produce a smaller string of data known as a hash. The hash has some unique properties.
First, that specific hash can only be produced by that specific data. Change any part of any of the transactions – even one character – and the hash will be completely different.
This is important because each block’s hash is stored along with it in the blockchain. If you tinkered with a transaction record, you’d have to recalculate the hash for the whole block, erase the old hash and replace it with the new one. Otherwise, it would be obvious that the new block didn’t match the hash stored with it.
OK, so why couldn’t you, the fraudulent buyer, simply replace the block’s hash with a new, recalculated one?
There are two reasons. The bitcoin blockchain deliberately makes it difficult to hash a block, and adjusts the difficulty so that all the computers participating in the bitcoin network will take about 10 minutes to calculate it. You’re going to have a tough time doing that with your single PC.
The bitcoin network also stores each block’s hash in a clever way, adding it to the transactions that are used to make the hash for the next block. This means that each bitcoin block’s hash relies on the block before it. If you try to go back and change a transaction, you’d have to recompute the hash not just for that block, but for every block after it. That’s why they call it a chain.
In this way, no-one can question anyone else’s transactions after the fact. If you send me money, it’s recorded. If you later say that you didn’t, the entire bitcoin network will know that you’re lying without any bank or other central party acting as arbiter.
Banks backing permissioned blockchains
A couple of years ago, the financial world became interested in blockchain technology, finding applications for it in banking, such as financial settlements that have always been slow and ineffective. Banks hope that blockchains could speed them up.
Let’s say you’re a bank and your client just sold some stock to client of another bank. You have to settle that trade with the client’s bank. To do that, you and the other bank must to go through a central clearing house that acts as a central record-keeper between you both, and does all the paperwork.
The clearing house is a bottleneck in the process, taking three days to process the trade. That means you must hold enough money in an account somewhere to cover yourself if the other bank fails to pay you. Fed up with this process, you and all the other banks decide to use a blockchain to cut out the middleman and handle the trade directly.
Banks aren’t like people, though. They’re a community using the blockchain for a clearly defined purpose, rather than buying things from people they don’t know, so they don’t really need all the anonymous, zero-trust stuff.
Instead, banks have taken blockchains in a new direction, creating private blockchains designed for their own closed financial communities. These have been called “permissioned blockchains”, as opposed to public ones.
There are lots of other potential applications for these blockchains, such as handling the trade in private equities (something often done by a lawyer with a spreadsheet). Syndicated loans is another one.
So far, so good. Immutability was still the key in these applications, because banks wanted the record to be sacrosanct. But Accenture’s editable blockchain changes all that.
A CTRL-Z for the financial system
What about in those few cases when someone really does need to edit a transaction, Accenture asks? It’s easy to think of examples. Perhaps a fat-fingered trader accidentally causes a flash crash or erroneously sends $6bn to a hedge fund client. Oopsy.
Or consider the DAO, the ill-fated organization created on the Ethereum blockchain last year. It was hailed as a new development in autonomous, self-governing corporations. Instead of relying on central parties such as lawyers, accountants or a board for its governance structure, it instead used smart contracts, which were designed to handle things like voting and the unlocking of funds for contractors.
Unfortunately, it lost around $50m after someone hacked one of the contracts. The Ethereum Foundation then had to create a “hard fork” of its own blockchain to try and get the money back, but some people didn’t follow along, resulting in a new Ethereum blockchain and a Coca Cola-style Ethereum Classic. Governance-wise, it was complete carnage.
Well, wouldn’t it be nice to be able to reverse a fat-finger trade, or for the team managing the Ethereum blockchain to flick a switch and reverse the hack? A kind of CTRL-Z undo for the blockchain?
This is driving Accenture’s thinking. It uses the “chameleon hash”, which acts as a kind of padlock between blocks and allows trusted parties to remove or edit blocks if they have the right digital key.
What’s in a name?
The company has said that it would only be used in very rare and specific circumstances, and by a small number of individuals. Nevertheless, it has the old guard – the purists who believe in the immutability of blockchain technology – up in arms. Some argue that making a blockchain editable turns it into little more than a giant distributed database – that it’s not a blockchain at all.
OK, sure. So what?
Once the banks got involved and started adapting the technology for their own ends, the concepts underpinning the technology were bound to change. The technology industry has a habit of taking and morphing concepts. After a while, the arguments about whether the technology conforms to its original definition are purely semantic.
The real issue here relates to the risk level. Bitcoin purists argue that trusting individuals to make changes can lead to the kind of fraud that the blockchain was originally supposed to stop. What if the trusted individual with editing privileges turns out to be corrupt, or susceptible to blackmail? Human beings are flawed, after all.
A saving grace in the Accenture proposal is that the edits would leave a mark in the blockchain that even trusted individuals couldn’t erase, so that at least you could see if someone had altered something. It sounds like a vast, distributed version of Microsoft Word’s Change Tracking feature, but without the ability to delete changes or render them invisible.
It’ll be useful to communities who want to deploy it, but will also re-introduce problems ranging from maintaining and grant privileges through to vetting employees and managing digital keys. Organizations deploying it will want to allow for separation of duties, so that it takes consent from more than one trusted party to tinker with the system. It makes things more complex, more fallible, and not 100% corruption-proof.
So call Accenture’s editable blockchain by another name. It really doesn’t matter. The real question is whether it does what its corporate masters want it to do, how much risk it creates in the process, and whether they’re willing to absorb it.