拥有27亿全球用户的Facebook,联合100个行业巨头,携带数十亿互联网的流量,正如火如荼地建设一个全球范围的金融基础设施——Libra(天秤座)。作为技术人员,你为何不参与其中?
本文从以下几个点入手,探讨技术人员对Libra感兴趣的几个方面。
0. 目标:Libra想做个什么东西? 1. 生态建设:Libra怎么做的? 2. 与众不同的点:相较于主流区块链,Libra有何不同? 3. 开发路线图:Libra核心团队、开发任务、迭代和发布计划? 4. 开发者上手开发的难度:我该如何参与其中? 5. 开发者如何赚钱:我做什么东西可以获利?
2017年,当中国区区块链小组刚刚成立时,我们接受过雷锋网的一次采访 。那次采访中,我坦言金融领域是可以最适合、最先、最便捷地来应用区块链技术的。只不过之后金融领域的区块链应用一直处于不愠不火的状态,没想到,Facebook这次下了一剂猛药。
抛开政治方面的动机,从技术人的角度来看,Libra的动机是纯良的。我们常说技术中立,但是决定这些技术用途的主体归根结底还是人,如果明知道这是一场目的不纯的技术炒作,有点节操的技术人都应该嗤之以鼻。至少现阶段,我认为这项技术对金融行业是有益的,Facebook掀起的这场运动或许可以给区块链正名。
Libra不仅仅是具体的区块链技术,同时也是一场声势浩大的运动。它在最开始就明确了一个宏大的愿景——建立一套简单的,无国界的货币和为数十亿人服务的金融基础设施。为了达成愿景,Libra确立一个目标,它想在安全稳定的开源区块链基础上创建一种稳定的货币,该货币以真实资产储备为后盾,并由独立协会管理。这项特别符合“区块链”思维的措施,看上去毫无新意。在区块链的世界里,这种运行模式稀松平常。既然如此,不免有人开始好奇为什么Libra会引起如此广泛的关注?原因很简单,因为它的背后是Facebook这个互联网巨头,手握27亿的全球用户,再加上Facebook一以贯之的性格——Move Fast and break things以及Move fast with stable infra;别人干不成的事情,它很可能干得成。一言以蔽之,人们期待的是它可能掀起的 fear of missing out 的狂潮。猜想一下,多数银行估计已经不淡定了。
一个成功的开源项目,背后必然有强大的社区支持。举个例子,以太坊的成功是有目共睹的,它作为全球最大的区块链社区,共有大约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尝试构建的生态是适合开发者、投资者以及用户这三类角色生存的。
Libra区块链除了上述联盟链的特征,和主流区块链(以太坊和EOS)最大的不同就是它的内置代币是锚定了一篮子低波动法币的稳定币,这意味着它并不具备炒作的潜质,投机者对此估计提不起兴趣。但是对于用户和开发者而言,可以说是福音。在以太坊的经济模型下,每一次部署和调用智能合约都得付出一定量的以太币作为费用,然而以太币的价格波动很大,比较适合持有而非花费,这和买黄金并不是为了日常买菜,而是为了留在手上等升值是同样的道理。因此,这种特性阻碍了以太币的流通,进而也限制了智能合约和Dapp的发展。反观Libra这边的稳定币,它是鼓励流通的。在没有升值期望的前提下,开发者更加容易发布智能合约,用户也更加愿意调用智能合约。而且我也希望因为没有炒作的价值,类似FOMO3D这类纯粹赌博性质的应用终可休矣。
Libra限制了可编程的数字资产的灵活度。现阶段,它不允许开发者自定义数字资产,只能由Libra协会预定义和安装。这个限制对于习惯了在以太坊上定义ERC20/721的开发者而言,相当不友好,估计会让Libra因此损失一部分潜在开发者。但凡事有利有弊,在预定义的数字资产上编程,一来可以减少投机(例如:纯粹圈钱的ICO)风险,二来可以在相对可控的范围内,检验Move语言是否能够胜任安全编程的重任。当然,Libra也在白皮书中给出一个承诺,一旦Libra区块链成熟,这部分功能就会开放给开发者。
还有一个非常重要的点是Libra特别关注用户的数据隐私。鉴于Facebook 2018年爆发了隐私泄露丑闻,所以用户的数据隐私在这里不是可以避而不谈的话题。但遗憾的是,安全隐私白皮书中只是简单地提到了Libra协会不参与交易,也不存储用户的个人数据,交易由验证者节点处理和存储。可问题是Libra协会各成员就是验证节点背后的法人代表,其中隐情,甚是耐人寻味。而且,Libra延续了比特币和以太坊匿名交易的传统,允许用户在不同的交易中使用不同的账户地址,以此达到交易匿名的目的。这本来是抗审查的方式,不过人们研究发现其实这种做法其实有迹可循,所以匿名性已经变成防君子不防小人的手段。当然,换个角度,从拥抱监管的角度这又是必须要求,想来也是折中取舍之后的结果。
单从技术向看,Libra区块链中除了Move编程语言有足够吸睛的地方,其它方面顶多算差强人意。但是我们也要理解,区块链是经济、加密和分布式系统理论和技术大融合的产物,其中,经济学可能远超出技术所影响的范围,更遑论政治阴谋论。
不得不说,区块链行业开创了一种崭新的吸引投资的模式——白皮书、官网和开发路线图的三位一体。简单来说,创始团队先发表一份描绘愿景的白皮书,告诉大众我们要做什么;然后建立一个官方网站,权威创始人站台,告诉大众我们有能力;最后就是展示一幅标注关键时间点和里程碑事件的开发路线图,告诉大众我们在持续跟进。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速度,这些粗粒度的计划能够顺利达成。
要说开发者最关心的话题,应该还是如何快速上手。可惜,前面的分析已经表明,Libra区块链仍然处于早期阶段,现阶段开发出可用的智能合约和Dapp是不可行的。但是先别意兴阑珊,换个思路,正因如此,现在参与它的开发和重大决策才是可能的。我们不妨从PR和issue入手,顺便学习一些Rust的知识,要知道,在区块链的世界里基本上是Go和Rust二分天下。
错过了比特币,错过了以太坊,Libra也许是个不错的入场券。
开发者在Libra区块链中如何赚钱是个很现实的话题,也是一个“怎么说呢?”的难题。区块链上传统的赚钱方式是发自己的币,然后在Dapp中流通。之后要么对接平台内置货币套现,如以太币;要么自己上交易所买卖。这种方式在Libra中基本行不通,因为设计中已经限制了自定义货币的能力。
依我来看,这里最好的方式恐怕是编写自定义的金融合约。Libra自身的定位就是开放式金融平台,那么所有的数字资产包括内置货币都是为这个目标服务的,这意味着可编程金融是大势所趋。有人这里会有疑惑,Libra这种玩法和中心化的银行有什么区别?其实这里最大的差别是银行可不允许你在他们自己的平台上开发金融产品。
Libra是我见过的比较靠谱的区块链项目。它建设生态的模式得益于Facebook的开源基因,在技术上走的路线相对保守,属于脚踏实地加油干的做派。所以拥抱其理念的开发者可以持续关注,参与共建。
热点都有时效性,预测都是马后炮。很显然,这篇文章两者兼具。
比特币,以太坊发展至今,不被看好的声音依然不绝于耳,更何况前途未卜的Libra。我们都知道,事件总有淡忘的一天,而且很快;预测总有揭晓的一天,同样很快。技术人得自己思考:如果那天很重要,为什么不参与其中?
于 2019-06-30