Deconstructing the "Code is Law" Viewpoint on Steem

in #philosophy6 years ago

An argument I often hear about particular voting and delegation behavior here on Steem is that one is free to use their stake in whatever way they please as it is their stake. And on the surface such an argument appears to be common sense. Why shouldn't anyone use a resource they possess in whatever way they want?

Such viewpoints are often derived from a greater idea that code is law. Or to put things in terms of the Steem blockchain:

Any operation that is permitted by the code of Steem is a valid operation.


stealing.jpg
Stealing is simply part of the game

However, there are many objectionable actions that one can take within those operations that the community might deem objectionable. Thus, on top of this software layer, this is an additional social layer that tends to make such considerations and viewpoints cloudier and harder to define.

With this social layer, we need to redefine what "code is law" means to Steem adding the additional social context that exists on top of the underlying software. So here's my attempt of defining that:

Any operation that is permitted by the code of Steem is a valid operation, but the propagation of the content of some operations are subject to social consensus applied by individual members of the community.

To unpack that, I am still saying that anyone can do whatever the hell they want to do on the blockchain as long it follows the defined behavior of the code. The additional social layer has no influence on operations at this fundamental level or else the blockchain wouldn't have any value. If social pressure could change things at this level, anyone could invalidate an operation, which is essentially censoring a person.

Note that this is different than flagging the shit out of someone. The content of their operation might be hidden, but the operation itself is not. Flagging or critiquing users or hiding them from an interface is a social action which can have an effect on the monetary value of an operation, but not the validity of the operation itself.

There is nothing to stop an individual from upvoting themselves and only themselves outside of exterior social pressures. And those exterior pressures have no ability to restrict the option of such operations ever occurring. They might change behavior but they certainly don't change access.

If we look at Steem as a sort of game, it is a game of maximizing some sort of personal objective score (usually money) where there are two sets of rules. There are the official rules of the game (the code) and the unofficial, unwritten rules (social consensus and pressure) of the game.

But now that we have defined these supposed boundaries of the game, let's explore some uncharted waters and some edge cases and try to understand some ethical viewpoints within both of these sets of rules. The overarching question I want to consider in this second part of the post is the following:

Are the rules established by the code that define the blockchain enough to create an ethically acceptable system?

Please note that the answer to this question will tend to vary depending on the principles that an individual holds as well as the ethical system that they tend to adhere to.

In our first case, we take the consideration of mistaken identity. Suppose two accounts share similar names and one of these accounts in yours. A friend of the other account wants to send them 5 STEEM for whatever reason but they accidently send it to you. What should you do?

Strictly abiding by the rules established by the code, you don't have to do anything. You can keep the money. There is no obligation to give the money to the intended target, because in terms of the code running behind the blockchain you are the official recipient in the transaction. And as much as the two folks want to invalidate that operation, they can't.

However, if you respect the intentions of the individual sending the money and understand their mistake, you might want to send the money to the intended account. The potential worry of social repercussions may also lead you in that direction. I'm not really sure that such a rule exists in the current ecosystem, but if did, that would be an example of one of these "unofficial" rules.

But let's summarize the position here. A true believer of "code is law" would be willing to admit that the recipient of the STEEM is entitled to do whatever they want with it. Because they are the valid recipient of the operation triggered by the other account. They would also probably suggest that the sender of such transactions be more careful in the future and double check who they are sending money to.

That example seems straightforward and something that is within the space of operations which we know are definitely possible. It is also not relatively clear whether or not which position is necessarily ethically correct. But let's consider a more ethically problematic example.

Let's say that you come across the active key of a another user and they have 5 liquid STEEM in their account. You use this key to move that 5 STEEM to your own account. You now have 5 more STEEM in your account. Is this right?

At first you might think that such an action is morally incorrect and the individual is simply stealing from the other individual. And depending on your views on property rights, they are indeed stealing from this account. But that's not to say that stealing is not part of the game. Stealing is definitely within the rules of the code.

Although the code is designed to prevent stealing of funds from other users, it by no means prohibits it. But I think we can all agree that stealing is something society as a whole has clearly established as something somebody shouldn't do. So, this is wrong, right?

Well, if you are a believer in the "code is law" paradigm, such an action might be looked down upon with social repercussions, but the recipient of the STEEM is entitled to doing whatever with the STEEM as they please as they are the valid recipient according to operations within the blockchain. They would probably argue that the account that lost control of its active key should be more careful in the future to minimize exposure of that key.

So, at this point, I'm guessing that most of you do not fall in the "code is law" camp in terms of defining ethical behavior on the blockchain at this point. But let's consider a hypothetical, yet entirely possible scenario which could at some point occur on a blockchain like STEEM depending on particular circumstances.

Let's say that you are looking through the source code of the STEEM blockchain so you can understand it better and find an interesting bug. This bug allows you replace the recipient account of the last transaction with your own account given that your account falls under some edge case. Lucky enough, you own an account that falls under this edge case. You try out the bug, and it turns out you now receive the 5 STEEM in the transaction rather than the intended individual. Do you have a valid claim to this money?

Now one might initially argue that this "operation" is invalid because it exploits a bug in the code that allows the code to run in a way that was not intended. But in terms of "code is law", intention of the code doesn't matter. Because you are still following the rules of the code. Nobody knows about this one rule, but it exists, so if you exploit it, it's technically fair within the boundaries of code-defined behavior.

However, in terms of considering the other parties involved, we can't really fault them for not being careful enough. It's not like we should expect all users to keep a careful eye on possible bugs in the case they happen to be exploited against them. But if we strictly adhere to the "code is law" argument, this is a valid expectation of users.

So, to summarize that even with unintended behavior in the code, the recipient of the 5 STEEM has the right to do as they please with their windfall as the code allowed them the flexibility to do so. And as I mentioned, someone who truly believed in this position would argue that things like this are a risk and may even argue that the receiving party deserves the money they receive because they found the exploitation in the first place.

So, how do we conclude this thing? Well, I'm going to revisit the original idea that we started with. The idea that one has a right to use their stake and their account in whatever way they please because that behavior is permitted by the code. Unless you personally believe that the three examples given above are examples of morally acceptable behavior, then you don't actually believe this.

That is not to say that folks that believe they have a right to do the things that they do don't have valid reasons behind their actions. But it does mean when they argue from a perspective of the code permitting such behavior, they either are permissive of quite a lot of questionable behavior (as seen above) or they are making an argument for convenience's sake. And in terms of rational thinking and moral philosophy, that can be a rather lazy and selfish way of thinking.

Of course, anyone has a right to disagree with the argument presented here. The goal of this post is to deconstruct a certain viewpoint in its purest form. People often hold complex personal philosophies and all I'm trying to get at is that by arguing in favor of this type of philosophy, you allow a subset of questionable behaviors to arise that I would imagine most people wouldn't be comfortable with accepting as morally permissible behavior.

Sort:  

You seem to be describing the exact situation that caused the Ethereum / Ethereum Classic fork. Ethereum Classic believes that the code is the law. Most people do not.

There are the official rules of the game (the code) and the unofficial,

On Steem, the biggest unofficial rule is proof-of-brain. I was surprised you didn't mention it.

I think to assume that "code is law" is to assume that the code is so secure and well developed that undermining it in any way would be more damaging than not. I think this is obviously not the case because this space is so new and Wild West status. Perhaps as time goes on the laws of the code principal will be more iron-clad, but for now not so much.

As you already know I'm trying to create a side system of positive and negative reinforcement, so that's also a possible solution outside the whole code of law argument.

I doubt that code will ever get to the point where it couldn't be undermined in some way. People always deviate to some optimal meta-game rather than follow developers intentions / societal constraints (proof-of-brain). Even when I was playing with developing better filtering systems, a subset of users managed ways of abusing it. Systems that rely so hard on mechanics to make people behave tend to become fragile to individuals trying to find weaknesses in those mechanics. There's a reason why hackers exist.

This would suggest figuring a means of cooperation at higher social levels. While social networks can enforce some rules, the more decentralized they are, the harder it is for these networks to enforce particular rules.