Alacris: The Blockchain Operating System

Chris Swenor
Alacris
Published in
8 min readNov 27, 2018

Blockchain technology is the future of how we will do almost everything online. It will change how we secure and exchange information and services, bringing freedom to users all over the world. However, since its introduction in 2009, its complexity has left many in the tech world trying to figure out where this marvelous invention fits into day-to-day use. This begs the question, “If this technology is the future how do we make it work?” As more and more people recognize its value, many problems and issues with the technology are going to be solved. It’s not a matter of if but a matter of when and it will likely vastly change how the Internet and commerce work. We are at the point right now where a handful of people were in the late 1980s, early 90s, a decentralized network for peer-to-peer information sharing existed, however, only a few laboratories and government entities were connected but some saw its potential to change the world. The introduction of the World Wide Web in 1991, this ignited the industry and changed how we do pretty much everything.

As of the end of 2018, Blockchain still has issues with Scaling and Interoperability. The main scaling issue is that current trusted Blockchains accommodate a very limited number of transactions: Ethereum can issue about 15 transactions per second (tps), which is about 9 million per week, 4 hundred million per year — total, for the entire world. Bitcoin can issue about half as many. Complex contracts can have even fewer transactions. Another scaling issue is that the latency to fully confirm a transaction is high: between 3 and 30 minutes (or more) on Ethereum, depending on who you ask; typically 60 minutes on Bitcoin. The interoperability issue is that trading some amount of cryptocurrency for another one has all the above problems, plus it introduces a centralized actor, the “exchange”, that is custodial, i.e. that keeps the users’ money as long as they want to be able trade on the platform; these custodial exchanges, like all trusted third parties, are security holes, that will inevitably attract bad guys who will rob them and take all the users’ money, often as an inside job.

But within a couple of years or so, both Scaling and Interoperability will be solved problems. We know they will be, because we are one of many teams working on solutions. Like the Internet in the early 1990s, Alacris is working to create a paradigm shift in Blockchain technology through the development of an Operating System to develop and deploy Blockchain Distributed Applications.

Why an Operating System?

Our Operating System will abstract the many layers of software infrastructure necessary to support a robust Blockchain application. It will take difficult implementation issues away from developers so developers can concentrate on creating a quality product for their users. Abstraction enables a reduction of complexity in programming, allows for implementations to be upgraded without negatively impacting its users, and creates a common interface for all users and developers on the Blockchain. A Good Operating System will deal with the staggering complexity of all these software layers so that developers don’t have to. It will allow developers to build, deploy, maintain and evolve applications that would not otherwise be possible.

Scaling will be achieved by moving transactions to side chains or shards, where each shard will each use faster transaction mechanisms at least in the common case. New kinds of exchanges will use those scaling solutions to connect casual users and market makers in a non-custodial fashion so that users will be able to hold any currencies they prefer and pay other people using any other currencies these other people prefer, by making a currency exchange at the last second.

Beyond Smart Contracts

Currently smart contracts are utilized to exchange services and commodities on the Blockchain from one entity to another, one organization to another or peer-to-peer. This makes it especially important to get smart contracts right, because they are pieces of software that will manage money and exchanges of value. Any bug in them can and will be found and exploited, with no recourse, and no way to fix the contracts until it’s too late. But a contract is just one piece of a larger system where most of the code runs on each participant’s computers rather than on the Blockchain; and it is not even possible to define what it means for the contract to be right, much less assess or prove that it is indeed right, without including in the discussion all the other pieces of software involved. All the pieces must not just be correct individually, but fit together into a meaningful and correct whole.

That is why at Alacris we believe the current trend towards developing programming languages for “smart contracts” is off the mark. What developers need to build is an entire distributed application of which the smart contract is but a small, yet crucial, part. The distributed application includes all the interactions between the various participants, and not just the invocations of one or multiple contracts on one or multiple blockchains. Our language will support the development of the entire distributed application.

Our language is three fold: distributed, verifiable and sound. One, our language will describe distributed interactions between multiple participants involving the use of public or private blockchains. Second, the language will describe how a verifiable trace of these computations is built; this allows actual smart contracts to be entered and enforced, where the various parties make promises about their part in the computation, under penalty of losing some collateral if they fail. Third, the language will enable users to reason about all the possible future interactions; developers may then provide assurance to each participant that if they do their part right, and if the system remains within operating parameters, then the interaction will keep moving forward to everyone’s satisfaction.

The three aspects above can also be seen as the present, past, and future of the multi-party distributed computation. A good language for developing Blockchain distributed applications will encompass all three aspects. Compared to using different disconnected tools for each aspect, this means a lot less complexity for developers and less opportunity for failure resulting in loss of money and information. A single bug can cost you all your money; people have already lost hundreds of millions of dollars this way — we will offer a platform that gives a chance to avoid any such bug.

To build creative and innovative distributed applications, today’s Blockchain developers have to understand all of the details of all the many layers of implementation, meaning regular application developers first have to build their own operating system before they could build their applications; as if car drivers had to build their own car before they could drive it.

That is why we at Alacris.io are building a Blockchain Layer 2 Operating System: this crucial piece of infrastructure is the key to a new era of secure distributed applications. It will enable developers to build on top of a common robust universal platform, instead of having to invent their own; which in turn means that it will enable developers to do what they do best and not have to “reinvent the wheel” with each application.

Building for Tomorrow

The complexities and problems Blockchain currently has for those looking to take advantage of this technology face problems that are not affordable to solve — and yet where no one can afford to leave it unsolved.

Alacris is working toward building an Operating System that robustly provides the abstractions that developers and users care about: abstractions that effectively take care of low-level details well enough that it actually saves time for developers and make their applications more robust; not just a fragile library that actually makes their applications brittle or that they will have to reimplement completely.

Obviously, we must make sure that our abstractions can express all the details that users care about. Developers would not have to reach outside and below our system to express the concepts they need. This requirement puts a limit on how high-level our abstractions can be: they have to be low-level enough so that users can build on top of them.

We will handle marshaling and unmarshaling, digesting, signing, persisting, sending and resending messages, etc., so not to leave opportunity for possible failure. By providing high-level enough abstractions for all basic services without semantic leaks into the low-level, not only do we handle these issues for programmers, but we also make it impossible for programmers to interfere with them. Therefore, we free developers from having to deal with all the incidental complexity of re-implementing those abstractions. We also free developers from even having to learn the details of our abstractions and of the many underlying blockchains, while being able to interact with all of them. We make developing distributed applications accessible to all, even people without advanced knowledge in cryptography or extensive experience with computer security. They only have to learn the high-level concepts made available in our language. It makes it possible to write programs that get to the core of the issues, stripped of any distraction. Solving these issues for developers will not only help projects grow faster, but will also unlock the potential of Blockchain and its unknown potential.

Our platform will be open-source, and we will accept contributions from partners and customers as they adapt the platform to their specific uses. We intend to build a resilient community that will keep improving the system as Blockchain itself gains more traction. A platform on top of which builders can make secure, scalable distributed applications that will resist attacks.

In the end, what sets apart Blockchain from more common programming endeavors is neither the distributed aspect nor the need for security on an adversarial network. Most software today runs on the Internet, which is highly susceptible to attacks. What sets Blockchain apart is simply the higher stakes directly associated to failure. Therefore, a lot of the progress we make will eventually become relevant to most common applications. Once this Operating System exists, many users outside of Blockchain will demand the same standards of security and developers will enjoy the same quality of development tools. As personal devices get to control more of our lives and money, the need for across-the-board software security will become more vital. This is why the end-game for Alacris is to become an Operating System used for all applications — even if they don’t involve Blockchain (yet).

Alacris is not politely knocking on the door to open the potential of asset exchange, but it is busting it open. All kinds of assets can actually be publicly registered and exchanged in a decentralized way; not just a few million per week for the entire world, but as many as humans care to register, as fast as they care, which could be billions per hour. With suitable “oracles” to link real-world events and resources, these assets can actually include everything that humans care to own, lease or contract about, from a toothbrush to car parts to complete cars to real estate to asteroid mineral rights. On top of that, all kinds of financial contracts, bundles, loans, derivative products, can be devised. And then again, as autonomous devices emerge in the much hyped “Internet of Things” (IoT) they too can trade whatever assets and services they deal with in real time. All these applications are impossible today: they can’t yet be made to scale without introducing a centralized custodial actor. But with us, they will be possible, and that will entirely change the domain.

--

--