Original link: https://medium.com/coinmonks/blockstack-a-decentralized-naming-and-storage-system-using-blockchain-445ff60190f7
Part I: blockstack’s 4-tier architecture
Blockstack’s 4-tier architecture:
Blockchains like bitcoin store an authoritative global consensus on the state of the system.
Layer 2 – Virtual Chain:
A blockchain independent layer that accepts input from the blockchain and can create any type of state machine. For example, a DNS state machine can be different from an identity state machine. This layer can also handle any blockchain you want, but reliability and security will be derivatives of the underlying blockchain. Virtuachain also binds names to their values. The hash of the zonefile is stored in this layer.
Layer 3 routing:
This layer implements a DHT, which stores the routing information of values. Blockstack uses DNS like zonefile to indicate the final storage location of the data. Basically, the task of layer 3 is to discover the final data associated with a given name. Any user can verify the integrity of the zonefile by verifying the hash stored in layer 2.
Tier 4 – storage:
This is where all values are stored. This can be at AWS or Dropbox or any third-party supplier. There are two types.
Fast variable storage:
This data is signed by the private key of the name owner. So writing only involves the cost of encryption. Validation involves verifying the integrity of the layer 2 zonefile, and then using the public key to validate the data. As you can see, writing does not involve any changes to the zonefile.
Slow, immutable storage:
In this case, in addition to writing data to the store, the zonefile was modified to add a TXT record to it. This TXT record contains a hash of the data. Since we modified the zonefile, it triggered subsequent changes in the virtual chain, which stores the hash of the zonefile. This also means changes to the underlying blockchain.
The following is the schematic diagram of blockstack architecture: