A Proposed Solution to EOS RAM Allocation
Authored by Eyal Hertzog, Bancor Co-founder & Product Architect
Following the BP conference call on Mon, July 2nd, I would like to share some thoughts regarding the EOS RAM model and the balance between free market price speculation and the need for dApp developers to have access to affordable RAM for the success of the network.
The main reason speculation can be harmful in this particular case is that unlike many other tokens - RAM is “backed” by a scarce resource (memory) which cannot be practically rented. An analogy would be a real estate market in which property rentals are not possible. In such a market, real estate speculators will essentially own empty properties, adding upward pressure to prices, while decreasing the overall resource utilization as many properties remain expensive and empty.
One solution that was proposed during the call is to continuously burn EOS tokens from the RAM contract (e.g. 10% a month). This would theoretically drive the prices down at rate of a 11.11% per month assuming there were no other trades. As Dan Larimer mentioned in the call, this solution represents a form of “rent” costs on the RAM that is being used.
Speculation would still make sense, but in fewer cases. Currently, if someone speculates that even just a few big dApps are able to afford the current price, the rational strategy would be to hold RAM for the long term, until some dApp eventually coughs up the cost and the value rises. We think this incentive structure could be problematic for the ecosystem.
Clay Shirky coined the term “Low Cost of Failure” which he describes as the main driver behind the success of user-generated content platforms such as Blogger, YouTube, Reddit, etc. It is the low cost of failure that allows the long tail of users to participate in an ecosystem. And it is this long tail of users that increases creativity, access and distribution. One of the main benefits of blockchain technology is its ability to dramatically reduce the cost of failure for online transactional and financial networks. In this case, a potential killer app on the EOS ecosystem may simply die for not being economically viable due to RAM costs, while at the same time most of the available RAM is not even in use, but is held by speculators for future profit.
By changing the RAM contract to burn EOS at a constant rate, speculation becomes riskier. Speculators must predict that dApps (or additional speculators) will buy RAM at a certain rate, rather than simply anytime in the future. This would have a similar effect to continuously adding RAM to the contract; however, adding RAM is labor intensive and could take some time for testing and community readiness.
This calculator & chart demonstrates a 10% EOS burn rate in the RAM contract:
EOS RAM Bancor Calculator
Chart
An additional step could be to issue RAM “futures”, which could be traded in the same way, and represent the next 64G of RAM that will be added in the future. Since this RAM is not actually being used, no “rent” should be charged for it until it is added to the active pool. This would allow speculators to still speculate on the future price, without paying rent, and without preventing dApp developers from having affordable access to the resources they need to build on the network.
We look forward to discussing this and other topics with BP teams and the greater EOS and blockchain communities, and welcome any feedback and improvements on this proposed solution.
To liquidity and beyond,
The LiquidEOS Team
Community
LiquidEOS Telegram: @BPLiquidEOS
Bancor Telegram: @Bancor
Medium: https://blog.bancor.network/
Twitter: https://twitter.com/Bancor
BitcoinTalk: https://bitcointalk.org/index.php?topic=1789222.0
Reddit: https://www.reddit.com/r/Bancor/
Steemit: https://steemit.com/@bancor-network
GitHub: https://github.com/bancorprotocol/contracts
Facebook: https://www.facebook.com/bancor/
YouTube: https://www.youtube.com/c/BancorProtocol
Instagram: https://www.instagram.com/bancornetwork/
LinkedIn: https://www.linkedin.com/company/17986744/
Burning tokens from the RAM contract is a good solution IMO. It's a form of renting without the drawbacks of real renting.
Wondering if you discussed simply raising the RAM trading fees?
that would not change much because people will just hold onto it and thus decreasing the supply like it is happening now
How about you ask the Dapps, the ones building on EOS, our opinion? It feels like everyone has a voice on the network but us. This is a horrible solution as we will have to pay a continuous fee on the reserved RAM for our application. I'd rather pay for RAM at $7 dollars and own it than see the RAM I have reserved devaluate at 11% a month bleeding us slowly. Maybe I'm missing something?
How about not allowing people to speculate on RAM, but instead only allow developers looking to use RAM to buy RAM? The more developers buy RAM to airdrop and create Dapps on EOS the more valuable the available RAM becomes, but atleast the RAM is being used in a way that in return provides value to the EOS chain and tokens. RAM skyrocketed by 2000% at it's peak and all we've seen are 7 airdrops, a few folks make an amazing speculative trade but the majority of the community become concerned about the price of future airdropping & development. This could also lead to BP's buying RAM as a way of leveraging control over the chain as well. Let folks speculate on the coin, not the hardware used to establish value to the coin.
But how to detect those people (non-developers) and stop them from buying?
Simple. Register your project to be allowed to buy resources.
This sounds like TRUE CAPITALISM at work. As a person who enjoys history, this journey with EOS is awesome. Property rights in the digital age. INHO, maybe the right Dapp paying whatever the cost for the RAM will overcome the bull run. Why is all this free publicity bad again? I hear the argument that it is stifling innovation. I just contend there may be just as much pressure in this mess pushing people to choose this platform. In the end, I feel that Dan made a product and if it is half as good as his others, I will enjoy being an early investor. When the right Dapp lands on EOS, that is when the fun will begin.
It is a fascinating journey. Perhaps the greatest achievement of EOS thus far is incentivizing the masses to learn about free markets.
The optimal solution is to allow RAM owners to let others use it for a fee (1% might get burned) creating a rental market.
This way you can choose between owning or renting. Having both options is better than limiting options to only "renting".
This is not a good solution. Might as well start calling RAM Gas.
The "futures" contract idea would be useful to allow speculation without resource hoarding. This, however, opens another door to abuse. Speculators would play the commodity against the derivative for gains.
Removing EOS from the market maker will only increase volatility as the market maker doesn't set the price of RAM, it responds to the market price of RAM.
@dan In short, the market will decide whether EOS can be used for developing dApps or just for speculation ? Honestly I am confused like many others on the RAM aspect and how its possible to develop dApps where everything is controlled by market forces. This reminds of the flood in Taiwan few years ago which has resulted in high RAM prices. But EOS seems to behave like a flood any day and anytime and market decides it ? A dApp's RAM requirement on the other hand is independent and unlike a platform like AWS which has a fixed baseline price of the RAM and then spot pricing depending on the market conditions EOS has no way to ensure basic RAM requirements of the dApps at this point in time. Please enlighten us if this is not the scenario.
Based on the algorithm, is removing the EOS in the system used for the market mathematically different than adding RAM? If RAM isn't actually being used, wouldn't it make sense to remove from the EOS side of things first, until we see more real-world applications using RAM effectively?
That's an interesting point @lukestokes ! Great question that help everyone think about the possibility of placing RAM aside until its usage is needed.
Regards, @gold84
Yes, it is different
I think this is an interesting proposition, setting the RAM contract to burn EOS at a constant rate could be a good solution.
There is a way to rent RAM. Or to be exact, it's owning+renting combined.
Users will buy and sell RAM like they do now. But if they have more than certain amount (that's needed for basic account), they will need to pay rent for the RAM.
Obvious problem is: What happens when the account doesn't have any tokens for paying the rent? RAM can't be taken away because it can store important information.
Solution: Accounts can go in debt. When the account receives tokens next time, the debt is automatically paid.
This is not perfect solution. There could be accounts that never pay their debt. But owning that kind of account is pretty stupid because you can't do any business with it. If people try to avoid paying rent by using other tokens than EOS core token (which would be used to automatically pay the debt), we can freeze the account when it has too much debt. The rent debt must be paid before the account can do any transactions again.
This would create quite good incentives to minimize the usage of RAM.