Zoran Skoda Libra

Facebook (Fb) leads a megacorporate Libra Association, factually a consortium, backing up a blockchain project with some design characteristics of stablecoin (mascerading fiat currencies: representing/tokenizing/backed-by fiat currencies) and with massive appetite for hundreds of millions of users. The initiative, blockchain and the “cryptocurrency” are named Libra. The scale of the project implies that it is likely designed for hi scalability, though performance data of the testnet are not known. It does not use the proof of work, but less energy consuming Byzantine Fault Tolerant algorithm LibraBFT, a variant of the HotStuff protocol.

  • M. Yin et al., Hotstuff: BFT consensus in the lens of blockchain, arxiv/1803.05069
  • M. Baudet et al., State machine replication in the Libra blockchain, June 2019, 41 pp. pdf

It is questionable if it could be called a cryptocurrency as the supply is not governed by fully decentralized mechanism. The Libra currency is designed to be partly backed by Fiat resources therefore having some characteristics of stablecoin. Regarding that the initiative is corporate it is more vulnerable to regulation shocks from jurisdictions where Fb is based including gag orders pressuring for security backends and customer data handing to the authorities. Fb has massive history of nontransparency in its flagship product Fb social net and in the WhatsApp application (see the analysis of the breaches and accompanying bibliography here). Moderating the sensitivity of the public, Fb made business moves to hide its privacy problems, and partly remedy some surface issues. Fb made a separate subsidiary Calibra in order to separate from their social net business. A very principal problem is that true privacy of transactions could not be achieved in standard internet protocol, but needs that the network layer be designed for privacy not only enabling the end-to-end encryption of messages, but protecting from listening/spying the origin, size, time and so on of the original messages as one can infer much already from such info. Thus packets into which the messages are split and packed should not only be encrypted, but their true origin and some other characteristics should not be visible on the way. Other modern blockchain projects pay much attention to privacy not only on the level of user accounts, but at many other levels, including underlying networking and peer to peer protocols for nodes and private smart contract execution. The network level is fundamental. Let us mention network privacy efforts like mimble-wimble protocol for Grin and Beam cryptocurrencies, Gavin Wood’s whisper peer-to-peer protocol for Ethereum, Nikolai Durov‘s mtproto protocol of Telegram and TON blockchain which is accompanied with TON Proxy service for additional protection of privacy of nodes with large stake, with its own DNS service and so on. Another issue is a digital identity, where it is little known, but it is known that Fb did not enter the global efforts of the community to develop and accept the standards where user has complete control of whom to yield which part of its digital identity data, known as self-sovereign identity, which is a must. If such a massive project pushes for an identity whose protection depends on corporate players, then the privacy is globally in trouble. The blockchain is run by permissioned network of nodes (what is a good idea for some applications of blockchain but bad for cryptocurrency idea and global projects) with the agenda to go unpermissioned in later phase, frictions to this opening program expected both from corporate and from regulation side (besides the large scale testing in early phase should be in true Byzantine environment). From the technical whitepaper,

The network layer is designed to be general-purpose and draws inspiration from the libp2p project. It currently provides two primary interfaces: (1) Remote Procedure Calls (RPC) and (2) DirectSend, which implements fire-and-forget-style message delivery to a single receiver. The inter-validator network is implemented as a peer-to-peer system using Multiaddr scheme for peer addressing, TCP for reliable transport, Noise for authentication and full end-to-end encryption, Yamux for multiplexing substreams over a single connection, and push-style gossip for peer discovery. Each new substream is assigned a protocol supported by both the sender and the receiver. Each RPC and DirectSend type corresponds to one such protocol.

While Libra is not a true cryptocurrency, but a masquerade for fiat coctail and corporate conglomerate machine which is backing it via centralized “reserves”, it is often considered a competition to true cryptocurrencies. However, getting public at this scale sensitivized and informed general public about crypto and blockchain and as a result, initially, in June 2019, the cryptocurrencies got into investment focus of new user; in particular, most major cryptocurrencies like Ether and Bitcoin got in high demand and surged by large percentage. True cryptocurrencies should have checkable and distributed generation of new coins, not depending on belief into off-chain corporations who allegedly do he custody of the back up. Even if one the level of single transaction every user in the stable situation can redeem each coin for fiat, one can not be sure that the reserve has enough without trusting centralizing services. Moreover, the policy of the Libra association is to use for the reserve the fiat currencies of their choice, from countries which they judge as stable. By locking some of the currency they make the demand for more of that currency out and this way Libra would foster fiat of the country of their choice. By the manifesto, they will include more diversity – more stable countries’ fiat into coctail with time. And the association is made of big corporations, which can thus leverage their will at new countries which they can pressure to behave. It is proven in past that big corporations do not hesitate to pressure governments when they have an opportunity. The whitepaper boasts on providing means to replace cash to unbanked in third world countries. This means replacing cash in local currencies in countries like Nigeria and Mexico with Libra, which is backed up by the fiat of stable currencies. Effectively means replacing their native cash with reserve cash from G8 or alike.

While wide adoption of crypto is needed for network effects (including solving liquidity), the monopol of one crypto is not needed, blockchain interoperability envisioned by protocols like Polkadot, Cosmos and Ripple’s Interchain is sufficient unification, while allowing for different technologies and tokens. Interoperable world is better choice allowing a number of platforms and cryptos whose protocols and design are optimized for different features (latency, speed, capacity, block size and data capacity, privacy, security, flexibility, formal auditability etc.), because no technology can simultaneously be good in all these aspects. For simpler blockchain interoperability, only for interchanging the tokens without intermediaries, the simple mechanism of atomic swaps is sufficient.

The technological part of Libra has some interesting features and initial documents, while not very detailed are, in their small volume, very readable. In June 2019 some whitepapers, early code and testnet capabilities appeared with plans to go with full functionality and mainnet in early 2020. See whitepaper online, pdf, technical paper online, pdf.

The prototype node client software called Libra Core is written mostly in Rust. Libra deploys a new language Move for smart contract “modules”, see short overview and

  • S. Blackshear et al., Move: A language with programmable resources, pdf

“The key feature of Move is the ability to define custom resource types, which have semantics inspired by linear logic”. Note visible influence of Rust syntax on the Move syntax (similarly to Ink eDSL for smart contracts on Parity Substrate). The Move bytecode virtual machine commands are listed in the appendix to the move paper above. See also libra/crate vm. Move VM is a stack machine with a static type system. A commentary on the Move language is

  • Yu Guo (SEGBIT), ‘Move’ programming language: the highlight of Libra, bitcoininsider

Payment channels and more general state channels are envisioned for use on Libra, with appropriate design decisions.

Libra code can be found on github/libra/libra and the language part of the library (concerning Move, IR etc.) is here. Installation instructions are at developers.libra.org.

The negative sentiment on Libra from the cryptocommunity is as in the article at bitcoinist.com. The mainstream perspective is in bloomberg opinion article.

Initially, SEC is not approving the Libra model as the utility function of tokens is intermixed with the investement (securities) function, as the investors in early phase tokens would be later rewarded in some coins. (If it were not a stablecoin then the bet would be just in the value of the utility, which could raise and reward in that way.) See

Criticism of Libra architecture

  • Stephen Diehl, Facebook Libra is architecturally unsound

Last revised on May 1, 2023 at 15:24:58. See the history of this page for a list of all contributions to it.