如果将 Libra 与现有的加密货币进行对比, 以太坊无疑是最好的选择.
两者都允许分别处理加密货币(ETH 和 Libra coin), 共同过渡到 POS, 以及运行用户定义的智能合约: 自定义脚本, 可以读取和操作区块链状态.
相似之处到此为止了吗? Libra 受以太坊的影响有多大? 根据白皮书中提供的内容, 让我们找出答案.
是谁掌权
Libra 和以太坊 (以及比特币) 之间的第一个主要区别是, Libra 是一个被许可的区块链, 而以太坊是没有许可的.
在以太坊中, 每个人或多或少都是平等的. 没有什么能阻止你购买一台功能强大的机器, 并以矿工的身份加入网络, 潜在地赚取采矿费, 并参与智能合约的执行. 没有任何党派比其他党派享有更多的特权; 没有权限系统, 它规定谁可以确认新的事务和部署新的智能合约.
反观 Libra,Libra 将选择大约 100 个创始成员 (验证器) 组成一个组. 用户必须信任这些成员, 并且只允许这 100 个创始成员确认新事务. 本质上, Libra 将由创始成员国管理. 只有它们才具有管理区块链所需的权限.
这类似于私有区块链, 比如 Hyperledger, 它可以用来在各方之间建立一个共享的分类帐, 因此没有一个节点必须是完全可信的.
你可能会想, 这是否比 "传统的", 完全集中的体系好? 在这种体系中, 交易由央行或金融机构操作. 是的, 这可能会更好 -- 正如在这个方案中, 我们得到了部分分权. 虽然这远非以太坊的完全分散化, 但至少 Libra 对网络的控制分散在 100 个组织中, 而不是一个. 你只需要相信他们中的大多数人就能放心你的资金是安全的, 而不是一个实体或一个国家.
值得一提的是, Libra 协会计划过渡到一个没有许可的系统. 然而, 这取决于一些技术和组织问题, 这些问题仍然需要解决. 何时, 以及是否能解决这些问题, 就目前来看, 都是一个悬而未决的问题.
这真的是区块链吗?
现在我们来看一个更专业的问题. 在以太坊中, 块的概念是系统的核心. 每个矿工接受多个事务, 形成一个块, 并试图通过猜测一个数字将该块附加到区块链中, 从而使某个数学方程成立(这种猜测需要很大的计算能力, 称为工作证明). 每个块引用前一个块, 因此形成一个经过身份验证的链.
这个系统的安全性依赖于这样一个事实: 它需要大量的计算能力来创建具有双重开销事务的块. 我们得到了安全, 但代价是高能源消耗. 以太坊计划过渡到另一个系统, 这个系统称为股权证明(POS),POS 没有 POW 面临的问题, 但这仍在积极研究中.
在 Libra 中, 核心数据结构不包含块. 因此, 我们可以说它并不是真正的区块链. 这可能也是为什么该系统被描述 为分散的, 可编程的数据库 .Libra 的核心数据结构是什么? 事务 . 它们仍然形成一个序列(用不断增长的整数编号), 并且增量地存储在 Merkle 树中.
此树的根包含一个 authenticator 值, 它类似于从以太坊中的块或事务散列. 事务 i+1 的身份验证器取决于事务 i 的身份验证器. 然后我们可能会说 Libra 毕竟是一个区块链, 不过块的大小非常小, 都是 1.
即使块不以数据存储在系统中的方式出现, 但是验证器在确认事务时使用它们. 作为一种优化, 为了减少网络流量和提高性能, 验证器节点 以块的形式提出并提交事务.
Libra 区块链的安全依赖于大多数创始成员可以被信任这一事实(准确地说, 至少 2/3. 这也被称为权威证明 POA), 因此它更节能. Libra 也有向 POS 过渡的计划, 但其也会面对与以太坊相同的问题.
区块链中有什么
Libra 采用基于账户的模式来追随以太坊. 也就是说, 区块链存储一个数据库, 其中包含从帐户地址到帐户价值的映射. 每个帐户对应一个私钥 / 公钥对(私钥可以循环, 它不是 1-1 对应).
为帐户存储的价值可以包含 Libra Coin(ETH), 也可以部署智能合约.
这与使用 UTXO 模型的比特币不同.
费用
当考虑一个金融体系时, 一个主要的问题是 -- 转账要花多少钱? 有转会费吗?
对于这两种系统, 答案都是肯定的, 而且它们处理费用的方式非常相似. 他们甚至被称为一样. 每次传输, 更一般地说, 每次调用智能合约都要消耗大量的精力. 多少 gas, 取决于脚本执行多少操作. 脚本越复杂, 执行成本就越高. 这样, 您就为验证器借给您的计算能力付出了代价.
然后, 根据 gas 价格, 将 gas 使用量转换为本地加密货币(ETH 或 Libra). 价格可能会波动, 这取决于现有的需求.
一个重要的区别可能是, 目前在以太坊上进行交易非常昂贵. 对于一个简单的转账, 它大约是 0.02 美元, 但是当运行较大的合约时, 它可能会变得更加昂贵.
Libra 承诺 "低收费", 这当然是相当模糊的. 然而, 考虑到其志在成为一种全球货币的雄心, 我们可能预计, 这一比例确实会很低.
事务
在这两个系统中, 事务的结构大致相同. 它包括:
发送方地址, 调用事务的帐户, 以及将为事务付款的帐户
发送者可以用 ETH/Libra Coin 支付调用时所使用的单个 gas 费用
调用可以使用的最大 gas 量
每个帐户的序列号, 防止重播攻击
要调用的代码, 以及参数(如果有的话)
使用发送方的私钥创建的签名
性能
现有的区块链技术速度不快. 你甚至可以说, 它们很慢. 比特币每秒可以处理 3-7 笔交易, 而以太坊每秒处理 15 笔交易. 但 Libra 承诺 1000 笔 / 秒.
答案在于 Libra 有限的验证器集, 它允许节点更快地达成共识.
共识是每个区块链的核心组成部分. 它是挖矿者或验证者就数据库中包含哪些事务达成一致意见的过程. 这不是一项简单的任务 -- 它涉及到节点之间的大量网络通信. 事情会变得更加复杂, 因为一些节点可能是 rogue(拜占庭).
以太坊是完全开放的, 每个人都可以加入, 每个人都可以成为一个矿工(这对应于 Libra 中的验证器). 该网络比 Libra 最初的 100 个验证器节点要大得多: 在编写本文时, 大约有 8000 个操作节点. 但这是以性能为代价的, 这会导致网络的吞吐量有限.
Libra 没有这个问题, 并限制验证器节点的数量. 验证器节点也有最低的硬件需求. 这意味着网络流量更少, 延迟更可预测.
编程语言
以太坊和 Libra 都定义了自己的编程语言来为他们的网络创建智能合约. 它们都具有高级的, 人类可读的组件 -- 在以太坊中是 Solidity, 在 Libra 中是 Move-- 并且都编译为字节码, 然后由虚拟机解释.
然而, 相似之处到此为止. 虽然 Libra 白皮书将 Move 和 object-oriented 语言进行了比较, 但它实际上是一种不同的语言.
Move 遵循函数式语言的模型, 如 Haskell 和 OCaml, 它们 严格分离代码和数据.
另一方面, 以太坊 object-oriented 语言, 如 Java 或 c#. 这里, 数据与代码一起存储.
作为一个例子, 让我们看看如何在两个平台上实现一个令牌. 也许对于 ICO 来说, 在两个平台上都是如此. 在以太坊上, 要创建令牌, 您需要部署一个智能合约, 其中包括:
用户地址和他们拥有的令牌数量之间的映射
用于传输和管理令牌的代码
要将令牌传递给另一个用户, 我们需要调用给定的智能合约. 然后合约中的代码更新其内部状态(映射). 如果令牌是流动的, 这个内部状态可能会增长得非常大 -- 因为所有数据都包含在合约中.
在 Move 中, 我们将同时部署一个新的资源类型(新的数据类型)- 对应于我们的令牌 - 和代码, 这将允许对令牌进行操作. 这两个概念是分开的. 要传输令牌, 我们将再次调用智能合约. 但是, 它 不会更新其内部状态(因为合约没有与之关联的任何状态) , 而是将资源从一个帐户移动到另一个帐户. 数据属于用户的帐户, 不属于合约.
Move 虚拟机包含安全机制, 可以防止代码复制或修改现有资源. 这就保证了代币被表示为一种资源 -- 不能被随意操纵, 只能由控制代码定义.
原生代币
以太坊的原生代币是 ETH,Libra 的原生代币是 Libra Coin. 那么这两种代币与各自的系统的融合程度是怎样的?
在以太坊中, ETH 的概念直接构建在区块链软件本身. 这是一个一流的概念, 与系统有着内在的联系. 以太虚拟机有专门的指令来处理以太网的传输.
Libra 的情况则完全不同. Libra Coin 作为智能合约的实现, 它不是直接嵌入到区块链软件. 而有一个特殊的 genesis 事务, 它创建了 "system" 智能合约. 这使得设计更加普遍, 也为创造其他代币打开了可能性.
事实上, 这个系统中已经有了另一种代币 --Libra 的投资令牌. 此代币用于表示验证器在关联中的利害关系.
Libra 的代币在一个方面有特殊的地位 -- 它被用来支付交易费用. 这和以太坊是一样的. 在这两种情况下, 您用于调用智能合约的 gas 费都会从您的帐户中扣除.
Libra 试图将尽可能多的逻辑转移到智能合约平台上, 而这并不会因为原生代币的实现而停止. 选择当前验证器集的过程也被定义为一个智能合约 -- 并且依赖于基于已经提到的 Libra 投资令牌所授予的投票.
Libra Coin 的价值
一个重要的区别是 Libra Coin 被设计成稳定币. 它将得到法定货币储备的支持(当然是大量美元, 其他货币也可能). 这意味着它的价值不会波动那么大, 但另一方面, 它也不会是一种开放和独立的货币.
新的 Libra Coin 将被铸造, 多余的将被烧毁, 这取决于 Libra 相关储备成员的钱的数量. 这也意味着代币的价值将与全球经济状况紧密相连. 然而, 如果创始成员国足够多样化, 它可能独立于单一国家或单一法定货币的经济状况.
另一方面, ETH 是完全开放和独立的. 它不与任何传统货币挂钩, 也没有任何内在的 "现实世界" 价值(假设法定货币在某些方面是 "真实的").
资金管理
区块链是一回事, 但如何管理资金呢? 如何获得加密货币?
除了 Libra 的声明, Facebook 还宣布了另一个消息 --Facebook 将创建 Calibra 钱包, 由 Facebook 旗下同名公司运营. Calibra 将是一个托管钱包 -- 这意味着你将不必 (或能够) 自己管理密码密钥, 而且你可以选择找回丢失的密码, 从而找回丢失的资金.
大多数人预计, Calibra 将成为公众与区块链互动的主要方式.
Calibra 也是获得 Libra Coin 的一种方式. 它将要求向公司提供政府颁发的 ID, 从而实施 KYC(了解客户)和 AML(反洗钱)程序.
这意味着, 虽然 Libra 区块链本身的数据将是假名, 但也会通过 Calibra 钱包来绑定你的身份与你使用的钥匙.
在以太坊中, 有各种各样的钱包和交易所, 你可以在上面获得 ETH; 交易所的用户通常还需要政府签发的身份证. 然而, ETH 加密货币也可以通过成为一名矿工获得 -- 因此完全匿名.
身份验证读取
Libra 对区块链技术当前状态的改进之一是验证读取并证明某个事务确实是区块链的一部分.
在以太坊中, 为了确保某个事务发生在区块链上, 需要重播整个历史记录, 从一个受信任的块开始, 一直重播到给定的事务.
Libra 包含一种经过身份验证的读取机制, 使用这种机制可以获得相对较短的证明(也基于 Merkle 树), 证明某个事务确实已提交到区块链的数据库.
总结
Libra 从以太坊和其他区块链中汲取了很多灵感, 但它也添加了一些独特的功能和选择.
它有一个被许可的, 封闭的模型, 一方面它没有提供以太坊的完全分散化和开放性, 但另一方面它提供了更高的事务吞吐量和更低的费用.
受函数式编程的启发, 它有一个有趣的数据和智能合约编程模型. Libra Coin 和验证器集的管理并没有包含在区块链中, 而是被定义为智能合约, 这一事实非常优雅.
最后, Libra 还处于早期阶段. 许多实现细节还没有完善, 包括高级的 Move 语言表示. 此外, 最初开发人员将无法发布他们自己的智能合约 -- 只允许由 Libra 协会管理的预定义合约集.
Libra 是一个有趣的折衷方案, 介于完全分散化的区块链网络和集中化的银行体系之间. 许多技术挑战都被推迟了一段时间, 而在监管合规, 建立储备和管理组织方面, 挑战甚至更多.
但是考虑到 Libra 的商业支持和有趣的技术设计, 它的发展绝对值得密切关注.
作者: Adam Warski
编译: Neo
来源: http://www.tuicool.com/articles/Nv2Iz2Z