1. Purpose
We suggest a way to solve the RAM squatting problem by offering an unlimited amount of RAM by BPs, which is to provide cheap and nearly constant RAM prices.
2. Disadvantages of current RAM supply model
In EOSIO Dawn 4.0, block.one changed the network RAM supply method from stake-based to market-based, which were supposed to solve some issues including RAM squatting. [1] However, the price of RAM rose from about 0.017 EOS / kB to about 0.134 EOS / kB as of June 28, 2018, about 7.88 times in 10 days. If the price of EOS is assumed to be $ 8, then the price of 1GB of RAM would be about $ 1 million. In the market in Figure 1, the sharp increase in RAM price would have been caused by speculators buying or dApp developer’s prior occupation.
However, there is a disadvantage that the current market-based supply of RAM can be speculated if anyone can predict when RAM will be supplied. Furthermore, it is very difficult to defend against competitors if they purchase a large amount of RAM to attack the EOS network.
What is very important in this regard is that EOS is a dApp platform, or distributed operating system, that can operate a variety of dApps. So, as dApps become active, in EOS, the active block producers will have to expand its computing resources on time to meet the needs. For this reason, there is a need for means by which BPs can be motivated to increase their computing resources. We call it Self-Motivated Infrastructure Growth(SIG)[1]. Since the most important resource in SIG is RAM, this article will mainly handle RAM resources.
2.1 Relevant prior discussions
Discussions of the RAM squatting issue follow :
- Dan Larimer suggested a way to increase the RAM supply by 1KB per block and reduce the size of RAM needed for a new account. [2]
- Our team suggested a way to solve the RAM squatting issues in the staked-based supply model. [3]
- Evolution proposed a RAM provisioning model similar to the cloud service. [4]
- Greymass proposed a way to solve the RAM squatting problem by designing the market price of the current market to fall in price at a specific inflection point. [5]
3. Trade-off relationship between RAM demand and dApp platform
The biggest disadvantage of the current RAM market is that there is a possibility that the RAM price will rise abnormally due to various reasons such as speculation. However, the higher the price of RAM, the higher new dApps cost for purchasing RAM. This greatly increases the cost of operating a new dApp. Hence, it prevents the vitalization of dApp industry in EOS.
In conclusion, high ram prices and dApp activation are in a trade-off relationship in the current market-based RAM supply model. This makes it difficult to get both at the same time.
3.1 Current RAM Market Model: Demand-constrained Model
Block.one suggested 1) market-based method and 2) stake-based method to distribute RAM resources. [1-3] It is important to note that they are all based on the assumption that RAM resources are limited. In other words, they all adopt a demand-constrained model that restrain the demand by distributing limited RAM resources by price.
4. Self-motivated Infrastructure Growth : How to Supply RAM Unlimitedly
To address this, we have already proposed not a demand-side solution for RAM issues, but a supply-side in Self-motivated Infrastructure Growth.
So Block.one seems to have assumed that BPs will not voluntarily increase RAM resources. However, this assumption can be overcome if the BPs have enough benefit for each time they supply more RAM resources needed for the network. In other words, profits motivate BPs to provide more computing resources.
5. How to supply RAM at a fixed price
We now propose a way to supply RAM at a fixed price using the SIG method. This is possible because this can supply unlimited volume of RAM to the network.
For reference, block.one suggested a starting price of 0.018 / kB for the RAM market. Assuming the price of EOS is $8 (USD), the price of 1GB of RAM in this case is about $140,000. This is a very high price compared to existing cloud server costs. However, if we can increase the RAM supply to an unlimited amount, the RAM price can be fixed at a price much lower than the price suggested by block.one.
Here is how :
The RAM price can be set to 1) a certain quantity of EOS coins, or 2) EOS corresponding to a certain amount of fiat money (eg. USD). However, we may prefer the latter because the former method has a disadvantage of increasing the cost of dApp operation when the price of the EOS increases. This method allows all dApps to use RAM at the same(or almost same) cost, even for new comers. If this is the case, EOS will be a fantastic dApp platform running various kinds of dApps. For this, BPs need to add new chains.
Here's an example of how BPs launch a new chain:
- BPs arrange more than 2TB of RAM resources and provide 2TB of RAM to the network.
- When the RAM usage rate in the network exceeds 70%, the BPs will negotiate and add a new chain to the network.
- If the new dApp wants a new chain, the corresponding developers will consult with BPs to provide a procedure for launching a new chain.
However, the above figures are just examples, so hopefully more discussions will be made.
Because this approach is a supply model that increases the RAM supply unlimitedly, it can stabilize the RAM price and contribute significantly to dApp activation. So, an advantage of our method is that we can make the operating cost of dApp constant over time. Since the RAM price is fixed to fiat and its supply is unlimited, there will be no RAM squatting problem.
6. Conclusion
We proposed a way to supply RAM to the network at a fixed and low price by providing unlimited RAM resources, which can solve the RAM squatting problem. This can make an important contribution to ensuring that EOS runs a variety of dApps as a dApp platform.
Reference
[1] Self-motivated Infrastructure Growth Through Profit, Loum.
[2] https://medium.com/@bytemaster/a-three-step-plan-for-lowering-eos-account-creation-costs-c3bf1ec736b7
[3] Thought on RAM Squatting, Loum.
[4] https://hackernoon.com/solving-ram-speculation-property-rights-in-eos-631ca10c1970
[5] https://docs.google.com/document/d/1UmJ2LVPhVEshyzj1xI15kLJi4pYt8Ls9bPZWiwDnSHM/mobilebasic
This article is edited and translated by Leo of EOS NodeOne.