Starting a thread to share what I have seen so far on dual tokens for layer 1 protocol and how it can impact fees for users interacting with the protocol.
I think the first large-scale protocol adopting dual token is NEO, with the NEO and GAS token.
NEO token gives management right. All NEO tokens were issued at inception.
GAS token is used for transactions with the protocol. Gas token are being created over time (22 years) with a capped bitcoin-like decay curve.
The governance system is unclear to me as chain governance is given to token holder, but at the same time, the NEO council is being given “responsibility for strategic decision-making”. Also, the rationale on why GAS token is being created over time but capped is unclear to me yet.
This dual “work” token structure has clear benefits, that if the network is successful, the NEO token can gain in value without impact user with increasing fees.
I believe Ontology follows the same pattern.
EOS also has dual token, similarly to NEO.
The main token is EOS, used for governance and payment in the protocol. The second token is RAM, used for “storage” on the network. EOS have the assumption that 100% of the state should be in RAM so nodes can respond faster.
Before a user can send a transaction that would result in an increase of EOS storage, he needs to have RAM available. Used RAM can’t be converted back to EOS, which is a great way to prevent unused/deprecated state, as there is an opportunity cost: developers are incentivized to “clean up” their state to be able to convert back their RAM token to EOS token, typically if the dapp is no longer used.
RAM is bought/sold with an algorithmic curve (using TCR/Bancor), which I believe is why we don’t see this token on traditional exchanges.
The goal of this is to have a floating rate on storage so that it’s not tied to the amount of EOS token owned. Which make sense as storage requirement will vary drastically between application so having a free market on storage leads to a better allocation.
It is interesting to see how the unit for storage is different for Ethereum and EOS:
On Ethereum, storage is permanent, with a price depending on a per-block auction called the “gas price”. For a user with a unit of account in USD, there is two floating market influencing cost of storage: ETH/USD price and gas price. The primitive of storage cost per unit of gas is static. (eg: MSTORE = 20k gas) and has been defined initially by the Ethereum developers; Vitalik has shown this is suboptimal and inefficiencies at this level are apparent when the network is overloaded (talk at Crypto2018 in Santa Barbara, CA, USA, not sure if there is more info online)
In EOS, still with a unit of account in USD, there is also two floating market influencing cost of storage: EOS/USD and RAM/EOS. As RAM can be bought in advance, it’s possible to hedge and predict the price of storage, which is not something possible with Ethereum. As “bandwidth” (CPU+Network) on EOS still require EOS token so we can’t really say that EOS token is a work token.
There is also a lot to be said on nodes expenses, but I’ll make another thread on this later!