《Libra 区块链的概述(英文)-2019.6-29页.pdf.pdf》由会员分享,可在线阅读,更多相关《Libra 区块链的概述(英文)-2019.6-29页.pdf.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、The Libra BlockchainZachary Amsden, Ramnik Arora, Shehar Bano, Mathieu Baudet, Sam Blackshear, Abhay Bothra, George Cabrera, Christian Catalini, Konstantinos Chalkias, Evan Cheng, Avery Ching, Andrey Chursin, George Danezis, Gerardo Di Giacomo, David L. Dill, Hui Ding, Nick Doudchenko, Victor Gao, Z
2、henhuan Gao, Franois Garillot, Michael Gorven, Philip Hayes, J. Mark Hou, Yuxuan Hu, Kevin Hurley, Kevin Lewi, Chunqi Li, Zekun Li, Dahlia Malkhi, Sonia Margulis, Ben Maurer, Payman Mohassel, Ladi de Naurois, Valeria Nikolaenko, Todd Nowacki, Oleksandr Orlov, Dmitri Perelman, Alistair Pott, Brett Pr
3、octor, Shaz Qadeer, Rain, Dario Russi, Bryan Schwab, Stephane Sezer, Alberto Sonnino, Herman Venter, Lei Wei, Nils Wernerfelt, Brandon Williams, Qinfan Wu, Xifan Yan, Tim Zakian, Runtian Zhou*Abstract. The Libra Blockchain is a decentralized, programmable database designed to support a low-volatilit
4、y cryptocurrency that will have the ability to serve as an efficient medium of exchange for billions of people around the world. We present a proposal for the Libra protocol, which implements the Libra Blockchain and aims to create a financial infrastructure that can foster innovation, lower barrier
5、s to entry, and improve access to financial services. To validate the design of the Libra protocol, we have built an open-source prototype implementation Libra Core in anticipation of a global collaborative effort to advance this new ecosystem.The Libra protocol allows a set of replicas referred to
6、as validators from different authorities to jointly maintain a database of programmable resources. These resources are owned by different user accounts authenticated by public key cryptography and adhere to custom rules specified by the developers of these resources. Validators process transactions
7、and interact with each other to reach consensus on the state of the database. Transactions are based on predefined and, in future versions, user-defined smart contracts in a new programming language called Move.We use Move to define the core mechanisms of the blockchain, such as the currency and val
8、idator membership. These core mechanisms enable the creation of a unique governance mechanism that builds on the stability and reputation of existing institutions in the early days but transitions to a fully open system over time.1 IntroductionThe spread of the internet and resulting digitization of
9、 products and services have increased efficiency, lowered barriers to entry, and reduced costs across most industries. This connectivity has driven economic empowerment by enabling more people to access the financial ecosystem.Despite this progress, access to financial services is still limited for
10、those who need it most impacted by cost, reliability, and the ability to seamlessly send money.This paper presents a proposal for the Libra protocol, which supports the newly formed Libra ecosys- tem that seeks to address these challenges, expand access to capital, and serve as a platform for innova
11、tive financial services. This ecosystem will offer a new global currency the Libra coin which will be fully backed with a basket of bank deposits and treasuries from high-quality centralThe authors work at Calibra, a subsidiary of Facebook, Inc., and contribute this paper to the Libra Association un
12、dera Creative Commons Attribution 4.0 International License. For more information on the Libra ecosystem, please refer to the Libra white paper 1.1banks. All of these currencies experience relatively low inflation, and thus the coin mechanically inherits this property as well as the advantages of a
13、geographically diversified portfolio of assets. The Libra protocol must scale to support the transaction volume necessary for this currency to grow into a global financial infrastructure and provide the flexibility to implement the economic and governance policies that support its operations. The Li
14、bra protocol is designed from the ground up to holisti- cally address these requirements and build on the learnings from existing projects and research a combination of novel approaches and well-understood techniques.A key prerequisite for healthy competition and innovation in financial services is
15、the ability to rely on common infrastructure for processing transactions, maintaining accounts, and ensuring interoper- ability across services and organizations. By lowering barriers to entry and switching costs, the Libra protocol will enable startups and incumbents to compete on a level playing f
16、ield, and experiment with new types of business models and financial applications. Blockchain technology lends itself well to address these issues because it can be used to ensure that no single entity has control over the ecosystem or can unilaterally shape its evolution to its advantage 2.The Libr
17、a Blockchain will be decentralized, consisting of a collection of validators that work together to process transactions and maintain the state of the blockchain. These validators also form the membership of the Libra Association, which will provide a framework for the governance of the network and t
18、he reserve that backs the coin. Initially, the association (and validators) will consist of a geographically distributed and diverse set of Founding Members. These members are organizations chosen according to objective participation criteria, including that they have a stake in bootstrapping the Li
19、bra ecosystem and investing resources toward its success. Over time, membership eligibility will shift to become completely open and based only on the members holdings of Libra. The association has published reports outlining its vision 1, its proposed structure 3, the coins economics 4, and the roa
20、dmap for the shift toward a permissionless system 5.This paper is the first step toward building a technical infrastructure to support the Libra ecosystem. We are publishing this early report to seek feedback from the community on the initial design, the plans for evolving the system, and the curren
21、tly unresolved research challenges discussed in the proposal. Thus, the association has established an open-source community 6 for the discussion and development of the project.The Libra protocol. The Libra Blockchain is a cryptographically authenticated database 7, 8, 9 maintained using the Libra p
22、rotocol. The database stores a ledger of programmable resources, such as Libra coins. A resource adheres to custom rules specified by its declaring module, which is also stored in the database. A resource is owned by an account that is authenticated using public key cryptography. An account could re
23、present direct end users of the system as well as entities, such as custodial wallets, that act on behalf of their users. An accounts owner can sign transactions that operate on the resources held within the account.Figure 1 shows the two types of entities that interact using the Libra protocol: (1)
24、 validators, which maintain the database and (2) clients, which perform queries on the database and submit transactions to modify it.1validatorsclientother validators245leaderexecution3execution3Figure 1: Overview of the Libra protocol.2Validators maintain the database and process transactions submi
25、tted by clients for inclusion in the database (1). The validators use a distributed consensus protocol to agree on an ever-growing list of transactions that have been committed to the database as well as the results of executing those transactions. This consensus protocol must be reliable even in th
26、e presence of malicious or erroneous behavior by a minority of validators. Validators take turns driving the process of accepting transac- tions. When a validator acts as a leader, it proposes transactions, both those directly submitted to it by clients and those indirectly submitted through other v
27、alidators, to the other validators (2). All validators execute the transactions (3) and form an authenticated data structure that contains the new ledger history. The validators vote on the authenticator for this data structure as part of the consensus protocol (4). As part of committing a transacti
28、on Tiat version i, the consensus protocol outputs a signature on the full state of the database at version i including its entire history to authenticate responses to queries from clients (5).Clients can issue queries to a validator to read data from the database. Since the database is authen- ticat
29、ed, clients can be assured of the accuracy of the response to their query. As part of the response to a read query, a validator returns a signed authenticator for the latest version i of the database known to the validator.In addition, a client can optionally create a replica of the entire database
30、by synchronizing the transaction history from the validators. While creating a replica, a client can verify that validators executed transactions correctly, which increases accountability and transparency in the system. Other clients can read from a client that holds a replica in the same way they w
31、ould read from a validator to verify the authenticity of the response. For the sake of simplicity, the rest of this paper assumes that clients query a validator directly rather than a replica.Organization. This paper discusses the components of the Libra protocol: Logical Data Model (Section 2) desc
32、ribes the logical data model that organizes the decen- tralized database visible to validators and clients. Executing Transactions (Section 3) describes the use of Move 10, a new programming language that is used to define and execute database transactions. Authenticated Data Structures and Storage
33、(Section 4) describes the mapping of the logical model into authenticated data structures based on Merkle trees 11. Byzantine Fault Tolerant Consensus (Section 5) describes the LibraBFT 12 variant of the HotStuff protocol 13, which allows a network with potentially malicious validators to maintain a
34、 single, consistent database by executing transactions with Move and coming to agreement on their execution using the authenticated data structures. Networking (Section 6) describes the protocol that enables validators to communicate with each other securely, as required for consensus.Subsequently,
35、we present the open-source Libra Core prototype 6. Section 7 discusses how Libra Core combines the components of the Libra protocol to process a transaction. Section 8 discusses performance considerations.Finally, we explain how the protocol is being used to support the economic stability and govern
36、ance policies of the Libra ecosystem. Section 9 shows how we use the Move language to implement the low- volatility, reserve-backed Libra coin and a validator management system that mirrors the governance of the Libra Association.Section 10 concludes the paper with a discussion of future plans and o
37、ngoing challenges for the Libra ecosystem.32 Logical Data ModelAll data in the Libra Blockchain is stored in a single versioned database 14, 15. A version number is an unsigned 64-bit integer that corresponds to the number of transactions the system has executed. At each version i, the database cont
38、ains a tuple (Ti,Oi,Si) representing the transaction (Ti), transaction output (Oi), and ledger state (Si). Given a deterministic execution function Apply, the meaning of the tuple is: executing transaction Tiagainst ledger state Si1produces output Oiand a new ledger state Si; that is, Apply(Si1,Ti)
39、Oi,Si.The Libra protocol uses the Move language to implement the deterministic execution function (see Section 3). In this section, we focus on the versioned database, which allows validators to:1. Execute a transaction against the ledger state at the latest version. 2. Respond to client queries abo
40、ut the ledger history at both current and previous versions.We first explain the structure of the ledger state stored in a single version and then discuss the purpose of the versioned ledger history view.2.1 Ledger StateThe ledger state represents the ground truth about the Libra ecosystem, includin
41、g the quantity of Libra held by each user at a given version. Each validator must know the ledger state at the latest version in order to execute new transactions.The Libra protocol uses an account-based data model 16 to encode the ledger state. The state is structured as a key-value store, which ma
42、ps account address keys to account values. An account value in the ledger state is a collection of published Move resources and modules. The Move resources store data values and modules store code. The initial set of accounts and their state are specified in the genesis ledger state (see Section 3.1
43、).Account addresses.An account address is a 256-bit value.To create a new account, a user first generates a fresh verification/signature key-pair (vk,sk) for a signature scheme and uses the cryptographic hash of the public verification key vk as an account address a = H(vk).1The new account is creat
44、ed in the ledger state when a transaction sent from an existing account invokes the create_account(a) Move instruction. This typically happens when a transaction attempts to send Libra to an account at address a that has not yet been created.Once the new account is created at a, the user can sign tr
45、ansactions to be sent from that account using the private signing key sk. The user can also rotate the key used to sign transactions from the account without changing its address, e.g., to proactively change the key or to respond to a possible compromise of the key.The Libra protocol does not link a
46、ccounts to a real-world identity. A user is free to create multiple accounts by generating multiple key-pairs. Accounts controlled by the same user have no inherent link to each other. This scheme follows the example of Bitcoin and Ethereum in that it provides pseudonymity 19 for users.Resource valu
47、es. A resource value, or resource, is a record that binds named fields to simple values such as integers or complex values such as other resources embedded inside this resource.1Concretely we instantiate hash functions with SHA3-256 17 and digital signatures with EdDSA using the ed-wards25519 curve
48、18.4Currency.TCurrency.TStateChannel.TCurrency.TCurrencyStateChannelAccount ContentAddress0x120x340x560x78Figure 2: An example ledger state with four accounts. In this diagram, ovals represent resources and rectangles represent modules. A directed edge from a resource to a module means that the type
49、 of the resource was declared by that module. The account at address 0x12 contains a Currency.T resource declared by the Currency module. The code for the Currency module is stored at address 0x56. The account at address 0x34 contains both a Currency.T resource and a StateChannel.T resource, which is declared by the module stored at address 0x78.Every resource has a type declared by a module. Resource types are nominal types 20 that consist of the name of the type and the name and address of the resources