Hey everyone, this post has been rattling around in my brain for quite some time, and I finally got around to finishing it. I think I've really distilled my thoughts on this subject, and it's an important one, as it in a way forms an underlying foundation of my own viewpoint. This post is a bit of a follow up in my series of "thought provoking posts", the last being Which came first, the Engagement or the Reward? if you haven't read that one yet.
So, lets dive right in, I hope you enjoy!
The Double Spending Problem
If you don't already know, the "Double Spending Problem" is one of the fundamental problems with digital systems, and is the raison d'être of blockchains. In digital systems, if you have a piece of data (such as a song from your favourite artist stored as an mp3 file), and you sent it to your friend Alice, there is nothing stopping you from also sending it to your friend Bob. While this has caused an amazing explosion of the internet in popularity akin to the printing press's ability to distribute content quickly and reliably, it has an unfortunate downside when you want to transfer something that you don't ever want to be duplicated. For example, if you want to send Alice the deed to your house, you most certainly don't want Bob to see it and claim that the house is now his. And when you boil that down to a value system, or a monetary system, you want to be able to transfer value without it being able to be duplicated in the same way in which all other digital content is.
Bitcoin was one of the first implementations to really address the "double spending problem" of value on a large scale. We have already had tools like cryptography for a long time before Bitcoin, and (sometimes people in crypto forget or don't know this...) we have also had distributed consensus for decades before Bitcoin. The real novelty that Bitcoin provided was that is was an implementation designed from the ground up to prevent "double spending", by using cryptographic proof of work to achieve a single state consensus of an accounts transaction history in a global ledger.
Nowadays, there's several token systems that throw out the blockchain in favour of different approaches. For an academic, I was totally expecting this to happen: we know of other ways to do distributed consensus, so it was only a matter of time before the other options were tried. The IOTA Tangle is one of the most commonly known systems in the community, but more are getting popular, including work being done on the Hashgraph design, and one of my new favourites, the already fully functional zero-fee DAG block lattice, Raiblocks. All of these systems still solve the "double spending problem", using one mechanism or another to achieve distributed consensus.
Let's dig further into the problem. An important facet with the prevention of double spending in a currency or reward system, is actually also the inability to double spend "coinbase" (instantiation) rewards. That is to say, if you were to create a coinbase transaction (for example, you solved the Bitcoin proof of work and produced a block) which mints coins into existence, it is fundamentally important that you can not re-use this transaction and mint yourself some more coins. No, you only get a mining reward once, and then you need to work on a new one. This way, the system is provably fair: the inflation rate (or token production rate) is consistent, reliable, and can be determined in advance. Tokens cannot be duplicated, and they cannot be spent twice.
So what's this all on about, and how does this relate to Steemit? Yes, don't fret, the Steem blockchain is just as secure as any other.
But, I am here to tell you why Steemit has in fact not solved the double spending problem in it's entirety.
The Double Spending of Value
On Steemit, we have this unique concept of "Proof of Brain". The majority of the rewards are not minted into existence by miners, but are rather distributed to the community by way of the reward pool. If you think about it abstractly, it is a unique and amazing system. You produce something of value (an interesting post), and you get some reward based on a multitude of factors, and in return you recieve tokens that represent value. This is an abstraction of the "Proof of Brain" system that Steemit has designed.
However, on Steemit, there is nothing immediately stopping you from double spending your Proof of Brain "work". On a blockchain, time moves forward only, the distributed consensus knows you cannot double spend Proof of Work that you created, so you can only ever get that reward once. On Steemit, it is all too common to duplicate your "work", and be rewarded twice. This can come in many forms. As the most obvious example, you might repost something you posted on Steemit a month ago, and perhaps claim "it is now reaching a new audience". If that repost gets a new value, you just double spent successfully.
On the extreme, we can see even worse behaviour. Imagine if on Bitcoin, as soon as a miner produced a block, you could send out the same block and recieve the same reward that the miner did. How crazy would that be? The blockchain simply wouldn't work. Well, on Steemit, there is fundamentally nothing stopping someone from taking a successful trending post, and posting the same thing, and getting a reward for it.
There are a few places where we run into a morally grey area, specifically when cross-posting. Imagine, if you wrote an article for a news site, and they paid you for it. Or you wrote an article for your personal blog that is hosted outside of Steemit, where you receive ad revenue. You may have even done work for someone pro-bono (in which case, the value you are receiving is not monetary, but social — such as the case of an artist doing pro-bono work in exchange for exposure), and had it utilized somewhere in the real world or on the internet. In all of these examples, you have already spent your "Proof of Brain" and received some form of value in return. The value you received was outside the Steemit blockchain, so it may seem ok to double-spend your “Proof of Brain” (or in other terms, "intellectual property”) by posting your work and also receiving value for it from Steemit.
However, this means that you would be receiving value twice for the same piece of work — this is like if a novelist sold the same book to two publishers and didn’t tell them. Imagine if that happened in the real world. It would be a disaster, right? It’s both the morally correct thing to do and common courtesy to let someone know if they are buying an exact duplicate of a piece of work. So if both publishers were told that they were buying the same book and were fine with it, then there’s no problem. The issue only arises when both value-adding parties believe they are buying an original work when they’re not.
So with this in mind, let’s examine a situation where you sell an article to a news site, but also let them know that you will post it on Steemit. And when you post it online, you let people know that they can also find the article on the news site. Since both value-adding parties involved (the news site and Steemit readers) are aware of the double-spend of your “Proof of Brain,” then they can make an informed decision about how much value they want to give you. No harm, no foul — as long as everyone involved is aware of what’s going on. In practice, this just translates into letting people know when your post can also be found elsewhere. This is the correct way to go about cross-posting.
Distributed Intellectual Consensus
Hopefully by now I have convinced you that, unlike blockchain "Proof of Work", where the distributed consensus prevents you from double spending "Work" implicitly and as part of the system, the Steemit "Proof of Brain" has no built in mechanism to prevent double spending of the "Brain". So how do we actually prevent double spending of ideas?
While the Bitcoin system is proactive in that the transaction will be rejected immediately, right now, the only system we have is retroactive. The only way to reject value going towards a double spend, is for the community to retroactively remove the value on that transaction. This is a round-about way of saying that the post must be downvoted to remove the reward. Upon this, the transaction in a sense was not rejected, but rather simply not rewarded.
This method is what I would call "Distributed Intellectual Consensus". In this system, all actors must make an informed decision, and reject double spends of value. In order to make an informed decision, we use can investigate, consider reputation, use tools, and use many other methods to help identify if something is indeed a double spend or not, or has otherwise earned value. Eventually, we can come to a distributed conclusion on the value of the post.
This, as you can imagine, brings me into talking about @cheetah. When it really comes down to it, this problem is exactly why @cheetah exists, and why I created her. It is a tool to help identify if a post is (potentially) something has is being attempted to be spent twice. It's not perfect, and it's not 100% accurate (its actually about 99.8% accurate -- in a metric of how many posts are false positives -- according to my calculations), but it is one of many tools that we can use to help critique a post. The idea in this post is precisely why I created her, and this is why I believe she is so necessary.
But note, on Steemit, not everyone evaluates and votes on every post. While this would allow us to have a true, complete democratic (by stake) view of a posts "worth", what really happens is that we get a sampled version of this. Only a select sample of users view a post, and therefore it is up to them to determine the validity of it. With a tool like @cheetah, and a group like @steemcleaners, it becomes more feasible to evaluate efficiently. Just like how Delegated Proof of Stake improves regular PoS by delegating the responsibility, we can use systems like @cheetah and @steemcleaners in order to help evaluate a post. But we still need users to help us too, by reporting questionable posts and even taking action whenever possible, and therefore I encourage everyone to take these problems seriously.
So that was my ramble. And yes, this is strictly my own personal viewpoint on Steemit, and the "Proof of Brain" system. It's subjective, and I'd always love to hear the opposing view to refine how I think about my own views.
So, let me leave you with this parting "ultimatum" of an idea, and let me know what you think in the comments below:
If you believe the Bitcoin blockchain would not work if miners could spend the reward of blocks as many times as they would like, you should also believe the same of the rewards given to Steemit posts.
Like Cheetah and Steemcleaners, and want them to stick around? Like what I do for Steemit? Please vote for me as a witness here!