In the quest for Internet decentralization, one of the more notable projects working towards this is Bluzelle. It aims to create a considerably more secure way of user information storage and management. Its intent is to do so by way of constructing decentralized database systems. The project combines decentralized technologies with edge computing, which will help create a faster and more secure internet.
A key goal Bluzelle has is to create a completely decentralized database. One that has very few – if any – dependencies on a governing entity. Generally speaking, applications and servers communicating with one another have to be aware of certain things. Most notably, the IP addresses and hostnames that the other is using. These are concepts that are largely centralized and need to undergo hard-coding into the software. Alternatively, ones that need to “discover” it by means of a lookup.
However, that lookup in and of itself is usually centralized as well. Primarily, to a specific type of lookup or directory service. Probably the most common method is to employ the use of a centralized HTTP service.
When we apply the context of Bluzelle, we find that there is a requirement for all applications. They need to discover both swarms and nodes on the swarms. Nodes that spin up need to do the following:
- Discover swarms
- Make a choice on what swarm to join
- Discover other nodes on that swarm and peer with them
So, what is needed is an efficient method and to make sure that it is continuously operational.
An Ethereum solution
Bluzelle was luckily able to find a registry/directory service that would be an ideal use case for an Ethereum smart contract. They are able to utilize all blockchain properties such as data transparency and data auditing. What’s more, they can use them without the operational overhead of the deployment of conventional centralized service.
Eventually, they would write an Ethereum Swarm Registry (ESR).
Ethereum blockchains – like others – permit the implementation of decentralized applications (DApps). The core idea when it comes to DApps consists of deploying an application in the form of smart contracts. Moreover, doing so on an immutable blockchain. Thus, it will effectively eliminate credible application servers and singular points of failure. Ethereum Swarm has a design that will boost the rise of DApps. It plans to do this by operating as a decentralized data storage solution.
For context, a ‘swarm’ is a storage and communication infrastructure that is censorship-resistant, permissionless, and decentralized. This base-layer infrastructure supplies these services by way of contributing resources to each other. Accurately accounting for these contributions is primarily on a peer-to-peer basis. This way, it allows nodes to be able to trade resources for other resources. Moreover, it offers monetary compensation to nodes that are consuming less than what they are serving.
The general function of the ESR is to be a decentralized registry service for each and every Bluzelle swarm. This includes the swarm’s distinct identification and a list of various nodes existing on that particular swarm. This specific ESR acts as a decentralized ‘bootstrap’. One that is capable of solving certain challenges Bluzelle has. Every application and node…
- …communicates with the ESR at an Ethereum smart contract address that was preemptively established.
- …is able to discover swarms and nodes on those swarms.
- …connect itself to the swarm in a fashion that is truly decentralized.
Overall, there is little to no sense of dependency on any particular centralized solution. In fact, nodes have the ability to add themselves to the ESR if and when it is pertinent.
Swarm is basically Ethereum’s implementation of a functioning decentralized file storage network. It receives substantial support from the Ethereum Geth client. Interaction with the storage network has close linkage with the Ethereum blockchain. What’s more, for it to work, it requires an Ethereum account.
Data is divided into a series of blocks that go by the name of ‘chunks’. These typically have a maximum size limit of about 4K bytes. The network layer is generally pretty agnostic to what these chunks are representing. An example being if they are part of a file or any other piece of data. The distribution of chunks is done so across the network and a 32-byte hash of their content addresses it. This guarantees that the integrity of the data is verifiable. However, this introduces an entirely new problem with storing content that one can easily modify.
On the whole, hash addressing is not exactly user-friendly. It is because of this that there is an additional layer that is more lenient. That being the Ethereum Name Service (ENS), which allows users to register human-readable names for their content. The implementation of ENS is a smart contract on the Ethereum network. It’s easy to see it as the equivalent of the domain name service (DNS) facilitating content-naming in traditional internet services.
Ethereum Swarm sets itself apart from InterPlanetary File System (IPFS). It does not simply reference and conceivably cache content made accessible on the storage of a content owner. Instead, it establishes a cloud service onto which people can upload content.
As is, there is no guarantee that any of the content you upload will remain available. This is because nodes will often join and promptly leave the network freely. Alternatively, they may even cut down on their storage capacity. There are plans for a future incentive layer, primarily for paying back node owners for offering storage space. This plan is possible thanks to the close integration the system has with Ethereum.
How can someone benefit from this?
The Ethereum Swarm Registry is open-source technology. Likewise, Bluzelle’s client software and node software are both open-source. The system is authorized with open-source licenses, so other parties have free reign to look at the source code. They can learn from it and could potentially fork and apply it to their own codebases. Doing so will allow them to take advantage of the blockchain as a decentralized bootstrapping construct.
Ethereum is a tool that is helping to provide a decentralized discovery process. One that will facilitate applications and servers alike to operate without heavy reliance on an entity of any kind. Blockchain is supplying tremendous value by functioning as a crucial component that enables the existence of a decentralized foundation.