With all the news about Ethereum network disruptions caused by recent ICOs, it’s worth stopping to take a look at one that got a number of things right: FunFair. Although they ran a standard first-in-first-served ICO, theirs had surprisingly low impact on the network, and it’s worth looking at why.

Reducing fraud with ENS

FunFair made good use of ENS, telling people to send funds to ‘funfund.eth’, instead of providing a hexadecimal Ethereum address. This made it a lot harder for fraudsters to send people false contribution addresses and scam them out of funds.

No gas price cap

The jury is still out on the impact of gas price caps. I suggested one to Bancor, and in their case it worked well, keeping the network usable throughout a very popular ICO. By the time Status launched their crowdsale, however, larger users had cottoned on that they could spam large volumes of transactions in order to increase their own proportion of the funds they could purchase, which led to massive numbers of transactions clogging up the network — though this was further exacerbated by Status’s multiple volume caps.

In my own opinion, gas price caps are no longer effective, and now have a detrimental effect due to people spamming transactions to work around them — so FunFair did the right thing by omitting one.

Low impact, low overhead crowdsale contract

FunFair’s crowdsale contract is extremely simple; all it does is accept ether within a given time interval and below a certain cap. Tokens were then issued after the crowdsale, which isn’t time critical and can thus happen with a low gas price and low network impact.

This led to very low gas usage: a normal transaction used only 22,206 gas; compare this to Bancor’s 91,967 or Status’s 124,445, and you can see a significant decrease in the network impact. This is also important when transactions start failing due to the crowdsale being full, and consuming all the gas that was sent: a more efficient contract with an accurate gas cap wastes less network capacity.

One criticism of their fundraising contract: It doesn’t emit an event, meaning that they’re probably relying on replaying transaction records in order to determine who contributed what. This means that sends from contract wallets will almost certainly require manual intervention in order to issue those people with their tokens.

Just one cap

One of Status’s biggest missteps was having multiple caps. Intended to increase fairness of token distribution, it instead led to further spamming of the network by people determined to get the largest possible allotment out of each cap as it became available. FunFair eschewed this in favour of one small crowdfunding round with a simple cap, and no incentive to send transaction spam.

Total impact

Bancor: 396,000 ether, 2.8 billion gas, 7066 gas/ether

396,000 ether, 2.8 billion gas, Status: 299,902 ether, 20 billion gas, 67,011 gas/ether

299,902 ether, 20 billion gas, FunFair: ~35,000 ether, 36 million gas, 1041 gas/ether

Small Steps

While these figures show that low impact token sales can be achieved, I’m still firmly of the belief that we can do better still — see my POC for a better crowdsale contract and Matthew Di Ferrante’s recent article on other ICO improvements.

Disclaimers

I’m an advisor for FunFair, though I didn’t advise on their crowdsale. I hold both Bancor and Status tokens. Nobody paid me to write this article or had editorial input into it.