Ali, Muneeb, et al. “Blockstack: A global naming and storage system secured by blockchains.” 2016 {USENIX} Annual Technical Conference ({USENIX}{ATC} 16). 2016.
The paper targets the problem of Namecoin deployment like blockchain security. Particularly, how Blockstack uses decentralized ledgers to register and encrypt domain names using the Bitcoin blockchain?
Blockstack’s vision is a truly free and open Internet. The idea behind this vision is that users should not be trapped in a particular application but should be free to choose from a variety of applications and not at the expense of control. Muneeb Ali discusses that large Internet participants exercise too much power over users, which is where Blockstack wants to change. Through the integration and commercialization of blockchain technology, data monopoly and domain name, application, and connection vulnerabilities can be prevented. This is a vision that everyone is willing to work hard to achieve.
To implement naming and storage functions, Blockstack has four levels: the blockchain layer and the virtualchain layer of the control plane, and the routing layer and data storage layer of the data plane.
The blockchain layer is at the bottom, providing two services: (1) Blockstack operations are coded in the transaction record of the underlying blockchain, and the blockchain layer is responsible for storing the Blockstack operation sequence; (2) The order in which operations are written to the blockchain provides a consensus.
The virtualchain layer is the core of Blockstack, which defines various operations of the Blockstack node, and only the Blockstack node can perceive this layer. Although the simple blockchain node can read the original text of the operation, it cannot be parsed. The virtualchain layer also defines rules for receiving and rejecting Blockstack operations. For example, the condition for registering a naming operation is that the name has not been registered by another user.
Blockstack separates routing requests (how to find data) from actual data storage, giving users the freedom to choose where data storage is available. Users can choose either commercial cloud storage (such as Amazon S3 or Dropbox) or choose their own private storage or p2p storage system. The routing information is stored in the zone files. The virtual chain binds the name to the hash value of the zone file and stores it in the control plane. The zone file itself is stored in
the routing layer. The current implementation is stored in a distributed hash table. The user can fully trust the routing layer because the user can compare the hash value of the zone file with the control plane at any time to verify that the zone file has been altered.
The storage layer is where the user actually stores the data. All data will be signed by the key pair corresponding to the name owner. Through this type of out-of-chain storage, users can store data of any size, and because the hash value of the data is stored in the control layer, the user does not have to worry about data being tampered with. Data is stored in the storage layer in two ways: variable storage and non-variable storage. The difference between the two is mainly whether the zone file is modified at the same time when modifying the data, which is applicable to the case where the data often needs to be modified and the data is hardly modified.
Blockstack implements a distributed naming system using a four-layer structure. The name belongs to the address of the underlying blockchain and the corresponding private key. Like Namecoin, users need to preorder before registering the name. A user who first successfully writes a predetermined operation and a registration operation to the blockchain can acquire ownership of a certain name. After the name is registered, the user can use the update command to send updated data under that name. The user can also transfer the name to another address using a transfer operation. The revoke command can temporarily terminate the operation of this name.
Blockchain technology has brought exciting prospects to the Internet. The distributed naming and storage system allow users to maintain absolute control over identity and data. Third-party programs require user authorization if they want to access user data. Although the Blockstack project is not very mature at present, its design ideas and concepts are very suitable for the future development direction of the Internet and are also a model for the application of blockchain technology.
Blockstack builds a naming system that is isolated from the underlying blockchain. The underlying blockchain is used to record the state change of the “name-value” pair. Using the consensus protocol of the blockchain, the whole network has reached a consensus and cannot be tampered with. The operations in the naming system (such as naming registration, update, transfer, etc.) can be reached across the network and cannot be tampered with.
The idea that this data plane is separated from the control plane makes Blockstack not attach to any particular
blockchain, which means that users can choose different blockchains according to their needs. In fact, Blockstack is migrating from the Namecoin blockchain. The reason for the migration is because Namecoin is not as secure as the Bitcoin blockchain. Namecoin is said to have suffered 51% attacks. Another benefit of this idea is that Blockstack has the ability to build state machines. A separate logical layer built on top of the blockchain treats the transactions generated in the underlying blockchain as input to the state machine, and the state machine is in a certain state at any given time. As time changes, new blocks are continuously written to the underlying blockchain, and the global state is constantly changing.
And Blockstack based on decentralized blockchain technology is more secure than traditional centralized domain name servers, supports domain name management, prevents domain name server cache poisoning, and does not require auditing. Namecoin also proposed to develop DNS based on blockchain technology. Blockstack is an agnostic system that runs on another blockchain, meaning that it can run on a bitcoin blockchain. By using the blockchain security technology at the underlying level, Blockstack has transferred its domain name registration fee to miners, thereby increasing its value.
Without third-party service providers, application decentralization and data organization encounter technical difficulties. When can the Internet be safer and more private than today’s Internet?