For Kin to grow and succeed, we must have a robust and scalable foundation for a large number of users and a large number of transactions. To accomplish that, we will have to find a suitable blockchain as part of our roadmap. The first step is to focus our requirements and prioritize the parameters below according to where we can find better infrastructure solutions for Kin.

Fee Costs

In our initial award process in IPLv2, we set a high gas price in order to complete the wallet creation in a short time. This resulted in high cost for wallet creation.

To reduce costs, we were able to adjust transaction fees by lowering a transaction’s gas price; however, a low gas price can cause a longer confirmation time and hence negatively affect the user experience. Moreover, setting a very low gas price can cause transactions to be completely ignored by miners (starvation).

Fee Predictability

Our analysis showed that even though gas prices were set to a fixed value, the actual transaction fees were not deterministic (in relation to USD, not ETH). The fees were unpredictable due to changes in ETH price (higher ETH/USD rate causes higher transaction costs). In addition, fees are also affected by network congestion since bids are modified accordingly.

Confirmation Time

Mainstream web app users expect near-immediate responsiveness when using the product — standard web app response times should be around 100’s of milliseconds. The Ethereum network is designed to mine new blocks approximately every 12 seconds. This means that even in ideal network conditions, confirming a spend/earn transaction can create a delay which will affect the user experience. As mentioned earlier, a low gas price will reduce the chance that a transaction will be included in the next block and therefore, increase confirmation time even further.

Network Availability

Once we were ready to perform end-to-end testing for IPLv2, we experienced severe congestion on Ethereum. This was caused by the “Cryptokitties craze” that drove the network to over-capacity — some transactions were pending for hours during peak times.

One amusing example is that our engineering team was unable to transfer the funds for end-to-end tests on production, which delayed the launch of IPLv2. As you can see in the graph below, the Ethereum network was pretty swamped with over 20K pending transactions for several days: