The goal of Steem, and every other cryptocurrency for that matter, is to create value using its trustless network. However, it is difficult to avoid zero-sum game theory to create a network effect of synergy. How can we turn win/lose situations into win/win ideology?
I mentioned briefly that I think Steem has the ability to create a myriad of valuable digital assets without the use of SMT technology. In fact, there are already multiple talented programmers here working on just that.
However, the vast majority of these solutions require us to destroy Steem in order to prove that the asset in question indeed has value and is provably scarce. I'd like to take this opportunity to propose a possible way to create scarcity without sacrificing a valuable parent asset.
I've already mentioned this idea once or twice but I've had time to reflect on it even more lately. I believe digital assets can be given scarcity using the concept of CAPTCHAs. Using the same tactic that centralized servers employ to stop bots from breaching the network, so to can we adapt that idea to provide evidence of proof-of-brain. Instead of this POB being rewarded with Steem inflation users would be granted one or two other custom assets.
The first asset could be the CAPTCHAin coin itself. Completing the puzzle and posting it to the blockchain would earn a user 0.01 of these coins or some other arbitrary number. The second asset would be unique to whatever app was employing the CAPTCHA in the first place.
For example, if someone created a farming game like Farmville they could put a CAPTCHA in front of resource creation to give the goods created scarcity/value. Say you planted wheat seeds 1000 blocks ago (50 min) and the wheat is ready to harvest. A CAPTCHA could be required to plant/harvest the wheat to stop bots from being able to farm this resource. If this tactic was effective, digital wheat would now have real world value because it is scarce and can be used to progress through the game. Players could choose to sell their resources to other players rather can consume them for personal use.
It is in this way that the game would be owned by the players instead of being leeched by a centralized entity. The traditional business model for free-to-play games is to leech the customer for everything they are worth. Walls are erected to bring play to a halt and encourage purchases. A game created with a polar opposite business model would be completely unique and has a chance of going viral quite quickly. The opportunity to create a paid-to-play business model is a real possibility using the decentralized features of the blockchain. Captchain could be the foundation of dozens of products that revolve around proof-of-brain and digital scarcity owned by the community.
Sacrificing one digital asset to create another.
Although Steem wouldn't necessarily be burned to create these assets, resource credits certainly would be. I believe Steem can create a positive feedback loop where Resource Credits have far greater demand than Steem itself. The ability to turn RCs into other provably scarce assets will create a snowball effect that constantly pushes the value of the platform up. The only thing in our way will be the ability to scale up. Thus, the incentive to scale up would be massive because every time scaling was achieved every asset on the platform would rise in value due to network effect.
Compare that to where we are today and we see quite a different story. Currently, Steemit Inc may very well implement their proposed scaling solutions, but there is little guarantee that the value of the platform will increase as a direct and immediate result of that hard work. The ability to turn RCs into digital assets that have demand would ensure increased platform value as an immediate effect of scaling solutions.
Once we have the infrastructure set up users will be clamoring to turn their RCs into other assets with more value. Today the only way to do this is to make a blog/comment post. Additionally, the process of creating quality content is time consuming and arduous. By the time one makes such a submission RCs on the account have already regenerated ten fold or more. Even worse, quality posts can easily be overlooked by the community and go unrewarded. All that effort for little to no payoff is highly demoralizing to a very large percentage of our userbase.
Conversely, with technologies like Captchain in place (securing additional digital assets) casual/new users with little to no social network connections can immediately start experiencing the positive feedback loop of the Steem blockchain. Instead of having to work hard to create a valuable blog post with the hope that it might get upvoted, users could opt to play games with RCs and be guaranteed their fair share of digital assets based on the indisputable rules set forth by game creator.
Not only would this have the effect of massively increasing our retention rates and get people looking at Steem with an entirely new mindset, but it would also filter out a lot of the garbage in the blog sphere. Thousands of people are posting garbage because they have no other options. There are a lot of users out there that want to be a part of our community and get paid to work and invest, but a large portion of these individuals have very little interest in authoring quality writing. The demand for quality writing isn't that high either... especially considering this resource can be consumed for free and operates based on a good Samaritan tipping model. We need to expand our niche market to a wider audience. This blockchain needs more Proof-of-brain activities. Captchain could accomplish just that.
Captchain coins would exist in a virtual ledger on the Steem blockchain in JSON form. Any time a CAPTCHA was solved some kind of scarce digital asset would be created and owned by the player.
Clients do not get to choose which CAPTCHA puzzle they are required to solve. There will be a long list of available CAPTCHAs determined by the community (nodes). When a client is prompted to solve a CAPTCHA they send a request to receive one.
The Steem block of this request is then hashed to randomly assign a valid CAPTCHA to the client. Once the answer is found the client posts the answer in an obstructed hash form so bots can't divine the answers from community usage. A disadvantage of this model is that validating nodes need to possess all possible answers to the puzzle they are validating in advance, promoting the limitation of there only being one answer in the first place.
Running a CAPTCHA node would be an extremely inexpensive process. Steem Witnesses are already doing all the heavy lifting of validating Steem transactions. All CAPTCHA nodes have to do is confirm puzzle solves. Coin transfers would basically be auto-confirmed by the witnesses themselves using posting-key authority.
Economic Model Forks
The process of validation will require nodes to have the answer, do a small computation to see if the answer given is correct, and will cost the node resource credits in order to confirm or invalidate the transaction publicly on the Steem blockchain.
In order to create a decentralized network that regulates itself and gives incentive to validate and provide security, nodes must be offered some kind of reward. This reward could be in the form of a processing fee or Captchain inflation. There are several models that could work.
- Gamers could post a transaction fee to encourage "miners" to verify transactions.
- Inflation could be created specifically for the validation.
- A provably fair lottery could be employed to mimic a kind of "block reward" for the winning validating node.
- The reward could be split based on stake-weighted distribution.
When should the network agree that consensus has been reached? That's up for debate, but I think as few as one or two official green lights should do it. If a transaction gets green lit that is invalid there should likely be rewards in place for pointing it out, and severe penalties imposed against the attacking party.
Unlike other blockchains, Captchain gains the security of Steem. Captchain would have a lot more wiggle room to allow counterfeit digital assets to be created because the risk/reward of doing so can be leveraged in our favor. Creating a new account and accumulating some reputation to cheat the system would not be a trivial process, and the reward for doing so would not be worth the effort.
What happens if a savvy programmer in control of 1000 Steem accounts creates 1000 nodes on the network with the intent of exploiting it? Well, first of all, the system has to be proof-of-stake, because no actual hash mining is involved (and the parent crypto, Steem, is DPOS after all). Spreading out the stake to 1000 different accounts doesn't increase overall trustworthiness. In fact, resource credits expended in this fashion would be 1000 times more expensive.
What happens if these accounts are used to solve CAPTCHAs instead of validate them? If this bad actor controlled the answers to every CAPTCHA they'd be able to create a loop of solving the puzzles for free and collecting the rewards. This is a good argument in favor of reserving coin inflation for network security only. Rewarding puzzle solves with inflation provides incentive to use the service, but it also gives incentive to cheat the service. The robustness of the network would have to be quite solid in order to justify sacrificing security for increased userbase.
It's possibly also an argument in the opposite direction of the initial spirit; for gamers to send a tiny transaction (0.001 Steem/SBD) to the "block reward" winner or @null to fully verify the transaction and give the underlying digital asset created even more scarcity and value. In the end, it would be up to individual game clients utilizing Captchain to provide digital security for assets. Captchain could provide a suite of options for underlying software to use at their discretion.
Regardless, it becomes obvious that decentralization of the answer keys is extremely important. There needs to be thousands, if not hundreds of thousands, of possible CAPTCHAs. Ideally, each node would only have a small subset of answer keys and they would be incentivized to keep those answers a secret.
This is already achieved through the validation reward. By offering this reward, node operators should want to keep their answers a secret because every other node that has those answers can compete to get the validation reward whenever it randomly pops up.
Another reason to keep this data decentralized is to maintain the general security of the network. If a user owns a good stake of CAPTCHAin it is in their best interest to keep the network as secure as possible to bolster the value of their own holdings.
Adding puzzles to the CAPTCHA pool.
As far as network security is concerned, a strong pool that thwarts bots is absolutely imperative. This is the foundation of giving digital assets valuable scarcity. The stronger the CAPTCHA pool the more value will be imbued onto the assets being guarded by them. The process of creating and adding strong CAPTCHAs to the pool should be the most rewarded activity on the network, eclipsing the rewards for node validation by a significant margin. After all, creating the puzzle is much more difficult than confirming the answer.
If we used stake-weighted votes, the submissions deemed valuable would be selected and added to the official pool. The creators will be given a reward and those who upvoted the winners may receive some kind of curation reward. Of course this raises a big red flag: How do we stop stake-holders from self-upvoting their own garbage to get the reward? Is it really wise to copy Steem's model?
This governance issue is clearly the linchpin of the entire project. Decisions made in this regard could make or break the entire service. I won't pretend that I've thought of everything, but I'll do my best to brainstorm some solutions.
If we hold elections for individual puzzles it's automatically implied that anyone who votes for that puzzle has solved it. This immediately creates a conflict of centralization. Not only are we announcing our tactics in advance to would-be exploiters, but we've already broken our original rule of attempting to create decentralized nodes that only contain only a small subset of the master answer-key list. By only adding a small subset of the "best" CAPTCHAs it is highly unlikely we would reach our quota of hundreds of thousands of puzzles. Certainly, this issue deserves more consideration.
Lower bar of entry
A possible solution to this issue is to green light trusted puzzle-makers instead of green lighting individual puzzles. The community can blindly add puzzles to the pool and sort out rewards and punishments after the fact.
Clients are assigned CAPTCHAs randomly using a hash lottery. This dynamic offers the unique opportunity to only allow a puzzle to be upvoted or downvoted if the client in question has been randomly assigned to it. This would prevent self-upvoting, as the chance of being assigned your own puzzle in a large pool would be quite rare.
Power-ups not allowed
Almost exactly one year ago I made the claim that powering up should not be allowed. Staked coins are a measure of trust, and allowing the ability for users to buy trust is a slippery slope, at best.
Therefore, powering-up Captchain will not be allowed, and powering them down happens instantly and permanently. All inflation generated will automatically be applied in a powered-up state, and this is the only way to gain trust within the system.
Powered up coins can be frozen, making them impossible to power down and impossible to steal/transfer. This act is a declaration of trust to the network and could be rewarded with inflation (example: +10%).
Not allowing powerups would make a Sybil Attack extremely difficult, as having thousands of accounts with a tiny bit of reputation wouldn't be that useful in an attack against the network. This is especially true considering each account only has access to vote on the CAPTCHAs that they have randomly been assigned. Ganging up with multiple shilling accounts would not be possible.
What is the point of powered down coins?
If coins can't be powered up to increase network trust, what use do they have? I believe there are a few options here:
As a parent coin to multiple games securing multiple different assets, resources from one game could be traded for liquid Captchain and be used to buy into other connected services. For example, one could sell their wheat in a Farmville game and use that value to purchase a sword in a Final Fantasy like turn-based RPG. Captchain can act as a conveniently global intermediary between the digital assets it secures.
Certain digital assets would be required to burn Captchain to @null to be considered legitimate. This would be an option that any dapp developer could employ as an extra level of scarcity.
Captchain bounties could be placed on development of a certain type of CAPTCHA or development on the game itself. Bounties could even be given out simply to play the game. This could be useful for a new project trying to scoop up some quick publicity and establish a userbase more quickly.
Bounties could be placed on verifying transactions during high volume for increased competitive incentive. Just like users on the Etherium network, transactions that offer a bigger tip will be validated more quickly.
Coins could be burned for some kind of other benefit. Perhaps a power up could be allowed if X coins were burned for every one powered up. Such an action would be quite a statement and likely deserving of community trust. Another option is to allow nodes with zero trust to burn coins in an attempt to validate transactions, in which case they would be awarded powered up coins legitimately.
Subtracting puzzles from the CAPTCHA pool.
In order for the network to keep itself secure, the process of removing puzzles from the pool is just as important as adding them. CAPTCHAs who's answer are known to a majority of nodes/users in the network are no longer effective at guaranteeing decentralized security. These puzzles should be deleted from the network as they no longer serve a purpose. Also, any puzzle that is deemed to be easily solved by a bot should also be removed. Voting should take place constantly, but the official pool should only be changed at timed intervals (every week or two) to reduce dynamic inefficiency.
Not all CAPTCHA puzzles will be easy to solve. Metrics of difficulty will be established by node operators and the average time it takes clients to solve the problem. I believe 3 levels of difficulty is sufficient.
- Easy - Less than 10 block
- Medium - 10 to 30 blocks
- Hard - > 30 blocks
The nice thing about difficult CAPTCHAs is that they theoretically give more value to the underlying asset. The problem is that they might create a black market of node operators selling the answers behind closed doors, although the logistics and risk of such an action may be highly impractical.
Developers may have several options when it comes to adding scarcity to their digital assets. Clients may not be able to choose exactly which CAPTCHA they receive, but they will be able to target a subset of the full list if that subset is large enough. For example, it wouldn't make much sense to solve a "checkmate in one move" chess CAPTCHA in order to harvest apples on your orchard. As long as the subset is large enough to give users an adequate random sample it should be allowed.
The option to burn Captchain/Steem/SBD would also be offered if the asset in question warranted that kind of aggressive scarcity.
No one wants to "type the two words". That is the most boring puzzle ever and it's honestly a little sad that corporations never really got creative with these Completely Automated Public Turing test to tell Computers and Humans Apart. Binance's solution of lining up a puzzle piece isn't much of an improvement. Google's reCAPTCHA is even more boring, albeit less annoying and faster, as they creepily let us know our every movement is being monitored and compared to known bot scripts.
Possible CAPTCHA types
Anything that can be rendered down to turn-based moves can be adapted to text form on the blockchain and used as a CAPTCHA. I always keep my eyes open for potential mini-games that could be adapted to our blockchain and used as puzzles to verify digital scarcity. Here is an example game called Prune that I beat a few years ago.
A game like this could be adapted into a turn based simulation and used as a platform for thousands of CAPTCHAs. Who would create these puzzles? Anyone looking to get paid on the Captchain platform. A puzzle like this makes a lot more sense contextually if the digital asset being created is a harvest of some sort.
I'm also brainstorming the combat system of a block-based RPG. The battles of such a platform could be isolated and turned into CAPTCHAs themselves to be used elsewhere.
Different genres could also be grouped together. One could band classic boardgames together like chess, checkers, Go, Backgammon, Connect 4, etc, and use that grouping to secure some digital asset. Not only would a cheater have to learn our API and program in the rules of all these games, they would also have to create a bot that plays the actual game in question.
By the time they do all this work and start cheating they would probably be discovered quite quickly. They'd have no guarantee that the community would keep these CAPTCHAs as the ones that verify digital scarcity. The community could simply change it up to a different subset and the cheater would have wasted all that time for nothing.
One step ahead
The main idea behind Captchain is to stay one step ahead of the bots. Sure, we could have chess CAPTCHAs, but chess is also a game that has been grand mastered by bots already over the last 50 years. It stands to reason that a captcha like this would get defeated faster than other options. However, at the same time, sites like https://lichess.org/ have already done the work for us, and we can simply copy the work they've done to get the ball rolling.
It is also possible, using the hash from the client's CAPTCHA request, to generate a unique puzzle that no one else will ever be assigned. Using the random number generation properties of the hash, a unique puzzle can be populated. The answer to this puzzle does not have to be obstructed by another hash because bots will not be able to use that information to cheat the system. Another advantage of this method is that multiple answers are allowed. Node operators do not need to know the answer in advance to validate. Anyone can verify the answer using the seed that created the puzzle, the moves made, and the rules of the game.
For example, my girlfriend plays this one. These connect three games are extremely popular. How cool would it be if we created one for Captchain that actually secured a valuable digital asset just by playing a game that people would play anyway?
A disadvantage of this method would be the possibility of creating puzzles that are unsolvable. This would lower the bar and allow clients to request a new puzzle much sooner. Of course doing so would cost more resource credits... which could be an advantage or disadvantage depending on perspective (bot vs human).
A huge advantage would be a system that randomly generates CAPTCHAs near infinitely that anyone on the network can validate. A single dynamically generated puzzle game could easily secure multiple assets with very little work being put in from the Captchain community.
If running a validation node for the game in question was inexpensive enough (basically free) it could simply be a prerequisite of every game client to also be a validating node, eliminating the need to trust any node but your own for ultimate decentralization.
Obviously none of this is as simple as just sending Steem to @null, but I believe it will be well worth it to crowdsource as many ideas as possible in an attempt to turn the "free" resource credits we receive from the witnesses into more valuable assets. We're already doing it with blog posts, but I believe that is just the opening pilot episode of this series. Just because we put social media on our blockchain doesn't make us a social media blockchain. We can still do everything else a blockchain can do and more.