You have surely heard about the term cryptocurrency by now, and may be wondering whether you should use it or not. It’s a term whose popularity has quite grown over the years, and gained value in public understanding and use. You must have heard about Bitcoin and Ether. Well, these are cryptocurrencies that use the Blockchain technology.
In this article, we are going to present you with a bigger picture of Blockchain, and discuss the benefits of using this kind of currency when it comes to mobile app development, as well as some of the cons and barriers that come with the territory of this form of trade that is not yet fully established.
What is the blockchain?
Blockchain is what lies beyond cryptocurrencies – it is a distributed database that is made out of data blocks. Each of those data blocks has a stamp and a link to the block that came before it. This makes this kind of technology a great way to run an anonymous P2P system for your transactions and exchanges.
Since the technology is digital, the possibility of chargebacks and random reversals is mostly out of the picture. Due to the fact that the settlement is done in real-time, and there is no involvement of 3rd parties between the developer and the customer, the fees are quite lower. Furthermore, no personal data is exchanged.
The appeal of cryptocurrency to app developers is in markets where either most of the web-connected users are completely mobile-first or where the majority of the customer base can’t access traditional financial institutions. This accounts a great percentage of people in countries in Asia, Latin America, Africa and the Middle East.
What is the greatest benefit of cryptocurrency?
The greatest benefit of the Blockchain technology is decentralization of traditional finance. Developers and users can cooperatively manage the database. This means that a central authority no longer has control, and you are relieved of interest rates and transactional charges.
This makes business dealings faster and more cost-effective, and a great solution for developers that have to face long settlement periods.
The problem, however, comes for the US developers, as Apple and Google have introduced harsh policies against alternative methods of payment, in order to make sure that each company gets its 30% cut from in-app purchases. Microsoft has dropped the use of bitcoin payments for a while due to their volatility.
However, they have restored it as a payment option, because they have worked out with their provider “to ensure lower Bitcoin amounts would be redeemable by customers”.
The downside of decentralization
However, what every web agency will tell you, is that decentralization is both cryptocurrency’s greatest asset and largest risk. When we take a look at distributed apps, they run on networked computers and the actions made are regulated through shared memory or by exchanging messages between different instances of the app.
The good side is that distributed databases are a lot more available than non-distributed apps, so it works in favor for their functionality when it comes to problems that can isolate a part of the network from the rest of it.
However, there is a price to be paid. It’s problematic to keep data consistent in a distributed database because you’ve got no assurance that updating the system in one location will certainly make it to the rest of the distributed network. When it comes to Bitcoin, this means that there is a possibility that a customer can spend the same Bitcoin multiple times.
Blockchain’s recording of transactions is a means to solve this problem. While the consistency of the Bitcoin Blockchain isn’t really assured, the way that the network was made is supposed to convince us that it will be. What this discrepancy means is that it might happen that Bitcoin users disagree on whether it occurred at all. It may lead to users finding themselves in complicated settlement issues.
Problems with distributed apps
The development and testing of distributed apps can be a challenge. It’s difficult enough to test and debug ones that run on a single device. When you are working on a software that needs to coordinate with other instances over a buggy network can be a rather complicated task. There is a possibility that you will run across various kinds of bugs.
There are heisenbugs, which change the way they behave when they are tested. They are a common problem when it comes to distributed apps. Another “pest” that you may come across is a mandelbug. The cause of a mandelbug is so complex and hard to determine, that it may seem completely chaotic and impossible to resolve.
There are also schrödinbugs, which don’t appear until the app is used in an unconventional way. These kinds of bugs make developing, testing, and supporting a distributed app one hell of a job.
Basically, if you intend to use Blockchain for your app, you need to set the right expectations for the cost and plan according to realistic values. In the case that you are new to distributed apps, this is going to be a big exercise for you. This is certainly a bigger problem when you’re developing on-demand apps.
Looking at the mobile industry at the moment, the fact is that cryptocurrency isn’t going to change it. However, the fundamental technology behind it, such as Blockchain, enables app developers to change the way that apps are made, distributed, and maintained.
While it is still more of a story for the future, it is impossible to ignore the fact that cryptocurrency can have a major impact on mobile app development in the days to come.