技术人眼中的Facebook Libra

2019 年 7 月 04 日

技术人眼中的Facebook Libra

拥有 27 亿全球用户的 Facebook,联合 100 个行业巨头,携带数十亿互联网的流量,正如火如荼地建设一个全球范围的金融基础设施——Libra(天秤座)。作为技术人员,你为何不参与其中?


本文从以下几个点入手,探讨技术人员对 Libra 感兴趣的几个方面。


  1. 目标:Libra想做个什么东西?

  2. 生态建设:Libra怎么做的?

  3. 与众不同的点:相较于主流区块链,Libra有何不同?

  4. 开发路线图:Libra核心团队、开发任务、迭代和发布计划?

  5. 开发者上手开发的难度:我该如何参与其中?

  6. 开发者如何赚钱:我做什么东西可以获利?


1. 目标


2017 年,当中国区区块链小组刚刚成立时,我们接受过雷锋网的一次采访。那次采访中,我坦言金融领域是可以最适合、最先、最便捷地来应用区块链技术的。只不过之后金融领域的区块链应用一直处于不愠不火的状态,没想到,Facebook 这次下了一剂猛药。


抛开政治方面的动机,从技术人的角度来看,Libra 的动机是纯良的。我们常说技术中立,但是决定这些技术用途的主体归根结底还是人,如果明知道这是一场目的不纯的技术炒作,有点节操的技术人都应该嗤之以鼻。至少现阶段,我认为这项技术对金融行业是有益的,Facebook 掀起的这场运动或许可以给区块链正名。


Libra 不仅仅是具体的区块链技术,同时也是一场声势浩大的运动。它在最开始就明确了一个宏大的愿景——建立一套简单的,无国界的货币和为数十亿人服务的金融基础设施。为了达成愿景,Libra 确立一个目标,它想在安全稳定的开源区块链基础上创建一种稳定的货币,该货币以真实资产储备为后盾,并由独立协会管理。这项特别符合“区块链”思维的措施,看上去毫无新意。在区块链的世界里,这种运行模式稀松平常。既然如此,不免有人开始好奇为什么 Libra 会引起如此广泛的关注?原因很简单,因为它的背后是 Facebook 这个互联网巨头,手握 27 亿的全球用户,再加上 Facebook 一以贯之的性格——Move Fast and break things 以及 Move fast with stable infra;别人干不成的事情,它很可能干得成。一言以蔽之,人们期待的是它可能掀起的 fear of missing out 的狂潮。猜想一下,多数银行估计已经不淡定了。


2. 生态建设


一个成功的开源项目,背后必然有强大的社区支持。举个例子,以太坊的成功是有目共睹的,它作为全球最大的区块链社区,共有大约 35 万的开发者,而且这个数字还在快速增长中。Libra 想在开源世界站住脚跟,也必须组建起强大的社区。其实从 Facebook 拥抱开源的经验来看,这件事做起来不会特别困难,难的是如何让这些区块链社区的开发者投入自己的怀抱?


聪明的是,Libra 区块链(2020 上半年主网上线)在设计上借鉴了大量主流区块链的优点,也规避一些缺陷。它在核心概念中引入了 Balance(余额)模型,而非比特币只有 UTXO(未花费交易输出)模型。这是因为在实际编程过程中,Balance 模型的可操作性比 UTXO 更加友好,至少不用聚合大量 UTXO 才能算出余额。而且为了限制耗时计算,Libra 区块链部分复制了以太坊的 Gas 模型,耗光 Gas 后停止运算。这些性质很贴合大多数区块链开发者的习惯。


虽然有不少人对 Libra 引入 Move 编程语言颇有微词,但是这门新语言在解决智能合约编程漏洞方面确实做出了一些重要的改进。它对自己的能力相当的克制,要求强类型、无动态分派、有限不可变性(Limited Immutablity 参考 Rust 语言,保证每个对象在任何阶段只有一个可修改的引用),在编译期期间的 Bytecode Verifier 验证潜在 bug、模块化,当然还有高大上的形式化验证(Formal Verification)。这些改进是从前人的经验教训中汲取的,语言的范式其实都在不同角度上限制语言本身的功能,很早就有人怀疑区块链上存在图灵完备的编程语言的必要性了,在 Libra 区块链中,这点更加明显,它的目的更聚焦,就是要让开发者更多关注自己的业务表达,减少在安全性上的心智浪费。


前车之鉴固然可以让它在软件设计上高人一筹,但是区块链生态的建立可没那么简单。除了开发者,至少还得有两种角色的广泛参与。第一类是投资者,他们是实际运营区块链的人;还有一类就是用户,他们是整个网络存在的终极理由。这是一项系统工程,每个区块链从业者都应该思考和关注。



区块链简易生态示意图




所以,在 Libra 区块链之上,还需要其它机制的建设,也就是我们常说的区块链治理。Facebook 表现出了先见之明,首先设立了一个总部坐落在政治中立的瑞士日内瓦的非营利性成员组织,简称 Libra 协会,拉拢了一帮有头有脸的行业大佬。这些大佬遍布支付、技术和交易平台、电信、区块链、风险投资等行业,同时涵盖非营利组织、多边组织和学术机构。不仅如此,Facebook 为了避嫌,特地设立一家子公司 Calibra 作为对等的成员参与其中。这些成员最终会成为 Libra 区块链网络中的“超级节点”,验证和记录每一笔交易。同时,他们还享有投票权,可以左右 Libra 区块链之后的决策和发展方向。


从技术层面看,这看似并不“去中心化”的背后,其实是对现实的妥协。区块链发展了这么长时间,却始终没有逃脱不可能三角(性能,安全和去中心化)的魔咒。前不久,我在一次区块链的演讲会议上,问图灵奖获得者Silvio Micali,目前阻止区块链广泛采用的瓶颈是什么时,老人家几乎脱口而出:性能。他那次演讲的内容就是宣称可以解决了不可能三角的Algorand技术。Algorand 毕竟是学术的产物,是否可行还有待行业从业者长期的实践和评估,而另一条简单的路就是采用联盟链的技术。Libra 就是用了这种取巧的方式,因为在联盟链的环境中,采用更为高效的共识算法(LibraBFT)变得可能,高效的公式算法往往意味着更高的性能。根据技术白皮书的内容显示,Libra 协议最初支持 1000TPS,交易确认时间为 10 秒。据了解,联盟链的代表 Hyperedger Fabric,其最新的性能也在 1000TPS 左右,这还是经过专门优化之后的结果。所以我们不难推论,Libra 是在用当前最为稳妥和高效的技术构建区块链平台,拥抱监管,尝试解决实际的问题。这也是它和其它主流区块链平台最显著的不同之处。


生态建设最大的问题还是怎么找到用户。以太坊和 EOS 在掀起一轮轮 Dapp 的狂热之后,始终没有出现一款真正解决用户痛点的杀手级应用。很多人不免怀疑区块链上的智能合约和 Dapp 是否真具有价值,可编程的数字货币或数字资产是不是伪需求。这在我看来实属一个拿着锤子找钉子的经典困境。哈佛商学院营销学教授 Theodore Levitt 说过:“人们其实不想买一个四分之一英寸的钻头。他们只想要一个四分之一英寸的洞!”(People don’t want to buy a quarter-inch drill, they want a quarter-inch hole.” )。这里的 Libra 区块链其实不过是一个帮助 Facebook 实现开放式金融愿景的工具而已,Facebook 锚定的目标用户群体(17 亿成年 人未接触到金融系统,无法享受传统银行提供的金融服务,而在这之中,有 10 亿人拥有手机,近 5 亿人可以上网)是确实存在的,如何给这些人提供快捷的金融服务才是根本问题。所以,我不怀疑 Libra 区块链可以在这里头做点什么,即便不是区块链,事实上,Libra 中没有区块的结构,只要能有助于达成这个愿景,便是我们这些技术人员喜闻乐见的事情。所以找用户反而不是 Libra 的困难之处。


依我所见,Libra 尝试构建的生态是适合开发者、投资者以及用户这三类角色生存的。


3. 与众不同的点


Libra 区块链除了上述联盟链的特征,和主流区块链(以太坊和 EOS)最大的不同就是它的内置代币是锚定了一篮子低波动法币的稳定币,这意味着它并不具备炒作的潜质,投机者对此估计提不起兴趣。但是对于用户和开发者而言,可以说是福音。在以太坊的经济模型下,每一次部署和调用智能合约都得付出一定量的以太币作为费用,然而以太币的价格波动很大,比较适合持有而非花费,这和买黄金并不是为了日常买菜,而是为了留在手上等升值是同样的道理。因此,这种特性阻碍了以太币的流通,进而也限制了智能合约和 Dapp 的发展。反观 Libra 这边的稳定币,它是鼓励流通的。在没有升值期望的前提下,开发者更加容易发布智能合约,用户也更加愿意调用智能合约。而且我也希望因为没有炒作的价值,类似 FOMO3D 这类纯粹赌博性质的应用终可休矣。


Libra 限制了可编程的数字资产的灵活度。现阶段,它不允许开发者自定义数字资产,只能由 Libra 协会预定义和安装。这个限制对于习惯了在以太坊上定义 ERC20/721 的开发者而言,相当不友好,估计会让 Libra 因此损失一部分潜在开发者。但凡事有利有弊,在预定义的数字资产上编程,一来可以减少投机(例如:纯粹圈钱的 ICO)风险,二来可以在相对可控的范围内,检验 Move 语言是否能够胜任安全编程的重任。当然,Libra 也在白皮书中给出一个承诺,一旦 Libra 区块链成熟,这部分功能就会开放给开发者。


还有一个非常重要的点是 Libra 特别关注用户的数据隐私。鉴于 Facebook 2018 年爆发了隐私泄露丑闻,所以用户的数据隐私在这里不是可以避而不谈的话题。但遗憾的是,安全隐私白皮书中只是简单地提到了 Libra 协会不参与交易,也不存储用户的个人数据,交易由验证者节点处理和存储。可问题是 Libra 协会各成员就是验证节点背后的法人代表,其中隐情,甚是耐人寻味。而且,Libra 延续了比特币和以太坊匿名交易的传统,允许用户在不同的交易中使用不同的账户地址,以此达到交易匿名的目的。这本来是抗审查的方式,不过人们研究发现其实这种做法其实有迹可循,所以匿名性已经变成防君子不防小人的手段。当然,换个角度,从拥抱监管的角度这又是必须要求,想来也是折中取舍之后的结果。


单从技术向看,Libra 区块链中除了 Move 编程语言有足够吸睛的地方,其它方面顶多算差强人意。但是我们也要理解,区块链是经济、加密和分布式系统理论和技术大融合的产物,其中,经济学可能远超出技术所影响的范围,更遑论政治阴谋论。


4. 开发路线图


不得不说,区块链行业开创了一种崭新的吸引投资的模式——白皮书、官网和开发路线图的三位一体。简单来说,创始团队先发表一份描绘愿景的白皮书,告诉大众我们要做什么;然后建立一个官方网站,权威创始人站台,告诉大众我们有能力;最后就是展示一幅标注关键时间点和里程碑事件的开发路线图,告诉大众我们在持续跟进。Libra 区块链也基本沿用这样的模式。


Libra 的白皮书官网已经发布,这也是大多数分析人士第一手资料的来源。只不过,除了“2020 年上半年针对性发布”这句不痛不痒的承诺外,它对具体的开发计划只字未提,这倒是让我一阵恍惚。所幸即便如此,我还是在官方博客中找到了一些重要讯息。这部分讯息是成立后的 Libra 协会将开发工作授权给了 Calibra 公司,也就是说 Calibra 公司将主导早期 Libra 区块链的开发过程并掌控所有重大技术决策,在逐步开源的进程中,它事实上起到了类似 Bitcoin 核心团队以及以太坊 V 神(仁慈的独裁者)的作用。


Calibra 团队在接下来的半年时间里,会将精力聚焦在 Libra 核心、Libra 协议和 Move 编程语言三个方面。Libra 核心其实现在是 Libra 协议的事实标准(de facto),其形态叫做 specification by implementation,这点类似 Ruby 语言的发展历史,Ruby 早些年只有松本行弘的一套解析器实现(Matz’s Ruby Interpreter , MRI),任何不符合 MRI 运行时行为的规范都是错误的,JRuby 等都是遵照这套规矩开发。不过,实现最终还是得统一成一个标准。统一标准的好处是标准下可以有多种语言的实现,例如,以太坊就有 Go,C++和 Rust 版本的实现,这将极大丰富 Libra 区块链的生态,吸引更多的开发者,还能减少因语言自身的缺陷引发的安全风险。另一方面,新开发的 Move 语言也需要独立演化,围绕编程语言构建开发者生态已经是屡见不鲜的做法。相应地,凡是语言社区通常关注点都得重新造轮子,例如,编程风格、版本兼容性、编辑器,高级特性(形式化验证)等。


同时,Calibra 也承诺每天上午 11 点(太平洋时间),也就是北京时间隔天上午 2 点,在测试链发布一个新版本。我姑且相信,凭着 Libra 协会和 Calibra 团队的努力以及 github 这么快的 star 速度,这些粗粒度的计划能够顺利达成。


5. 开发者上手开发的难度


要说开发者最关心的话题,应该还是如何快速上手。可惜,前面的分析已经表明,Libra 区块链仍然处于早期阶段,现阶段开发出可用的智能合约和 Dapp 是不可行的。但是先别意兴阑珊,换个思路,正因如此,现在参与它的开发和重大决策才是可能的。我们不妨从 PR 和 issue 入手,顺便学习一些 Rust 的知识,要知道,在区块链的世界里基本上是 Go 和 Rust 二分天下。


错过了比特币,错过了以太坊,Libra 也许是个不错的入场券。


6. 开发者如何赚钱


开发者在 Libra 区块链中如何赚钱是个很现实的话题,也是一个“怎么说呢?”的难题。区块链上传统的赚钱方式是发自己的币,然后在 Dapp 中流通。之后要么对接平台内置货币套现,如以太币;要么自己上交易所买卖。这种方式在 Libra 中基本行不通,因为设计中已经限制了自定义货币的能力。


依我来看,这里最好的方式恐怕是编写自定义的金融合约。Libra 自身的定位就是开放式金融平台,那么所有的数字资产包括内置货币都是为这个目标服务的,这意味着可编程金融是大势所趋。有人这里会有疑惑,Libra 这种玩法和中心化的银行有什么区别?其实这里最大的差别是银行可不允许你在他们自己的平台上开发金融产品。


总结


Libra 是我见过的比较靠谱的区块链项目。它建设生态的模式得益于 Facebook 的开源基因,在技术上走的路线相对保守,属于脚踏实地加油干的做派。所以拥抱其理念的开发者可以持续关注,参与共建。


热点都有时效性,预测都是马后炮。很显然,这篇文章两者兼具。


比特币,以太坊发展至今,不被看好的声音依然不绝于耳,更何况前途未卜的 Libra。我们都知道,事件总有淡忘的一天,而且很快;预测总有揭晓的一天,同样很快。作为技术人,我们得自己思考,如果那天很重要,为什么不参与其中?


作者介绍:鄢倩,ThoughtWorks 中国区块链团队的技术专家,《Java 线程与并发编程实践》和《七周七语言 卷二》译者,《架构整洁之道》技术审校者。主要关注区块链,领域驱动设计,微服务架构等方向,致力于帮助企业接入区块链生态,引领商业变革。


2019 年 7 月 04 日 21:2113115

评论 2 条评论

发布
用户头像
一分钟大发快3PK10技巧输了怎么办呢?快三大小单双回血
老师359213571

如果你是刚刚玩,我来教教你,如果你已经玩很久了,却不稳,我来拉拉你,如果你已经遍体鳞伤,我来帮帮你。

我不能保证你一夜致富但希望能细水长流,汇聚江海,先要平稳的心态,不要一盘的失误影响你心情。

自己有规划性和目标性。做到这两点,过来找我我来帮你。

世界没有不努力就能盈利的。如果这些你觉得没时间精力去观察。那我只能劝你去跟计划了。最重要的还是你要学会耐心观察走势。

每种方法。只要你耐心观察。那种方法都可以盈利。以下是我最简单的跟号走势。

相信能进来看这贴的人都应该清楚快3是什么,又或者已经有人被它搞得伤痕累累。是不是你赢了一天,或一个星期的,

到最后都会在一个小时内就把你以前所赢的通通吐出来? 是不是你开始玩这个的时候你觉得钱来的实在太容易了?

你会发现你每天这样赢下去一个月后你就可以买辆宝马了? 但我告诉你,任何以堵钱的心态来玩的,你到最后都会输得一败涂地,

所以我们不要把它当成一种堵搏,把它当成一种投资的心态。又或者反它当成股票来操作。

以下我就说说几点;

1、不单要学会赢还要懂得怎样去止损,定下个止损目标是为了帮助自己在失手的时候有个损失限度,不受到翻本情绪的影响导致自己更加的错误下去。

这里就跟炒股一样,有止损就一定要有止赢,不要以为你赢那天你会一直赢下去,我告诉你,玩彩十个有九个都是一开始赢后面爆了帐户的。

彩是每天都会有,不要急着打回来,今天输了,明天还有机会。今天挂了。改日再战!

2、稳赚方法技巧是有的,但我在这里说的稳赚是最少以一个星期为单位,短期暴利模式网上一搜一大堆,但都拼不过变态期,

一把回到解放前很多人都经历过,快三方式很多接近稳赚,我告诉自己是稳赚,但我不敢这么跟大家说,因为没有什么事情是绝对的,何况堵搏。

为什么我说很多方法都可行呢?因为我不是叫你从早上九点到晚上12点都玩,那什么方法都是会回到解放前的。抓住重要,几把就可以收工了,

用得着这么麻烦吗?而且庄家最怕你什么?不怕你赢,就怕你赢了不玩。

3、止损与止赢的比例。我个人建设止损与止赢的比例定在1:1.。就是说比如你帐号是1W的,你今天的目标是赢1千,那你一定要做到赢1千就收,

同样的到你输1千的时候你也要收。不要跟我说拿1W只赢1千很小,不合理。

我相信这么多人玩彩的没有多少人能做到平均每天10%利润,我估计99%的人都做不到,其实不是他们的技术做不到,是他们的心态做不到。
展开
2019 年 07 月 25 日 21:28
回复
用户头像
看到了技术进步,更看到了政治,它革的是所有银行金融机构命,所以美国有反对者,利益体团队不一样,它一个全美资企业构成的区块链联盟,从国家利益来看美国绝对是支持的;从布雷顿森林体系到石油美元,到今天的Libra;按照美帝资本主义的气质,将继续割世界的韭菜
2019 年 07 月 09 日 08:57
回复
没有更多评论了
发现更多内容

Using R for everything: 方差分解(Variation partition)变量筛选与显著性标注

洗衣机用户不会用洗衣机

数据分析 R

OceanBase原理与实现分析

ElvinYang

人生就是一场说走就走的旅行

kimmking

Web3极客日报#136

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

物联网资产整合架构

老任物联网杂谈

物联网架构

游戏夜读 | 游戏设计需要天赋?

game1night

【Howe 学 JAVA】Java 类集框架2——Set 集合

Howe

Java 集合 set

TL如何在团队中培养出更多前端技术专家

贵重

前端 团队建设 技术管理

自助设备系列——技术应用

孙苏勇

产品 行业资讯 智能设备

MacOS使用指南之我并不需要系统菜单栏

lmymirror

macos 高效工作 完美主义 操作系统 新手指南

JavaScript 学习笔记——数据类型

zjlulsum

Java 学习 前端 类型推断 入门

CentOS7使用Iptables做网络转发

wong

Centos 7 iptables

我跑步的时候会想些什么

养牛致富带头人

跑步 运动 锻炼

Mac 自带软件-聚焦搜索

Winann

macos Mac spotlight

你觉得你是哪类人?

Janenesome

读书笔记 思考

C语言if分支结构

C语言技术网-码农有道

C语言 C语言if分支结构

如何扩大我们的英语词汇量

七镜花园-董一凡

学习

放假了,你还会打开钉钉么?

无箭的丘比特

高效工作 团队管理 企业文化 个人成长 技术管理

高仿瑞幸小程序 06 layout布局

曾伟@喵先森

小程序 微信小程序 前端

带你100% 地了解 Redis 6.0 的客户端缓存

程序员历小冰

redis 缓存 redis6.0.0

给应届毕业生们的七点建议

Neco.W

大学生日常 工作 应届毕业

你还在这样使用MYSQL吗?

无箭的丘比特

MySQL 数据库 数据库规范 数据库设计

深入理解MDL元数据锁

Simon

MySQL

【Howe 学 JAVA】Java 类集框架1——List集合

Howe

Java List 集合

前端开发的瓶颈与未来之路

keelii

node.js typescript ruby-on-rails 编程 前端

《Linux就该这么学》笔记(一)

编程随想曲

Linux

【Howe 学 JAVA】Java 类集框架2——集合输出

Howe

Java 集合 输出 类集

探寻融云多年领先的秘密:不断创新贴近开发者真实需求

DT极客

保险知识梳理

魁拔

保险 生活质量

办公人员的 python 妙用——抽签结果提取

Sicolas Flamel

Python 远程办公

面试官竟然一直和我聊线程的启动和终止

Simon郎

Java 大数据 后端 多线程

技术人眼中的Facebook Libra-InfoQ