Facebook的Libra区块链将如何运作


Libra协议允许来自不同权限的一组副本(称为验证器)共同维护可编程资源的数据库。

这里没有语言 - 系统将由一系列权威机构以自上而下的方式控制。但请注意,它表示数据库是针对“可编程资源”而不仅仅是数字货币。

这些资源由公钥加密认证的不同用户帐户拥有,并遵守这些资源的开发人员指定的自定义规则。

使用诸如“资源”之类的通用词语使我怀疑这不仅仅是一个稳定的币。

事务基于预定义的,在未来的版本中,用户定义的智能合约采用名为Move的新编程语言。我们使用Move来定义区块链的核心机制,例如货币和验证者成员资格。

好的,现在它变得有趣了。使用定制的智能合约语言将导致很多关于语言功能丰富的问题​​,从而导致系统对抗对抗合同的能力。还有一些关于开发人员友好性以及Libra如何保护智能合约开发人员不受影响的问题。

这些核心机制可以创建一种独特的治理机制,该机制建立在早期现有机构的稳定性和声誉的基础上,但随着时间的推移过渡到一个完全开放的系统。

听起来Libra协会将成为一个联邦,可以借助投票系统和某种先前存在的声誉来发展。还有一些关于开发人员友好性以及Libra如何保护智能合约开发人员不受影响的问题。

1.简介

这个生态系统将提供一种新的全球货币 - Libra硬币 - 这将完全支持一篮子银行存款和来自高质量中央银行的国债。

Libra是一种通用的加密资产协议,第一个资产将是一个stablecoin。

随着时间的推移,会员资格将转变为完全开放,仅基于会员持有的Libra。

听起来很像股权证明。显然,计划是在五年后开放会员资格,并希望他们当时能够找到股份证明 - 尽管我预计它们会遇到与以太坊相同的问题。

该协会发布的报告概述了向无权制度转变的路线图。

我很确定这将是分布式网络首次从权限转换为无权限。也许整个网络可以转换为股权证明,但为了维持稳定的硬币/篮子,一些实体必须保持对传统金融系统的开放。这将是通过Libra协会集中控制的持久点。

验证者轮流推动接受交易的过程。当验证者充当领导者时,它建议将客户直接提交给他们的交易和通过其他验证人间接提交的交易交给其他验证人。所有验证器都执行事务并形成包含新分类帐历史记录的经过身份验证的数据结构。作为共识协议的一部分,验证者对该数据结构的验证者进行投票。

这听起来像实际的拜占庭容错,这是一个20年前很好理解的算法,尽管他们可能做了一些调整。我们在白皮书的第5节中了解到它被称为LibraBFT,它是HotStuff共识协议的变体。

作为在版本i处提交事务T i的一部分,共识协议在版本i处输出数据库的完整状态的签名 - 包括其整个历史 - 以验证对来自客户端的查询的响应。

这是值得注意的,主要是因为它意味着新的验证器应该能够加入网络并快速同步,而不必重放区块链的整个历史记录,假设它们信任现有的验证器。帐户模型是有道理的,因为Facebook不太可能关注隐私,而它确实对智能合约感兴趣。

2.逻辑数据模型

Libra协议使用基于帐户的数据模型来编码分类帐状态。

从数据结构的角度来看,Libra比以太币更像是以太币或涟漪。由于基于输出的历史记录的简单性,UTXO模型具有优点和缺点 - 更好的隐私和更强大的事务历史 - 但是使用复杂的智能合约可能更难。因此,帐户模型是有道理的,因为Facebook不太可能关注隐私,即使该平台听起来对智能合约感兴趣。

Libra协议不会将帐户与真实身份相关联。用户可以通过生成多个密钥对来自由创建多个帐户。由同一用户控制的帐户彼此之间没有固有的链接。该方案遵循比特币和以太坊的示例,因为它为用户提供假名。

听起来令人惊讶的好,但我想知道资产Libra硬币的情况是否也是如此。有趣的是观察这个系统对于那些想要构建更加保护隐私的应用程序的开发人员的开放程度。

每个资源都有一个模块声明的类型。资源类型是名义类型,由类型的名称以及资源的声明模块的名称和地址组成。

您似乎可以生成一个地址,只要每个资产都有唯一的名称,该地址就可以分配任意数量的资产。

执行事务T i产生新的分类帐状态S i以及执行状态代码,气体使用和事件列表。

那么,现在我们知道如何保护系统免受资源耗尽攻击,可能是利用类似于以太坊的资源成本系统。

分类帐历史中没有交易块的概念。

有趣。Libra协议中没有实际的区块链数据结构 - 块更像是一个虚拟的逻辑结构,验证器使用它来协调系统状态的确认快照。备份,现在该部分的第一句话更有意义:

Libra Blockchain中的所有数据都存储在单个版本化数据库中。版本号是无符号的64位整数,对应于系统执行的事务数。

我熟悉的每个加密资产网络都以相同的方式在非常高的层次上工作:存在系统状态,然后执行事务并且实际上是状态转换功能,然后存在新的系统状态。

 

将批量事务放入容器或块中的目的是为了对它们进行排序和加时间戳。这对于无权网络非常重要,其中数据通过动态多方成员签名进行身份验证,其中验证者可以自由加入和离开网络。由于Libra运行一个允许的系统,它可以使用更有效的一致性算法,不需要批处理事务,因为事务历史记录更不可能被重写。

在Libra协议的初始版本中,用户只能使用Move的一小部分功能。虽然Move用于定义核心系统概念,例如Libra货币,但用户无法发布声明其自己的资源类型的自定义模块。这种方法允许Move语言和工具链通过实现核心系统组件的经验成熟 - 在向用户公开之前。该方法还延迟了通用智能合约平台固有的事务执行和数据存储中的可扩展性挑战。

这听起来与前面提到的“开放验证者成员资格”计划非常相似。好像Facebook还没有解决以太网多年来一直在努力解决的任何大问题。

为了管理对计算容量的需求,Libra协议收取以Libra硬币计价的交易费用。

Libra硬币实际上是协议的原生单位,很像ETH是以太坊的原生单位。这导致了另一个关于Libra假名性质的问题:你可以在没有AML / KYC的情况下获得硬币吗?如果没有,那么您似乎无法匿名使用任何系统的功能。从阅读Calibra钱包,它将需要AML / KYC。所以我想知道最终是否会进入不严格控制的系统。

该系统设计为在正常运行期间,当有足够的容量时,费用较低。

这真的很模糊,并提出了许多问题:什么是低费用?什么是正常操作?什么是足够的容量?

3.执行交易

区块链核心逻辑的许多部分都是使用Move定义的,包括扣除燃气费。为了避免循环,VM在执行这些核心组件期间禁用气体计量。

这听起来很危险,但该文档的作者指出,核心组件必须以防御性方式编写以防止DoS攻击。

Move的关键特性是能够定义自定义资源类型...... Move类型系统为资源提供特殊的安全保证。永远不能复制资源,只能移动资源。这些保证由Move VM静态强制执行。这允许我们将Libra硬币表示为Move语言中的资源类型。

这清除了早先的问题,即Libra硬币是否是ETH或BTC等本土资产。我希望这些硬币只是系统启动时允许的默认或唯一资源类型,其他资源将在以后出现。

Move的基于堆栈的字节码比较高级别的源语言具有更少的指令。此外,每条指令都具有简单的语义,可以通过更少的原子步骤来表示。这减少了Libra协议的规范占用空间,并且更容易发现实现错误。

这听起来经过深思熟虑; 希望这意味着他们的脚本语言的安全性将比以太坊更好。

我们看到“Libra区块链” 实际上并不是区块链。

4.经过身份验证的数据结构和存储

Libra协议使用单个Merkle树为分类帐历史提供经过验证的数据结构...具体而言,分类帐历史使用Merkle树累加器方法来形成Merkle树,这也提供了有效的附加操作。

我们再一次看到“Libra区块链”实际上并不是区块链。这个协议似乎设计得非常好,但是当分类帐历史的数据结构是一组签名的分类帐状态时,它们仍然称它为区块链,这真的很奇怪。验证器正在为每个分类帐状态做出承诺,并且所有历史分类帐状态也都在Merkle树中承诺,但我还没有真正看到形成链的任何反向链接数据列表 - 更不用说是一系列块。

帐户的身份验证者是此序列化表示的哈希值。

请注意,此表示形式要求在对帐户进行任何修改后重新计算整个帐户上的身份验证器。此操作的成本为O(n),其中n是完整帐户的字节表示的长度。

嗯,如果对给定帐户存储的数据量没有限制,听起来像是对DoS攻击的开放。

我们预计,随着系统的使用,最终与帐户相关的存储增长可能会成为一个问题。正如天然气鼓励负责任地使用计算资源一样,我们期望存储可能需要类似的基于租金的机制。我们正在评估最适合生态系统的基于租金的机制的各种方法。

另一个未解决的问题。不能等待“租金太高了!”模因。

投票权必须在纪元期间以及纪元之后的一段时间内保持诚实,以便允许客户同步到新配置。脱机时间超过此期限的客户端需要使用某些外部事实源重新同步以获取他们信任的检查点。

哎哟。目前尚不清楚这个“时间段”有多长,但如果一个时代不到一天,那么我猜测指定的“时间段”也是如此。看起来这个共识协议不够强大,参与者可以按照自己的意愿离开并重新加入网络。

5.拜占庭容错共识

LibraBFT假设一组3f + 1票在一组可能是诚实的验证者或拜占庭人之间分配。LibraBFT保持安全,防止双重花费和分叉等攻击,最多f投票由拜占庭验证员控制。

与PBFT非常相似,这种一致性算法可以容忍33%的验证者不诚实。HotStuff修改听起来很合理:

  1. 通过使验证器签署块的状态而不仅仅是事务序列来抵抗非确定性错误。
  2. 一个发出明确超时的起搏器,验证器依靠法定人数进入下一轮 - 这应该可以提高活力。
  3. 不可预知的领导者选举机制,以限制针对领导者的DoS攻击。
  4. 聚合签名保留签署仲裁证书的身份验证器,以对块接受进行投票。

6.网络

Libra协议中的每个验证器都维护系统的完整成员资格视图,并直接连接到需要与之通信的任何验证器。假设无法直接连接的验证器属于系统容忍的拜占庭故障的配额范围。

这将需要大量工作才能将系统扩展到数百个验证器。

7.Libra核心实施

Libra Blockchain的安全性取决于验证器,Move程序和Move VM的正确实现。解决Libra Core中的这些问题正在进行中。

几乎总结了这一部分,尽管他们在Rust中编写了实现,这似乎是性能和安全性的良好开端。

8.表现

我们预计Libra协议的首次推出将支持每秒1,000次支付交易,并且在提交和提交的交易之间有10秒的最终时间。

由于只有100个左右的验证器,并且它们都直接相互连接,因此10秒的块时间听起来可行。

最低节点要求:

  • 40 Mbps互联网连接
  • 1个商品CPU
  • 16 TB SSD

之前有一些参考文献要求保持验证程序从头开始执行初始同步的能力,而不是信任来自其他验证程序的签名状态。我希望如果Libra得到充分利用,那么执行这样的同步将很快变得非常不切实际,因此,节点安全模型将高度依赖于信任验证器。

9.用移动实施Libra生态系统政策

[Libra硬币]储备是实现价值保护的关键机制。通过储备,每枚硬币都有一套稳定和流动的资产。Libra硬币合约允许协会在需求增加时铸造新硬币,并在需求合同时销毁它们。该协会没有制定货币政策。它只能根据授权经销商的要求铸造和燃烧硬币。用户无需担心将通货膨胀引入系统或使货币贬值的关联:对于要铸造的新硬币,储备中必须有相应的法定存款。

好的,但现在我们谈论的是网络外部的事件。如白皮书前面所述,网络无法执行使用网络状态外部数据输入的脚本。因此,上述片段中的修饰语“可以”和“必须”肯定是指网络不知道的Libra协会政策或合同义务。

一致性算法依赖于验证器集管理Move模块来维护当前的验证器集并管理验证器之间的投票分配。最初,Libra Blockchain仅向创始成员授予选票。

假设验证器对验证器集的更改进行投票,听起来这会导致与我们在股权系统证据中看到的类似问题 - 远程攻击。如果创建成员的私钥的足够阈值受到损害,攻击者是否可以从创世纪写入新的分类帐历史记录?如果是这样,其他节点会接受吗?目前尚不清楚共识协议是否允许重写旧状态或仅仅是附加状态。

我们计划逐步过渡到股权证明。

如果他们能解决未解决的问题。

杰出的问题

治理如何运作?

我们在这里可以看到,Libra协会是一个成员委员会,需要有2/3的绝对多数人做出改变。他们是唯一被允许铸造或销毁Libra硬币的人,但如果有足够的协议,他们可能会做出他们想要的任何改变。

是否需要AML / KYC?

显然,协议级别不需要它,但Calibra钱包声明所有用户都将通过政府颁发的ID进行验证。听起来Calibra钱包至少是一段时间内唯一可用的钱包,所以目前还不清楚开发人员和用户是否可以在Libra网络上运行不遵守与Calibra相同标准的应用程序。

什么是低费用?什么是正常操作?什么是足够的容量?

该CALIBRA钱包FAQ承诺收费低,但似乎这可能是与底层协议在高负荷的时候的操作冲突。

交易费用将是低成本和透明的,特别是如果您在国际上汇款。Calibra将削减费用,以帮助人们保留更多的钱。

Libra真的会对开发者开放吗?

根据实现无权共识的计划:

Libra Blockchain将向所有人开放 - 任何消费者,开发者或企业都可以使用Libra网络,在其上构建产品,并通过他们的服务增加价值。开放获取确保了进入和创新的低门槛,并鼓励有利于消费者的健康竞争。

我怀疑开发人员能够在这个平台上运行他们梦寐以求的任何技术上有效的应用程序。我读过的任何内容都让我相信这个系统会抵制审查制度,但只有时间会证明!

本文链接地址:https://www.wwsww.cn/Libra/818.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读

Libra区块链Libra区块链