To understand the proposal of ArcBlock, one must understand the cloud. Let's recap.
Disclaimer: this has been written for the bounty program.
What's the problem with servers?
Running a server is hard. A person needs years of training to be able to set up, run, and maintain a server efficiently and securely. The cost of a reliable admin or training one is very high, and then we didn't think of the cost of hardware and software. If you're a small business, you can't afford all this, but you still need a secure server and reliable hosting. Availability? Reach? Backups? Scalability? The list goes on.
How does the cloud solve this?
Hosting is pretty obvious. They host whatever you need, how you need it, you just pay after the usage. If you want, you can still babysit a full-blown virtual machine in the could, but why would you do that if you only need a couple of specific features? Host a website, a database, speech recognition, or an AI bot service, and never lose sleep over how it all maintained behind the curtains.
What problem does Serverless solve?
Nothing new, really. It's just a paradoxical buzzword. How can something run on the internet if there's no server? Even the cloud has servers, so what's the deal?
Imagine a phone app that requires you to register and also provide proof of identity in the form of a scanned passport, plus a selfie holding the passport. The app directly talks to a database running in Microsoft Azure, while facial recognition runs in Amazon AWS, and the app itself is hosted in one of the app stores. If your app gets popular, the services just scale up. Your things are running in the cloud, but also...
You are running serverless!
What is a microservice?
A microservice is a small unit of code that is designed to solve typically one problem only. These are designed to be light-weight and easily scalable. Microservices can also talk to other microservices.
How does ArcBlock leverage all this
If you're thinking of building something based on a blockchain, you need to make a choice which one. Some are massively popular but slow, others are fast, but too new to have a solid backing.
In the software industry, it is incredibly valuable when you don't have to solve a problem, because someone already solved it for you. ArcBlock wants to give you the opportunity to not have to worry about which one to pick.
It's all about abstractions
The way the cloud abstracts the hassle of managing your servers, ArcBlock abstracts the hassle of learning how each blockchain works. The API provided by their microservices called Blocklets remove the pain of figuring out how to integrate blockchains into your business. Blocklets sit on the top and manage the underlying infrastructure from the business functions all the way down to the blockchains.
Financial opportunities, ABT tokens
ArcBlock doesn't do mining in the classical sense. Being a decentralized system, it requires servers everywhere to run on. If you happen to have a server somewhere, you can offer your hardware or cloud instance to participate in the Blockchain as a Service (BaaS) platform. Your compensation for the resources used will be ABT tokens.
I think there are exciting opportunities both in developing countries, and countries where cloud services couldn't get a foothold yet. Established cloud data center locations are the usual suspects with all the major players: USA, UK, Germany, China. However, there's usually a huge gap right around where Russia is, also Poland or Turkey. If you want to run a blockchain app off the cloud in Istanbul, odds are your data will need to travel all the way to Germany.
I can also see festivals picking up this kind of technology. If you look at the festivals and events in the last 2-3 years, you'll see an increase in the use of virtual currency on the festival grounds. You want a beer, or a slice of pizza? You'll need to exchange your money to the local tokens. Secure and fast transactions are crucial.
Worth for developers, too
The way Blocklets communicate with blockchains is not trivial. There's no universal language that both sides understand. Adapters are required to create a link between the two sides. Chain adapters are required, just like the driver for your video card, which need to be written by developers. ArcBlock plans to compensate devs who write such adapters and make them available for the public. Although there doesn't need to be a 100 different adapters for a given blockchain, this is the aspect that intrigues me the most being a developer myself.