Original link: https://medium.com/coinmonks/blockstack-a-decentralized-naming-and-storage-system-using-blockchain-445ff60190f7
The first and second layers of the blockstack naming system are described below.
Tier 1 – bitcoin blockchain
Blockstack uses namespaces in the naming system, similar to DNS. These names are owned by the private key on the bitcoin blockchain. People who are interested in having a name go through two steps of booking and then registering. The first entity that completes these two steps on the blockchain will have that name. In the first step of preorder, the name does not need to be displayed – this automatically puts the attacker at a disadvantage because they are eager to get the same name.
Layer 2 – Virtual Chain
Virtualchain maintains the state transition of the naming system. For example, a simple registration of a new domain name can be done through the following states on the virtual chain.
Absent -> Preorderd -> Registered -> Revoked
Once the name is registered, it can be updated, transferred, and so on.
In blockstack naming system, by using intelligent pricing function, domain name can be prevented from being preempted in DNS. Smaller names and namespaces are more expensive because they may be more popular. Names without numbers are more popular than names with numbers.
john.id > johnsmith.id > johns007.id
Simple name validation
How to verify a name? Verification depends on the blockchain, and it is very expensive to traverse the entire blockchain. When someone wants to verify a name on a mobile device, it can be very expensive to read the entire blockchain, because it takes 1-2 days to guide the new blockchain.
Blockstack does this by jumping back to the order of 2 ^ I and verifying the hash corresponding to those blocks in the blockchain and the state operation of the block in the virtual chain.
Suppose you want to verify a name. The first thing to do is to find the authoritative transaction with this name. SNV will take 1, 2, 4, 8,… Until it knows that the transaction of interest is between two blocks. It can then repeat the same process between the two blocks. Here is a chart:
Read and write have some performance overhead. There are additional storage costs, but they don’t seem prohibitive. This design ensures that the performance characteristics of third-party cloud providers such as AWS can be utilized as much as possible. According to the author, there are many low suspend performance optimizations that can further improve read / write performance.
I find this paper interesting to read. It’s great to learn more about production issues when running a namecoin like network. The subsequent design decisions of control and data separation can take advantage of the security features of bitcoin and the high-performance and large capacity storage of the third party, which sounds like a good way.