The announcement of the Libra by Mark Zuckerberg in June this year has triggered an avalanche of comments. All comments have focused on particular aspects of the Libra, such as its financial, technical or regulatory aspects. But we need a view of the proposed Libra ecosystem as a whole.
According to Zuckerberg, “Libra’s mission is to create a simple global financial infrastructure that empowers billions of people around the world.”
For a system with such a grand goal, we all need to understand what it is and what its impact can be. For this, we need to analyze the entire Libra ecosystem. In this blog I give such an analysis.
I start in this part with what every user should know about the Libra. In the following parts I discuss the other important aspects of the Libra ecosystem:
- Part 2: The Libra Association: Who is involved, and how are decisions about the Libra made?
- Part 3: What is the role of Facebook and Calibra?
- Part 4: The Libra business model: How do the participants of the Libra network make money?
- Part 5: The Libra Strategy: How does Facebook try to sell the Libra idea and what have been the responses to this?
I will refer to the coins created by the Libra system as “libra” (singular) and “libras” (plural).
The Libra is a network
Like all cryptocurrencies, the Libra is implemented in a network of nodes on the internet. There are two kinds of nodes, validator nodes and user nodes.
First, let’s look at the user nodes.
Users. A Libra user may be an end-user like you and me, or a merchant, or a financial service provider such as a bank or exchange that offers Libra services. For example, a financial service provider could manage Libra accounts and its private keys on behalf of an end-user.
Each Libra user has one or more Libra accounts, just as you may have one or more bank accounts at the same bank. Libra users can perform Libra transactions, in which a user sends libras to another user, or receives libras from another user.
Wallets. To access your Libra accounts and to perform Libra transactions, you need a Libra wallet, which is a piece of software that you may install on your smartphone. Facebook has started a subsidiary, Calibra, to develop a a so-called custodial Libra wallet. This is a wallet that keeps your private keys to unlock the account, and allows you to send and receive libras on your account. Other companies can develop Libra wallets too.
Libra wallets will become available as an app on your smartphone. Calibra will also develop wallet functionality for Facebook Messenger and Whatsapp, so that Messenger and Whatsapp users you do not need to install a separate Calibra app.
The proposed end-user interface of the Calibra wallet will be extremely simple. You can find a short video here.
Each validator node keeps a database of all Libra accounts and transactions. The Libra network contains software that ensures that these databases are exact copies of each other. So we can think of the Libra network as one database, which is replicated by all validator nodes. In the above diagram there are four copies of the Libra database.
The organizations that run the validator nodes together form the Libra Association. More on this in part 2 of this blog.
A user can have as many Libra accounts as he or she wishes. An account contains data values that represent assets, such as Libra coins, or other resources. In the future, the system may keep accounts of intellectual property, certificates of origin, or other documentary assets.
An account may also hold modules, which are applications written in the Move language that is developed for the Libra system. In other cryptocurrency systems, modules are called smart contracts or distributed apps. Executing a Libra transaction means executing a Libra module.
Calibra and other developers will make read-to-use modules available on the Libra network. The first module that Calibra is developing is one to perform transactions in which libras are transferred from one account to another.
Validator nodes execute Libra transactions. They check the validity of a transaction, such as that the sender of the transaction owns the account from which the transaction is sent, owns the libras being transferred, and can pay the transaction fee. The validators jointly guarantee that Libra coins can be moved around without being duplicated, lost, or moved without authorization.
Despite the use of the term “blockchain”, the database does not have a blockchain structure. The database contains the history of all Libra transactions, signed by the validators. The Libra database is accessible publicly so everyone can analyze it (Libra Reserve, page 3).
Transaction fees and storage rent
Storing your Libra accounts in the Libra database and performing Libra transactions on them is not for free. Storing your account costs disk space, which you have to rent from the validator nodes. The mechanism to charge rent, and what to do if you fail to pay rent, is still to be determined (The blockchain paper, page 16). Presumably, to empower billions of people, rent will be low. However, there is no information on the Association’s intentions on how to do this.
Executing a Libra transaction takes processor time, and you have to pay a fee for this. The processor time needed to execute a transaction is called “gas”, and a transaction uses “gas” just as driving a car uses gas. Think of Libra “gas” as the petrol that a processor needs to execute your transaction. To execute a transaction, you have to pay for the petrol (“gas”) used by the processor. The longer it takes to run your transaction, the more gas it costs. The cost of the gas used to run your transaction is the transaction fee.
But unlike the petrol you buy at a petrol station, the price of gas to run a Libra transaction is determined by the user. If you send libras to another user, you tell the validators how many libras you want to pay for a unit of gas, and what the maximum amount is you want to pay. Needless to say, this is not the simplest way of charging transaction fees to empower billions of users.
The validators act as one, and all accept the same gas price. Transactions with higher gas prices get preferential treatment. The intention is to have low gas price in periods of normal operation (The blockchain paper, page 8). But it is not clear what is considered normal operation, or what is a low price. If the network is congested, transactions that offer lower gas prices may be dropped. And to get preferential treatment, users will be tempted to offer high gas prices. For billions senders with low income this would be a problem.
Using Libra wallets
End users of the Libra like you and me do not have to understand the technical details of the Libra network. However, it is good to be aware of some properties that you will experience during use. The first of these is performance.
To keep all copies of the Libra database exactly in sync, all validator nodes must agree about each Libra transaction. Each validator node checks each transaction and then all nodes vote on its financial correctness. If a weighted majority of validator nodes agree that the transaction is financially correct, the transaction is accepted.
The weight of each node in this voting process is determined by its investment in the Libra. We will see in part 2 that all members of the Association operate a validator node, and that the voting weight of Founding Members is determined by the investment they made in the network.
There are different algorithms to vote on the validity of a transaction but they all share the property that they are slow. Where centralized systems like Visa can handle 1700 transactions per second on the average with peaks of 24 000 transactions per second, decentralized systems like Bitcoin and Ethereum handle 7 to 20 transactions per second. The Libra Association hopes to achieve 1000 transactions per second when there are 100 validator nodes (The blockchain paper, page 22). This is much better than other cryptocurrencies (except Ripple) but still slow compared to Visa. And we do not know at this time whether this hope will materialize in reality. Because all 100 Libra nodes must communicate in the voting, communication overhead in each transaction is high.
Communication overhead gets worse when the system evolves to 500 or even 1000 validators (The blockchain paper, page 18). To achieve an acceptable [performance, the Libra Association will set a limit on the number of active validator nodes, determined experimentally. If transaction speed gets too low, no more validators will be allowed by the Association. Worse, if transaction speed gets too low, the node with the least voting power will be removed until the number of nodes is under the limit (The Libra Association, page 4).
Prospects for high transaction speed get even worse if we consider the intended move to a “nonpermissioned” protocol within 5 years of the launch of the Libra. “Nonpermissioned” is crypto-speak for a situation in which anyone with sufficient stake (investment in the Libra network) can become a validator node. In the case of the Libra, this means that anyone who owns a sufficient amount of libras can become a validator. This will allow the network to grow to an arbitrary size, making performance problems almost insurmountable. There are at least ten hard challenges to solve to move to a nonpermissioned protocol, that no one currently knows how to solve. So don’t hold your breath until Libra gets there.
All of this means that Libra transactions will probably be slow. Calibra hopes that this will not be a problem because it hopes that many payment transactions will happen “off-chain” (The blockchain paper, page 22). “Off-chain” is crypto-jargon for a transaction that takes place directly between wallets, without being registered in the Libra database. There are many ways of doing this, which share the property that you have to trust someone to behave as he or she promised. For example, if I lend you libras in a direct interaction with your wallet, you can promise to pay me back next month. Without registration of this promise in the blockchain as a smart contract, there is no way to enforce this promise and I simply have to trust you.
There are more sophisticated ways to do off-chain transactions, which require less trust. We can expect financial service providers to enter this market. This will make it more complicated to use the Libra, as you will have to check the trustworthiness of who you are dealing with. Not the best way to empower billions of people around the globe.
Banks can reject (“censor”) a transaction that is valid financially but that violates a rule set out by a government. For example, if a government thinks you are a criminal or terrorist, they can tell the banks to refuse your transactions even if they are financially valid. An important goal of cryptocurrencies networks is the absence of censorship. For example, in Bitcoin all financially valid transactions will be executed, regardless of what the government or anyone else thinks of you.
The Libra, in contrast, allows censorship. This makes the Libra network more similar to regulated banks than it is to cryptocurrency networks. Calibra has expressed the intention to abide by the rules and regulations for banks –presumably in every country in which it operates.
To sum up, the Libra Association (the validator nodes) will charge you libras for having an account and performing transactions. Like any bank, they may refuse your financially valid transaction if a regulator tells them to do so.
Due to the decentral architecture of the Libra network, transactions will probably be slow and we can expect financial service providers to jump in this gap by offering “off-chain” transactions that are fast.
If too many users submit their transactions at the same time, the network will get congested and users who offer the highest transaction fees will get their transactions executed first.
If too many validators join the network, transaction speed will become slow too. To achieve speed, the Association may remove validators with the lowest voting power. (Remember, validators vote on the financial validity of a transaction by a weighted vote.)
With such a powerful and central role, it is time to look at the role of the Association. How do they exercise their power? Are they responsible to anyone? And how is voting power of a validator determined? I explain this in part 2 of this blog.