Arweave - Welcome to the Permaweb
Permanent, Censorship-Resistant, Decentralized Storage is a topic that is very close to my heart as a Front-End developer.
In a previous lifetime, I used to upload website assets to shared hosting using software such as FileZilla.
I remember clearly that one of my projects was plagued by a stream of continuous anonymous complaints, probably a competitor of my client, which resulted in a specific project I deployed to be taken down ex-officio by the host, in a kind of knee-jerk reaction, even before the veracity of the claims was examined.
Needless to say, this resulted in a very embarrassing situation, in which the customer questioned my professionalism and my ability to effectively deploy a project.
At that time, decentralized storage solutions, such as the ones we find on the market today, ie SIA, IPFS, DAT, STORJ or even ZeroNet (great for static content), would have been immensely useful. Had I used one of these solutions, no one would have been able to take down my assets and site. Solutions such as these are known to be censorship-resistant and tamper-proof, which is why demand for decentralized storage is only increasing in a context of global online interventionism built on a foundation of political correctness.
Today I would like to introduce you to Arweave, an incentive-driven, massively scalable, decentralized storage solution that does things a little differently.
Arweave, built on top of HTTP, unlike its cousins DAT protocol (DAT://), Hypercore (HYPER://) and IPFS (IPFS://), stores data on-chain, permanently. This project leverages what it has baptised the Blockweave, to achieve significantly lower communication overhead than traditional Blockchains, as we will see shortly.
Developers are able, thanks to Arweave’s App development Toolkit (ADT) to deploy apps and webpages to the “Permaweb”.
The four foundational layers of arweave are: 1. the Blockweave, 2. Proof of Access, 3. Wildfire and 4. Blockshadows.
Let’s dive in!
1. The Blockweave
The Blockweave is fundamentally different from Blockchains. Traditionally, Blockchains such as the Bitcoin network require nodes to have a full copy of the network. The State (a critical notion) of a Blockchain is replicated in its entirety in every node. But such is not the case for the nodes of a Blockweave. Blockweave nodes are only required to have a BlockHash List (BHL), which is a copy of the Hash of all previous Blocks; a Wallet List (WL) which is as the name implies a list of all active wallets. With these two things, which as you can imagine weigh a lot less than a copy of an entire network, nodes are able to join a Blockweave almost immediately.
The BlockHash List and the Wallet List (which will soon be replaced by an hypercore-style append-only Wallet Log, see point 8.2 in Arweave’s Yellow Paper) contain all the information needed to process new blocks and new transactions.
The BHL and WL are kept up to date and synced by the miners when mining and validating new blocks.
Having a copy of the Wallet List (WL) allows nodes to verify transactions. The BlockHash List, a copy of which is distributed with every new Block, allows old blocks to be verified and new blocks to be evaluated effectively.
2. Proof of Access
In order to mine and validate Blocks, miners need (or needed, as we shall see below) to possess a reference to previous blocks called the “Recall Block”. In other words, miners are required to provide Proof of Access to old Data in order to mine new Blocks.
How is the “Recall Block” selected exactly? The selection of the Recall Block is based on the hash of the previous Block and the Previous Block’s Height. This results in a deterministic but unpredictable choice of Block from the Blockweave’s history.
Once a miner is in possession of a Recall Block, the transactions in the Recall Block are hashed alongside those found in the current Block to generate a new Block.
Arweave’s Proof of Access was replaced by SPoRA, Succinct Random Proof of Access, at 20:03 on February 24th 2021, at Block 633720. SPoRA marks an important upgrade to Arweave.
As we have seen above with our description of the Proof of Access mechanism, new blocks were required to have a reference to previous blocks. SPoRA removes this requirement while creating better incentives for miners to replicate data more efficiently. SPoRA also reduces the energy needed to maintain the network, resulting in a cleaner, more sustainable infrastructure.
Wildfire is a ranking system designed for nodes – they are ranked according to their generosity, responsiveness and accuracy. The Blockweave becomes, thanks to Wildfire, a self-optimising network, as node rankings determine how quickly new blocks and transactions are distributed to peers. Therefore, it becomes clear that there is a financial incentive to maintain a high ranking, to respond quickly and accurately to other peers, in order to be among those who will obtain blocks and transactions first. Wildfire creates a network topology for efficient distribution of data.
Blockshadows as a notion is absolutely brilliant. The idea is to decouple transactions from Blocks, and only send between nodes a minimal block “Shadow” or skeleton that allows other nodes to reconstruct a block of arbitrary size, instead of transmitting the block itself. How brilliant is this?
What does these Blockshadows contain? Blockshadows contain a hash of the wallet list and the Block Hash list, and instead of transactions a list of transaction hashes is included as well. A node in possession of this information can reconstruct any block.
The use of Blockshadows lowers communication overhead in a big way, allows fast consensus and makes massive transaction throughput a reality.
Arweave is a data marketplace in the purest sense, and by this we mean that it connects users who have free storage with those who need it. Users with free disk space are rewarded for storing data on the network.
Those who store data on the network are given AR tokens. 55 million AR tokens were minted in the Genesis Block at network launch on the 8th of June 2018. An additional 11 million is gradually being introduced as Block mining rewards. Therefore, the maximum circulation of the AR token is 66 million. Today, the market capitalization of the Arweave project is 546 million US dollars, with the price of one unit, at the time of writing, standing at 16$.
A principal upfront payment is asked of users for storing data on the network. And here is something really interesting and thought-provoking: considering that the price of storage decreases over time, the interest (or in other words, the purchasing power of the upfront payment which decreases at a slower pace than the storage spend) ensures that data is stored for a staggering 200 years!
A host of Fantastic Applications
The official Arweave directory is full of surprises and really gives an indication that this project is headed for greatness. From decentralized discussion forums (like Arboard) to block and transaction explorers (such as Viewblock), the directory showcases the power of the platform for which it has become rather easy to deploy thanks to tools such as Arweave Deploy (a command line tool designed to streamline the deployment of apps and webpages to the Permaweb) and Arweave.js.