Now that initial coin offerings (ICOs) are launching almost daily on the ethereum blockchain, "whales" are becoming a particularly sore subject.
By buying up vast amounts of tokens, these large traders are effectively pushing smaller investors out of the picture – and it isn't just with their sheer buying power either. In some cases, whales are going so far as to game the system, taking advantage of market dynamics and paying higher-than-average transaction fees on purchases. (One participant in a May ICO even paid $6,000 to hop the line ahead of other buyers.)
Either way, whales spell big trouble for projects. Because when one or two entities hold a vast majority of a token supply, they have all the power of a central bank to control the market.
But, developer Nick Johnson thinks he has found a way to distribute tokens more evenly and reduce congestion on the ethereum network at the same time. No novice coder, Johnson is employed by the Ethereum Foundation, the Swiss non-profit that manages the project itself.
His idea? Treat ICOs more like auctions and spread the sale out over days, instead of hours.
"In my mind, the sensible way to do things is to use some kind of system that establishes a market equilibrium price and does not depend heavily on the time in which you participate," he told CoinDesk in an interview.
Based on that, Johnson has put together a proposal for a new token sale smart contract, one that he believes could have a material impact on the market if implemented widely.
Striking a balance
If Johnson's name rings a bell, that's because he is the co-creator of the ethereum name service (ENS), an auction registrar for ethereum names.
And like the ENS, Johnson's token sale is based on a Vickrey auction, where bids are sealed. The idea being that people are more likely to bid on the true value of an item when they are not influenced by what others are bidding.
Johnson’s token sale works something like this: First, the seller (or project owner) sets a maximum number of tokens to sell or a maximum amount of ether to raise. Either can be a limiting factor, but Johnson suspects that in most instances, the supply of tokens will remain variable, while the amount of ether raised will be fixed.
Next, the seller announces a time period for when prospective token buyers can place their bids. Bidders then submit the maximum price they are willing to pay for a token and the quantity of tokens they want to purchase.
When the bidding period ends, the seller then calculates a strike price, or the optimal price for a token based on the collected bids. (At this stage, bids can also be revealed, so everyone can see which ethereum addresses bid how much for how many tokens.)
After the strike price is set, those who bid at that price or above can redeem their tokens at that price; those who bid below the strike price, will get their ether returned to them.
It is worth mentioning that the strike price calculation is the only part of Johnson's token sale that is handled off of the ethereum blockchain. Even so, sellers have every incentive to calculate that price correctly.
If they set the price too high, for instance, they will lose sellers on the low end. In contrast, if they set the price too low, the built-in limitation on the amount of ether they want to raise will kick in. The strike price is the point at which they raise the most money, while having to sell the fewest tokens.
Johnson also recommends that sellers publish the strike price and reveal bids at the same time, so that bidders can verify the strike price was calculated correctly.
So far, Johnson has put the Solidity code for the proof-of-concept in Github. But, he warns, the code is untested and should not be used in production. Further, he said that while he does not have time to finish the project, he would be available to audit code if anyone else wished to step in.
But right now, Johnson’s proposal is still conceptual. That leaves many ICO projects out there grappling with innovative – but not always successful – ways to broaden token distribution.
One obvious solution is to cap individual sales. But who is there to cap? Everyone on the blockchain is pseudonymous. On ethereum, for instance, a user is represented by a hexadecimal ethereum address. This makes it easy for a single entity to create multiple "Sybil" accounts.
Two recent projects emphasize the challenges involved.
Ethereum messenger app Status, which recently raised $100m, attempted to use a "dynamic ceiling" to cap individual sales. When anyone tried sending in too large an amount of ether to buy tokens, only a portion of the bid was accepted and the rest was kicked back.
The idea backfired, however, when several buyers wrote scripts allowing them to send transactions from multiple ethereum addresses. As a result, the ICO contract was spammed with Sybil attacks, and many transactions were left "pending" for days after the sale ended, causing a general slowdown in the ethereum network.
On the heels of the Status ICO, ethereum-based decentralized exchange OmiseGo, decided to take an altogether different approach.
The project ended up handing over the near entirety of its $25m capped token sale to brokerage firm Bitcoin Suisse. To buy OMG tokens, buyers had to sign up for account and get their real-world identities verified first.
Although using an intermediary defies the ethos of a blockchain (where the main goal is to keep things decentralized and user identities under wraps), the project saw no alternative, according to OmiseGo special adviser Thomas Greco.
"It was disappointing for us to research and realize there was no clearly safe way we could do this on-chain right now," he said.
But if Johnson's token sale concept gets implemented soon, the hope is that future ICOs won't need a third party to do all of that.
Johnson summed up his scheme's advantages, saying: