Skip to content

Instantly share code, notes, and snippets.

@frozeman
Last active January 3, 2019 17:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frozeman/da50771d2ebc43999466ba3c702ff0dd to your computer and use it in GitHub Desktop.
Save frozeman/da50771d2ebc43999466ba3c702ff0dd to your computer and use it in GitHub Desktop.
Reversible ICO - RICO

Reversible ICO

To increase fairness and responsibility in the ICO space, we propose a new model for an ICO, which we call a ”Reversible ICO” (RICO). This type of ICO improves the power balance between coin buyer and project by flowing funds slowly to the project and allowing coin buyers to withdraw their funds at any point in time.

The ERC 20 Token Standard [Fab] spurred a new era of projects that run ICOs on th Ethereum Blockchain. This is mainly due to the flexibility of a smart contract interface standard, meaning it only defines how to interact with it, but not how it should internally work. This flexibility allows ERC 20 tokens to be used in all kind of smart contract based protocol, and be issued by other smart contracts, like an ICO smart contract.

Current ICOs deploy a smart contract that receives ETH and return tokens (cryptocurrencies, assets, utility tokens, protocol tokens, access tokens, etc.) based on a set ratio. This ratio is sometimes changing over time while the ICO is running, and many models like dutch auction systems [Net] and others [Wat] have been used to improve the fairness and the price finding of the initial token price. After or during the ICO period, which lasts between some days to multiple months, funds were immediately passed to the project. This in combination with the extreme traction ICO projects got in the last years has lead to founders receiving more funds than expected, shifting the interest from finalizing the project to personal wealth and enrichment. It also lead to outright scams, where projects promised a project outcome and disappeared with the collected funds after the ICO.

The biggest problems of current ICOs is the trust between the project team and the initial coin buyers. Even if the result is a decentralized project, there is some upfront trust required to get the project started. The RICO system addresses this by holding founding teams accountable to deliver on their promise, by committing money rather than transferring it directly to the project.

The Reversible ICO is improving this, by shifting the power balance between the investor and the founder. This is done by controlling the flow of funds to the project. Rather than giving the funds directly to the project after the ICO, the funds are given over time, meaning that a coin buyer control at all times the not-yet-given funds and can stop the flow to the project at any time. The individuality is of strong importance here, as no consensus has to be reached between coin buyers, while everybody can individually decide to not trust in the project anymore.

This power is what makes a RICO so trustworthy and will likely usher in a new era of fairer ICOs.

Figure 3.2: Reversible ICO model.

In a RICO the ICO phase is divided into two stages. The Allocation phase and the Distribution phase. In the allocation phase ETH are committed to the project by sending them into the RICO smart contract, which sets up a ”vault” controlled by the SENDER. The SENDER receives LUKSO ICO com- mitment (LIC) in return to prove ownership of the committed ETH. The LUKSO ICO commitment (LIC) fulfills two purposes:

  1. They account for the amount of ETH committed in the public ICO, and give the ability to re- trieve/refund the corresponding ETH at any point in time.
  2. Function as a receipt for the amount of LYX the buyer bought in the ICO. The total amount of LIC will be equal to the total amount of LYX sold in the Public ICO.

In this first phase the coin buyer can send at any time LIC back to the RICO smart contract and will receive the equivalent in ETH back. He can also decide to send parts of the LIC as they are fungible. Depending on the amount of LIC send back to the RICO smart contract, future LYX will be available for sale again, meaning ETH can be send again to the RICO smart contract in return for LUKSO ICO commitment. The ratio of ETH to LYX \ LIC will be set at the start of the ICO and fixed over the period of the whole ICO. The allocation phase will run for 22 days.

n ETH = x LYX = x LIC

Figure 3.3: Participation in the Public ICO, and allocation of LUKSO ICO commitment.

In the distribution phase ETH committed will flow to the LUKSO Project, over a period of approx- imately 2 years based in blocks on the Ethereum Blockchain. The LUKSO Project can then withdraw their already received share of ETH at any point in time. This flow quotient x will change based on the amount of ETH in the coin buyers ”vaults” n divided by the blocks left until the end of the RICO, where t is the total amount of blocks for the distribution phase and k the last block since any withdraw from either buyers or LUKSO Project.

x=n (t−k)

The LUKSO Project can withdraw any already allocated amount of ETH, which will be re-calculated before any withdraw from either buyers or the LUKSO Project. The allocation x is calculated as below, where b is the current block number at which the calculation takes place, k is the last block at which the allocation was recalculated, and a the current flow quotient.

x = (b−k)×a

Figure 3.4: ETH can be withdrawn over time from the LUKSO project, based on the above formula. The buyer can withdraw ETH fully or partly at any point in time during the distribution phase. To do so they send LIC back to the RICO smart contract which will return the the equivalent in ETH, substracted by the already allocated part for the LUKSO Project. The LIC work like a key to access their wallets funds in the RICO smart contract. For the part is already allocated to the LUKSO Project, buyers will receive the equivalent of texti- tlocked LIC, as a receipt of their future LYX allocation. Those locked LIC won’t be transferable to prevent multiple withdraw, as there is no ETH balance in the buyers ”vault” to back them up.

Figure 3.5: Withdrawing of ETH using the LUKSO ICO commitment.

The available amount of ETH that can be withdrawn by a buyer x is calculated as seen below, where k is the amount of LIC send, r the ratio of ETH to LYX \ LIC, n the current number blocks in the distribution period, and t the total number of blocks for the distribution period.

x=k r × (1 − n) t

Committing during the distribution phase is possible after a buyer has withdrawn his ETH and returned his LIC. Those returned LIC provide availability for future LYX again and allow any buyer to participate in the commitment again, even if all potential LYX had been sold in the allocation phase. The main difference is if a buyer commits during the distribution phase that he immediately allocates parts of the send ETH to the LUKSO Project as the distribution phase is already in progress. Meaning if he would refund immediately after committing he would only get parts of the ETH returned and would lock the other part of his LIC. After the distribution time is over all ETH are allocated to the LUKSO Project and buyers only keep the receipts in form of LIC, that will allow the allocation of real LYX once the LUKSO Blockchain genesis block is mined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment