When I started with CryptoFights (https://cryptofights.io) just over a year ago, I was enthusiastic, but we were all pretty new to concepts of crypto development. The original idea of building a fun, skill-based game on the Ethereum blockchain quickly ran into the normal roadblocks of slow performance and expensive transactions.
Over the course of the last year of R&D, we threw many ideas against the wall, and pursued various alternative concepts for consensus and immutable data storage. We built prototypes of 3-party peer-to-peer mechanisms, various side-chain technologies, and even a consensus layer on top of IPFS.
With each new approach, the fact became clear that large portions of development tooling were not available and would need to be built. As the year progressed, we settled on EnjinCoin (ENJ) as a basis for our weapons, armor, and other collectables. Enjin utilizes Ethereum tokens, so naturally, EVM-based side-chains became the focus of research.
Running on Loom Network (DPoS), or PoA consensus rules with Parity/Geth added the benefits of providing faster performance as well as a robust set of development tooling allowing for development in the familiar world of Solidity, but problems still remained.
- We either needed to build a token and consensus rules to support decentralization of the side-chain, or users would need to trust us to run the network. There are solutions such as Plasma which give users some protection, but Plasma solutions are complex, require users to transfer their tokens to a contract, there is no wallet support, and users need to be online and validating the side-chain in order to actually exit tokens.
- Performance was still quite slow. With 1 second block times, round-trip communications between 2 players result in approximately 2-3 seconds of lag between turns IF everything behaves well, and we often encountered issues where the node software did not behave well.
I, like most developers in the space, had completely written off Bitcoin as a viable platform. Some of this was due to artificial limits placed on the platform, but also I simply didn't understand what bitcoin is. While researching the Bitcoin Cash fork of 2018 and understanding what SV was fighting for, Bitcoin finally made sense to me. Bitcoin is so much bigger than anything else out there. By trying to live up to the stated goals of being a "World Computer", Ethereum, EOS, et al don't realize how small of a view they have. Bitcoin is not a world computer, but is the base-layer for EVERYTHING. Bitcoin solves everything, anything can be built on it, and it exists NOW.
You will often hear people say "Bitcoin is a commodity ledger". What does that mean? It means networking is already solved. It means authentication and identity are already solved. It means security is already solved. It means peer-to-peer, immediate transactions are already solved. It means consensus and immutability are already solved. It means that I can pay a fraction of cent to store data immutably without needing to build any new tooling. It means that I could build any other blockchain or DAG with any other consensus rules on top of Bitcoin.
People mock the raising of the the OP_RETURN limit within Bitcoin SV saying that Bitcoin should not be about file storage. They may be right, but they are also completely missing the point. It is not about storing files on the blockchain. It is about immutable storing data on a commodity ledger; not so I can save a picture of my cat, but so that data in one transaction can point to data in another transaction which points to data in another transaction, and pretty soon the entire world is an interconnected immutable graph.
Main-chain as the side-chain
After a year of fighting with many side-chain solutions, where we have ended up is to flip the entire equation upside down. We have not found a solution for a side-chain to Ethereum. Ethereum is now the token-ownership side-chain to Bitcoin. For now, Ethereum is good at tokens. Enjincoin and Enjin Wallet are great for us, and we will continue to embrace that environment fully, but it doesn't take much foresight to realize that Ethereum is a niche, and a niche which doesn't need to live outside of Bitcoin.
I urge any crypto developers that are working through complex solutions where the economics and incentives structures are "almost there, but not quite yet", to re-envision your solution in Bitcoin. You will likely be able to throw away a large portions of support code you simply get for free, and schemas and APIs can grow far simpler. Plasma side-chains can easily be built on Bitcoin SV more cheaply and more simply than they can be built stand-alone. Use it for that. PoS and sharding are not solved yet and are complex. Bitcoin is here NOW. It works NOW.
CryptoFights is not a completely decentralized game, and it doesn't need to be. The players take turns by writing to the ledger. Players do trust a 3rd-party referee bot to validate actions and enforce rules. The referee enforces those rules by writing data to the ledger. This does not guarantee fairness, but it does guarantee transparency. The referee's reputation is on the line, and if they misbehave, there is nothing they can do to cover their tracks.