Welcome to the Stack CafeTM — Blockstack: Blockchain Naming System (BNS) – It Makes The Namespace You Use On The Internet Better! UPDATE
In an earlier post, we tried to provide a brief overview the Blockchain Naming System (BNS). For more on that post, please follow this link here.
Today, we are supplementing that post with some additional information we ran across that gives a more detailed overview of BNS. The overview was put together by one of the Engineering Partners at Blockstack – Mr. Jude Nelson. Mr. Nelson’s insight may help fill in the gaps.
It appears that the goal of Mr. Nelson was to write a document for both developers and technically-inclined users and to:
- give a brief overview of how the Blockstack Naming Service works
- describe how developers can use it to build decentralized web applications
Further to the above goal, Mr. Nelson opines that –
If you read this document in its entirety, you will understand the following concepts:
- Why a secure decentralized naming service is an important building block in decentralized systems
- How Blockstack applications can leverage BNS to solve real-world problems
- How the Blockstack Naming Service is different from other offerings in this space.
This project repository (Blockstack Core) is the reference implementation of the Blockstack Naming Service.
For example – Mr. Nelson starts at the beginning and runs through it appears all aspects of BNS – how, why, uses …
The Blockstack Naming Service (BNS) is a network system that binds names to off-chain state without relying on any central points of control. It does so by embedding a log of its control-plane messages within a public blockchain, like Bitcoin.
Each BNS peer determines the state of each name by indexing these specially-crafted transactions. In doing so, each peer independently calculates the same global name state.
Names in BNS have three properties:
- Names are globally unique. The protocol does not allow name collisions, and all well-behaved nodes resolve a given name to the same state.
- Names are human-meaningful. Each name is chosen by its creator.
- Names are strongly-owned. Only the name’s owner can change the state it resolves to. Specifically, a name is owned by one or more ECDSA private keys.
Internally, a BNS node implements a replicated name database. Each BNS node keeps itself synchronized to all of the other ones in the world, so queries on one BNS node will be the same on other nodes. BNS nodes allow a name’s owner to bind up to 40Kb of off-chain state to their name, which will be replicated to all BNS nodes via the Atlas network.
BNS nodes extract the name database log from an underlying blockchain (Blockstack Core currently uses Bitcoin, and had used Namecoin in the past). BNS uses the blockchain to establish a shared “ground truth” for the system: as long as two nodes have the same view of the blockchain, then they will build up the same database.
The biggest consequence for developers is that in BNS, reading name state is fast and cheap but writing name state is slow and expensive. This is because registering and modifying names requires one or more transactions to be sent to the underlying blockchain, and BNS nodes will not process them until they are sufficiently confirmed. Users and developers need to acquire and spend the requisite cryptocurrency (i.e. Bitcoin) to send BNS transactions.”
to everything in between – Atlas, motivations, architecture, how to use… Great resource!
BNS is a decentralized naming system that produces names that are globally-unique, human-readable, and strongly-owned. It does so by embedding a database log within a public blockchain like Bitcoin, and replaying it locally to calculate the state and owner of each name. In doing so, a BNS node provides a full replica of all of the network’s state, which gives it the ability to service queries like prior name states and name historys.
BNS groups names by namespaces in order to provide different ways to register and use names, and furthermore implements subdomains to provide a cheap, scalable way to register many names for the cost of a single blockchain transaction.
Reach out to Mr. Jude Nelson
Remember, Blockstack posits that the DNS of today has never been able to achieve what BNS has now achieved – namespaces (online identity) that are contemporaneously unique, human-readable and decentralized (ownership, portability, security…).
We think Blockstack BNS offers –
BNS provides namespaces that are:
- owned by you
- controlled by the owner (all the data you generate is now yours)
- pre-built with
- public keys
- private keys
- digital certificates
- rooted in the blockchain for
In a nutshell, when you use BNS to register a namespace (name or domain name), one gets a secure and trustworthy namespace backed by an encrypted blockchain registered address and a very secure encrypted private key. BNS provides the complete package to give you security, trust and peace of mind when you interact with the internet, the Blockstack internet.
Note: If you do not have the Blockstack browser, please see this link (note – to enable the full functionality of any namespace (name/domain name) or dApp built for the Blockstack ecosystem (e.g., building a new internet, a decentralized internet, re-decentralizing the internet, that is distributed via the blockchain, bitcoin), you must use the Blockstack browser).
For help on installing and using the Blockstack Browser, please visit this link Getting started with the Blockstack Browser.
Resources re: Blockstack and dApps
- Frequently Asked Questions
- Blockstack Meetups
Thanks again for visiting The Stack CafeTM and we look forward to hearing from you. Please help us put out the word on Web3.0 TM by posting a comment below and signing up for e-mail notifications for future updates (right side-bar).
Let’s help build the new internet | The Decentralized Way.TM A decentralized internet | The Way The Future.TM Try out the new internet, The Blockstack Way.TM Blockstack: The New Internet – It Makes The Internet You Use Better!TM