RaiBlocks won the community vote on which cryptocurrency I should review next: http://www.strawpoll.me/14761169

Disclaimer: I don’t own any RaiBlocks, haven’t owned RaiBlocks in the past, and don’t plan to own any RaiBlocks in the future.

RaiBlocks is a cryptocurrency that supports feeless, near-instant transactions, with tremendous scalability. It does so by veering from the traditional single-threaded blockchain data structure to a directed acyclic graph (DAG) data structure. RaiBlocks uses a unique DAG that the team calls a block-lattice.

As Bitcoin’s price rose over 2017, so did its transaction fees. The developers of Bitcoin’s insistence on keeping Bitcoin’s maximum block size at 1mb has caused tremendous congestion in its network. This congestion brought many altcoins with low fees and fast transaction times into the limelight. RaiBlocks, which boasts feeless and near instant transactions, was one of them. From a price of $0.20 in December to a peak price of $35 in early January, RaiBlocks’s price boomed as Bitcoin’s price stalled. At the time of writing, RaiBlocks’s price has stabilized at around $22.

RaiBlocks’s claim to fame is its feeless transactions and tremendous scalability. This sounds too good to be true and has had many people raising their eyebrows. The two fundamental properties of cryptocurrencies are decentralization and consistency and it’s generally accepted that it’s incredibly hard, maybe even impossible, to create a cryptocurrency that satisfies all three criteria of the “DCS triangle”: decentralization, consistency, and scalability.

So is RaiBlocks legitimate? Is it everything that it claims to be or is it vaporware? Let’s dive into the technology to see how it works.

10,000 feet summary

  • RaiBlocks was started in 2014 as a side project by Colin LeMahieu. The project took three years to complete and a fully functional main net was launched in 2017.
  • RaiBlocks has a fixed, maximum supply of 133,248,289 XRB. All XRB was created when the main net was launched.
  • All transactions are free and they are confirmed within 5 seconds. RaiBlocks has an extremely high network throughput capacity and is only limited by computational speed and data transfer delays.
  • RaiBlocks uses a DAG-based, block-lattice data structure instead of the traditional single-threaded blockchain.
  • Consensus is maintained through a voting mechanism. Validator nodes vote on a world state that they believe is true. The number of votes each node has is the addition of the number of XRB owned plus the number of XRB delegated to the node by other accounts.
  • The RaiBlocks team didn’t conduct an ICO and instead distributed RaiBlocks for free through a web faucet. 7,000,000 XRB was retained as a development fund.

Is RaiBlocks a scam?

I’ve scoured through the whitepaper and looked over the team’s history and believe that RaiBlocks is everything it claims to be, but with a few caveats. There are many open questions around its consensus algorithm. It’s not well tested and to my understanding, lacks peer review. This increases the risk of critical flaws that could bring down the network. Although RaiBlocks does indeed support near instant and free transactions, the jury is still out on whether the consensus algorithm is correct and robust.

Besides open questions on the integrity of RaiBlocks’s consensus algorithm, it’s also important to note that RaiBlocks is more centralized than traditional blockchain cryptocurrencies. RaiBlocks’s validation nodes are very very to operate and they do not provide any financial incentive. This means that the number of validators on the network will tend to be very few living it inherently prone to centralization.

RaiBlocks is not a scam.

How does RaiBlocks work?

RaiBlocks uses a novel data structure known as a block-lattice. While traditional blockchain-based cryptocurrencies maintain a single, global blockchain, RaiBlocks maintains a blockchain for every RaiBlocks account. Each blockchain can only be updated by the its owner.

To send funds, the sender needs to issue a “send” transaction in its own blockchain and the receiver needs to issue a corresponding “receive” transaction to its blockchain. This is why RaiBlocks is so fast. Because the account is the only entity that can update its blockchain, each blockchain can be updated immediately and asynchronously. This results in really fast transactions. Once a blockchain update is made, the transaction is propagated across the network and as long as no validator discovers a conflict, the transaction is confirmed.

The RaiBlocks network consists of wallets and validator nodes. In order for a wallet to issue a transaction, it must send it to a validator node. The node validates the transaction and then broadcasts it to all other validator nodes that it’s connected to. Every subsequent validator node performs the same validate-and-relay process until the whole network has seen the transaction.

A validator node keeps track of the state of the entire network by storing every address’s blockchain. Conflicts or “forks” happen when a published transaction conflicts with a validator node’s internal state. To resolve the conflict, the node initiates a voting process by announcing the conflict to other nodes. The voting process occurs over a predefined period where each node votes on a state of the network it believes is correct. The number of votes a node has equals the amount of RaiBlocks it owns plus the RaiBlocks delegated to it from other accounts. When a state has more than 133,248,289/2 votes (133,248,289 is the total number of XRBs in existence), it’s automatically accepted as the real state of the network.

The RaiBlocks network provides no rewards for running a validator.

To mitigate spam, an account needs to perform an easy proof of work problem to add a transaction to its own blockchain. This is, of course, not a cure-all as transactions can still be created within a few seconds.

Team and history

The key developer behind RaiBlocks is Colin LeMahieu. LeMahieu started developing RaiBlocks in 2014 and he released the network in 2017. RaiBlocks didn’t hold an ICO and instead, distributed the cryptocurrency through a web faucet. Users need only complete a captcha in order to receive RaiBlocks.

The team behind RaiBlocks is small and fairly unknown but with the cryptocurrency’s recent success, LeMahieu is in the process of building a larger team. Expect RaiBlocks to make big ecosystem plays in 2018.

PayPal lead engineer + RaiBlocks

It’s interesting to note that a lead PayPal engineer built a RaiBlocks checkout app as a weekend hack project. Check it out here. For a lead PayPal engineer to build something with RaiBlocks, even if it was just a weekend hack project, is quite significant for this nascent cryptocurrency.

RaiBlocks vs IOTA

IOTA is another cryptocurrency that offers free and near instant transactions with high scalability. IOTA, like RaiBlocks, saw a tremendous increase in price over the past month. It’s not surprising that the two are frequently compared against each other. Here’s how the two cryptocurrencies differ.

As mentioned above, RaiBlocks uses a block-lattice structure where every account has its own blockchain. IOTA uses a global DAG data structure (called Tangle) where every node in the graph represents one whole transaction. In order to issue a new transaction, an account needs to validate two previous transactions by solving an easy proof of work problem. The new transaction would then “reference” or connect to the previous two transactions in the Tangle.

While IOTA transactions happen in a single phase (i.e. one transaction that represents both a send and a receive), RaiBlocks transactions happen in two phases: a sender needs to issue a “send” transaction in its blockchain and the receiver needs to issue a corresponding “receive” transaction.

RaiBlocks is more decentralized than IOTA (though both pale in comparison to Bitcoin and Ethereum). IOTA currently needs a centralized Coordinator to ensure network security and direct network progress. This is because IOTA’s network security is directly tied to the number of transactions occuring in the network. In low transaction conditions, network security drops significantly. In theory, the Coordinator will eventually become unnecessary as the network reaches a critical mass of adoption but IOTA is far from this reality. A scary consequence of the existence of a Coordinator is the fact that IOTA’s developers can freeze any user’s funds at a whim… and they have done so before (source). The security of RaiBlocks’s network, on the other hand, does not depend on the amount of transactions going through it. As such, RaiBlocks currently doesn’t need a centralized entity as a security crutch.

But it’s not all that bad for IOTA. After all, it was one of the first movers for free and fast cryptocurrencies and it has an ecosystem advantage over RaiBlocks. IOTA has more users and the IOTA Foundation has more business connections. For example, the Foundation recently launched an IOTA Data Marketplace initiative with many large companies participating.

I am primarily concerned with how expensive it is to operate a RaiBlocks or IOTA validator node since both require high performance computers but the network provides no financial reward to do so. This discourages the operation of validator nodes and the less validator nodes in a network, the more centralized it is and thus the less secure it is.

Project concerns

Concerns with the consensus algorithm

As mentioned above, there are many open questions around the consensus algorithm. Given that RaiBlocks is so young, it’s not well tested and lacks peer review. This introduces the risk of a serious flaw in the consensus algorithm. For example, what happens if there aren’t enough votes for a quorum in order to resolve a network conflict? Currently, validator nodes rely on the maximum supply number (133,248,289 XRB) in order to determine a quorum and it’s totally possible that a voting process could not have enough validator nodes participating.

Here’s another big question I have: in the event that parts of the RaiBlocks network get separated for a long period of time (perhaps due to network issues or other freak occurences), what happens when you rejoin the separated networks? Will the rejoined network be crippled from all the voting processes that would inevitably take place? Is there a mathematical guarantee that the new network will recover?

These are all very important questions and their answers will determine the robustness and, ultimately, the longevity of RaiBlocks.

Spam vulnerability

RaiBlocks, being inherently feeless, is highly vulnerable to spam. I could run a script where multiple accounts will constantly send transactions between each other creating massive blockchains. Run long enough, it will make validators incredibly expensive to maintain.

It costs next to nothing to create spam in the system yet spam can be very costly. Unlike the traditional blockchain where storage and computational costs are predictable, RaiBlocks’s feeless transactions and scalability makes both of these costs highly unpredictable and there is no rule that prevents them from skyrocketing.

Expect these spam attacks to occur as RaiBlocks increases in popularity and we will have to see how the development team responds.

RaiBlocks doesn’t incentivize decentralization

RaiBlocks’s validator nodes are very expensive to operate run. The operation costs consist of high network throughput costs and modest processing and storage costs. Since there’s no reward for running a RaiBlocks validator node, validator node operators are prone to centralization.

Some people argue that this is not a problem since wealthy businesses relying on the RaiBlocks network are incentivized to run validator nodes to secure the network. Large investors might also be incentivized to run validator nodes in order to secure their investment. However, we have yet to see if this is true.

Limited applications - no smart contracts

Smart contracts are an undervalued yet very powerful extension to cryptocurrencies. I have a strong feeling that the any cryptocurrency that wants to be successful in the long run must support smart contracts. However, I have reservations on whether RaiBlocks will ever be able to support smart contracts given that its system is so radically different.

Bottomline - am I bullish on RaiBlocks?

RaiBlocks works as described - near instant and feeless transactions with unlimited transaction throughput. It has a lot of potential to seriously challenge big names like IOTA and even Bitcoin. However, RaiBlocks is currently being held back by an unproven consensus algorithm, spam vulnerability, centralization concerns, and the lack of smart contracts. Nevertheless, the network in its current state works and it works well. Although there are still many open questions around the project, I am quite bullish for it.