Just like almost everyone in the blockchain space, I was very excited to learn about Facebook’s Libra blockchain and coin. Like many big moments in technology, the launch of Libra marks a step forward not because of unprecedented innovation, but rather because it takes a lot of advancements made in the field and makes use of them in what may become a mainstream product that touches the lives of billions of people. That said, I must add that the work behind Libra is nothing short of brilliant. Integrating so many state-of-the-art technologies into what seems to be 3 very intricate products, that can shortly be ready for large-scale deployment, is extremely complex. In such complex projects, fundamental errors are easy to make and may fail the entire endeavor. From what Libra published so far, I see a robust framework that appears very capable of succeeding at its very ambitious goals.
Libra is actually three things tied together: a technology, which I’ll further refer to as the “Libra Blockchain”, a currency I’d call the “Libra coin”, and a payment wallet service called “Calibra”. These three are developed and launched together, but in fact, the Libra Coin could have been launched on other blockchain platforms, the Libra Blockchain could be used for other purposes than the Libra Coin, and Calibra could have been launched completely separate from the former two. In this post, I’ll try to explain what each of these projects is.
This post represents my understanding of products and technologies announced by Facebook, Calibra, and the Libra Association. I may be wrong in some of my analysis or may have missed some details. If readers notice anything I might have missed, please shoot me an email and I’ll happily correct. Some of my analysis is based on speculation or forecast, especially when speculating about the strategy of the involved players. Speculation about strategy should be taken with more than a grain of salt, as not only the speculation could be wrong, but also the strategies tend to change over time.
Of the 3 parts in Libra’s announcement, the coin gets the most buzz and is mostly referred to as the revolutionary part of Libra. In this case, I believe, the rumors of a revolution have been premature.
Let’s start with what the Libra Coin is not: it is not a form of digital cash that will replace whatever form of payment people use. In fact, it does not appear to be aimed at “people”, “end users” or “consumers” at all. (That part will be covered by Calibra). This is my conclusion from having read through the Libra whitepapers and noticing what isn’t there:
So if Libra isn’t a currency for consumers, what is it really? I believe it is designed to be a means for settlements between large apps and custodian wallets, in such a way that the consumer accounts are managed on private ledgers and only aggregate settlements occur on-chain.
For example, let’s imagine two apps using the Libra network - Uber and Calibra. Calibra users may pay Libras for their Uber ride, but they don’t need to send money off their own Libra account on the blockchain to their ride’s Libra address. Instead, the transaction details are agreed between by the operators of both applications (a state channel can be used for this, but in fact, the use of a cryptographic protocol is not necessary). Calibra and Uber will see many payments going through between them in either direction and will periodically settle the balance by sending Libra between the two companies’ accounts on the blockchain.
We can see parallels between this use of Libra to the use of the SWIFT network, which is primarily used for low-frequency settlement payments between businesses. Libra Coin can be seen as a parallel to XDR, a basket of currencies that is defined by the World Bank and is sometimes used in cross-border contracts as an interim currency for settlements. For example, telco operators from different countries, which bill each others’ subscribers for call termination and roaming services, use XDR for their settlements thus avoiding a situation where one operator’s local currency is used instead of the other’s.
Hopefully, I convinced you that Libra Coin is not intended to be a universal form of payment. But the buzz that we hear — everywhere from morning shows on TV, financial newspapers and all the way to crypto-twitter — says it is. The confusion comes from mixing it with Calibra, which does aim to become a universal payment app.
Calibra is a payment wallet that will be integrated into WhatsApp and Facebook Messenger, the world’s most popular messaging apps, with a reach of 1.6bn and 1.3bn people respectively (the third runner-up is WeChat, the most popular messaging and payments app in Asia, with around 1bn users). It is similar in nature to other payment/wallet apps like Venmo, Zelle, WeChat and hundreds of other apps operating globally.
As such, Calibra is licensed in the State of California as a money transmitter, and will probably acquire similar licenses in other territories in which it launches the wallet service. They devoted a large team filled with PayPal veterans (located just a few floors below my office in Tel Aviv) to fraud prevention, which is less common with crypto wallets where payments cannot be revoked. Most likely, transactions between Calibra users will be processed on its internal ledger, and have nothing to do with blockchain. That way Calibra can operate as early as 2020 without worrying about violating privacy laws or financial regulation.
One difference remains between Calibra and other wallet apps, and that is the use of local currencies for payments. Product prototypes illustrated on the Calibra website show users converting their local currency to Libra when making transactions. My guess is Calibra will end up using local currencies by default, rather than converting to Libra, except in cross-border payments. If that is the case, the estimates of the size of the Libra Coin economy and the size of the fiat reserves it is expected to stockpile are also exaggerated.
In addition to the coin and payments app, Libra introduced a distributed ledger protocol for smart contracts on which the Libra Coin will be issued. While the protocol does not boast any exciting novelties, it does represent a well-designed state-of-the-art DLT.
Hopes that the blockchain protocol introduced by Facebook can be permissionless were baseless. When the main stakeholder behind a project is a company with $200bn in market cap and over $10bn in cash reserves, both proof-of-work and proof-of-stake schemes would prove powerless if that stakeholder wishes to assert a point. Unsurprisingly, Libra chose to form a consortium in which every company around the table gets an equal vote.
Personally, I think this is a good development. We’ve only had permissionless protocols for a few years and already there are serious doubts on whether they are sustainable. Whereas proof-of-work comes at a huge cost to the environment and wreaks havoc in the energy markets, the economic costs of scaling a proof-of-stake network in an incentive-compliant manner (i.e. no security risks) are still unknown. Even state-of-the-art systems like the one we use in Orbs may take years to validate. Crypto world needs fallback options in case permissionless models prove to be unsustainable, and of these options, consortium and federated models appear to be the most promising ones.
LibraBFT is a permissioned, leader-based consensus protocol with finality based on the HotStuff consensus protocol, which is in turn based on PBFT. In the great debate of consensus protocols, they chose a fast consensus protocol with finality, over a more secure “eventual-finality” protocol. But in some sense, this already feels like the debate of last year, and the verdict (fast finality) is already given.
One design choice that does catch the eye is that the consensus is reached regarding the current state, rather than block content. This may seem confusing to people who aren’t into the architecture of blockchain protocols and even sparked a debate in crypto-twitter about whether Libra can even call itself a “blockchain”.
I’ll try to explain what this means: in classical DLTs, every node maintains its view on the state of the ledger. Every new block is signed and distributed, and if it is verified in consensus, every node processes the block and applies the changes to the ledger. Since all nodes process the same block, they should have all reached the same state after processing it.
This has practical implications on how the node operates. Nodes are not required by the protocol to maintain transaction history or to regenerate their ledger state by re-executing the transaction history. This saves on both storage, as storing the entire block history with some overhead of cryptographic signatures can add significant costs to maintaining the ledger, and on the simplicity of putting a node up-to-speed with its peers, as recreating the state by replaying millions of transactions tends to be a complicated and unstable process. It also helps prevent a theoretical state (which could occur due to a bug in the software implementation) in which the two data stores, the block storage and the state storage, are inconsistent with each other. In blockchain protocols in which the truth is determined by the blocks, an inconsistency between the two stores could result in a future blockchain fork. Libra’s consensus over the ledger state would, in such a case, stop writing to the ledger until the inconsistency is resolved. While the latter may sound less healthy (stopping the entire system), this is the preferred design choice because it is extremely hard, and sometimes impossible, to remedy an inconsistent ledger following a fork. On the other hand, it makes forking impossible even in the theoretical case consensus was reached over invalid transactions, which raises concerns about validators having the power to corrupt the ledger without remedy.
Although the Libra Blockchain is a general-purpose smart contracts platform, it is focused mostly on crypto-asset transfers. Libra are introducing a new language for smart contracts, called Move, with inherent advantages in managing such assets. Features such as formal validation of asset integrity, both in compile time and in runtime, are very promising. In my opinion, this is the most exciting novelty of Libra.
Moreover, Move has a great potential in beating Ethereum’s EVM and Solidity in their home field. In my opinion, EVM has failed to become a safe environment for agreeing on and implementing smart contracts. Hopefully, Move can fix much of what is wrong with EVM. However, the main caveat of using bytecode as a basis for smart-contract remains: smart contracts need to be human-readable, and it is unlikely that humans will be able to review and consent to a bytecode contract. The alternative is using the source code as the basis for the agreement (and have every node compile or interpret it independently). This requires consensus to allow for nondeterministic execution, which raises a lot of implementation challenges. On the other hand, it opens the door to using existing programming languages, making smart contract development more approachable.
The fact that a lot of the hype revolves around misconceptions on how Libra will work, does not make it any less significant. Libra creates a powerful combination of a world-wide, hugely adopted payments app, with a blockchain platform that enables any business to connect to that payment network seamlessly (and with the added benefit of being able to use smart contracts as they do so), and an intermediate currency that facilitates cross-border trade. Its mission, as I see it, is to create an alternative financial infrastructure in which large consumer-facing apps interact that is independent of the current banking system. If this happens, it will have huge implications on the structure of the global financial system, and on the power of governments, banks and institutional investors in it.
With all that in mind, I have to ask myself, where does all that leave Orbs, the public blockchain platform I participate in creating? Perhaps I’m overly optimistic, but the way I see it Libra’s success would be great news for us. Being a general-purpose smart contracts platform, aiming to become the infrastructure of any public decentralized application, we don’t really feel that we’re in competition with Libra on being a specialized infrastructure for financial services. On the other hand, many of the challenges we face are aligned, and both projects have a lot to gain from the R&D efforts of the other. Libra will also face the challenge of bringing a lot of the concepts of decentralized governance and being permissionless to mainstream uses, facing regulators, public opinion, academia and more. On many of these fronts they will be pioneers, and the results of their actions will affect much of the blockchain industry.