Subscribe Now
Trending News

Blog Post

But You Could
News

But You Could 

Recently 25 experts and me released an open letter to the US Senate and House of Representatives asking for better regulation of the crypto market. Being what it is this letter had to argue on the basic fundamentals of the underlying tech without going into a lot of technical detail: It was an appeal to politicians to put some focus on a social, economic, political and ecological problem.

But of course not everyone agreed. Many people make their livelihood working on these systems or trading on these systems. Some people think that they are a great tool for political change and freedom etc. So there was a lot of criticism of the letter which is fair. I’ve spoken out against open letters lobbying for something I am against. Politics isn’t about consensus and everyone being happy, most of the time it’s about struggle. About pushing for what you want against those who want something else.

But aside from the ad hominem criticism (“you don’t even work in crypto!”, “You did work in crypto!”, “You are too young”, “You are too old and not getting it”, “You just don’t understand tech”) there was a thing I found interesting. It’s about a core tenet of blockchains.

When people explain to you what blockchains are and how the work at some point you will read the term “irreversible”. Blockchains save data in a way that can’t (reasonably) be changed afterwards. A thing that’s on the chain does stay on the chain. This is important for a very simple reason: Changes to the past would need some form of consensus and because of different interests this consensus would be really hard to create – especially with nobody knowing and trusting each other. So considering the past “settled” just makes sense from an architectural standpoint. It makes the whole concept workable and eliminates a whole bunch of issues that create more issues.

In our letter and whenever I give talks about blockchains or write about them this property is described not as an feature but a bug: The argument is that for our real-world systems we do want to – nay need to – be able to fix mistakes, change things. A token was stolen and we want to give it back. Someone typed the wrong address and all their Apes are gone now. Some data got written to the chain that’s just not true or that never was supposed to be there. We need to be able to modify a database. (For me living in Europe that is just a legal fact: Every piece of personal data or data that could be related to persons must be deleted should the person the data references asks for it – unless there are other legal reasons for the data having to stick around.)

While some crypto-supporters argue that not being able to fix things is just the price we’ll have to pay for the future(tm), for “sound money” or some other vision, some blockchain enthusiasts argued that our statement was untrue: You could actually implement tokens on a blockchain that could have those features. (Let’s ignore for a second that we are – as it’s typical for blockchain space – using a lot of “could” and very little “it does”)

Tokens on blockchains are governed by smart contracts. These pieces of code write down all the things one can do to a token: How they are created, how they can be moved or destroyed but also all the other things one can do with them. So it would be totally doable to write a smart contract that does implement a “undo” function for example. Whether the undo would actually be able to take the token back and give it to its original holder or if it would just “burn” the original token and creates an identical copy in the wallet of the original holder as replacement doesn’t practically matter too much. It’s actually not too hard to conceptualize.

So why don’t token/contracts implement this? Many tokens are already standardized (see for example the popular ERC-20 token standard) why don’t the standards add these functions? And it’s not even that it would be too much of a burden on the developers: Many contracts are slightly modified versions of existing contracts because they are all visible on the chain. If you want to build your own token, take one that does almost what you want, take the contract and adapt it. So people would just take the most common implementation and it would become the de-facto standard. But why doesn’t it happen?

A cynic might say that the irreversibility of the chain is actually what many people want. That the fact that nobody can force you to give your stolen tokens back is the feature that draws some people to using blockchains. Being forced to do something is – in a libertarian reading – against freedom. Whether it is being forced to pay taxes or being forced to give back something you took against someone’s will are on a very abstract level very similar. But there is more to it that just implying that everybody is a scamer. This feature would be hard to actually build from an political point of view.

So say we have a contract that implements “undo”. In a world where everyone is nice it would hardly ever be necessary: I send you coins by accident? You’ll surely just send them back, it was just an honest mistake, right? But in a world where there might be a dispute about whether the transaction should stand “undo” would be a way to make whole someone, to fix an injustice. But how do we do that?

In regulatory contexts you usually have some sort of authority that gets to make the last call. That’s for example what judges do in legal settings: Look at all the facts and arguments presented and decide to either let the transaction stand or to undo it. And all concerned parties act accordingly. But we don’t have these authorities in crypto, right? It’s all decentralized, anonymous, etc. So who gets to decide? Especially when the relevant facts are not on-chain?

On the chain a transaction is just a transaction. It doesn’t really know if I was making it willingly or of I was forced through violence or if my computer was hacked etc. So I can’t see on-chain if a transaction was illegitimate. I can only see that it’s consistent: The transaction is signed and I had the required funds to do it. That’s the chain version of the truth. But that’s not all of the truth. And who gets to play the oracle here? Who looks at whether I was forced to make a transaction through thread of violence? And how can the trustless, anonymous entities that use the chain make a decision? Can everyone who has a token from the contract vote? What if the person who wronged me has 51% of the tokens in some other wallet? How does this create justice? And what if someone misused that function to take back funds they actually had to pay?

“Undo” is massively important in sociopolitical and economic contexts but it’s not the technical aspect that matters. One can write a smart contract with “undo” but in order to get that to be useful one also would have to introduce some form of authority with the power to take other people’s coins/token. Which goes against the whole reason to have blockchains in the first place. Because if we have trusted authorities we can just use traditional databases and APIs with all the performance benefits that brings.

That’s why I don’t think that the argument that one could build smart contracts that would work around some of the structures of blockchains holds too much water in the real world. Because the things that many of the crypto critics ask for are not questions of more code. They are questions of trust. Questions of politics and justice and fairness. And those are – sadly – not just a patch away.

Liked it? Take a second to support tante on Patreon!

Read More

Related posts

© Copyright 2022, All Rights Reserved