We all know what a database is: an organized collection of data. By analogy, then, we can think of a blockchain as an organized collection of resources, latter being defined as something that exists only in limited quantities. So, blockchain is really a resourcebase.
Let’s try to understand this simple thought. Business applications driving such super complex systems as Facebook, Amazon, the world-wide airline ticket booking, package delivery, car manufacturing, government payrolls and the IRS are all built on top of databases. No exceptions.
Our experience in building databases is vast, based on at least 50 years of research and ubiquitous use. This experience tells us a few things about the kind of functionality that real world business applications require. Even before we get to such things as consistency and scalability, they first and foremost require data organization. Starting from SQL-oriented relational tables through graphs and document stores databases have always served as ways to structure data in an accessible, consistent, and flexible way.
People are already starting to think of blockchain as a database, based on the idea that decentralized consensus can be used to ensure consistency of its transaction log. Private and consortium blockchains are essentially indistinguishable from distributed databases.
But understanding that blockchain stores resources as well as more traditional data allows one to finally make a distinction between a blockchain and a database and, what’s more, allows one to understand the kind of functionality that blockchain will need to host real world applications of significant complexity.
So let’s merge the concept of a database with blockchain and envision a resourcebase. What would it look like? While I am not a fan of SQL it can still serve as a good illustration. So consider a few statements in our “resourcebase SQL.” (italic indicates keywords, for clarity)
select transfer(source.value, target.value, 50) from wallets as source, wallets as target where source.owner = “Alex” and target.owner = “Bob”;
This self-explanatorily transfers 50 units of a resource from one record in table wallets from field “value” into another record in table wallets, also field “value.” Or,
select transfer(contracts.dividends, wallets.value, contracts.dividents * ownership.share) from contracts, wallets, ownership where contracts.name = “TheDAO” and wallets.owner = ownership.owner_name;
This one takes the field called “dividends” from the record called “TheDAO” and breaks it up according to the ownership share among a number of wallets defined in the table “ownership.”
This, of course, is very rudimentary and misses many important elements, such as security. But it illustrates the concept of a resource and its meaning in a resourcebase: the evaluator of a transfer query would have to be tasked with ensuring that the total number of units of the resource doesn’t change as a result of any such query.
In addition to features inherited from the world of data modeling, resourcebases must necessarily include other novel functionality. These form two specific areas that are more readily understood given our today’s experience with blockchain-based economic systems: a permissioning model and a meta-resource model.
The permissioning model defines all aspects of who and when is allowed to access (transfer/receive) resources. In the blockchain world, permissions are established through cryptographic primitives and the overall model answers such questions as how one verifies users, how one defines the permissioning structure, what type of entities (users, contracts) permissions apply to, what access they govern and how. For example, permissioning model would imply the way a multi-signature wallet operates.
The meta-resource model is exemplified by the Ethereum’s gas payments and by Bitcoin’s transaction fees and block rewards. The term meta-resources means “resources applied to resources.” It refers to all aspects of how we represent the resources (computational power, storage) consumed in operating the resourcebase itself. Ethereum’s gas is a meta-resource. It is paid out to network participants in exchange for computing power.
A resourcebase’s meta-resource model in its entirety defines every aspect of the resourcebase’s operation in terms of economic value. It defines data storage, computing, and consensus-provision as “resource-able” expenses and provides mechanisms that remunerate participants that provide these services. It defines specifically who gets remunerated, in what resource, in what amount, and when.
In a decentralized context resources (read, cryptotokens) become the blood of an application. But its flesh is still data! And the features required for organizing data (and now also resources) and support large scale real world applications are well known from our experience with databases. Merging the database with blockchain creates a resourcebase — a system that can underlie a broad spectrum of decentralized applications in the real world.