This article was written by Dr. Chen Zhisheng.
Establish a blockchain that supports stable cryptocurrencies to provide convenient electronic payments to people around the world.
- Babbitt column | Six key points of Facebook's CaLibra/Libra
- US lawmakers ask Facebook to suspend cryptocurrency projects and accept hearings first.
- Federal Reserve Chairman: Don't worry about the cryptocurrency Libra will replace legal tender
- Libra Association Leader: Libra will be launched as scheduled in the second half of 2020
- Zuckerberg: Libra will enhance US financial leadership and has no intention of competing with sovereign currencies
- In-depth interpretation of the use of Suichang: Libra is the future of cryptocurrency innovation
The paper emphasizes that the blockchain is a decentralized programmable database. Reflecting Facebook's full sincerity, it is to apply. Switch to other companies, which dare to call your blockchain is a database. In the blockchain, there is a scorn chain. The public chain despise the alliance chain. The alliance chain despise the private chain. The private chain has to look at the database.
So the entire Libra technical paper is centered around the establishment of a blockchain platform for electronic payments.
How to do it?
In order to establish the electronic payment blockchain platform, the Libra protocol was proposed. The goal of the agreement is to promote innovation, lower barriers to entry, and improve financial services. Therefore, in the Libra agreement, not only technology, but also community management, ecological construction, etc.
In order to test the Libra protocol, a protocol prototype was developed and developed: Libra core. The meaning of “core” here is to develop a foundation for a blockchain building. It is expected that the whole world will participate in the construction of the Libra agreement and make joint efforts for improvement.
What is the specific function of the Libra protocol?
Paragraph 2 of the abstract states that the Libra protocol allows the verifier (ie, the biller) in the system to jointly maintain this database of programmable resources, which are representatives from different parties. There is a new term here: programmable resources. This resource is owned by the user's account and complies with the rules set by the resource developer.
Specific resources can be coins, or other things with programmable features. For example, it can also be a bond or the like.
The verifier processes the transaction and executes the agreement with other verifiers to achieve a consensus on the state of the database, ie, the consistency of the books. Trading is based on rules already defined in the system. In future versions, users can customize smart contracts to process transactions by using the Move programming language. Another important feature in the Libra blockchain is the built-in programming language Move for trading scenarios. However, the programming language is not yet fully mature and no official version has been released.
The core mechanisms in the Libra blockchain are defined by Move, such as currency, to validate members. These core mechanisms help to establish a unique governance mechanism that is currently based on the stability and reputation of existing participants, but will transition to a fully open system over time.
The above is the entire content of the abstract. By reading the abstract in the paper, you can understand the outline of the paper, such as: purpose, what to do, how to do it, and effect.
From our analysis of the abstract of the paper, we can understand that the purpose of the Libra blockchain is very clear, that is, to establish a worldwide blockchain payment system. At the heart of the system is the Libra protocol, which is the cornerstone of the Libra blockchain. The target is to maintain a database of programmable resources.
At present, the Libra blockchain only implements the prototype of the Libra protocol, and more development is reserved for more participants to jointly develop. The core mechanism of the Libra protocol is defined by the Move programming language, so it is flexible and scalable. However, in order to land and test, users can't customize the rules. As you can see from the abstract, the Libra blockchain is a coalition chain, and the bookkeeper (called the verifier in the paper) is a representative of the Libra blockchain and is a closed circle. Of course, the vision is to gradually open up to all participants who hold Libra coins.
The entire technical paper is divided into 10 parts:
2 Logical Data Model–Logical Data Model
3 Executing Transactions–Execution of Transactions
4 Authenticated Data Structures and Storage – Authenticated Data Structures and Storage
5 Byzantine Fault Tolerant Consensus–Byzantine Fault Tolerance Consensus
7 Libra Core Implementation– Libra Core Implementation
9 Implementing Libra Ecosystem Policies with Move–Using Move to Implement Libra Ecosystem Rules
10 What's Next for Libra?– Libra Development Planning
If the abstract is a condensed description of the entire paper, the introduction is an overview of the paper. Looking at the side of the mountain into a peak, the distance is different, the introduction will further introduce the starting point, technical outline, innovation and challenges of the paper. Therefore, the introduction must be written well, and the reader or reviewer can make an impression on the paper through the introduction, which directly affects the future of the paper.
After reading the introduction of the Libra technical paper, you can have an understanding of its entire technical framework, innovation, performance, and so on. For general non-technical personnel, after reading the introduction, you can understand the characteristics of the Libra blockchain.
The first paragraph of the introduction leads to the problem that the Libra blockchain wants to solve:
Although the Internet has greatly facilitated the development of the financial services industry, access to financial services is still limited for those most in need of financial services – affected by cost, reliability and cross-border remittance capabilities.
In order to solve the above problems, the paper proposed the Libra protocol. The agreement supports the Libra ecosystem to address these challenges, expand capital access, and serve as a platform for innovative financial services.
In order to achieve the above macro goals, this ecosystem provides a new global currency, Libra. So what does it have to do with real money?
Libra coins are tied to reputable central bank deposits and national debt in a number of different countries, and these currencies have experienced relatively low volatility, so Libra coins inherently inherit this stability and geographically different portfolios of assets from different places. The advantages.
It is pointed out here that the international nature of Libra coins is linked to some central banks, highlighting the credit of Libra coins.
In order to develop into a global financial infrastructure, the Libra protocol must be able to meet large-scale transaction volumes. In addition, it offers the flexibility to implement its economic and management policies.
The size of the transaction is the pain of the current blockchain technology, and the paper emphasizes the need to solve this problem. Can't help but want to see how it is solved.
From the very beginning, the Libra protocol addresses these needs from a holistic design and builds on previous projects and research, combining some of today's novel approaches and proven technologies.
Note that novelty and maturity are juxtaposed, the former illustrating innovation and the latter illustrating landing applications.
Read here, is it feels like Bitcoin's technical route, it is based on the technology that has been made by the predecessors, and then transformed and used for me. Everything is around the goal of landing applications.
An important prerequisite for healthy competition and innovation in the financial services industry is the ability to rely on a common infrastructure to process transactions and maintain accounts to ensure communication and cooperation between different services and organizations. This sentence is very important, and it is necessary to provide a public platform for multi-party cooperation. Obviously, the platform should be open, fair and have good credit guarantee.
In order to provide the above platform, the Libra protocol uses blockchain technology to take advantage of the decentralization of the blockchain and is not controlled by one party. By reducing barriers to entry and costs, start-ups and existing companies can compete in a level playing field. Compete and try new business models and financial applications.
The above layers are progressive, from macro financial issues, to the blockchain platform. The various roles in the Libra blockchain are described below.
We continue to resolve the second part of the introduction.
The first part of the introduction ( Introduction 1 ) talks about Libra's commercial applications and macro goals. The following is a detailed discussion of the Libra blockchain from the management and technical aspects of the project.
Libra blockchain management
The Libra blockchain is decentralized, with a number of roles called "certifiers" that collectively handle transactions and maintain the book state of the blockchain. These verifiers form members of the Libra Alliance, which provide network governance and Libra currency reserves.
In the initial phase, the Libra Alliance consists of Foundation members from different regions. Foundation members are selected according to certain criteria, including those who promote the Libra ecosystem and inject capital. In the future, membership will gradually become fully open and Libra currency holders will be able to enter.
The Libra Alliance has released a number of reports, including a vision for development planning, a management structure, an ecological ecology, and a roadmap for the development of the public chain.
This technical paper is the first step in establishing a Libra blockchain technology framework. These early reports were published to solicit community input and feedback on the entire design, development, and research challenges. To this end, Libra has established a community where everyone can participate in discussions and seek common development. The following specifically describes the technology.
The paper directly pointed out that the Libra blockchain is a cryptographically certified database that is supported by the Libra protocol.
database? So where is the account of the blockchain?
Immediately after the paper said: The database stores a book of programmable resources. What is the programmable resource? For example, the programmable resource can be Libra currency, and of course other resources, such as bonds. Resources are subject to the rules set by the declaration module and are also stored in the database.
A resource belongs to an account that is authenticated by a public key. An account directly represents the end user of the system, or an entity, such as a wallet, whose behavior represents the user.
There are two core roles in the Libra blockchain: verifiers and customers. Readers should keep in mind that Libra is a blockchain payment system, so everything is transaction-centric. Because it is decentralized, reaching consensus is the key to technology.
The role of the verifier is to maintain the database, store the transactions submitted by the customer into the database, and then update the status of the database. The verifier is by implementing a distributed consensus algorithm to achieve a consensus on the transactions submitted to the database and the results of the execution of the transaction. These transactions form a growing list of transactions in the database.
Consensus agreements must be reliable and able to withstand malicious behavior from a few certifiers. The verifier takes turns processing the transactions that have been submitted to the database.
There is a "certifier leader" role in the verifier, which is responsible for distributing the received transactions to other verifiers, which may come from transactions that the customer directly submits to the verifier's head, or from other verifications. Submitted to the head of the transaction.
All verifiers execute the transaction that the leader sends to himself and form an identifiable data structure that contains the latest status of the ledger. To reach a consensus, the verifier votes on the verification of the data structure.
In order to confirm the transaction Ti in the i-th version of the database state, the consensus protocol outputs the signature of the entire state of the database under the i-th version, including the entire history of the database. This signature is used to respond to queries from customers.
The client can present a query to the verifier to read the data in the database. Since the database is based on cryptographic authentication, it must be able to provide an accurate response to the customer query. To this end, when the client submits a query database to the verifier, the verifier returns the signature of the current state database version authentication that he knows. This links time to data and maintains the consistency of the database state.
In addition, customers can also create a copy of the database by synchronizing the entire database with the verifier. The customer can verify the correctness of the certifier's execution of the transaction through a copy of the database. This provides auditability and transparency of the system. The client can also read its saved database copy from other clients.
Figure 1 shows two types of entities that interact using the Libra protocol: (1) a verifier (maintenance database) and (2) a client (performing a query against the database and submitting a transaction to update the database).
Figure 1: Overview of the Libra protocol
At this point, the outline of the Libra blockchain protocol is complete. For everyone to be clearer, let us illustrate by an example.
For example, if client A wants to transfer a Libra coin to client B, then client A submits a transaction to the Libra blockchain. The blockchain platform receives the transaction, either by the verifier's leader or by other verifiers, whoever submits the transaction to the verifier's leader. The verifier leader then distributes the transaction to other verifiers for verification. After the verifier receives the transaction from the leader, the transaction is executed and verified to form an identifiable data structure. Note that the certification we refer to here means that it is achieved by cryptography. The verifier then votes on the certification. Finally, the consensus algorithm outputs a signature to the entire database state to confirm the transaction into the database.
The introduction is analyzed in this way, and the following is a detailed description of each aspect.
After reading the introduction, it seems that the whole paper lacks technological innovation. It is also said in the paper that the system consists of existing technologies. Therefore, the description of the innovation point is not seen in the introduction.
However, through the abstract and the introduction, Libra is not in technological innovation, but in the innovation of the business model of the system landing application.
2 Logical Data Model–Logical Data Model
There is a very important concept in Bitcoin: timestamps. The transaction is time-bound with a timestamp, which also controls the rhythm of the entire Bitcoin system. We explain in detail the meaning behind it in the article on Bitcoin white papers (analysis of the bitcoin white paper time service).
The Libra blockchain is a database, how to link data to time, the relationship between transactions and time, and how historical transactions are queried (also a time-related problem), which are all part of the data logic model.
All data in the Libra blockchain corresponds to a version number of the database, and the version number of the database indicates the state of the database for a certain period of time. So when describing transactions in the Libra blockchain, you must specify which version state you are in.
A version number is an unsigned 64-bit integer that corresponds to the number of transactions executed by the system.
So in the Libra blockchain, the state of the transaction is characterized by a triple (Ti, Oi, Si). Where Ti represents the current transaction, Oi represents the result of the transaction execution, and Si represents the status of the book. The three elements portray the state of the transaction. For example, the operation Apply to execute a transaction can be characterized by a triplet, that is, the transaction Ti is executed under the account state Si-1, the result of the execution is Oi, and the new book state is Si. Formal representation is:
The Libra protocol implements operations in the blockchain payment system through the Move language. This section focuses on databases with version numbers. A database controlled by version number allows the certifier to do the following:
1. Execute a transaction under the latest version of the ledger
2. Respond to customer inquiries about current and historical ledger records The question is, can it reflect what the book data structure under a certain version should look like? Why do you want the historical data of the books to be checked?
Start with the status of the book.
The book status essentially reflects the objective state of the Libra system. For example, how many Libra coins a user holds at a certain time (of course, the time is reflected by the version number). And in order to execute the transaction, the verifier must know the status of the current ledger.
Therefore, the book status is the basis for performing operational dependencies and also reflects the state barometer of the Libra system.
The Libra protocol uses an account-based model. This is a different place from Bitcoin. The UTXO model used by Bitcoin can be found in our Bitcoin white paper parsing article (resolving Bitcoin white paper transactions).
The book status is stored in the database by a "key-value pair". People who have studied databases are no strangers to the concept of "key-value pairs." The key-value pair maps the account address (key) to the account value (value). The account value is composed of published Move resources and modules , where the Move resource stores the data value and the module stores the code. The initial state of the account is assigned by the Genesis block.
The account address is explained below.
The account address is a value of 256 bits in length. In order to create an account, the user first needs to generate a public key private key pair (vk, sk), the public key vk is used for verification, and the private key sk is used for signature. An account address a = H(vk) is generated by calculating a hash value for the public key vk.
When an account sends a transaction to a user, the create_account(a) Move command is called to generate an account that corresponds to the user. This situation usually occurs when the transaction is generated and the target address a does not yet have an account.
Note that with the address, you also need to create an account corresponding to it.
Once the account is established, the user can sign the transaction using the private key sk under the account. Sometimes in order to prevent the risk that the key may be attacked, a key replacement mechanism may be adopted, and the new key is used at intervals to terminate the use of the original key. Of course, using a new key means creating a new account address. So a user can have multiple accounts.
The Libra protocol allows a user to create multiple accounts without matching the account to real-world identities. There is no relationship between accounts belonging to a unified user. So the Libra protocol provides a pseudo-anonymous feature similar to Bitcoin and Ethereum.
(To be continued)