There has been a big discussion about how can blockchain fix content distribution and become the next revolution in content delivery (in particular, this Forbes article caught my eye). Blockchain is usually associated with cryptocurrencies like Bitcoin or Ethereum, so hearing blockchain and CDN in the same sentence is probably weird. But, in case you missed it, there are some cool companies using blockchain to distribute content worldwide, such as BlockCDN, Noia or DADI.
As a guy working in content delivery, it is great to see people thinking outside of the classical CDN box. Blockchain CDNs bring a more scalable, reliable and cheaper content delivery environment and this is a very important step forward. But they ignore one of the biggest challenges out there: the wireless last mile.
But before getting deep into the subject, let’s start with the basics.
In a few words, blockchain is a distributed and immutable data structure consisting of a list of blocks of data records. Each next block contains a hash of the previous one. As a consequence, it is not possible to change or delete any block of the chain without recalculating all blocks above.
The recalculation is heavy to process and needs the consensus of the members, enforcing that everyone has access to the same trusted version of the chain. And as I said before, it is distributed, so the chain is replicated over multiple devices. Consequently, each device has access to all the blocks of data: always updated, secure and reliable.
If you’re now asking "what the hell is stored inside the data blocks?", the answer is anything. For Bitcoin, it’s the transactions records, but it can also be content. And voilá, blockchain applied to content delivery.
In my opinion, the most promising solution combining content delivery and blockchain is definitely Noia. They are using the distributed systems to cache content closer to the end user. You can see it like a distributed PoP (Point of Presence) over multiple machines.
As shown in the picture below (source), Noia network serves as a second cache layer between the CDN and the end user (visitor). The advantages of the use of a second cache layer distributed by devices closer to the end user are obvious: reduced latency and unlimited scalability.
Considering it is a fully distributed network, it has a large number of nodes distributed all over the world. The probability to have a node closer to the end user is very high, reducing latency between the end user and the cached content. Furthermore, the number of nodes in the network can theoretically raise endlessly, so scalability should not be a problem.
Distributed networks open amazing new possibilities when it comes to content delivery, but we need to be aware that it still does not fix all the issues. The biggest reason is the base technology behind it - caching -, which is exactly the same technology being used for ages.
Don't take me wrong, caching is extraordinarily useful when you have a large number of users accessing the same content, but what about uploads or API calls? These requests cannot be cached because the content is always being modified. And most important: what about the wireless last mile?
Wireless, being a shared medium, suffers from high interference, causing packet loss. This means that both instability and unreliability are constant characteristics of wireless, which cannot be solved by placing the content closer to the user. And this is the biggest problem of mobile content delivery nowadays. As an example, with 0.1% of packet loss, downloading a file can take five times longer.
In summary, blockchain CDNs, focusing on the combination of centralized and decentralized caching systems, have a huge potential. It can bring superior scalability and reduced costs to the traditional CDN approach and we will definitely see more solutions like these in the content delivery ecosystem. However, the major problem for mobile content delivery is still there: protocols can’t handle the instability of the wireless last mile.