With the geth 1.5 release, Ethereum integrates an alpha version Swarm in its main client; a distributed storage platform that is part of Ethereum’s vision of Web 3.0.
The long-term goal of Ethereum goes far beyond creating a currency. Instead, the developers aim to build a decentralized Internet known as Web 3.0. While Ether, the digital asset fuelling the Blockchain, already serves as a gas to facilitate transactions and contracts, the other components of the web3 stack are still in early development. One of them has made it into a release of the Ethereum client geth as an experimental feature for the testnet; Swarm.
Swarm is, as developer Viktor Trón points out, “a distributed storage platform and content distribution service; a native base layer service of the Ethereum web3 stack.” The Swarm is similar to a dropbox or FTP server, where you can upload, download and share files, but in a way that is completely peer-to-peer. No downtime, no DoS, no censorship, no trust and no surveillance.
A built-in incentive system will make Swarm self-sustaining by allowing participants to sell resources like bandwidth or storage against Ether. So once the network is alive, it can hardly be undone.
Technically a Complicated Story
The primary objective of Swarm is to store Ethereum’s public records like the Dapp code or blockchain data. But it also serves as a decentralized dropbox clone and a base to host websites on Swarm.
Deeply integrated within Ethereum’s multiprotocol networks, Swarm can help Ethereum to scale and to connect contracts and operations with large data without the need to store the data on every node. With Swarm, it could become possible to build decentralized content distribution networks like Youtube or decentralized social networks like Facebook.
How Swarm works technically is a complicated story; nodes run a protocol called “bzz” on top of the Ethereum network with a set of rules defining their interactions. The nodes of Swarm take data, like document, mp3 or video files, cut them into chunks with a fixed size, map the chunks with addresses, hash the files, build Merkle trees and write manifest files that specify a path on how to find the chunks and put them together.
The second part of Swarm involves smart contracts. These incentivise the nodes to store and release the data. Smart contracts do not just pay nodes for spending storage and bandwidth, but also locks a security deposit as a pledge to assure that one node does not delete the files. The result can be that as something is uploaded in the Swarm, “it cannot be unseen, unpublished, revoked or removed.”
Right now Swarm is heavily alpha. The first integration in Geth enables tech-savvy users to use Swarm in the Ropsten ethereum testchain, while the incentive system is not enabled. To demonstrate that Swarm works, the Ethereum Foundation runs the Swarm Homepage with a 35-strong cluster on the Azure cloud with the decentralized network. To access the homepage you have to use Swarm by yourself. A guide explains how you can become part of the Swarm.
There obviously is a long way to go for the Swarm developers until the decentralized file storing system can reach a wider audience. But if this happens and if Swam becomes part of the graphical interface of lighter Ethereum clients like parity, then it can facilitate applications of Ethereum which are currently hard to imagine. And it can play an important role in the creation of an immutable, decentralized internet.