Attempting an Elegant Solution for Crowdsales

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@protegeaa·
0.000 HBD
Attempting an Elegant Solution for Crowdsales
With two major uncapped crowdsales on the calendar, and the race to invest in time in capped crowdsales, the question of how to best run a token sale is on a lot of people's minds. I think it's fair to say we all want token sales that are fair, available, and don't bring the ethereum network to a standstill. My solution might require a little tweaking, but I think it may be a very good way to solve this sticky problem.

The Solution: Having crowdsale participants staking their maximum desired ETH investment in a smart contract over a fixed amount of time. At the end of the time period, tokens would be distributed to contributors according to how much they staked compared to the total amount of ETH collected. The effect will be to reduce the massive rush to enter a capped sale, and also require people to pay attention to opportunity cost when buying, preventing a massive buildup at the beginning or end of a sale. Let's go through an example.

Let's say Acme Toys is doing an ICO and wants a very broad distribution of their token, the Fidget*. Acme has seen that capped crowdsales often sell out quickly and clog the network, and because they are thoughtful founders they want their entrance into crypto to be gentle, not a whirlwind. At the same time, they've seen how uncapped sales balloon into massively oversubscribed ICOs, leaving the startup with a ton of ETH...and a ton of liability.

Acme decides to do a staked crowdsale capped at 100 thousand ETH. For one week, they allow users to put ETH into a smart contract. At the closing of the contribution period, probably at a block number encoded in the contract, the contract no longer takes ETH. The total amount collected is counted, and then two weeks pass while the staked ETH is held by the smart contract. At the end of this period, excess ETH beyond the 100 thousand ETH is returned to each participant, along with their Fidget tokens. 

If Acme raises 100 thousand ETH exactly, no ETH is returned to participants. If Acme raises less than 100 thousand ETH, no ETH is returned to participants. ETH is only returned when the amount raised surpasses the cap.

Let's say Acme raises 1 million ETH. Investor A contributed 5000 ETH. Investor B contributed 10000 ETH. Since Acme raised 10x its original amount, it will keep 10% of the ETH given and return the 90% of ETH staked. Investor A will see 4500 of her ETH returned, while investor B will have 9000 ETH returned. Each will also receive an appropriate amount of Fidgets. 

*What a good distribution of tokens looks like:*
![Distro.jpg](https://steemitimages.com/DQmNi4U9ExsdUGg1oAd1KmaLU2vtw1FqgMUC8XEZ38BcY1z/Distro.jpg)


For another example, let's say Acme raises only 50 thousand ETH. Investors A and B contributed 5000 and 10000 ETH respectively, again. In this situation, neither A nor B will be refunded any ETH, and all the ETH they contributed will be turned into Fidget tokens.

**Let's break this down a little.**

Why the staking period? We do the two week staking period to prevent whales from overwhelming the market at the end of a sale period. Without a staking period, there is an incentive to wait until the last day to contribute, and the process of a few whales battling for market share could possibly clog the network and effectively crowd out small contributors. If many people contributed 1-5 ETH, and suddenly some whales come and fight for dominance, they could contribute thousands of ETH for a couple of hours, or a day or two, before getting it returned into their wallets, with a corner on an ICO.

Staking the ETH for two weeks helps mitigate this. Tying up one's ETH capital lowers the incentives to corner a market, as the opportunity cost of missing another sale is present. The staking period could also be tweaked to be longer for greater stakes, although it will take some trial and error to see if this would encourage Sybil attacks instead.

What about bonus periods? Another source of the mad rush to the door is bonus periods. Investors are rationally diving into projects faster due to bonus periods. For this system, I would suggest bonus periods last over a time, not an amount collected. This is maybe one thing I actually like about the Tezos crowdsale: the first bonus period is 400 bitcoin blocks, so everyone who wants to get in that can. If I were the first ICO doing a staked crowdsale, however, I would probably skip the bonus period, as it would complicate the smart contract (or require multiple contracts to be deployed).

**Final thoughts**

The first iteration or two of this might require some extra fail safes, as the smart contracts may grow extremely large in big ticket sales. I'd like to hear your thoughts on how best to handle a 4 million ETH contract, which would be worth $1 billion. This may, in fact, be the biggest detractor from this sort of sale-huge concentrations of ETH are generally not a good thing. However, as the number of ICOs grows, this should be less of a problem as ETH is spread around more projects.

Again, I think this may be an elegant solution for crowsdales, but I'd rather you find giant holes in this concept now and share them in the comments, than to have somebody try it and another DAO fiasco take place.

*These names are fictitious
👍 , , , , , , , , , , , , , , ,