Hey crypto folks, hope you've had a good year this year and are ready to tackle the next!
Now that there's been a few proof-of-concept projects that have gained adoption (Cryptokitties being the most obvious one), 2018 is poised to be the year where the crypto community will finally be forced to deal with the elephant-sized problem that's been preventing the technology from gaining true mass adoption: scaling.
There's a lot of technical solutions being proposed in the space right now (sharding, side-chains, DPoS, self-mining, etc.) -- some showing more promise than others, depending on who you talk to. The coins that manage to scale their product well AND accrue a critical mass of users are most likely to become the dominant cryptocurrency so there are many people working very hard to find a solution to the scaling problem as quickly as they can.
I've always been more of a product manager than a developer so in regards to this issue I'm going to stick with what I know: organizational efficiency. Though usually not as exciting as talking about the newest and latest fancy-pants algorithm, I've found that having a clear vision and direction of the product you're trying to make is helpful -- if not essential -- to the success of any given project overall.
A lot of these suggestions will probably come across as being more common-sense than innovative, but the fundamentals are always worth repeating, I think.
1) Find Your Niche and HODL There
The reason why BTC and ETH transactions have slowed down in recent months is because of a very high spike in users and traffic (a good problem to have in most respects), leading to an overall increase in the size of the ledger overall. The more activity on the platform there is the bigger the ledger becomes -- as a result, transactions becomes harder (and more expensive) to process and maintain as time goes on. There's a lot of crypto projects out there advertising "blazing fast transaction speeds" right now but the reason why it's fast isn't necessarily because of its superior technology -- it's simply because there's less people using it.
Small isn't necessarily a bad thing and I think that a lot of projects could stand to openly embrace their lightweight status rather than treating it like a liability. A product that is well-defined and knows its users to the core does not need to be everything to everybody as long as it does what it does very well.
Let's say that you make a coin called RabbitPetcoin that acts as a decentralized marketplace for trading pet rabbits in the US. This is the only thing that the coin does, but it's works well for what it is and rabbit owners love it. Since there's only really a handful of people in the world interested in trading their pet rabbits in a marketplace in this way, the # of transactions never get so large that scaling issues need to be considered at all.
The crypto marketplace has a long way to go before people will take rabbit-based coins seriously, but if it reaches a point where coin to fiat conversions can be done easily and at low cost, designing an economic system specifically for every use-case won't be too far off from reality. One way to solve the scalability problem is to silo every use-case into its own independent blockchain so that the ledger itself stays within a manageable size.
2) Ledger Trimming
All too often software platforms try to add too many (unnecessary) features, only to find themselves burdened with more and more technical debt as time goes on. Once in a while it becomes necessary to revamp or restart products in order to reorient it back to its original purpose and mission, though this process tends to become very painful and expensive if you let the problems fester for too long.
There is a way to mitigate some of this damage with blockchain projects, which is to automatically "trim" the ledger itself in order to keep the size of it small. I'm a big fan of crash-only designs, where policies automatically expire after a predetermined period of time because it allows for the platform to develop an internal sense of rhythm that allows for users to develop habits and routines around its clock. I believe that in a few years time this practice will not only be desirable, but almost necessary in order to keep many crypto projects afloat.
For example: in the off-chance that RabbitPetCoin becomes a wildly huge success (so successful that it creates a global rabbit-pet owning craze), you can tell the system to start deleting transaction records after 5 years so that the ledger itself doesn't get bloated with too much historical data. 5 years is enough time for most people to access the data for tax and record-keeping purposes while anything prior to that can be archived in a separate location (perhaps even in another blockchain) for later viewing.
Do we really need that transaction made by rabbitlover298 7 years ago where they bought 2 rabbits from hareseller45 through their smart-contract deal? Knowing what's *not* needed can often be just as important as knowing what is.
3) Be Patient
And the last solution is the laziest one of them all since it literally involves doing nothing: just be OK with transaction times taking a very long time. For certain things like mortgage escrows, tax payments, and legal divestments where it's not necessary for transaction times to be instantaneous, the problem has just solved itself. Remember that in the fiat world, some transactions take several business days to process so even a 24 hour turnaround time would be considered an improvement.
--
When you get down to it these suggestions and solutions are really just another way of saying that use-cases will ultimately determine the types of scaling solutions that will be needed in the space. If you know what you're building your product for, the technical decisions behind them will be much easier to make.
Personally I'd like to see more discussions about crypto include more aspects of product design since I think ultimately that will help the movement get into its next stages of its ecosystem. We should be having deep discussions about how people will be actually using the technology in their day to day lives, instead of just talking about the price!
Great post Ryan.
Upvoted and followed!
Thanks!