首页 > 世链号 > 【fmall交易所下载】Jameson Lopp 关于“Libra 区块链”的思考
币圈大叔  

【fmall交易所下载】Jameson Lopp 关于“Libra 区块链”的思考

摘要:相比于 Facebook 6月18日公布的 Libra 白皮书,一同公布的还有 Libra 技术文档白皮书。

摘要:我读过的任何内容都没有让我相信这个系统会抵制审查制度。

相比于 Facebook 6月18日公布的 Libra 白皮书,一同公布的还有 Libra 技术文档白皮书。

而在今日,比特币开发者、专业密码朋克 Jameson Lopp
对这一份包含 53 位作者,长达 26 页的技术文档进行了研究分析。其从逻辑数据模型、执行交易、身份验证、数据结构存储、LibraBFT、性能等多方面对 Libra 技术文档进行了拆分概述。

以下为 Jameson Lopp 对 Libra 技术文档的思考解读:

摘要

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

Jameson Lopp:系统将由一系列权威以自上而下的方式控制。然而,请注意,该数据库是针对“可编程资源”而不是数字货币

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

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

白皮书:Libra 协议允许来自不同机构的一组副本 (称为验证器) 共同维护可编程资源的数据库。“交易基于预定的合约。在未来的版本中,用户将使用一种名为 Move 的新编程语言来定义智能合约。我们使用 Move 来定义区块链的核心机制,比如代币和验证器成员资格。

Jameson
Lopp:使用自定义构建的智能合约语言会导致很多问题,比如该语言的特性有多丰富,以及该系统对合约的强大程度。对于开发人员的友好程度以及 Libra 在多大程度上能够保护智能合约开发人员免于陷入困境,也会有一些问题。

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

Jameson Lopp:听起来 Libra 协会将是一个可以通过投票和某种声誉来发展自己的联盟。

1. 简介

白皮书:这一生态系统将提供一种新的全球货币——Libra 货币——将由一系列银行存款和高质量中央银行的国债全额支持。

Jameson Lopp:Libra 是一个通用的加密资产协议,其第一个资产将是一个稳定币。

白皮书:随着时间的推移,Libra 的会员资格将完全开放,并且仅基于 Libra 的会员持有量。

Jameson Lopp:听起来很像 POS。显然,他们的计划是在 5 年后开放会员资格,并希望他们在那时能够找到 POS……我预计他们会遇到和以太坊一样的问题 !

白皮书:该协会发表的报告概述了向无许可制度转变的路线图。

Jameson Lopp:我很确定这将是分布式网络从许可到无许可过渡的第一个世界。也许网络作为一个整体可以切换到 PoS,但为了维护稳定的 peg
/ basket,一些实体必须保持与传统金融体系的桥梁畅通。这将是一个通过 Libra 协会持续集中控制的点。

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

Jameson Lopp:这听起来像是 Practical Byzantine Fault
Tolerance (拜占庭式的实用容错算法)——这是一种已有 20 年历史的老算法。但他们可能做了一些调整。我们在白皮书的第 5 节中了解到,它被称为 LibraBFT,是 HotStuff 协商一致协议的变体。

白皮书:作为在版本 i 上提交交易 Ti 的一部分,共识协议在版本 i 上输出数据库的完整状态的签名 (包括它的整个历史记录),以便对来自客户机的查询的响应进行身份验证。

Jameson Lopp:这主要是因为它意味着新验证器应该能够加入网络并快速同步,而不必重播区块链的整个历史记录,前提是它们信任现有的验证器。

2. 逻辑数据模型

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

Jameson
Lopp:从数据结构的角度来看,Libra 更像以太坊或 Ripple,而不是比特币。由于基于输出的历史记录的简单性,UTXO 模型有其优点和缺点,比如更好的隐私性和更健壮的交易历史记录。但是处理复杂的智能合约可能会更加困难。因此,账户模式是有意义的,Facebook 不太可能关心隐私,而它确实对智能合约感兴趣。

白皮书:Libra 的协议并不会将账户和真实身份相联系。用户可以通过生成多个密钥来自由创建多个帐户。由同一用户控制的帐户彼此之间没有内在的链接。该方案以比特币和以太坊为例,为用户提供假名。

Jameson Lopp:同时,我也想知道 Libra 的稳定币的资产情况是否也是如此…观察这个系统对于想要构建更隐私保护的应用程序的开发人员是很有趣的。

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

Jameson Lopp:听起来人们可以生成一个地址,只要每个资产都有一个惟一的名称,该地址就可以分配任意数量的资产。

白皮书:执行交易 Ti 将生成一个新的分类账状态 Si,并且执行状态代码、gas usage 和事件列表。

Jameson Lopp:那么现在我们知道如何通过类似于以太坊的资源成本系统来保护系统免受资源耗尽攻击。

白皮书:在分类账的历史上其实没有交易的概念。

Jameson
Lopp:有趣的是,Libra 协议中没有实际的区块链数据结构——区块更多的是一个虚拟 / 逻辑结构,用于协调系统状态的已确认快照。现在这一节的第一句话更有意义了 :

“Libra 区块链中的所有数据都存储在单个版本控制的数据库中。版本号是一个无符号的 64 位整数,对应于系统执行的交易数。”

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

将成批交易放入容器 (块) 的目的是为了进行订购 / 加盖时间戳。这对于通过动态多方成员签名 (验证者可以自由地加入和离开网络) 验证数据的无许可网络非常重要。由于 Libra 运行的是一个经过许可的系统,所以它可以使用一个更高效的一致性算法,而不需要批处理事务,因为事务历史记录被重写的可能性很小。

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

Jameson
Lopp:这听起来非常类似于前面提到的“开放验证器成员资格”计划。似乎 Facebook 并没有解决 Ethereum 多年来一直在努力解决的任何一个大问题。

白皮书:为了管理对计算能力的需求,Libra 协议收取以 Libra 币计价的交易费用。

Jameson
Lopp:有趣的是,听起来 Libra 的币实际上是协议的原生单位,就像 ETH 是以太坊的原生单位一样。这就导致了更多关于天秤座假名性质的问题 ; 你可以在没有 AML/KYC 的情况下获得币吗 ? 如果没有,那么你似乎无法匿名使用系统的任何功能。通过阅读 Calibra
wallet,它将需要 AML/KYC,因此我想知道最终是否会有进入不受严格控制的系统中。

白皮书:该系统的设计目的是在正常运行期间,当有足够的容量时,费用较低。

Jameson Lopp:这确实很模糊,并引发了许多问题——什么是低收费 ? 什么是正常操作 ? 什么是足够的容量 ?

3. 执行交易

白皮书:区块链的核心逻辑的很多部分都是用 Move 定义的,包括 gas 费用的扣除。为了避免循环,VM 在执行这些核心组件时禁用了 gas 计量。

Jameson Lopp:这听起来相当危险,但作者指出,核心组件必须以防御性方式编写,以防止 DoS 攻击。

白皮书:Move 的关键特性是能够定义自定义的资源类型。Move 类型系统为资源提供了特殊的安全保障。资源永远不能复制,只能移动。这些保证由 Move
VM 静态强制执行。这使得我们可以用移动语言将 Libra 币表示为一种资源类型。

Jameson Lopp:这就澄清了之前的问题 :Libra 币是否像 ETH 或 BTC 一样是天生的资产。我希望这些币只是默认的 / 唯一的资源类型。

白皮书:Move 的基于堆栈的字节码比高级源代码的指令更少。此外,每个指令都有简单的语义,可以通过更少的 atomic 步骤来表达。这减少了 Libra 协议的规范占用空间,并且更容易发现实现错误。

Jameson Lopp:这听起来是经过深思熟虑的 ; 希望这意味着他们的脚本语言的安全性将比 Ethereum 得到更好的审查。

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

白皮书:Libra 协议使用一个 Merkle tree 为分类帐历史提供一个经过验证的数据结构。具体来说,分类帐历史使用 Merkle
tree 累加器方法来形成 Merkle tree,这也提供了高效的附加操作。

Jameson
Lopp:我们再一次看到“Libra 区块链”实际上不是区块链。这个协议看起来设计得很好,但是当分类帐历史的数据结构是一组有签名的分类帐状态时,他们却一直称它为区块链,这真的很奇怪。验证者正在为每个分类帐状态做出承诺,所有的历史分类帐状态也在 Merkle
tree 中被承诺,但是我还没有看到任何形成链的数据的反向链表,更不用说形成区块了。

白皮书:帐户的验证器是此序列化表示的哈希值。注意,这种表示需要在对帐户进行任何修改之后,对整个帐户重新计算身份验证器。该操作的代价是 O(n),其中 n 是完整帐户的字节表示长度。

Jameson Lopp:如果没有对给定帐户存储的数据量进行限制,那么听起来就像 DoS 向量。

白皮书:我们预计,随着系统的使用,最终与帐户相关的存储增长可能会成为一个问题。正如 Gas 鼓励负责任的使用一样。对于计算资源,我们希望可能需要类似的基于 rent 的存储机制。我们正在评估一系列最适合生态系统的基于 rent 的机制的方法。

Jameson Lopp:另一个未解决的问题。迫不及待地想说“the rent is too damn high!!”

白皮书:为了允许客户端同步到新配置,epoch 期间和 epoch 之后的一段时间内的投票权都必须保持诚实。离线时间超过此期间的客户机需要使用一些外部数据源重新同步,以获得它们信任的检查点。

Jameson
Lopp:目前尚不清楚“这个时期”有多长,但如果一个 epoch 不到一天,我猜它也不到一天。似乎这个共识协议不够强大,参与者可能会离开并重新加入他们希望的网络。

5.LibraBFT

白皮书:LibraBFT 假设一组 3f +
1 的投票分布在一组验证器中,这些验证器可能是诚实的,也可能是拜占庭式的。LibraBFT 仍然是安全的,当最多 f 票由拜占庭验证员控制时,它可以防止双重开销和分叉等攻击。

Jameson Lopp:就像 PBFT 一样,这种一致算法可以容忍 33% 的验证器不诚实。HotStuff 修改听起来经过深思熟虑 :

1、通过让验证员对区块的状态 (而不仅仅是事务序列) 进行签名来抵制非决定性错误。

2、一个发出明确超时信号的 pacemaker,验证器依赖于其中的仲裁来进入下一轮——这应该可以提高活性。

3、无法预测的领导人选举机制,以限制 DoS 攻击领导人。

4、聚合签名保留签署仲裁证书的身份验证器,以对块接受进行投票。

6. 网络

白皮书:Libra 协议中的每个验证器都维护着系统的完整成员关系视图,并直接连接到需要与之通信的任何验证器。不能直接连接的验证器被认为属于系统所能容忍的拜占庭式故障的范围。

Jameson Lopp:这将需要大量的工作,以便将系统扩展到超过数百个验证器。

7、Libra 核心实施

白皮书:Libra 区块链的安全性取决于验证器、Move 程序和 Move VM 的正确实现。解决 Libra 核心的这些问题是一个正在进行的工作。

Jameson Lopp:虽然他们在 Rust 中编写了实现,但这似乎是性能和安全性的良好开端,而这部分内容已经基本总结完毕。

8、性能

白皮书:我们期待 Libra 协议的首次推出,以支持 1000 次支付计算。每秒 1000 次支付交易,并且在提交和提交的交易之间有 10 秒的最终时间。由于只有 100 个左右的验证器并且它们都直接相互连接,因此 10 秒的“区块时间”听起来可行。

Jameson Lopp:

最小节点要求 :

40 Mbps Internet connection

1 commodity CPU

16 TB SSD

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

9、用 Move 实施 Libra 生态系统政策

白皮书:Libra 币储备是实现保值的关键机制。通过储备,每枚币都有一套稳定的流动资产作为后盾。Libra 币合同允许协会在需求增加时铸造新币,并在需求合同时销毁它们。该协会不制定货币政策。它只能根据授权经销商的要求铸造和销毁币。用户不必担心这种关联会导致通胀或货币贬值 : 要铸造新币,必须有相应的法定存款准备金。

Jameson
Lopp:但是现在我们讨论的是网络外部的事件。如白皮书前面所述,网络无法执行使用网络状态外部数据输入的脚本。因此,上面这段话中“can”和“must”的修饰语肯定是指 Libra 的协会政策或合同义务,而 Libra 的社交网络并不知道这些。

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

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

白皮书:我们计划逐步过渡到 POS

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

突出的问题:

治理是如何工作的?

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

是否需要 AML / KYC?

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

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

Calibra 钱包 FAQ 承诺收费低,但这似乎与在高负载时底层协议的操作相冲突。

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

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

根据实现无许可共识的计划:

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

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

作者:Jameson Lopp 比特币开发者、专业密码朋克

来源:共享财经马明 责编:共享财经 Neo

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。