位置:编程技术网 > 云计算 > 正文 >

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

2019年06月25日 17:59来源:未知手机版

淘宝几天后自动付款,estate,腾讯网qq

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

Libra协议并未将帐户与真实世界中的身份进行关联。用户可以通过生成多个密钥对来自由地建立多个帐户。由同一用户控制的帐户彼此之间没有内在联系。这一方案效仿的是比特币和以太坊的,因为它为用户提供了假名。

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

每种资源都有一个由模块声明的类型。资源类型属于象征性类型,定义包括类型名称、声明此资源的模块名称及地址。

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

执行交易T i会产生新的账本状态S i以及执行状态代码、能耗情况与事件清单。

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

账本历史里面没有交易区块的概念。

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

Libra区块链的所有数据均存储在一个单一版本化的数据库中。版本号是无符号型64位整数,与系统执行的交易数对应。

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

把一批交易放入容器,或者叫区块的目的是为了对其进行排序以及加时间戳>

在Libra协议的最初版本里面,用户只能使用Move功能的有限子集。虽然Move用于定义核心的系统概念,比如Libra币等,但用户无法发布声明自己资源类型的自定义模块。根据实现核心系统组件的经验可知,这种做法可让Move语言和工具链在对用户开放之前就走向成熟。这种做法还可以将通用智能合约平台所面临的、内在的交易执行和数据存储的伸缩性挑战延后。

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

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

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

系统在设计上只要容量足够会让正常运行期间的费用较低。

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

执行交易

包括矿工费(gas fee)扣除在内,区块链核心逻辑的很多部分都是用Move来定义的。为了避免循环,VM在这些核心组件的执行期间禁用了gas的计量。

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

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

本文地址:http://www.reviewcode.cn/yunjisuan/53273.html 转载请注明出处!

今日热点资讯