-
Notifications
You must be signed in to change notification settings - Fork 2
/
[New]Libra系列(一)(科普)
93 lines (48 loc) · 5.53 KB
/
[New]Libra系列(一)(科普)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Libra协议支持来自不同权威机构的验证者共同维护可编程资源数据库。
这个系统将由一组权威机构以自上而下的方式控制。
值得注意的是,该数据库是为“可编程资源”而设计,而不仅仅只是数字货币。
这些资源由经过公钥加密验证的不同用户账户持有,并遵循由这些资源的开发人员制定的自定义规则。
使用“资源”这样的字眼,让人忍不住联想,Facebook 的目标不仅仅局限于稳定币。
交易基于预定义的合约,在未来的版本中,用户将使用一种名为Move的新编程语言定义智能契约,
使用Move来定义区块链的核心机制,比如代币和验证者成员之间的关系。
这些核心机制能够创建一种独特的治理机制,该机制建立在早期机构的稳定性和声誉的基础上,随着时间的推移会过渡到完全开放的系统。
Libra 作为全球性货币,将完全由一篮子银行存款和来自高质量央行的国债支持,它是一个通用的加密资产协议,而第一个资产是稳定币。
随着时间的推移,Libra的会员资格将完全开放,并且只基于天秤座的会员数量。
这听起来很像PoS。
该计划是在五年后开放会员资格,希望他们能在那时能找到解决 PoS 的方案,但很有可能会遇到和以太坊相同的问题。
Libra协会发布了向无许可系统转变的路线图概述。
我个人认为这将是分布式网络第一次从许可过渡到无许可,或许整个网络可以转变为股权证明,但为了维持稳定的锚定/篮子机制,
一些实体必须为传统金融体系架起一座桥梁,这将是一个通过Libra协会持续集中控制的点。
验证者节点轮流处理交易,当某验证者节点充当领导者(leader)角色时,他对该交易提出提议,
并将其通过客户端直接提交给其他验证者节点。所有的验证者节点执行该交易,
并以此构建一个经过认证的包含新账本历史的数据结构。验证者节点们对该数据结构的认证结果进行投票,以作为共识协议的一部分。
这听起来像是拜占庭式容错算法,一种已有20年历史的算法,不过 Facebook 可能对其做了一些调整。
在白皮书的第5节中了解到,它叫LibraBFT,是HotStuff协商一致协议的变体。
作为在版本 i 提交事务T_i的一部分,共识协议在版本 i 的数据库的完整状态(包括整个历史记录)上输出签名,以便对来自客户端查询的响应进行身份验证。
这一点所带来的好处是新的验证者能够加入网络并快速同步,而不必重播整个历史,前提是信任现有的验证者。
从数据结构的角度来看,Libra更像以太坊或Ripple,而不是比特币。
UTXO模型有优点也有缺点——由于基于输出的历史记录,它具有更好的私密性和更健壮的交易历史记录——但是处理复杂的智能合约可能不尽人意。
因此,账户模式自有其存在的道理,因为Facebook 不太可能关注隐私,尽管听起来对智能合约很感兴趣。
Libra的协议不把账户和真实世界的身份联系起来,用户可以通过生成多个密钥对自由地创建多个账户。
由同一用户控制的账户彼此之间没有内置的链接,该方案以比特币和以太坊为例,为用户提供假名,值得拭目以待的是 Libra 平台的开放程度会到何种地步。
每个资源都有一个基于模块声明的类型,由类型的名称和资源声明模块的名称和地址组成,这意味着可以生成一个地址,并且这个地址可以分配任意数量的资产,只要每个资产都有一个唯一的名称。
执行一个交易将生成一个新的分类账状态以及执行状态代码、Gas 使用情况和事件列表。
Libra协议中没有实际的区块链数据结构——区块更像是一个虚拟的逻辑结构,验证者使用它来协调已确认的系统状态快照。
Libra区块链中的所有数据都存储在一个版本控制的数据库中,版本号是一个无符号的64位整数,对应于系统执行的交易数。
我所熟悉的每一个加密资产网络在某种程度上都以相同的方式工作:
已有一个旧系统状态,然后执行一个交易,实质上是一个状态转换函数,以此形成一个新的系统状态。
在Libra协议的初始版本中,Move功能的一小部分是可供用户使用的,也就是说虽然Move用于定义核心系统,例如Libra货币,
但是用户无法发布声明自定义的资源类型模块。
基于先前开发系统核心组件的经验可知,这使得 Move 语言及其工具链在暴露给用户之前趋于成熟,
这种方法还避免了交易执行和数据存储方面等智能合约平台固有的可扩展性。
为了实现对计算能力的管理,Libra协议收取以Libra 为计价单位的交易费用。
Libra 代币实际上是协议的原生单位,就像ETH是以太坊的原生单位一样。这就引出了另一个关于天秤座的假名性质的问题:
用户能在没有AML/KYC的情况下获取代币吗?
如果没有,那么用户似乎无法匿名使用系统的任何功能。
通过阅读 Calibra 的相关文档可知,它将需要AML/KYC。
所以我想知道最终是否会有一些进入系统的通道没有受到严格控制。
该系统的设计目的是在正常运行期间,容量足够时,能有较低的费用。
这里的界限很模糊,不禁令人深思:
什么是低收费?
什么是正常操作?
什么是足够的容量?