Blockstack is a new distributed application internet, equipped with a set of open source development tools to build and guide the distributed application and protocol ecosystem. Users have their own data, the browser is everything they need to start, and Blockstack is the "Google" of the blockchain.
Blockstack is a blockchain browser application, which integrates distributed data, distributed applications and distributed user data.
In the so-called distributed Internet, users own their own identities, data and identity bindings, and store them in their own private devices or in the cloud, thus eliminating dependence on third-party organizations. Developers can develop distributed applications to run locally, call the user's API, and access the user's data with the user's permission, so there is no need to consider the data storage problem. In this way, Blockstack returns the data sovereignty to the user, and the user data is kept by the user. No third party can access user data without the user's permission. Because users have data sovereignty, users can transfer at will, regardless of platform restrictions.
Second, the realization principle of Blockstack
Blockstack builds an independent naming system on top of the underlying blockchain. The underlying blockchain is used to record the state changes of "name-value" pairs. Through the * * * identification protocol of blockchain, all operations in the naming system (such as name registration, update, migration, etc. ) can be recognized by the whole network and cannot be tampered with.
Blockstack adopts the idea of separating data plane from control plane, and separates naming control from naming related data.
The control plane includes the bottom blockchain and the virtual chain above it, defines the registered name and creates the name-identity binding protocol.
The data plane is responsible for data storage, mainly including
(1) Area file used to find data by hash value or URL.
(2) External storage (Dropbox, S3, IPFS, etc.). ). The data is signed by the key pair corresponding to the name to which it is bound. The client reads data from the data plane, and verifies the integrity and reliability of the data through the data hash in the zone file and the public key of the name owner.
This idea of separating the data plane from the control plane makes Blockstack not attached to any specific blockchain, which means that users can choose different blockchains according to their own needs.
Third, the level of Blockstack.
In order to realize the naming and storage functions, Blockstack has four layers: the blockchain layer and virtual chain layer in the control plane, and the routing layer and data storage layer in the data plane. The specific implementation is shown in the following figure.
1, blockchain layer (blockchain layer)
The blockchain layer is located at the bottom and mainly provides two services:
(1) The operation of block stack is coded in the transaction record of the underlying blockchain, and the blockchain layer is responsible for storing the operation sequence of blockstack;
(2) Provide * * * knowledge for the writing order of blockchain.
2. Virtual chain layer
Virtual chain layer is the core of Blockstack, which defines various operations of Blockstack nodes, and only Blockstack nodes can perceive this layer. Although simple blockchain nodes can read the original text of the operation, they cannot parse it.
The virtual chain layer also defines rules for accepting and rejecting block stack operations. For example, under the condition that the name is not registered by other users, the registered naming operation is accepted.
3. Routing layer
Blockstack separates routing requests (how to find data) from actual data storage, so that users can choose data storage. Users can choose commercial cloud storage (such as Amazon S3 or Dropbox), or choose their own private storage or p2p storage system.
Routing information is stored in the zone file, which is almost the same as the zone file of DNS in form, as shown in the above figure. The virtual chain binds the name to the hash value of the zone file and stores it in the control plane, while the zone file itself is stored in the routing layer (currently stored in the distributed hash table). Users can fully trust the routing layer, because users can compare the area file with the hash value of the control plane at any time to check whether the area file has been changed.
4. Storage layer
The storage layer is where users actually store data. All data will be signed by the key pair corresponding to the name owner. In this way, users can store data of any size, and because the hash value of data is stored in the control layer, users don't have to worry about data being tampered with.
There are two ways to store data in the storage layer: variable storage and immutable storage. The main difference between the two is whether to modify the regional file at the same time when modifying the data, which is suitable for the situation that the data needs to be modified frequently but hardly.
5. Naming system
Blockstack implements a distributed naming system using a four-tier structure. This name belongs to the address of the underlying blockchain and the corresponding private key. Like Namecoin, users need to make an appointment before registering their names. The first user who successfully writes the scheduled operation and registration operation into the blockchain can obtain the ownership of a certain name. After registering the name, users can use the update command to send the updated data under the name. Users can also use the transfer operation to transfer their names to another address. The Revoke command can temporarily terminate the operation with this name.
Fourth, summary.
Blockchain technology has brought exciting prospects to the Internet. Distributed naming and storage system enables users to maintain absolute control over their identities and data, while third-party programs need user authorization if they want to access their 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 a model for the application of blockchain technology.
/p/298232 15