Blockstack – A Blockchain Based Trust-to-Trust Internet Architecture
The internet’s initial design, which relied on the end-to-end framework principle, led to mobilization of program specific logic and complexity to the peripheral parts of the network, while keeping the network’s center focusing on the simple task of delivery of data. Nevertheless, the originally proposed end-to-end principle did not offer sufficient levels of trust and security. There are multiple central points of trust and failure throughout the conventional internet. Examples of these points include the Domain Name System (DNS) root servers and public key infrastructure e.g. Certificate Authorities (CAs) which are responsible for publishing security certificates. On the other hand, success of various cloud based services during the past few years means that most of users’ data is recorded on remote servers; thus, users have to trust these servers to successfully execute their applications.
A recently published thesis presented a novel internet framework that relies on the trust-to-trust design approach i.e. users do not have to trust the network’s core, as they can use services and applications in a fully decentralized manner. The researchers suggested utilizing blockchains, like bitcoin’s, to bootstrap trust when new nodes join a network. However, limited bandwidth and high latency of conventional blockchains limit their use in this field, yet the proposed framework can scale via taking most operations off the blockchain layer.
A deployment of a novel decentralized internet framework, known as Blockstack, is presented to take the trust-to-trust architecture from being merely a hypothetical concept to a fully functional system. The researchers introduced “virtualchains” which are pivotal parts of the proposed internet architecture. A virtualchain is a virtual blockchain that is built via processing data derived from existing blockchains, in order to enable the introduction of new functionalities on top of existing blockchains, without having to perform any changes that can disrupt the consensus scheme.
Blockstack is currently being used with a number of decentralized applications e.g. OpenBazaar; it is launched as an open source software and currently, there are more than 70,000 website domains registered on it.
An Overview of Blockstack:
Blockstack represents a system that deploys various components of a novel decentralized internet framework. Blockstack’s architecture is comprised of four layers, with two layers within the control plane (blockchain layer and virtualchain layer) and two layers within the data plane (discovery layer and data storage layer). The control plane is responsible for dealing with smaller amounts of data and is mostly focused on bootstrapping trust and designating the mapping procedure between network resources and human readable names. The data plane includes information regarding how to discover data (pointers/routes to data) along with the actual backends of storage. Replication of data occurs on a wide scale and it does not matter which source clients use to read data, as clients can use the control plane to verify whether or not they received the correct data.
The below figure illustrates the architecture of Blockstack. As shown in the figure, Blockstack is comprised of four layers:
Layer 1: The Blockchain Layer:
The blockchain layer represents the lowermost layer and handles two tasks; it provides the medium for storage of operations and it also provides consensus regarding the order of writing of operations. Higher layer operations are scripted in transactions taking place on the underlying blockchain. The blockchain layer serves as an abstraction of ordered operations to the above layer and represents the “narrow waist” of Blockstack’s architecture.
Layer 2: The Virtualchain Layer:
The virtualchain layer lies above the blockchain layer and designates new operations without having to modify the underlying blockchain. Underlying blockchains’ nodes are not aware of the virtualchain layer. Virtualchain operations are stored in valid blockchain transactions in the form of additional metadata. Blockchain nodes are able to see the raw transactions, yet the logic for processing virtualchain operations is only present within the virtualchain layer.
Layer 3: The Discovery Layer:
This layer is part of the data plane. Blockstack uses zone files to store routing information. The format of zone files resembles that of DNS zone files. Zone files are stored within the discovery layer. Users do not have to trust the discovery layer due to the fact that recorded data on this layer can be verified via validating the data’s respective hash within the control plane.
Layer 4: The Storage Layer:
The storage layer is the uppermost layer, which includes the actual data values and represents a part of the data plane. All values of stored data are signed via a key which is defined within the control plane. Via storage of data off the blockchain, Blockstack’s architecture allows for a myriad of storage backends and also allows arbitrary size values. The user does not have to trust this layer and its integrity can be verified in the control plane.
Blockstack’s framework benefits from the reliability and efficiency of backend cloud systems used and offers a performance that is comparable to conventional internet services.