Kin’s Blockchain Considerations

Tanya Rofman
4 min readFeb 5, 2018

--

While working on Kin IPLv2 , we faced a lot of challenges with the Ethereum network. We found that the most critical pain points for us were high fees, slow confirmation time, and unreliable network performance.

The main goal of Kin is to be used by casual users in day-to-day activities within digital services. We aim to reach millions of users on a global scale by providing them with great experiences. We are building a decentralized economy in which everyone can easily earn KIN and spend it inside digital services that can be useful for daily life.

Kin initial launch taught us a lot about our users. We saw that Kik’s users loved to earn KIN. Poll completion rate was around ~98.9%! We were also very excited to see great success with spending — all KIN featured sticker packs were purchased by Kik users. Our data analysis showed that Kin is progressing nicely and data supports many of our assumptions.

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).

https://github.com/kinfoundation/kin-sdk-core-ios/issues/34

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:

These fluctuations in the network are also clearly seen in our statistical analysis of transaction confirmation times — the duration between transaction creation and confirmation time on the blockchain.

Summary

In addition to the above, we’ve made a list of all important parameters that we are taking into consideration when choosing an infrastructure solution, ordered by priority:

  1. Transaction fee costs
  2. Scale — amount of transactions per second that the network can process
  3. Transaction confirmation time
  4. Network availability and reliability
  5. Consensus protocol validity—secure, safe, proven, reliable
  6. Production experience in the industry — maturity and stability
  7. Developer ecosystem — languages, libraries, open source, maintained and validated code base, and an active community
  8. Network politics — there could be several parties in the network that might not be aligned: users, wallet and node developers, miners, digital services, token distributors
  9. Migratable — how easy to migrate from and to another blockchain
  10. User privacy

All of the above parameters are important. We are aware that it’s difficult to optimize for all of them, therefore we are always considering the trade-offs between them.

As always, we would appreciate your feedback and thoughts regarding these considerations!

--

--

Tanya Rofman

Live and breathe Product & UX | Product @ Guidde | Ex PM @ Travelier Group | Ex PM @ OpenWeb | Practice yoga and wine 🧘🏻‍♀️ Learner of things 🤓