区块链:从技术角度分析Libra白皮书:缺乏创新且没有本质突破_MOVE

据悉,Libra白皮书共由53人署名撰写,其中包括了诸多权威专家和技术大牛。但是,Facebook首席执行官马克·扎克伯格,以及Facebook区块链项目负责人大卫·马库斯都没有署名参与。

Libra区块链参考了许多现有的区块链技术,包括以太坊的Account-based、实用拜占庭容错等等。不过,Libra虽然名为区块链,但本身的结构中并没有区块;此外,他们还开发了一个独特的智能合约语言“Move”。

整体来看,Libra白皮书似乎是“集各家所成”,在评估了当前各类区块链的优势后,进而设计出的一套最适合的机制与技术架构。

但是Libra白皮书给人的感觉依然是“缺乏亮点”,因为白皮书中并没有表示它们解决了目前区块链面临的问题,所以未免会让很多人感觉到很失望。

由此来看,发布这份白皮书的主要目的可能还是在于吸引更多社群讨论与反馈。

1

五年后:从联盟链变成“公有链”

根据白皮书以及一些确定的消息,Libra的节点是由Libra协会里的机构所运行,且必须通过一定的门槛,而参与的机构需要连续五年缴纳“发展金”,每年至少缴纳1000万美元帮助Libra发展,且参与的机构需要成立非营利组织,而在初期会由Libra协会运行这个区块链。

这种由特定组织内运行节点的区块链,其实就是我们通常所说的“联盟链”,Libra白皮书中称之为“许可型区块链”,这部分与Hyperledger十分相似。

此外,白皮书中也直接了当的写道:“Libra协议允许来自不同机构的一组副本共同维护可编程资源的数据库。”

而从白皮书看来,Libra会逐渐开放越来越多的机构参与,最后会开放100个节点,实现每秒1000笔交易,这些机构必须通过另外独立的代币进行链上投票,进而管理Libra的相关决策。

随着时间的推移,Libra最后会演变成公有区块链,所有人都可以作为节点验证交易,似乎暗示了Libra未来将会走向权益证明区块链。

另外值得注意的一点,因为Libra现在类似于联盟链,交易历史较不容易被重写,它不会要求用户验证整个帐本,用户只需要持有最后一个被验证的内容,这点与R3的Coda区块链类似,白皮书是这样写的:

“历史数据可能会超出单个服务器可以处理的数量。验证者可以随意丢弃在处理新交易时不需要的历史数据。”

2

不算区块链?

Libra不断在各种介绍中称自身为区块链,这一点其实比较令人困惑。因为严格来说Libra其实并不算是区块链,这点在Libra白皮书中也有写道:

分布式帐本中没有交易区块的概念。

在Libra中,并没有区块链形式的数据结构,取而代之的,在Libra之中是一种逻辑结构,而这种结构是用来协调系统的已确认快照。所有数据都存储在“单个版本控制的数据库”中,数据库中有64位数的哈希值,这些哈希值对应了系统执行的交易数据。

有趣的是,白皮书表示数据库是针对“可编程资源”,而不只是可编程货币。这意味着Libra不仅是支付系统,也可以在上面撰写智能合约。

3

类似PBFT的共识算法

Libra的共识算法“LibraBFT”基于HotStuff框架,而该系统的节点验证方式类似于20年就出现的实用拜占庭容错,其方式如下:

1.节点轮流当领导验证节点,客户端的交易数据给领导节点。

2.领导节点将交易数据交给其他验证节点。

3.领导节点和验证节点同时验证此交易,并各自形成包含验证数据的新帐本数据。

4.验证者在新帐本数据投票,产生共识协议,包含“交易Ti”以及新的帐本“i版本”。

5.客户端可向验证节点查询数据,包括整个帐本。

这个共识算法与PBFT非常相似,每一个收到信息的节点,都会广播至其他人,不断重复进行信息交换,相互验证,让可信的节点之间能够确认正确的信息,识别出有问题的节点。这种系统可以容忍33%、也就是三分之一的不诚实节点作恶。

4

Libra的帐户系统:Account-based

Libra区块链协议的帐户是匿名的,用户经过KYC认证后,可以通过生成多个私钥对创建多个帐户。由同一用户控制,而帐户之间没有固有的连结。这是参考比特币和以太坊的设计。

而Libra的帐户系统是接近以太坊的Account-based,意指每个人都有一个帐户,每个人通过私钥控制自己的钱包,能够存钱、转帐的私人钱包。每个用户可以生成一个帐户,而这个帐户是唯一的,该帐户可以分配任意数量的资产。

其中“交易”特别指的是由个人帐户所送出的签名封包,可以是纯粹的转帐,也可以是拿来启动智能合约的Functioncall。在Account-based的系统下,Libra的快照除了包含的交易列表外,还有一个Globalstates记录所有帐户的余额状态。

5

帐本数据存储问题:尚未解决

帐本数据存储资源遭到滥用是以太坊目前遇到的问题,即用户在区块链帐本增加占用的存储资源时,不需要额外支付成本,导致资料存储量无限制增加。

而Libra在这个问题上似乎尚未找到答案,白皮书中是这样写的:“我们预计,随着系统的使用,最终与帐户相关的存储增长可能会成为一个问题。”

目前还不确定Libra是否会考虑像未来“以太坊2.0”的更新中,正考虑实现的一种状态租赁功能,即向用户收取存储数据的费用,Libra白皮书指出,为了管理对计算容量的需求,Libra协议将收取以Libra代币计价的交易费用,但没有明确定义:

正如Gas鼓励负责任的使用计算资源一样,我们期望存储可能也需要一种类似“基于租金的机制”。我们正在评估各种最适合生态系统的“基于租金的机制”。

6

Move智能合约语言

在Libra白皮书中提到了一个新的智能合约语言,叫做“Move”,许多开发者都认为Move是为了数字资产而生的智能合约语言,这点又类似于以太坊。Move智能合约语言有三种用处:发行数字资产、灵活处理区块链交易、节点管理。

Move采用的是静态类型系统,本质上是一种逻辑约束。相比以太坊的智能合约语言来说要严格地多,这种类型系统的优点是,很多编程低级错误都可以在编译的时候发现,而不是拖到运行期才爆出bug。

此外,除了降低错误率之外,Move智能合约语言还导入了“First-classResources”。

传统的编程语言,包括以太坊智能合约语言中,对于数字资产的记账是采用的Value方式,这会导致一个问题:记账是有可能记错的。

事实上记错帐的智能合约相当得多。譬如说,A转了10块钱给B,结果B的帐户多了10块钱,但是A的账户余额却没变。这种错误在过去两年层出不穷,甚至一度搞得大家已经对智能合约的未来丧失了信心。

Move合约采用了一种吸收了传统理论“线性逻辑”的类型,叫做Resource,数字资产是用“Resource”来定义,这样一来,数字资产就像资源一样,这样就会产生两种特性:

1.数字资产不能复制;

2.数字资产不能凭空消失。

摘用白皮书摘要中的一句话:“作为一等公民的资源是一种非常普遍的概念,程序员不仅可以用它实现安全的数字资产,同时也可以编写正确的业务逻辑,实现正确的访问控制策略。”

这意味者,Move智能合约语言是专为是为操作数字资产而产生的,Move的静态类型系统使得智能合约代码能够在编译期,检查出绝大多数的资源使用错误。避免智能合约出现漏洞。

现在Move语言并没有开放给一般人使用,Libra在官网介绍中写道,未来将会开始扩展智能合约扩展Move平台,并持续优化:

Move语言目前仅用于内置智能合约,例如管理验证者节点集和Libra币的合约,随着这种语言趋于稳定,协会计划面向所有第三方开发提供。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

DAI以太坊:你们的足球,我的青春(三)_MOVE

背影远去,我们不为你哭泣,只为你无眠。………大卫·贝克汉姆 在足球场上,他不是天才 没有上帝的眷顾,他只是默默的奔跑,静静的等待美丽的弧线让他集万千宠爱却也让他背负了太多本不属于他的责任直到曾经.

[0:0ms0-4:181ms