原文链接:https://developers.libra.org/docs/reference/glossary
译者:humyna
日期:2019.09.27
版权及转载声明:本文采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
- 累加器根哈希(accumulator root hash) Merkle 累加器 的hash root。
- 访问路径(access path) 指定特定帐户中资源或Move模块的位置。
- 在Libra 区块链的状态中,帐户被表示为访问路径到值的映射。 Move VM将此表示反序列化为模块和资源。
- 客户端可以使用访问路径来请求资源或存储在资源内的特定数据。
- 账户(account) 在Libra区块链中,账户是任意数量的 [Move模块] 和 [Move资源]的容器。这意味着每个帐户的状态由代码和数据组成。
- 该帐户由 [账户地址]来标识。
- Libra账户的地址是一个 256位 值。
- 用户可以通过生成加密密钥对来创建地址。
- 帐户地址是用户的公共验证密钥的加密散列。
- Libra用户可以创建任意数量的地址。
-
在Libra Core中,准入控制是验证器的唯一外部接口。 来自客户端的任何请求(交易提交或查询)都通过准入控制。 客户端不能在不经过AC访问存储或系统中的任何其他组件。 它会过滤请求并保护系统。
-
AC 是所有客户端交互的验证器的入口点。 它对提交的交易执行基本有效性检查。 完成有效性检查后,它将交易传递给 内存池。
-
客户端将使用准入控制提交交易和执行查询(读取)。
- 验证密钥用于验证签署交易的加密密钥。
- 它是存储在区块链上用户帐户中的一段数据。
- 用户可以通过转变身份验证密钥来转变其签名密钥。
- 块是一个或多个交易的有序列表。 验证器使用它来就交易的排序和执行结果达成共识。
- 块是Libra区块链中的内部实现概念,即它们对客户端不可见。 在某个时间点提交给Libra账本的所有交易都是块的一部分,但区块链表示为一系列交易。
- 区块链是一个分布式公共账本。
- Libra区块链由批准的交易和这些交易的执行结果组成。
- 不遵循共识协议规范并希望影响协议的正确执行的验证者。
- BFT算法支持超过由拜占庭验证器持有的算法投票权的三分之一。
- 拜占庭容错(BFT) 是一个分布式系统在出现故障或“拜占庭”成员低于一定阈值时提供安全性和存活保证的能力。
- Libra 区块链使用LibraBFT,这是一个基于 HotStuff 的共识协议。
- BFT算法通常与多个实体一起操作,它们共同持有N个投票(在系统的Libra应用中称为“验证器”)。
- 选择N是为了抵抗一些持有f票的恶意验证器。
- 在该配置中,N通常设置为3f + 1。 最多f票的验证人将被允许出现故障 — 离线,恶意,缓慢等等。只要 诚实的 验证者持有2f + 1票,他们就能够就一致的决定达成共识。
- 这意味着BFT共识协议可以正常运行,即使多达三分之一的投票权被破坏或失败的验证器节点持有。
客户端是具有能够与Libra 区块链进行交互能力的软件。
- 它可以允许用户构造,签名并将新交易提交给验证器节点的准入控制组件。
- 它可以向Libra区块链发出查询和,请求交易或帐户的状态。
- 客户端可以由最终用户或代表最终用户(例如,托管钱包)运行。
- 共识组件是验证器节点的一个组件。
- 共识组件负责几乎所有验证器的要执行的交易块、它们的排序和执行结果进行协调和达成一致。
- Libra区块链是由达成一致的交易及其相应的执行结果组成的。
- 在托管钱****包 模型中,钱包负责保管客户的资金和私钥。
- 别名: 加密货币。
- Libra也是一种数字货币。
- Ed25519 是我们支持的数字签名方案。
- 更具体地说,Libra使用在RFC 8032中定义的基于Ed25519曲线的PureEdDSA方案。
- epoch是一段时间,在该时间段内,共识协议的实例使用一组固定的验证器和投票权运行。
- 要更改验证器和/或其投票权的集合,当前epoch以提交特的殊/管理的智能合约交易结束,启动新的epoch。
- 事件(event) 事件是执行交易的效果面向用户的表示。
- 交易可以设计为以列表的形式发出任意数量的事件。 例如,点对点支付交易为发件人帐户发出
SentPaymentEvent
,为接收人帐户发出ReceivedPaymentEvent
。 - 在Libra协议中,事件提供了成功执行交易产生特定效果的证据。上面的例子中的
ReceivedPaymentEvent
允许接收人确认他们的帐户收到了付款。 - 事件在区块链上持久化,用于应答客户端的查询.
- 交易的执行结果是以下组合:
- 交易影响的账户集的新状态。
- 通过执行交易发出的事件
- 退出代码,指示成功或一个特定错误。
- 执行交易时消耗的gas单位数。
交易在过期时间后不再有效。如果假设:
- Time_C是验证器之间达成一致的当前时间(Time_C不是客户端的本地时间);
- Time_E是交易T_N的过期时间;
- Time_C > Time_E和交易T_N尚未包含在区块链中,
然后保证T_N永远不会包含在区块链中。
- Faucet 是在测试网上创建没有真正价值的Libra Coin的方法。
- Faucet是一个与testnet一起运行的服务。 此服务仅用于促进测试网的铸币。
- 你可以通过使用cetcet发送一个创造币的请求,并可以将币转到你指定的账户。
- Gas 是一种在区块链网络进行计算和存储的支付方式。 Libra网络上的所有交易都需要花费一定数量的gas。
- 交易所需的gas取决于交易的大小,执行交易的计算成本以及交易创建的额外全局状态的数量(例如,如果创建新的账户)。
- gas的目的是调节对验证器的有限计算和存储资源的需求,包括防止拒绝服务(DoS)攻击。
- 每笔交易均指明其愿意支付的Gas价格(以微Libra/Gas为单位)。
- 交易所需的gas价格取决于当前对网络的使用需求。
- gas成本(以gas为单位)在某个时间点固定。
- 一个忠实地执行共识协议而不是拜占庭式的验证器。
- HotStuff 是最新的 BFT 共识协议的提案。
- Libra的共识算法LibraBFT基于HotStuff。
- 它简化了安全性的推理,并解决了以前共识协议的一些性能限制。
- LBR 是Libra货币的缩写。
- 领导者是一个验证者节点,它为共识协议提议一个交易块。
- 在基于领导者(leader)的协议中,节点必须就领导者达成一致才能取得进展。
- 领导者由一个以当前 round number 为输入的函数选择。
- Libra 是一种全球数字货币。
- 它存储在Libra 区块链上。
- 由一篮子资产储备作为后盾。
- 由独立的Libra协会管理。
- Libra Association Libra 协会是一个独立的、非盈利的会员组织,总部设在瑞士日内瓦。协会的目的是协调和提供一个网络治理和储备的管理框架。
- 协会由运行在Libra网络上的验证器节点创建。
- 有关Libra协会的使命,愿景和权限的说明,请参阅 Libra white paper。
- Libra 协会理事会是Libra协会的管理机构。
- Libra 协会理事会是Libra协会的一部分。
- LibraBFT是Libra协议的BFT共识算法。
- LibraBFT基于HotStuff。
- **Libra 区块链 **是Libra网络(验证器节点网络)上验证器节点商定的不可改变的交易的账本。
- Libra Core 是Libra 协会发布的Libra协议的开源实现软件的官方名称。
- 该软件是Libra协议和Move语言的第一个实现。
- Libra Core 包括验证器和客户端功能。
- Libra 协议 是在Libra生态系统中如何提交、排序、执行和记录交易的规范。
- Libra reserve 是支持Libra的总货币持有量。
- 要成为Libra协会的验证器节点,就必须对储备进行投资。
LibraAccount.T
是一个Move资源,它包含与帐户关联的所有管理数据,例如序列号,余额和身份验证密钥。LibraAccount.T
是保证每个帐户都包含的唯一资源。
- The LibraAccount 模块 是一个Move模块,其中包含用于操作特定
LibraAccount.T
资源中保存的管理数据的代码。 - LibraAccount模块包含用于检查或递增序列号,提取或存入货币以及提取gas押金的代码。
- 详见 testnet。
- 交易的最大Gas量是发送人准备为交易支付的最大gas量。
- 收取的gas等于gas价格乘以处理此交易所需的工作单位。 如果结果小于最大gas量,则交易被成功执行。
- 如果交易在执行过程中耗尽了gas,或者帐户在执行过程中耗尽了Gas,那么将向发送方收取使用了的Gas的费用,交易将失败。
- Mempool 内存池是验证器节点的组件之一。 它包含已提交但尚未确定并执行的交易的内存缓冲区。 内存池从 准入控制 接收交易.
- 验证器的内存池中的交易是从当前验证器的准入控制(AC)和其他验证器的内存池中添加的。
- 当前验证者是领导者时,它的共识组件内从其内存池中拉取交易并提议排好序的交易的形成区块。 验证器法定人数到达后,对该提案进行投票。
- Merkle 树 是一种已经验证的数据结构,它允许有效地验证数据完整性和更新。
- Libra网络将整个区块链作为单独的数据结构,随时间的变化记录交易历史和状态。
- Merkle树实现了简化访问区块链的应用程序的工作。 它允许应用程序:
- 在任何时间点读取任何数据。
- 使用统一的框架验证数据的完整性。
- Merkle 累加器 是一个 append-only Merkle 树,Libra 区块链用它来存储账本。
- Merkle累加器可以提供交易包含在链中的证据(“包含证明”)。
- 它们在文学中也被称为 history trees。
- Move程序被编译为Move字节码。
- Move字节码用于表示交易脚本和Move模块。
- Move模块定义了更新Libra区块链全局状态的规则。
- 在Libra协议中,一个Move模块就是一个智能合约。
- 每个用户提交的交易都包含一个交易脚本。 交易脚本根据规则调用一个或多个Move模块的过程以更新区块链的全局状态。
- Move资源包含可根据 Move模块 中声明的 程序 访问的数据。
- Move资源永远不会被复制,重用或丢失。这可以保护程序员不因意外或有意丢失对资源的跟踪。
- 开源社区是一个术语,用于指从事开源软件开发的一群开发人员。如果你正在阅读这个词汇表,那么你就是Libra开发者社区的一员。
- Permissioned和permissionless是节点加入区块链中的验证器集的方式的属性。
- 如果只允许单个实体或组织选择的节点加入委员会,则它是一个 有许可 系统.
- 如果任何节点都可以加入委员会,那么它是一个 无许可 系统.
- Libra 作为一个需要许可的系统启动,并将过渡到无权限。
- 证明 是验证区块链中数据准确性的一种方法。
- Libra区块链中的每个操作都可以通过加密方式验证它确实正确并且数据没有被遗漏。
- 例如,如果用户查询特定的已经执行的交易中的信息,他们将获得一份加密证明——返回给他们的数据确实是正确的。
- 一轮 包括就达成共识的交易块及其执行结果。
- 轮序号 是一个共享计数器,用于在共识协议的 epoch 期间选择领导者。
- 帐户的序列号表示从该帐户发送的交易数量。 每次从该帐户发送的交易被执行并存储在区块链中时,它会递增。
- 仅当交易与发件人帐户的当前序列号匹配时才执行交易。 这有助于对来自同一发件人的多个交易进行排序,并防止多重攻击。
- 如果账户A的当前序列号是X,那么只有当交易T的序列号是X时,才会执行账户A上的交易T.
- 这些交易将保留在内存池中,直到它们是该帐户的下一个序列号(或直到它们过期)。
- 当交易被执行时,帐户的序列号将变为X+1。该帐户具有严格递增的序列号。
- 别名: 发件人地址。
- 发送者 是交易的发起人帐户的地址。 交易必须由发起人签署。
- 详见 Move模块。
- Libra协议中的状态是分布式数据库的快照。
- 交易修改数据库并生成新的和已更新的状态。
- 状态根哈希是给定版本中Libra 区块链的所有键值状态的 Merkle hash。
- 测试网 是Libra 区块链软件早期原型的演示,也称为 Libra Core.
- Libra testnet由运行Libra Core的测试验证器节点组成,该软件维护Libra加密货币。
- testnet是为在不干扰或破坏主要加密货币软件的情况下试验新想法而建立的。
- testnet是Libra 主网 的前身,但是testnet有一个 没有现实价值 的数字货币.
- 用户提交的每个交易都包含一个交易脚本。
- 它表示客户端提交给验证器节点的操作。
- 该操作可以是将币从用户A转移到用户B的请求,或者可以涉及与已发布的Move模块和智能合约的交互。
- 交易脚本是一个自定义程序,它通过调用模块的过程与Libra 区块链的全局存储中已发布的资源进行交互。 它对交易的逻辑进行编码。
- 单个交易脚本可以将资金发送给多个接收人,也可以从多个不同的模块调用过程。
- 交易脚本不会存储在全局状态中,也不能由其他交易脚本调用。 它是一个一次性使用的程序。
- 别名: 验证器.
- 验证器是Libra生态系统的一个实体,用于验证Libra区块链。 它接收来自客户端的请求并运行共识组件,执行组件和存储。
- 验证器维护区块链上所有交易的历史记录。
- 在内部,一个验证器节点需要保持当前状态,执行交易并计算下一个状态。
- 版本号在区块链文献也被称为“高度”。
- Libra区块链没有明确的区块概念 — 它只使用块来批处理和执行交易。
- 高度为0的交易是第一个交易(创世交易),高度为100的交易是交易存储中的第101个交易。
如果以下每个条件都在交易中满足,则Libra交易结构完整:
- 交易具有有效签名。
- 发送方地址存在一个帐户。
- 它包含一个公钥,公钥的哈希值与发送方帐户的身份验证密钥匹配。
- 交易的序列号与发送方帐户的序列号相匹配。
- 发送方帐户的余额大于 最大gas量。
- 交易的过期时间尚未过去。