区块天下 区块链新闻 Facebook的区块链加密货币Libra到底有什么用?

Facebook的区块链加密货币Libra到底有什么用?

全文共5861字,预计学习时长12分钟

图片来源:Chesnot/Getty Images

libra是Facebook新推出的加密货币。Libra协议允许一组来自不同权威机构的副本(也就是校验器)共同维护可编程资源的数据库。

坦白说,这个系统将由一组权威机构以自上而下的方式控制。然而,请注意,该数据库是为“可编程资源”建造的,而不仅仅是为数字货币建造。

这些资源通过公钥加密身份验证的不同用户账户所有,且用户需要遵循开发这些资源的工程师详细定制的规则。

诸如“资源”这一类通用词汇的使用,让人不禁猜想,这不仅仅是为稳定数字币所建的数据库。

交易基于预定义及用户定义(在未来版本中)的智能合约,其由一种全新的编程语言进行编程——Move。使用Move语言来定义区块链的核心机制,比如货币和校验器会员资格。

使用定制的智能合约语言会导致很多问题,比如该语言的功能有多丰富,以及该系统因此在抵御对抗性合约方面有多强大。还有一些问题:对开发人员是否友好,以及Libra能在多大程度上防止智能合约的开发人员搬起石头砸自己的脚。

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

如此看来,在投票系统和一些现存口碑的帮助下,Libra协会将会愈加壮大。

1. 导论

图片来源:pexels.com/@pixabay

这个生态系统将提供一种全新的全球货币——Libra数字货币——一篮子银行存款和高质量的央行国债对其鼎力支持。

Libra是一个通用加密资产协议,而其第一份资产将会是稳定数字币。

随着时间的推移,Libra的会员资格将完全开放,依据Libra的持有量决定会员的资格。

听起来很像权益证明。显然,计划是在五年后开放会员资格,希望到时候他们能搞懂权益证明——尽管有可能他们会遇到与以太坊(Ethereum)相同的问题。

该协会发表了一些报告,概述了向无许可系统转变的蓝图。

可以肯定这会是分布式网络从许可系统到无许可系统的首次过渡。或许整个网络都可以转变为权益证明,但为了维持稳定数字币的钉住汇率制/一篮子汇率制,一些实体必须与传统金融体系保持互通。这一点将通过Libra协会持续集中控制。

校验器轮流推动接受交易的进程。当校验器充当领导者时,无论是由客户直接提交的交易,还是由其他校验器代为提交的交易,都由其向其他校验器提出交易。所有校验器都执行交易,并组建出一个包含新分类帐历史记录的认证数据结构。作为一致性协议的一部分,校验器就此数据结构的身份认证器进行投票。

听起来有点像实用拜占庭容错算法, 这个算法已经有20年历史,且已被人们充分理解,虽然他们或许做出过一些调整。在白皮书的第5节中可以了解到,这个投票叫作LibraBFT,是HotStuff一致性协议的变体。

作为在i版本中提交T i交易的一部分,一致性协议在版本i中输出表示数据库完整状态(包括整个历史记录)的签名,以便认证对客户查询的回应。

这一点值得注意,因为这意味着新校验器能够登入网络并实现快速同步,而不必回顾区块链的整个历史,当然前提是现有的校验器是被信任的。

这种账户模式说得通,因为Facebook可能不太关心隐私,但他们对智能合约却很感兴趣。

2. 逻辑数据模型

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

从数据结构的角度来看,Libra更像是以太坊(Ethereum )或瑞波(Ripple),而不是比特币(Bitcoin)。UTXO模型有优点也有缺点:由于其输出型历史的简单性,它会有更好的私密性和更为健全的交易记录,但若用这个模型处理复杂的智能合约可能会更加困难。因此,这种账户模式说得通,因为Facebook可能不太关心隐私,但他们对智能合约却很感兴趣。

Libra协议不会把账户和真实世界的身份联系起来。用户可以通过生成多个密钥,自由地创建多个帐户。由同一用户控制的多个帐户之间没有内在的联系。该方案效仿比特币(Bitcoin)和以太坊(Ethereum),为用户提供假名。

这种制度听起来很不错,但是不知道这种制度是否也适用于Libra数字货币这项资产。有一些开发人员致力于开发极其重视隐私性的应用程序,对于他们来说,观察这个系统的开放程度是很有意思的。

模块会为每一资源申报类型。资源类型是由类型名称和资源申报模块的名称和地址组成的名义类型。

用户可以生成一个地址,而这个地址会带有随机数量的资产,只要每个资产名称是独一无二的就好。

执行一笔Ti交易将生成一个新的Si分类帐状态、执行状态代码、气体使用情况和事件表。

现在可以假设这个系统免遭资源耗竭攻击的方式是利用了一套与以太坊(Ethereum)相似的资源成本系统。

在分类账的历史上没有交易的概念。

实际上,在Libra协议中没有区块链数据结构,这更像是一个虚拟的逻辑结构,校验器用它来协调已认证的系统状态快照。现在再看,这一部分的第一句话就更合情合理了:

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

几乎每种熟知的加密资产网络,都有着大致相同的运行方式: 先有一个系统状态,然后执行一笔交易,该交易实际上是一个状态转换函数,然后一个新的系统状态出现。

将多笔交易放入本地编辑或代码块的目的是对它们进行排序和时间标记。这一点对于无许可网络来说非常重要,通过动态多方会员签名验证网络中的数据,而校验器可以自由的登入和登出网络。因为Libra运行的系统是经过许可的,所以它可以使用更有效的一致性算法,它不需要批处理交易,因为交易记录基本不会被重写。

在Libra协议的最初版本中,用户只能使用Move语言的一小部分功能。尽管Move语言是用于定义核心系统概念的,例如Libra数字货币,但是用户无法发布用以申报其资源类型的自定义模块。这种方法可以让Move语言和工具链在向用户公开之前,根据执行核心系统组件的经验走向成熟。这种方法还避免了交易执行和数据存储方面的可伸缩性挑战,而这些挑战是通用智能合约平台所固有的。

这听起来非常像前文提到的“开放检验器会员资格”计划。看来以太坊(Ethereum )多年来一直在努力解决的这些重大问题,Facebook也还没能解决。

为了管控对计算量的需求,Libra协议对使用Libra币计价的交易收取交易费。

Libra币实际上是协议的原生单位,就像ETH是以太坊的原生单位一样。这就引出了另一个关于Libra的假名性质的问题:在没有阵列机语言(AML)/了解客户规则(KYC)的情况下能获得电子货币吗?如果不能,那就意味着匿名状态下无法使用系统的任何功能。从Calibra电子钱包来看,它需要使用阵列机语言(AML)/了解客户规则(KYC)。所以最终是否会有一些系统的入口不受严格控制。

该系统旨在有足够能力时,在正常运行期间收取低额费用。

这个概念非常模糊,并引出许多问题: 什么是低额费用? 什么是正常运行? 什么是足够能力?

3. 执行交易

区块链的许多核心逻辑模块都是由Move语言定义的,包括扣除天然气费用。为了避免循环,VM在执行这些核心组件时禁用了气体计量。

这听起来相当危险。但是,文件的作者指出,必须编写防御式的核心组件以防止拒绝服务攻击。

Move的关键特征是能够定义自定义资源的类型…该类型的系统提供特殊的资源保障服务,资源只能移动而无法复制。Move虚拟机静态操作可以实现保障,这样我们能够在Move语言里将Libra硬币当作一种资源。

这就回答了之前的问题:Libra硬币能否像以太币和比特币一样是一种天然资产呢?我们希望这些硬币是系统启动时的默认或唯一允许的资源类型,其他的资源之后提供。

Move基于堆栈的字节码比高级源代码的指令更少,此外,每个指令语义简单,可以通过更少的原子步骤表达。这不仅减少了Libra协议的规范存储空间,而且更容易发现执行错误。

听起来是经过深思熟虑的,这很有可能意味着它们的脚本语言的安全性比以太坊得到更严格的审查。

我们看到的Libra区块链实则并非区块链。

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

图片来源:pexels.com/@moose-photos-170195

Libra协议使用梅克尔树为分类账历史提供经过验证的数据结构…具体来说就是分类账历史运用梅克尔树的累加法形成梅克尔树,同时也提供了高效的附加操作。

再一次可以看到,Libra区块链并不是真正意义上的区块链。奇怪的是,这项协议似乎是经过精心起草的,然而当分类账历史的数据结构是一系列被标记的账户状态时,仍将其称之为区块链。验证器正在为每一个分类账状态提供保障,所有的历史分类账状态在梅克尔树中同样得以承诺。但是,我们还没看到任何形成链的反向链表,更别说形成区块了。

账户的验证器是此序列化表示的哈希值。

值得注意的是,这种表示法要求在对账户进行修改之后重新计算整个账户的身份验证。这一操作的代价是O(n),其中n是指一个完整账户的字节表示长度。

如果没有对给定账户的数据存储量设定限制的话,这听起来像是对拒绝服务攻击敞开了大门。

我们预计,随着系统的使用,与账户相关的存储增长可能会成为一个问题。正如天然气行业鼓励大家负责任地使用计算资源一样,我们可能需要一个基于租赁的存储机制。为此,我们正在探索一系列方法以建立最适合生态系统的租赁机制。

还有一个问题尚未解决,那就是租赁成本太高了。

为了使客户端同步到新配置,投票权必须在纪元期间以及之后的一段时间内保持公平公正。离线时间超过这段时期的客户机需要使用外部数据源重新同步,以获取其信任的查核点。

“这段时期”有多长还不得而知,但如果一个纪元还不到一天的话,那估计这里所指的“这段时期”也是如此。这一共识协议似乎还不够稳健,参与者可能会随时离开并重新进入它们想要加入的网络。

5. 拜占庭容错共识

LibraBFT假设一组3f+1的投票分布在一系列验证器中,这些验证器有值得信任的,也可能存在拜占庭成员。当最多有f票被拜占庭验证器所控制时,LibraBFT仍然是安全的,可以防止双重支付或叉形指令等攻击。

这种一致性算法类似于实用拜占庭容错算法,最高可容忍33%的验证器出现错误。而HotStuff修正听起来很合理:

1. 验证器对区块状态(而非仅仅是交易序列)进行标记以防止非确定性漏洞。

2. 验证器依托于特定数量的有超时设定功能的起搏器来进入下一个环节——这可以提升延续性。

3. 无预测的领导机制限制拒绝服务攻击。

4. 聚合签名保留了签署法定证书的身份验证器以支持块接收。

6. 网络

Libra协议中的每个验证器都维护着系统的所有成员关系,并直接连接到需要与之通信的任何验证器。不能直接连接的验证器视为在系统所能容忍的拜占庭式故障的范围内。

想要将系统扩展至成百上千个验证器,需要进行大量的工作。

7. Libra Core软件执行

Libra区块链的安全性取决于验证器、Move程序和Move服务器的正常运行,而LibraCore所存在的一系列问题仍有待解决。

总而言之,他们在Rust中编写了执行程序,对于性能和安全性来说也算得上是一个良好的开端。

8. 性能

我们预计Libra协议的首次实施将可以支持每秒1000次支付交易,每次交易的提交与确认之间有10秒钟的间隙。

由于只有100个左右的验证器,而且它们都是相互直接连接的,所以10秒的轮档时间应该是可行的。

最小节点要求:

· 40 Mbps 互联网连接

· 1个中央处理机

· 16 TB固态驱动器

之前有一些关于维护验证器从头执行初始同步(而非信任其它验证器的标记状态)的能力的引用。我估计,如果Libra得以广泛应用,那么这种执行将变得非常不切实际。因此,节点安全模型将高度依赖于信任验证器。

9. Move语言执行Libra生态系统策略

图片来源:pexels.com/@davidmcbee

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

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

共识算法依赖于设置了验证器集管理的Move模块来维护当前的验证器集,并管理验证器之间的投票分配。最初,Libra的区块链只给创始成员投票。

假设验证器对验证器集的更改进行投票,听起来这会导致我们在股权系统证据中看到的类似问题——即远程攻击。如果创始成员的私钥的一个阈值被破坏,那么攻击者可以重新编写一个新的分类帐历史记录吗?如果是,其他节点会接受吗?目前尚不清楚共识协议是否允许重写历史记录,还是只允许追加。

我们计划逐步过渡到权益证明,以期解决其它问题。

Q&A

1. 管理如何运作?

Libra协会是一个由会员组成的委员会,需要获得2/3的绝对多数投票才能改变决策。他们是唯一有权生产或销毁Libra硬币的人,但如果能达成一定共识,他们可以做出任何他们想要的改变。

2. 是否需要AML(反洗钱) / KYC(了解你的客户)?

显然,协议级别并不需要。但是,Calibra钱包声称所有的用户都会通过政府发行的身份证进行验证。Calibra钱包看似是至少一段时期内唯一可用的钱包了,目前还不清楚开发人员和用户是否可以在Libra网络上运行那种遵守与Calibra不同标准的应用程序。

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

Calibra钱包常见问题承诺收取较低的费用,但这似乎与在高负载状态下底层协议的运行相冲突。

交易费用是低成本的和透明的,尤其是国际汇款。Calibra将通过削减费用的方式帮助用户省钱。

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

根据计划向非许可型共识发展:

Libra区块链向所有人开放,任何消费者、开发人员或企业都可以使用Libra网络,在此基础上构建产品,并通过提供服务增加价值。开放获取确保了较低的进入壁垒和创新,鼓励有利于消费者的健康竞争。开放获取使得进入和创新壁垒较低,促进了良性竞争,消费者将从中获益。

对于研发人员是否能够在这个平台上运行他们理想中的任何有效的技术性应用程序,相信时间会告诉我们答案。

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

返回顶部