You are here
BlockChain and Networking
What’s a BlockChain?
BlockChain is the technology behind cryptocurrencies such as BitCoin and Ethereum, and is becoming a popular mechanism for secure storage of arbitrary information. In this blog entry I will detail precisely what BlockChain is, and what the points of tangency are between it and the world of data communications.
The first tenet to appreciate is that a BlockChain is not a database – it is a ledger. A database stores information (in traditional databases in formatted fields, but more recently in arbitrary format) which can be entered, modified, and deleted. A ledger is an ordered list of transactions that can never be modified or deleted. Transactions in BlockChains are grouped into blocks, and the blocks form a chain. The chain is constantly growing, and once a block is entered into the chain it can never be altered or erased.
The second tenet is that a BlockChain in distributed. The chain of blocks is not stored in one authoritative location, rather it is widely dispersed and replicated. This decentralization makes it harder to tamper with the stored information. On the other hand, achieving distributed consensus is most frequently achieved by proof of work (although there are other possibilities, including proof of stake (Casper), Practical Byzantine Fault Tolerance (Tendermint) and Delegated Byzantine Fault Tolerance (NEO)). I have recently written about the huge financial and ecological costs of the proof of work mechanism and won’t repeat the argument here.
The final tenet is that a mathematical procedure allows anyone to readily verify that a block is truly part of the chain, without the need for an intermediary (such as a bank, a lawyer, or a government agency). This is often formulated as a statement about trust. You can pay a stranger with Bitcoins without divulging how many BTC you have or how you acquired them.
Trusted ledgers have many additional uses – verifying financial transactions, tracing title in land, tracking changes in a jointly authored document, self-execution of smart contracts, even securely supervising remote medical devices. There is presently a lot of interest in what is called “self-sovereign identity” – that is, proving who you are without identity numbers or papers. But what does this have to do with communications?
There are two potential points of tangency – networking for BlockChain and BlockChain for networking.
Networking for BlockChain
As previously stated, BlockChains most frequently rely on “proof of work”. This means that adding a new block to the chain requires solving a difficult mathematical problem (mining); the first to present a solution gets to add the block to the chain (and receives the reward for solving the problem). These mathematical problems are so complex that no single computer has a chance of solving them by itself; so pieces of the problem are allocated among many computers, and all share in the reward when one of these computers finds the solution. To put things in perspective, the Bitcoin BlockChain allows adding a new block every 10 minutes, and solving the problem in time currently requires millions of highly optimized mining processors.
Due to the competitive nature of this problem, and in particular the all-or-nothing reward for being first, between the cooperating computers there must be fast and reliable communications. If all of these computers could be collocated, then a resilient star architecture between the master computer dividing up the problem and the slaves should be the best alternative. However, no one datacenter has sufficient processing power, so the work has to be distributed over a WAN. This taxes currently available architectures, and going forward may drive the development of new ideas, for example, dynamic tree structures or information centric networking (ICN).
BlockChain for Networking
The other point of tangency is potential uses of BlockChain technology for networking. Of course, service providers may be amenable to payment via Bitcoin, or even using BlockChains for creation and maintenance of SLAs or tracking service calls; but here we are searching for true networking applications of BlockChain technology.
One potential use for distributed ledgers in networking has to do with addressing. All connectionless networks require network-unique addresses, and in all known networks the uniqueness is enforced by some centralized entity (e.g., the IEEE sells MAC addresses, IANA and the RIRs allocate IP addresses, ICANN and the TLDs provide URLs). Unfortunately, centralized entities aren’t perfect - they are dictatorial (e.g., may not be fair in allocating addresses, might charge excessively for them, etc.), can be compromised, and are usually slow. Is it possible to build an administrator-free purely distributed mechanism for address allocation based on BlockChain?
The answer to that question has been known for some time to be affirmative. BlockChain has been used to allocate identifiers for overlay networks (e.g., NameCoin), enabling mapping arbitrary addresses to IP addresses. Thus, for example, we could replace the hierarchical DNS system with a BlockChain that allows anyone to choose a URL, checks for uniqueness, and later can map the URL to the desired IP address.
However, this solution is limited to addresses that act only as identifiers – not locators. Can we use BlockChain for large standalone infrastructure networks? The problem lies in scaling. For small networks all we have to do is to store the location of each unique address (like the table in an Ethernet switch). Large IP networks rely on subnetworking indicated by address prefixes, which at first glance seems to require at least some centralization of address allocation.
Of course the Internet is already divided into autonomous systems, each representing some aggregation of CIDR addresses. So, a separate BlockChain per AS would maintain scalability, and could go hand-in-hand with a mobility scheme; and if these addresses are treated as ephemeral, then a ledger would be a natural way of supervising them. An alternative would be a single global BlockChain for suffixes (of course these could be arbitrary strings, not limited to bits) to which the user prepends a prefix according to location. Note that both of these alternatives might be vulnerable to DoS attacks on the address infrastructure.
Even if we could perform decentralized address allocation using BlockChain technology, that doesn’t mean that proof-of-work-based BlockChain is the ideal solution to this problem. As we have mentioned, proof-of-work is notoriously wasteful and relies on finding sufficient financial incentives. It is not clear that a ledger (rather than a database) is required for this application. In addition, BlockChain technology is so new that many of the complex (legal, security, financial) policy problems that it raises have yet to be resolved.
Whence BlockChain for Networking
Just as the most prevalent use of ledgers is for monetary transactions, the most widely deployed application of BlockChain technology is cryptocurrency. The value of the most popular of these has reached amazing highs but also displayed dramatic drops. While Bitcoin has the potential to dazzlingly facilitate international commerce, it can also expedite money-laundering. And while we are busy replacing incandescent light bulbs with LEDs to reduce the amount of man-made carbon being dumped into the atmosphere, the carbon footprint of a single Bitcoin transaction has risen to the equivalent of flying about 3 hours on a jumbo jet!
BlockChain can also be applied to other uses of ledgers, perhaps with less waste and in a more stable manner. Is BlockChain the answer to any questions in networking? Only time will tell.
About RAD's Experts Blog
We’ll be blogging on a wide range of hot topics affecting service providers and critical infrastructure network operators. Our resident experts will be discussing vCPE, Cyber Security, 5G, Industrial IoT and much, much more.