It’s still there, but the virtualchain is now concerned with anchoring Stacks blocks to the Bitcoin chain and providing nodes with enough information to do the cryptographic sortition. The naming system has been taken off-chain.
The virtualchain was a way to graft naming operations onto Bitcoin (or any blockchain) without requiring us to modify the blockchain itself (also, virtualchain predates Ethereum, and was designed to operate on blockchains that do not provide smart contracts).
The BNS system will be preserved in Stacks v2 – all names that will have been registered up until Stacks v2 goes live will be automatically ported over.
Yes, but only apps that have no global state of their own. It turns out you can build many dapps that don’t need global state beyond BNS. However, there are also many dapps that do need their own global state, as well as rules for manipulating that state so anyone can read or write it subject to those rules. Smart contracts are meant to implement this global state and enforce its rules without requiring the developer to operate a centralized server. For example:
-
A Reddit-like dapp that implements subreddits. The list of subreddits, their moderators, and their moderation policies are global state. A subreddit’s creator is its initial moderator. A moderator must publish their policies publicly, as well as publish decisions to admit/remove other moderators. No one can become a moderator without the existing moderator’s say-so. But, anyone must be able to create their own subreddit. Enforcing all of these rules is very difficult without a centralized server and without smart contracts.
-
An Uber-like dapp. The list of drivers and reviews are global state. Only a valid customer can submit a review for a ride they took (i.e. riders can’t remove bad reviews, or inflate their reviews).
-
A dapp that implements license keys for its enterprise features. Only a license key bearer can access the features. To ensure this, the dapp developer would encrypt their dapp’s code so only license key bearers can decrypt it. But to ensure this, there needs to be a global registry of all license key bearers’ public keys.
It’s very hard to build these kinds of dapps today with Blockstack because Blockstack doesn’t give developers a way to address the above kinds of concerns.
To enable the above kinds of dapps. Given the history of Blockstack, it should be clear that we don’t implement something unless we have reason to believe it will be necessary ![]()
It will take a comparable amount of CPU/disk to process Stacks v2 (i.e. within a factor of 5 I’m guessing).