1. 首页 > 产业新闻 > 节能环保

Facebook Libra区块链技术白皮书(中文版)

白皮书作者:Zachary 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, Zhenhuan Gao, Fran?ois 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 Proctor, 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*

翻译:巴比特资讯 (洒脱喜,Kyle)

Libra区块链是一个去中心化、可编程的数据库,其旨在支持一个低波动性的加密货币,能够作为服务全世界数十亿人的有效交易媒介。我们提出了一个关于Libra协议的提议,它会实现Libra区块链,旨在创建一个可促进创新、降低进入壁垒,并改善访问金融服务机会的金融基础设施。为了验证Libra协议的设计,我们已构建了一个开源原型实现 —— Libra Core ,并在全球范围内共同推进这一新生态系统。

Libra协议允许来自不同实体的一组副本(称为验证者)共同维护一个可编程资源的数据库。这些资源由经过公钥加密验证的不同用户帐户拥有,并遵守这些资源开发者指定的自定义规则。验证者处理事务(transaction)并相互作用,就数据库的状态达成共识。事务是基于预定义的,在未来的版本中,用户自定义的智能合约会使用一种称为Move的新编程语言编写。

我们使用Move语言定义区块链的核心机制,例如货币和验证者会员。这些核心机制能够创建一个独特的治理机制,其建立在现有项目早期已建立的稳定基础之上,但Libra系统会随着时间的推移,完全开放。

(图片来自:?Libra.org)

互联网的普及以及由此产生的产品和服务的数字化,提高了效率,降低了进入壁垒,降低了大多数行业的成本。这种连通性已通过让更多的人进入金融生态系统,而驱动了经济赋权。尽管如此,对于那些最需要金融服务的人来说,获得金融服务的机会仍然有限,这是由成本、可靠性以及无缝发送资金的能力影响的。

这篇技术论文为Libra协议提出了一个提议,旨在支持这个新生的 Libra生态系统,并解决这些挑战,扩大资本准入,并作为创新金融服务的一个平台。这个生态系统将提供一种新的全球货币 —— Libra币,它将由优质的中央银行一篮子银行存款和国债充分支撑。

这些基准货币都经历了相对较低的通货膨胀,因此,Libra稳定币继承了这一属性,且其还拥有在地理上呈现多样化的组合优势。Libra协议必须扩展,以支持其货币成长为一个全球金融基础设施,提供以实施经济和治理的灵活性,支持其操作策略。Libra协议的设计从一开始就以整体解决这些需求,它建立在现有项目以及研究的基础之上。Libra结合了新颖的方法以及已被广泛理解的技术。

金融服务业健康竞争和创新的一个关键前提,是依靠处理事务、维护账户以及确保跨服务和组织的互操作性公共基础设施。通过降低进入壁垒和转换成本,Libra协议将使初创企业和现有大型企业能够在公平竞争的环境中竞争,并试验新的商业模式和金融应用。区块链技术能够很好地解决这些问题,因为它可以用于确保没有单个实体能够控制生态系统或可单方塑造其进化优势[2]。

Libra区块链将是去中心化的,它由一组共同工作的验证者组成,用于处理事务并维护区块链的状态。这些验证者也构成了Libra协会的成员,这将为网络的管理以及支持货币的储备提供一个框架。最初,该协会(验证者)将由一组地理分布广泛的创始成员组成。这些成员是根据客观参与标准选择出来的,包括它们在引导Libra生态系统和为其成功而投入的权益。随着时间的推移,成员资格将转变为完全开放,只基于Libra的持有量。Libra协会已发表了报告,概述了其愿景[1]、提议的结构[3]、货币的经济学[4]以及向无许可系统转变的路线图[5]。

而本文,则是构建支持Libra生态系统的技术基础设施的第一步。

我们发布这份早期报告,是为了征求社区对Libra的初步设计、系统的发展计划以及当前未解决的研究挑战的反馈意见。因此,协会建立了一个开放源码社区[6]以供到底讨论以及支持项目的开发。

Libra协议。Libra区块链是使用Libra协议进行维护的密码学证明数据库 [7, 8, 9]。该数据库存储了一个可编程资源(例如Libra币)的账本。资源(resource)遵循其声明模块指定的自定义规则,该模块还存储在数据库中。资源由使用密码学公钥进行验证的帐户拥有。帐户可代表系统的直接最终用户以及实体(例如托管钱包),代表他们的用户。帐户的所有者可签署对帐户内的资源进行操作的事务(transaction)。

图1显示了使用Libra协议进行交互的两种类型的实体:(1)验证者,其负责维护数据库,(2)客户端,它们对数据库执行查询,并提交事务以修改它。

图1:Libra协议的纵览图

验证者维护这个数据库,并处理由包含在数据库(1)的客户端提交的事务(transaction)。验证者使用一个分布式共识协议来商定不断增长的,已提交到数据库的事务列表,以及执行这些事务的结果。即使少数验证者存在恶意或错误,此共识协议也必须是可靠的。验证者轮流驱动接受事务的过程。当验证者充当领导者时,它会向其他验证者 ( 2 )提出客户端直接提交给它的事务,以及通过其他验证者间接提交的事务。所有验证者执行事务(3)并形成一个经验证的数据结构,其中包含新账本历史记录。作为共识协议(4)的一部分,验证者对该数据结构的确认者进行投票。作为在版本i提交一个事务ti的一部分,共识协议在版本i输出数据库完整状态的签名(包括整个历史),以确认对来自客户端( 5 )查询的响应。

客户端可以向验证者发出查询,以从数据库中读取数据。由于数据库是经验证的,因此可保证客户端对其查询的响应的准确性。作为对读取查询的响应的一部分,验证者返回验证者已知数据库最新版本i的签名验证器。

此外,客户端还可以选择通过与验证者同步事务历史,来创建整个数据库的副本。在创建副本时,客户端可检查验证者是否正确执行了事务,从而改善了系统的问责制和透明度。其他客户端可以从保存副本的客户端读取副本,这和从验证者处读取副本以验证响应真实性的方式相同。

为了简单起见,本文的其余部分假设客户端直接查询一个验证者,而不是副本。

组成(Organization)。本文讨论了Libra协议的组成部分:

  • 逻辑数据模型 :(第2节)描述了逻辑数据模型,该模型组织了对验证者和客户端可见的去中心化数据库。
  • 执行事务:(第3节)描述了Move [10]编程语言的使用,这是一种用于定义和执行数据库事务的新编程语言。
  • 经验证的数据结构和存储:(第4节)描述了基于Merkle树的逻辑模型到经验证数据结构的映射[11]。
  • 拜占庭容错共识:(第5节)描述了HotStuff协议[13]的变体LibraBFT [12],允许具有潜在恶意验证者的网络,通过执行Move语言事务,并在使用经验证的数据结构执行事务时达成一致,来维护一个单一的、一致的数据库。
  • 网络:(第6节)描述了使验证者能根据协商一致的需要,安全地相互通信的协议。
  • 而在之后,我们展示了开源的Libra Core原型[6]。第7节内容则讨论了Libra Core讲解结合了Libra协议的组件来处理事务。

    第8节内容则探讨了性能考虑。

    最后,我们将友们讲解使用该协议来支持Libra生态系统政策的经济稳定和治理。

    第9节内容展示了我们讲解使用Move语言来实现低波动性、储备支撑的Libra货币,以及反映 Libra协会治理的验证者管理系统。

    第10节内容,讨论了有关Libra生态系统的未来计划,及其当前正面临的挑战,这也将是这篇文章的结尾。

    Libra区块链中的所有数据都存储在单一版本的数据库当中[14, 15]。版本号是与系统已执行的事务数相对应的无符号64位整数。在每个版本i中,数据库都包含一个元组 (Ti, Oi, Si) ,它们分别表示事务 (Ti),事务输出(Oi)以及账本状态 (Si)。给定一个确定性执行函数,这个元组的含义是:对账本状态Si?1执行事务Ti会产生输出Oi以及新账本状态Si,即。

    Libra协议使用Move语言来实现确定性执行函数(请参见第3节内容)。在本节内容中,我们将重点介绍版本化数据库,它允许验证者:

  • 根据最新版本的账本状态执行事务;
  • 响应客户端有关当前和以前版本的账本历史记录的查询;
  • 我们首先友们存储在单个版本中的账本状态的结构,然后讨论版本化账本历史视图(History view)的目的。

    2.1 账本状态

    账本状态代表了有关Libra生态系统的基本事实,包括每个用户在给定版本中持有的Libra币的数量。每个验证者必须知道最新版本的账本状态,以便执行新的事务。

    Libra协议使用基于帐户的数据模型[16]对账本状态进行编码。状态被构造为一个键值存储,它将帐户地址键映射到帐户值。账本状态下的账户值是已发布Move资源和模块的集合。这个 Move资源存储数据值,而模块则存储代码。初始帐户集及其状态在创始账本状态中指定(见第3.1节)。

    帐户地址:帐户地址是一个256位的值。要创建新帐户,用户首先为签名方案生成一个新的验证/签名密钥对,并使用公共验证密钥的加密哈希作为帐户地址。当从现有账户发送的事务调用这个 Move指令时,则这个新账户就会在账本状态中创建。这通常发生在一笔事务尝试将Libra发送到尚未创建的地址的帐户时。

    在地址中创建新帐户后,用户可使用私人签名密钥,签署要从该帐户发送的事务。该用户还可以在不更改其地址的情况下,更改用于签署交易的密钥(例如,主动更改密钥或响应密钥可能被盗的情况)。

    Libra协议不会将帐户链接到用户的真实身份(即没有KYC)。用户可通过生成多个密钥对来自由创建多个帐户。由同一用户控制的帐户没有固有的相互联系。该方案参照了比特币和以太坊,为用户提供了假名性 (又称半匿名)[19]。

    资源值:所谓资源值或资源,是将命名字段绑定到简单值(例如整数或复杂值)的记录。

    (脚注1: 具体地说,我们使用SHA3-256 [17]实例化哈希函数,并使用edwards25519曲线[18]实现EdDSA数字签名)

    图2:具有四个帐户的账本状态示例。在这个图中,椭圆表示资源,矩形表示模块。从资源到模块的定向边,意味着该模块声明了资源的类型。地址为0x12的帐户,包含由货币模块声明的资源。该货币模块的代码存储在地址0x56。地址0x34处的帐户,同时包含了一个资源以及资源,这是由存储在地址0x78的模块声明的。

    每个资源都有一个由模块声明的类型。资源类型是名义类型[20] ,其由类型的名称和资源的声明模块的名称和地址组成。例如,图2中的 资源的类型是这里,0x56是存储货币模块的地址,是模块的名称,而则是资源的名称。

    要在帐户地址0x12取回资源,客户端将请求.

    这种设计的目的,是让模块为顶级帐户值定义一个可预测的模式——也就是说,每个帐户都将其资源存储在同一路径下。因此,每个帐户最多可存储一个给定类型的资源。但是,这一限制是没有约束的,因为程序员可定义包装器(wrapper)资源,以自定义的方式组织资源。(例如,)。

    用于改变、删除和发布资源的规则,编码在创建资源并声明其类型的模块当中。

    Move的安全和验证规则,会阻止其他代码对资源进行修改。

    模块值:所谓模块值或模块,包含声明资源类型和程序的Move字节码(更多细节见第3.4节)。与资源类型一样,模块由声明模块的帐户地址识别。例如,图2中模块的标识符是。

    模块必须在一个帐户中唯一命名,每个帐户最多只能声明一个具有给定名称的模块。例如,图2中地址0x56处的帐户无法声明另一个名为的模块。另一方面,地址为0x34的帐户可以声明Currency的模块。此模块的标识符将为。注意,和 是不同的类型,它们彼此不能互换使用。

    在当前版本的Libra协议中,模块是不可变的。一旦在帐户地址下声明模块,就不能修改或删除它,除非通过硬分叉的方式。我们正研究在未来的版本中启用安全模块更新的方案选项。

    2、2事务(Transactions)

    Libra区块链的客户端是通过提交事务来更新账本状态的。从高维度来讲,事务由事务脚本(以Move字节码编写)和事务脚本的参数(例如,接收方帐户地址或要发送的Libra币数量)组成。验证者通过运行脚本及其参数和当前账本状态作为输入来执行事务,以生成完全确定的事务输出。在共识(第5节)期间,通过同意对事务输出的约束性承诺(第4节),在事务被承诺之前,账本状态不会改变。

    我们将在第3节中更详细地讨论事务的结构和执行。

    事务输出:执行一个事务Ti将生成新的账本状态Si以及执行状态代码、gas使用量以及事件列表(汇总在输出Oi中)。执行状态代码记录了执行一个事务的结果(例如,成功、因错误退出、gas耗尽等)。

    本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.fjxmta.com/chanye/jieneng/32654.html

    联系我们

    在线咨询:点击这里给我发消息

    微信号:wx123456