How CryptoKitties Proves The Value of Cryptocurrencies For App Developers


Based on data from ETH Gas Station, CryptoKitties is now the largest decentralized application on the Ethereum blockchain. This game, based on breeding and selling digital cats, has consumed more than 14{e9b7b6e97581a958d2bc378a46799d644da7fe427050b58be8de8c4fdd2a2020} of the total transaction volume and shows little signs of slowing down.

CryptoKitties functions through a set of 5 Ethereum smart contracts written by AxiomZen, and users interact with it via their own Ethereum address. Using the Chrome extension MetaMask people can visit the CryptoKitties website and MetaMask will allow them to interact with the game’s smart contracts. From there it is easy to buy, sell and breed kittens.

Due to the success of the game, the entire Ethereum network has been bogged down under unusually high transaction backlogs. The number of unconfirmed transactions in the ethereum mempool soared to 15,000 yesterday, with Crypto Kitties considered the primary cause.

To try and remedy the situation, Crypto Kitties tweeted:

*Due to network congestion, we are increasing the birthing fee from 0.001 ETH to 0.002 ETH. This will ensure your kittens are born on time! The extra is needed to incentivize miners to add birthing txs to the chain. Long-term solution will be explored very soon!*

According to techcrunch, over $1.3M in ETH has already been spent on digital kittens. The “genesis” kitten was sold for approximately 246 ETH ($113,000) while others have sold for between $12 and $23,000 based on their characteristics.

The amount spent in CryptoKitties demonstrates the potential volume and purchase power of cryptocurrencies. Users are willing to spend part of the over $200b market cap of digital currencies inside applications. This is no doubt the early markings of cryptocurrency acceptance by app developers.

This new trend is exciting because the amount of cryptocurrencies in the billions are both digital and liquid, i.e they can be spent at anyone time for goods or services in any application. CryptoKitties proves not only that users have the desire to spend their cryptocurrency on applications but also that developers are looking to tap into this new opportunity.

However, before the wave of developers and cryptocurrencies can merge the obvious has to be tackled — Ethereum’s load based obstacles.

“This is because every action in the game, including buying and breeding cats, has to be recorded on Ethereum’s blockchain, and with owners buying more cats and breeding them, the number of those entries is rising with a very steep curve. Currently, partly due to the game’s popularity, there’s more than 10,000 pending transactions on Ethereum; typically, this number is much lower. “ — Mashable

To alleviate the load on the network CryptoKitties has increased the fee for birthing, i.e producing new Kitties, but developers increasing fees for mechanics in games just makes it more expensive for the end user on the network and may not address network load or latency issues.

Instead developers who wish to develop applications (games or others) should rely on a combination of on-chain and off-chain application architecture with respect to their application stack, at least until Ethereum can take such load.

**Off-Chain** — Utilizing a traditional database or application layer for an application’s heavy lifting. There is nothing wrong with utilizing a database for what it’s meant to do, and helps to keep only components of an application that can truly benefit from being decentralized on-chain.

**On-Chain** — Relying on what blockchains are good at now, on-chain components of an application could very well just focus on payments, ownership of digital assets, game assets bought with cryptocurrency, and authorization/verification that you indeed bought x item to interact with smart contracts that are part of application.

Game settings, design algorithms (i.e the GeneScience or KittyAccessControl code in CryptoKitties), admin aspects, pricing models, should be done off-chain utilizing something like OPEN.

Sure it’s great to have your code base open source culturally, but this may not be practical for application developers nor a practical expectation to ultimately grow adoption of blockchain technologies to be used for real world software applications. For example the CryptoKitties GeneScience smart contract is closed source, which should not be looked down upon by the community, as a game developer does require their sensitive value driving mechanisms to be closed to the public. Despite some members of the community viewing this as a vulnerability, the community has to realize that this is simply a requirement on behalf of developers and will always be.

In our previous roles running a game development company (around the corner from where Ethereum was being developed in Toronto) trade secrets such as monetization algorithms, design mechanisms such as level/experience point curves are highly guarded secrets by companies in the industry. Trade secrets such as monetization design that enables an app like CandyCrush to earn $2m+ revenue per day (yes per day) yet remain addictive at the same time will always have a need to be off-chain. So do the adjustments of those algorithms or associated algorithms used in a gaming application.

Therefore we should come to expect for now, a combination of on/off-chain architecture. However, there is no easy way for developers to architect data propagation to and from a blockchain to their centralized infrastructure. Nothing exists outside of the OPEN API for mainstream developers, especially for those who are not blockchain savvy, to optimally balance their current existing architecture to ensure that only components that can benefit from being on the Ethereum blockchain are indeed on-chain and not blogging down the Ethereum network.

More projects like OPEN are required for developers to ultimately prevent interim network issues like the one inadvertently induced by CryptoKitties. By utilizing smart contracts for payments, authorization and verification along with an API that enables data propagation between the Ethereum Virtual Machine and an application’s data tables, any developer could deploy a pre-existing application onto the blockchain in a manner that would reduce unnecessary network load and be less cost prohibitive for users on the network.

Any current existing application i.e from gaming apps like CandyCrush to subscription based apps i.e Tinder, can be deployed without re-coding the entire code base in a manner which can utilize cryptocurrency for payments, asset ownership and centralized components preserving the application layer and database for the heavy lifting.

About the Author open