新西蘭
繁體中文(香港)
分享

区块链布道者Jameson Lopp:Facebook“Libra”白皮书全解析

生活作者: 神译局
区块链布道者Jameson Lopp:Facebook“Libra”白皮书全解析
摘要神译局是旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风……

编者按:Facebook最近发布Libra白皮书是最近币圈最火的事件了。Libra是什么?它是如何工作的?它的核心实现机制如何?它能不能真正实现大家的梦想?这个东西的前景如何?区块链布道者Jameson Lopp在Medium上对此进行了详细解密,原文标题是:How Will Facebook’s Libra “Blockchain” Really Work?。

hougarden

那份技术文档有26页,里面描述了用来作为Facebook的Libra币平台的协议,我仔细研究了一下。里面的作者一共有53位之多!以下就是这份文档的拆解:

摘要

这里没有任何的装腔作势——系统将以自上而下的方式为一系列机构所控制。但是,要注意的是里面说数据库是“可编程资源”的数据库,而不仅仅是数字货币的数据库。

类似“资源”这样的一般用语的使用让我怀疑其用途远不止稳定币而已。

好吧,这开始有点有趣了。定制化的智能合约语言会带来很多问题,比如语言的功能丰富程度如何?系统相对敌对合约的健壮性如何?关于开发者友好性方面,以及Libra将如何保护智能合约开发者避免搬起石头砸自己的脚等方面也会有问题。

似乎Libra Association会成为一个联邦,可在投票系统及某种预先存在的信誉的帮助下演变。

关于开发者友好性方面,以及Libra将如何保护智能合约开发者避免搬起石头砸自己的脚等方面也会有问题。

简介

Libra是一种通用加密资产协议,而第一种资产将会是稳定币。

听起来跟权益证明极其相像。显然,其计划是在5年后开放会员,希望届时他们已经解决好权益证明了——不过我预计他们会遇到以太坊一样的问题。

我相当肯定,分布式网络从许可过渡到无需许可这将是第一次。也许这个网络整体看切换到权益证明,但为了维护稳定币锚定/篮子,部分实体需要向传统金融体系保持开放。这会是通过Libra Association集中控制的一个持续点。

听起来像是实用拜占庭容错,这是个为人熟知的已有20年历史的算法,尽管他们可能已经做出了一些调整。在白皮书的第五部分我们了解到它叫做LibraBFT,这是HotStuff共识协议的派生。

这一点值得注意,主要是因为这意味着新的验证者应该能够加入网络,并且迅速同步不需要重放区块链的整个历史,而是假设他们信任现有的验证者。

这种账户模型行得通是因为Facebook不大可能关心隐私,尽管它似乎的确对智能合约感兴趣。

逻辑数据模型

就数据结构的角度而言,相对于比特币,Libra跟以太币或Ripple更像。UTXO模型有利有弊——比方说,由于以输出为基础的历史的简单性,它的隐私性更好和交易历史更健壮——但是使用复杂的智能合约可能会更难。因此,帐户模型行得通是因为Facebook不太可能关注隐私,即便该平台似乎确实对智能合约感兴趣。

这似乎好得令人惊讶,但我在想对于Libra币这个资产来说情况是否也是如此。这个系统对于那些想要开发更注重隐私保护应用的开发者究竟有多开放呢?观察看看将会非常有趣。

似乎可以生成地址,且只要每个资产有唯一名称,任意数量的资产均可指向该地址。

好吧,现在我们知道系统如何免受资源耗尽攻击了,大概是利用了类似以太坊的能耗系统。

有趣。Libra协议里面并没有真正的区块链数据结构 ——区块更多是一种虚拟/逻辑构造,是验证者用来协调系统状态的已确认快照的。回想一下,本章的第一句话意义显得更重要了:

我所熟知的每种加密资产网络在高级层面的工作机制都是一样的:会有一个系统状态,然后执行一笔交易(其实就是个状态转换函数),然后就有了一个新的系统状态。

hougarden

把一批交易放入容器,或者叫区块的目的是为了对其进行排序以及加时间戳 。这对于无需许可的网络来说非常重要。在这种网络里面,数据是通过动态成员多方签名来进行身份验证的,验证者可以自由加入和离开网络。由于Libra跑的是有许可系统,所以可以使用更高效的共识算法,而不需要批量处理交易,因为交易历史重写的可能性要低很多。

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

Libra币其实上是该协议的原生单位,就像ETH是以太坊的原生单位一样。这导致了另一个问题,这个问题跟Libra的匿名属性有关:没有AML/KYC的情况下你可以获得Libra币吗?如果不能,则似乎你无法在匿名情况下使用任何的系统功能。根据Calibra钱包方面的读物来看,它是需要AML/KYC的。所以不知道它是否能逐步演进成一个不严格受控的系统。

这种说法很含糊,会引发很多疑问:什么叫低费用?什么是正常运行?多少是足够的容量?

执行交易

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

这个回答了较早前Libra币是不是ETH或BTC这样的原生资产的问题。我希望这些数字货币只是系统推出时允许的默认或者唯一的资源类型,其他资源晚点再推出。

似乎他们已经进行了周翔的考虑;希望这意味着其脚本语言的安全性审查要比以太坊做得更好。

验证过的数据结构和存储

再次地,我们看到所谓的“Libra区块链” 其实并不是区块链。这个协议似乎设计得非常好, 但当账本历史的数据结构是一组经过签名的账本状态时,他们仍然称之为区块链,这一点真的很奇怪 。验证者为每个账本状态做出承诺,并且所有历史账本状态也都在Merkle树中得到承诺,但我还没有真正看到形成一条链条的任何反向数据链表,更不用说区块链了。

嗯,如果对给定帐户的数据存储量没有限制的话,这似乎给DoS攻击打开了方便之门。

另一个未能得到解决的问题。我已经等不及想看到“租金太TM高了!”的表情包了。

哎哟哟。现在还不清楚这个“时间段”有多长,但如果一个创世不到一天,那我猜具体的“时间段”也不到一天。看起来该共识协议还没有健壮到参与者可以随意按照自己的意愿离开和重新加入网络的地步。

拜占庭容错共识

跟PBFT十分相似,这种共识算法可容忍1/3的验证者不诚实。 HotStuff修改似乎挺合理:

联网

这会需要大量工作才能让系统扩充到几百验证者以上。

Libra核心实现

差不多总结了本章的内容,尽管实现是用Rust来编写的,这似乎是性能和安全性的良好开端。

性能

既然只有100左右的验证者,而且互相全都是直接互连的,10秒钟的区块时间似乎可行。

最小节点要求:

之前有一些参考文献要求维系验证者从头开始执行初始同步的能力,而不是信任来自其他验证者的已签名状态。我的预期是如果 Libra 用得多的话,进行此类同步很快就会变得非常不切实际,因此节点安全模型会高度依赖于对验证者的信任。

通过Move实施Libra生态系统政策

好吧,可是我们现在谈的是网络外部的事件。正如白皮书前面所述,如果脚本使用了与网络状态无关的数据的输入,网络是不能执行这样的脚本的。因此,上述文字中的修饰词“能”和“必须”肯定是指网络不知道的Libra协会的政策或合同义务。

假设验证者要对该验证者组的变动进行投票,似乎这会导致我们在权益证明系统当中看到的类似问题——长程攻击(long range attacks)。如果受到连累的创始成员的私钥达到一定阈值,攻击者是否能从创世块开始写一个新的账本历史?如果是这样的话,其他节点会接受吗?目前尚不清楚共识协议是否允许重写旧状态,还是只允许添加。

好吧,除非他们能解决尚未解决的那些问题。

未决问题

如何进行治理?

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

AML/KYC是否需要?

在协议层面显然不需要,但 Calibra钱包声明,所有用户将通过政府发放的ID进行验证。Calibra钱包似乎是至少一段时间内唯一可用的钱包,所以目前还不清楚开发人员和用户能否在Libra网络上面跑不遵循与Calibra相同标准的App。

什么叫费用低?什么是正常运行?怎么才叫足够容量?

Calibra钱包的FAQ 保证费用不高,但这似乎与底层协议在高负荷时的操作可能会相冲突。

交易费会很低廉且费用透明,尤其是如果进行国际汇款的话。Calibra会降低费用,以帮助大家多省点钱。

Libra真会对开发者开放吗?

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

我怀疑开发人员是不是真能在这个平台上跑自己梦寐以求的任何在技术上有效的应用程序。我看到的东西里面没有一个能让我相信这个系统会抵制审查,但时间会证明一切!

原文链接:https://onezero.medium.com/thoughts-on-libra-blockchain-49b8f6c26372

译者:boxi。


转载声明转载声明:本文系后花园转载发布,仅代表原作者或原平台态度,不代表我方观点。后花园仅提供信息发布平台,文章或有适当删改。对转载有异议和删稿要求的原著方,可联络[email protected]