数字货币领域,扎克伯格与死敌再相逢

因为Facebook稳定币Libra计划的推出,扎克伯格和双子星兄弟这对“死敌”又一次相遇了。
双子星兄弟——卡梅隆·温科吾斯、泰勒·温科吾斯,加密货币交易平台Gemini(双子星)、稳定币GUSD的创始人 ,在哈佛读书时二人曾邀请马克·扎克伯格做一个名为“哈佛联谊会”的社交网站,扎克伯格应允后却偷偷做出了Facebook。
在双子星兄弟看来,扎克伯格欺骗并剽窃了自己的创意,因此不停地起诉扎克伯格,后来双方达成和解协议,双子星兄弟获得了赔偿。
从同一个校园出来的三人,不仅断了淡薄的哈佛校友情谊,也在职业道路上分道扬镳。
扎克伯格将发迹于校园的社交网络打造成了拥有20多亿用户、市值数千亿美元的社交帝国,双子星兄弟则通过在加密货币领域的投资成为亿万富翁,并创造了加密货币交易平台Gemini以及稳定币GUSD(Gemini Dollar)。
除了一些媒体旧事重提,这两个名字几乎很少出现在一起。
“我们和马克没有联系过。上一次我们见到他还是在2008年结算的时候,再往前推就是在哈佛的时候了。”2015的一次采访中,泰勒这么告诉记者。
不过,就在2018年末,事情发生了转变。
对于扎克伯格来说,2018年无疑是最糟糕的一年,丑闻和负面缠身。
3月份用户数据泄露丑闻曝光;4月份,国会质询、旗下公司WhatsApp创始人离职;5月份,年度股东大会上,投资者要求扎克伯格辞任董事长;7月25日当天,股价暴跌19%,市值缩水1190亿元,创造了当时华尔街历史上最大单日跌幅;9月份,Instagram的创始人宣布离职……
相比而言,双子星兄弟则幸运得多。虽然7月份美国证券交易委员会驳回了他们的比特币ETF提议,不过在9月份,纽约金融服务部通过了Gemini发行GUSD的申请,紧接着GUSD陆续在Bibox、OKEx等各个交易平台上线。
2018年11月7日,为了加强和亚洲加密市场的联系,双子星兄弟还来到了中国北京。
 
当媒体问及已经有了USDT,GUSD靠什么崛起时,双子星兄弟淡定地说,市场肯定不止需要一种稳定币。
 
恰巧在当天,Facebook涉足区块链的消息被传出。
那时这对兄弟肯定想不到,未来的稳定币市场不仅会有GUSD,还会有来自死敌扎克伯格的Libra。
从校友到死敌
双子星兄弟和扎克伯格的恩怨要从16年前说起。
2003年,扎克伯格和双子星兄弟都还是哈佛大学的学生。不过虽然是校友,但直到第一次会面前,二者并没有过交集。
扎克伯格是不善社交的电脑天才,双子星兄弟是标准的富二代和校园精英。
在哈佛的校园里,没有人会注意到常年趿拉着夹脚拖鞋的扎克伯格,但很难有人会忽视这对身高一米九、体型健硕、屡屡为学校摘得赛艇奖牌的孪生兄弟。
当时大四的双子星兄弟正在和朋友做一个名叫“哈佛联谊会”的网站,他们希望把哈佛的社交生活搬到网络上,建立一个校园交友网站,以方便男生来邂逅女生。
就在双子星兄弟为寻找程序员而发愁时,同在哈佛校园里的扎克伯格刚刚因为Facemash“火了”。
一个晚上,也许是因为被女孩抛弃,喝醉了的扎克伯格报复似地侵入了学校的网络,下载了全校女生的照片,做了一个评比女生样貌的网站Facemash。
在扎克伯格将做好的测试版网站发给了朋友后,事情完全失去了控制,这个恶作剧似的发明创造疯狂传播开来,短短20分钟创造了2万次的点击。
由于太多人同时登陆这个网站导致学校宽带网堵塞,引起了学校管理层的注意,另外,在网站的博客里扎克伯格把女生比作农场动物,校园里的女子团体也发出强烈抗议。
因为Facemash,扎克伯格“声名狼藉”,不过这却引起了双子星兄弟的兴趣。
在哈佛的餐厅里,双子星兄弟与扎克伯格第一次见面了。双子星兄弟给扎克伯格讲了“哈佛联谊会”的设想,并邀请他加入,对于双子星兄弟抛出的橄榄枝,扎克伯格爽快答应了。
虽然Facemash让扎克伯格陷入了校园风暴的中央,但这确实也给了他一些做社交网站的灵感。
之后扎克伯格和双子星兄弟一直保持着邮件联系,但网站却没有丝毫进展。
因为自始至终扎克伯格都没有打算帮助双子星兄弟做“哈佛联谊会”,他心中有一个属于自己的社交网络计划——The facebook(后来改名为Facebook)。
2004年2月4日,The facebook正式上线,这个允许分享文字图片、寻找认识或感兴趣的人的网站很快在哈佛引起轰动。
上线第二周,就有了5000个注册用户,在席卷哈佛后又迅速扩展到了斯坦福、耶鲁、哥伦比亚等多所大学,不到两个月的时间就积累了5万多用户。
The facebook的出现和爆红让双子星兄弟惊讶进而气急败坏,在他们看来扎克伯格是赤裸裸的欺骗和剽窃。
双子星兄弟很快就起诉了扎克伯格。不过在扎克伯格看来,双子星兄弟只是想做一个约会网站,而自己所做的则是社交网络,两者根本不是一回事。
在毕业离开校园之际,双子星兄弟的“哈佛联谊会”——ConnentU也上线了。对于ConnentU,兄弟俩还抱有幻想,希望它能够和Facebook一搏。不过,此时的Facebook凭借着良好的产品体验和资本的助力已经迅速到达ConnentU难以企及的高度。
Facebook越是成功,双子星兄弟越是挫败和抓狂,后来兄弟二人与扎克伯格陷入了漫长的诉讼和口水战中,形同水火。
扎克伯格向左,双子星兄弟向右
从哈佛毕业后,除了与扎克伯格的官司和几场赛艇比赛,双子星兄弟再无别的声音。相反,选择辍学的扎克伯格则领导着Facebook从哈佛进入硅谷,并迎来人生的高光时刻。
2004年底,Facebook获得了彼得蒂尔的50万美元投资;2007年10月,微软又以2.4亿美元的价格购入了Facebook 1.6%的股份,使得Facebook的估值超过了150亿美元;2007年年底,Facebook的用户数量达到了2亿;2008年Facebook又获得了来自李嘉诚和微软的3.15亿美元的融资。
2008年,双子星兄弟身上也发生了两件大事,一是和扎克伯格漫长的官司有了结果,双方达成了和解协议,双子星兄弟获得了2000万美元的现金和价值4500万美元的Facebook的股票。
另外,兄弟俩入选了美国奥运代表队,参加了2008年的北京奥运会,最终获得了世界第六的成绩。
虽然获得了巨额赔偿,但双子星兄弟却被笼罩于扎克伯格的阴影下。
2012年5月,Facebook在纽约纳斯达克交易所上市。成立8年时间,累计9亿活跃用户,年收入达到45亿美元,市值超过亚马逊、惠普等公司,Facebook已经完全成为硅谷最具实力的巨头。
这一年,双子星兄弟创办了一家投资公司,主要为初创公司提供种子基金和基础设施,但在硅谷没有人愿意要他们的钱。
一个原因是,此时的Facebook已经在硅谷占据了主导地位。对于大多数创业公司而言,如果拿了双子星兄弟的钱,无疑是断了之后被Facebook投资或者收购这条路。因为所有人都知道,扎克伯格讨厌他们。
另一个原因是,很多创业者对双子星兄弟的为人心存疑虑。在一些人看来,双子星兄弟是靠起诉扎克伯格才获得了金钱和声誉,有炒作之嫌。
上帝为你关上一扇门,同时也会为你开一扇窗。对于双子星兄弟而言,硅谷的大门虽然关闭了,但比特币却走进了他们的视野。
这一年,郁郁不得志的二人一起去了伊比沙岛散心,在一个夜总会里,他们听说了一种叫做比特币的东西。一番研究后,2013年,兄弟俩拿出了1100万美元购买了比特币,而当时比特币的价格仅为120美元。
也许是因为觉得在互联网行业再难获得成就,又或者是因为被比特币所代表的自由世界吸引,两兄弟全情投入到加密货币领域当中,成为了比特币的布道者。
2014年,双子星兄弟创立加密货币交易平台Gemini,2017年因为比特币的暴涨,两兄弟成为媒体争相报道的“比特币亿万富翁”。
回过头来看,扎克伯格通过对外扩张,建立起了一个围墙高砌庞大的社交帝国,双子星兄弟则在加密货币的自由世界里开疆拓土,两者越走越远。
殊途同归,昨日重现
在很多人看来,Facebook涉足区块链是扎克伯格的自救行为,毕竟数据泄露带来的种种危机暴露了Facebook这个社交巨头背后的发展隐忧。
不过,一开始这个消息并没有激起多大的涟漪。
在Facebook之前,国内外不少大公司都进行了区块链领域的探索,Facebook的涉足在很多人看来也许只是一次无足轻重的小尝试,因此并没有引起多大的关注。
更重要的是,在数据泄露丑闻曝光后,相比创新和变革,大家似乎更愿意看到扎克伯格和Facebook的坏消息。
2018年12月份,关于Facebook如何涉足区块链有了清晰的轮廓。
彭博社援引知情人消息称,Facebook正在开发一种稳定币。之后的半年时间里,有关Facebook稳定币项目越来越多的信息陆续浮出水面,人们开始确信,社交巨头的进场是认真的,扎克伯格有备而来。
2019年6月18日,Facebook的数字货币项目Libra终于露出了庐山真面目,此前从未就此事发声的扎克伯格也发布了一篇长文,称这是一个激动人心的旅程的开始。
白皮书介绍称,Libra的使命是建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施。具体而言,Facebook要发行一个锚定美元、欧元等一揽子货币的稳定币Libra,而这在本质上与双子星兄弟所发行的GUSD并无差异。
此前有媒体就Facebook发币这件事向双子星兄弟询问,双子星兄弟称并不担心,“有这么大蛋糕要做,在这一点上我们需要成为朋友”。
 
不过,在一些人看来,虽然双子星兄弟说得很轻松,但事实上,Gemini有一部分几乎肯定会被Facebook吃掉,那就是GUSD,“毫无疑问Facebook已经为其Libra建立了广泛的零售合作伙伴关系,而这正是Gemini梦寐以求的事情”。
如同2018年3月一样,现在的Facebook再度处于聚光灯下,成为全世界的焦点,关于Facebook的Libra的争议也呈鼎沸之势。
最近,分布式账本技术服务商Hedera Hashgraph在《华尔街日报》刊登了整版广告控诉Facebook的Libra剽窃了他们的创意也从侧面说明了这一点。
尽管双子星兄弟在加密货币领域经营了多年,大有名气,但当死敌扎克伯格到来时,加密货币世界的目光还是转向了这个社交帝国的皇帝。
16年前,扎克伯格在听完两兄弟的校园社交创意后转身做了Facebook,如今的情形仿佛昨日重现。

Jameson Lopp关于“Libra区块链”的思考

摘要
白皮书:Libra协议允许来自不同机构的一组副本(称为验证器)共同维护可编程资源的数据库。
Jameson Lopp:系统将由一系列权威以自上而下的方式控制。然而,请注意,该数据库是针对“可编程资源”而不是数字货币。
白皮书:这些资源由公钥加密认证的不同用户帐户拥有,并遵守这些资源的开发人员指定的自定义规则。
Jameson Lopp:使用诸如“资源”之类的通用词语使我怀疑这不仅仅是一个稳定币。
白皮书:Libra协议允许来自不同机构的一组副本(称为验证器)共同维护可编程资源的数据库。“交易基于预定的合约。在未来的版本中,用户将使用一种名为Move的新编程语言来定义智能合约。我们使用Move来定义区块链的核心机制,比如代币和验证器成员资格。
Jameson Lopp:使用自定义构建的智能合约语言会导致很多问题,比如该语言的特性有多丰富,以及该系统对合约的强大程度。对于开发人员的友好程度以及Libra在多大程度上能够保护智能合约开发人员免于陷入困境,也会有一些问题。
白皮书:这些核心机制能够创建一种独特的治理机制,该机制建立在早期现有机构的稳定性和声誉的基础上,但随着时间的推移会过渡到完全开放的系统。
Jameson Lopp:听起来Libra协会将是一个可以通过投票和某种声誉来发展自己的联盟。
1.简介
白皮书:这一生态系统将提供一种新的全球货币——Libra货币——将由一系列银行存款和高质量中央银行的国债全额支持。
Jameson Lopp:Libra是一个通用的加密资产协议,其第一个资产将是一个稳定币。
白皮书:随着时间的推移,Libra的会员资格将完全开放,并且仅基于Libra的会员持有量。
Jameson Lopp:听起来很像POS。显然,他们的计划是在5年后开放会员资格,并希望他们在那时能够找到POS……我预计他们会遇到和以太坊一样的问题!
白皮书:该协会发表的报告概述了向无许可制度转变的路线图。
Jameson Lopp:我很确定这将是分布式网络从许可到无许可过渡的第一个世界。也许网络作为一个整体可以切换到PoS,但为了维护稳定的peg / basket,一些实体必须保持与传统金融体系的桥梁畅通。这将是一个通过Libra协会持续集中控制的点。
白皮书:验证者轮流推动接受交易的过程。当验证器充当领导者时,它向其他验证器提议交易,包括客户端直接提交给它的交易和通过其他验证器间接提交的交易。所有验证器都执行交易,并形成一个包含新分类帐历史记录的经过身份验证的数据结构。作为共识协议的一部分,验证器对该数据结构的验证器进行投票。
Jameson Lopp:这听起来像是Practical Byzantine Fault Tolerance(拜占庭式的实用容错算法)——这是一种已有20年历史的老算法。但他们可能做了一些调整。我们在白皮书的第5节中了解到,它被称为LibraBFT,是HotStuff协商一致协议的变体。

白皮书:作为在版本i上提交交易Ti的一部分,共识协议在版本i上输出数据库的完整状态的签名(包括它的整个历史记录),以便对来自客户机的查询的响应进行身份验证。

Jameson Lopp:这主要是因为它意味着新验证器应该能够加入网络并快速同步,而不必重播区块链的整个历史记录,前提是它们信任现有的验证器。
2.逻辑数据模型
白皮书:Libra协议使用基于帐户的数据模型来编码分类帐状态。
Jameson Lopp:从数据结构的角度来看,Libra更像以太坊或Ripple,而不是比特币。由于基于输出的历史记录的简单性,UTXO模型有其优点和缺点,比如更好的隐私性和更健壮的交易历史记录。但是处理复杂的智能合约可能会更加困难。因此,账户模式是有意义的,Facebook不太可能关心隐私,而它确实对智能合约感兴趣。
白皮书:Libra的协议并不会将账户和真实身份相联系。用户可以通过生成多个密钥来自由创建多个帐户。由同一用户控制的帐户彼此之间没有内在的链接。该方案以比特币和以太坊为例,为用户提供假名。
Jameson Lopp:同时,我也想知道Libra的稳定币的资产情况是否也是如此…观察这个系统对于想要构建更隐私保护的应用程序的开发人员是很有趣的。
白皮书:每个资源都有一个模块声明的类型。资源类型是名义类型,由类型的名称和资源声明模块的名称和地址组成。
Jameson Lopp:听起来人们可以生成一个地址,只要每个资产都有一个惟一的名称,该地址就可以分配任意数量的资产。
白皮书:执行交易Ti将生成一个新的分类账状态Si,并且执行状态代码、gas usage和事件列表。
Jameson Lopp:那么现在我们知道如何通过类似于以太坊的资源成本系统来保护系统免受资源耗尽攻击。
白皮书:在分类账的历史上其实没有交易的概念。
Jameson Lopp:有趣的是,Libra协议中没有实际的区块链数据结构——区块更多的是一个虚拟/逻辑结构,用于协调系统状态的已确认快照。现在这一节的第一句话更有意义了:
“Libra区块链中的所有数据都存储在单个版本控制的数据库中。版本号是一个无符号的64位整数,对应于系统执行的交易数。”
Jameson Lopp:我所熟悉的每个加密资产网络在非常高的层次上都以相同的方式工作:存在系统状态,然后执行交易,实际上是一个状态转换功能,然后存在新的系统状态。
将成批交易放入容器(块)的目的是为了进行订购/加盖时间戳。这对于通过动态多方成员签名(验证者可以自由地加入和离开网络)验证数据的无许可网络非常重要。由于Libra运行的是一个经过许可的系统,所以它可以使用一个更高效的一致性算法,而不需要批处理事务,因为事务历史记录被重写的可能性很小。
白皮书:在Libra协议的初始版本中,只有一小部分Move功能可供用户使用。虽然Move用于定义核心系统概念,例如Libra货币,但是用户无法发布声明自己的资源类型的自定义模块。在向用户公开之前,这种方法允许移动语言和工具链变得成熟——这是由实现核心系统组件的经验决定的。这种方法还避免了事务执行和数据存储方面的可扩展性挑战,而事务执行和数据存储是通用智能合约平台所固有的。
Jameson Lopp:这听起来非常类似于前面提到的“开放验证器成员资格”计划。似乎Facebook并没有解决Ethereum多年来一直在努力解决的任何一个大问题。
白皮书:为了管理对计算能力的需求,Libra协议收取以Libra币计价的交易费用。
Jameson Lopp:有趣的是,听起来Libra的币实际上是协议的原生单位,就像ETH是以太坊的原生单位一样。这就导致了更多关于天秤座假名性质的问题;你可以在没有AML/KYC的情况下获得币吗?如果没有,那么你似乎无法匿名使用系统的任何功能。通过阅读Calibra wallet,它将需要AML/KYC,因此我想知道最终是否会有进入不受严格控制的系统中。
白皮书:该系统的设计目的是在正常运行期间,当有足够的容量时,费用较低。
Jameson Lopp:这确实很模糊,并引发了许多问题——什么是低收费?什么是正常操作?什么是足够的容量?
3.执行交易
白皮书:区块链的核心逻辑的很多部分都是用Move定义的,包括gas费用的扣除。为了避免循环,VM在执行这些核心组件时禁用了gas计量。
Jameson Lopp:这听起来相当危险,但作者指出,核心组件必须以防御性方式编写,以防止DoS攻击。
白皮书:Move的关键特性是能够定义自定义的资源类型。Move类型系统为资源提供了特殊的安全保障。资源永远不能复制,只能移动。这些保证由Move VM静态强制执行。这使得我们可以用移动语言将Libra币表示为一种资源类型。
Jameson Lopp:这就澄清了之前的问题:Libra币是否像ETH或BTC一样是天生的资产。我希望这些币只是默认的/唯一的资源类型。
白皮书:Move的基于堆栈的字节码比高级源代码的指令更少。此外,每个指令都有简单的语义,可以通过更少的atomic步骤来表达。这减少了Libra协议的规范占用空间,并且更容易发现实现错误。
Jameson Lopp:这听起来是经过深思熟虑的;希望这意味着他们的脚本语言的安全性将比Ethereum得到更好的审查。
4.经过身份验证的数据结构和存储
白皮书:Libra协议使用一个Merkle tree为分类帐历史提供一个经过验证的数据结构。具体来说,分类帐历史使用Merkle tree累加器方法来形成Merkle tree,这也提供了高效的附加操作。
Jameson Lopp:我们再一次看到“Libra区块链”实际上不是区块链。这个协议看起来设计得很好,但是当分类帐历史的数据结构是一组有签名的分类帐状态时,他们却一直称它为区块链,这真的很奇怪。验证者正在为每个分类帐状态做出承诺,所有的历史分类帐状态也在Merkle tree中被承诺,但是我还没有看到任何形成链的数据的反向链表,更不用说形成区块了。
白皮书:帐户的验证器是此序列化表示的哈希值。注意,这种表示需要在对帐户进行任何修改之后,对整个帐户重新计算身份验证器。该操作的代价是O(n),其中n是完整帐户的字节表示长度。
Jameson Lopp:如果没有对给定帐户存储的数据量进行限制,那么听起来就像DoS向量。
白皮书:我们预计,随着系统的使用,最终与帐户相关的存储增长可能会成为一个问题。正如Gas鼓励负责任的使用一样。对于计算资源,我们希望可能需要类似的基于rent的存储机制。我们正在评估一系列最适合生态系统的基于rent的机制的方法。
Jameson Lopp:另一个未解决的问题。迫不及待地想说“the rent is too damn high!!”
白皮书:为了允许客户端同步到新配置,epoch期间和epoch之后的一段时间内的投票权都必须保持诚实。离线时间超过此期间的客户机需要使用一些外部数据源重新同步,以获得它们信任的检查点。
Jameson Lopp:目前尚不清楚“这个时期”有多长,但如果一个epoch不到一天,我猜它也不到一天。似乎这个共识协议不够强大,参与者可能会离开并重新加入他们希望的网络。
5.LibraBFT
白皮书:LibraBFT假设一组3f + 1的投票分布在一组验证器中,这些验证器可能是诚实的,也可能是拜占庭式的。LibraBFT仍然是安全的,当最多f票由拜占庭验证员控制时,它可以防止双重开销和分叉等攻击。
Jameson Lopp:就像PBFT一样,这种一致算法可以容忍33%的验证器不诚实。HotStuff修改听起来经过深思熟虑:
1、通过让验证员对区块的状态(而不仅仅是事务序列)进行签名来抵制非决定性错误。
2、一个发出明确超时信号的pacemaker,验证器依赖于其中的仲裁来进入下一轮——这应该可以提高活性。
3、无法预测的领导人选举机制,以限制DoS攻击领导人。
4、聚合签名保留签署仲裁证书的身份验证器,以对块接受进行投票。
6.网络
白皮书:Libra协议中的每个验证器都维护着系统的完整成员关系视图,并直接连接到需要与之通信的任何验证器。不能直接连接的验证器被认为属于系统所能容忍的拜占庭式故障的范围。
Jameson Lopp:这将需要大量的工作,以便将系统扩展到超过数百个验证器。
7、Libra核心实施
白皮书:Libra区块链的安全性取决于验证器、Move程序和Move VM的正确实现。解决Libra核心的这些问题是一个正在进行的工作。
Jameson Lopp:虽然他们在Rust中编写了实现,但这似乎是性能和安全性的良好开端,而这部分内容已经基本总结完毕。
8、性能
白皮书:我们期待Libra协议的首次推出,以支持1000次支付计算。每秒1000次支付交易,并且在提交和提交的交易之间有10秒的最终时间。由于只有100个左右的验证器并且它们都直接相互连接,因此10秒的“区块时间”听起来可行。
Jameson Lopp:
最小节点要求:
40 Mbps Internet connection
1 commodity CPU
16 TB SSD
之前有一些参考文献要求保持验证器从头开始执行初始同步的能力,而不是信任来自其他验证器的签名状态。我预计,如果Libra得到充分利用,那么执行这样的同步将很快变得非常不切实际,因此节点安全模型将高度依赖于信任验证器。
9、用Move实施Libra生态系统政策
白皮书:Libra币储备是实现保值的关键机制。通过储备,每枚币都有一套稳定的流动资产作为后盾。Libra币合同允许协会在需求增加时铸造新币,并在需求合同时销毁它们。该协会不制定货币政策。它只能根据授权经销商的要求铸造和销毁币。用户不必担心这种关联会导致通胀或货币贬值:要铸造新币,必须有相应的法定存款准备金。
Jameson Lopp:但是现在我们讨论的是网络外部的事件。如白皮书前面所述,网络无法执行使用网络状态外部数据输入的脚本。因此,上面这段话中“can”和“must”的修饰语肯定是指Libra的协会政策或合同义务,而Libra的社交网络并不知道这些。
白皮书:一致性算法依赖于验证器集管理Move模块来维护当前的验证器集并管理验证器之间的投票分配。最初,Libra 区块链仅向创始成员授予选票。
Jameson Lopp:假设验证器对验证器集的更改进行投票,这听起来会导致类似于我们在POS系统中看到的问题——远程攻击。如果创始成员的私钥的阈值受到损害,攻击者是否可以从创世块中编写一个新的分类帐历史记录吗?如果是,其他节点会接受吗?目前尚不清楚共识协议是否允许重写旧状态或仅仅是附加状态。
白皮书:我们计划逐步过渡到POS
Jameson Lopp:如果他们能解决未解决的问题。
突出的问题:
治理是如何工作的?
我们可以看到Libra协会是一个由成员组成的委员会,需要2/3的绝对多数人才能做出改变。他们是唯一被允许铸造或销毁Libra币的人,但如果有足够的共识,他们可以做出任何他们想要的改变。
是否需要AML / KYC?
显然不是在协议级别,但Calibra钱包声明所有用户将通过政府发布验证ID。这听起来就像Calibra钱包将是至少一段时间内唯一可用的钱包,所以目前还不清楚如果开发人员和用户可以在Libra上运行应用程序的网络,不遵守相同的标准口径。
什么是低费用?什么是正常操作?什么是足够的容量?
Calibra 钱包FAQ承诺收费低,但这似乎与在高负载时底层协议的操作相冲突。
白皮书:交易费用将是低成本和透明的,特别是如果你是国际汇款。Calibra将削减费用,以帮助人们保留更多的钱。
Libra真的会对开发者开放吗?
根据实现无许可共识的计划:
白皮书:Libra区块链将向所有人开放——任何消费者、开发者或企业都可以使用Libra网络,在其基础上构建产品,并通过他们的服务增加价值。开放获取确保了进入和创新的低门槛,并鼓励有利于消费者的健康竞争。
Jameson Lopp:我怀疑开发人员能够在这个平台上运行他们梦寐以求的任何技术上有效的应用程序。我读过的任何内容都没有让我相信这个系统会抵制审查制度,但只有时间会证明!
作者:Jameson Lopp  比特币开发者、专业密码朋克

Facebook主导的Libra所基于的共识HotStuff是如何工作的?

这篇文章将简单解读一下 HotStuff 的工作原理。我们将从 PBFT 共识协议出发,分析 HotStuff 是如何一步步改变以达到其目标。
一、从 PBFT 出发
粗略地来说,共识协议的目标是在去中心化的网络中就系统的状态达成统一的认识,以便所有的(诚实)节点统一从一个状态迁移到另一个状态。
正常流程下,PBFT 采用了两轮点对点通信来完成这个目标。
当主节点把其所提议的(合法)状态迁移权要求广播给其它节点后,作为系统中的一个诚实节点,首先它要知道足够多的节点也接收到了这一个状态迁移要求,即它能确认这次状态迁移要求是有效的。在此基础上,它要知道足够多的节点也确认了该状态迁移是有效的,以此确认这次状态迁移是全局的。
当协议运行过程中主节点发生故障,例如节点发现无法和主节点进行通信等,这时候需要更换主节点,即切换视图。此时,系统中的节点会广播视图切换请求,当某个节点收到足够多的视图切换请求后会发送视图切换确认给新的主节点。当新的主节点收到足够多的视图切换确认后开始下一视图。
二、HotStuff 基础协议介绍
我们认为 HotStuff 做出的第一个改变,也是最重要的一个改变,就是将 PBFT 的网状通信网络拓扑变成了星形通信网络拓扑,即它每次通信都依靠主节点。节点不再通过 p2p 网络将消息广播给其它节点,而是将消息发送给主节点,由主节点处理后发送给其它节点。得益于星型通信网络拓扑,系统的通信复杂度得到了大大降低。和 PBFT 中类似地,主节点会提议进行状态迁移,其它节点收到该状态迁移要求后,会检查其合法性。
图:网状通信网络拓扑向星形通信网络拓扑转变
我们觉得 HotStuff 做出的第二个重要改变是将视图切换流程和正常流程进行合并,即不再有单独的视图切换流程,降低了视图切换的复杂度。可以看到,在 HotStuff 中切换视图时,系统中的某个节点也无需再确认“足够多的节点希望进行视图切换”这一消息后再通知新的主节点,它直接切换到新视图并通知新的主节点。HotStuff 把确认“足够多的节点希望进行视图切换”这一消息的行为放进了正常流程中。这一做法比较新颖,但必然会给正常流程引入新的确认阶段。因此,HotStuff 把 PBFT 的两阶段确认扩展成了三阶段确认。
在了解了这两个改变后,我们可以简单描述一下 HotStuff 的流程。HotStuff 以 prepare 阶段作为协议的开始阶段。在这一阶段中,当主节点收集到足够的节点发来新视图请求后,它开始新视图并提出自己的状态迁移要求,发送 prepare 消息给其它节点。系统中的其它节点在接收到 prepare 消息后,验证其合法性并进行如下三阶段确认:
1.pre-commit阶段:其它节点对 prepare 消息进行投票。在收到足够多的投票后,主节点向所有节点广播 pre-commit 消息,向它节点表明足够多的节点确认了此次状态迁移的要求。
2.commit阶段:其它节点对 pre-commit 消息进行投票。在收到足够多的投票后,主节点向所有节点广播 commit 消息。此时,收到 commit 消息的节点可以锁定当前状态迁移要求以便即使视图切换也可以顺利达成共识。
3. decide阶段:其它节点对 commit 消息进行投票。在收到足够多的投票后,主节点向所有节点广播 decide 消息。当某个节点收到 decide 消息后将执行状态迁移,并开始新的视图。
图:Basic HotStuff 的流程
为了进一步减少通信量,HotStuff 做出了第三个改变,即和一些共识协议一样,引入了一个新的密码学原语:门限签名
简单介绍一下这个密码学原语。
对于一个(k, n)-门限签名方案,假定存在一个公钥,而 n 个签名者每人都拥有自己的私钥(分片)。只要其中至少 k 个签名者对消息进行部分签名,那么由这 k 个部分签名可以导出对消息的完整签名,并且这个完整签名可以由公钥来验签。
一般情况下,完整签名的大小和签名者的个数无关。HotStuff 用门限签名来减少共识协议中签名的个数。本体对于门限签名方案做了大量的研究,在和区块链的结合上,已经有了很多的想法和实践,会在以后的技术视点中逐步展现。
我们可以看到,在 HotStuff 的三阶段确认中,所谓投票,就是其它节点即对某个消息进行门限签名并发送给主节点。当主节点收到足够多的投票时会导出完整签名。主节点向其它节点广播下一阶段消息时将附上这个签名,供其它节点将验证。
图:(3,5)-门限签名
三、HotStuff 的流水化处理
可以看到,上述 HotStuff 基础协议的这三个确认阶段采取了类似的行为:其它节点对某一消息进行投票,主节点合成投票意见并通知给其它节点。这些过程可以统一表示,并采用流水化来处理。这是 HotStuff 做出的第四个改变:共识过程的流水化处理
图:流水化 HotStuff(来源于原论文)
流水化的 HotStuff 是在基础版 HotStuff 上进行了变化扩展,即每个 prepare 阶段都会切换视图。其实我们可以看到,这本质上就是让下一个视图的 prepare 阶段为当前视图的 prepare 阶段进行确认,即下一个 prepare 阶段(隐含地)包含了对当前视图的 pre-commit 确认,并以此类推。HotStuff 基础协议中的三阶段确认拥有相同的结构,因此这种流水化扩展是可以做到的。
四、后记
我们简单介绍了下共识协议 HotStuff 的原理。从通信复杂度而言,这几大改变带给了 Hotstuff 实质性的变化。同时,这也让HotStuff有了一些新的属性,例如文中提到的 Optimistic Responsiveness。从应用上看,不仅 Libra 采用了该共识协议,还有其它项目也采用了该协议。
BFT 共识系列在很多区块链项目中得到了应用,比如本体采用可验证随机函数 VRF 和 BFT 结合的VBFT 共识协议。我们希望这篇简短的介绍能让大家迅速理解 HotStuff 的工作流程,并以此对 LibraBFT、VBFT 等 BFT 系列共识协议能有深入了解。

号称 Libra 最大创新的 Move 与 Solidity、DeepSEA 到底有何区别?

众所周知,基于以太坊的编程语言 Solidity是目前区块链领域中最常用的开发语言之一。
即使 Solidity 在安全性方面存在一定的缺陷,并在近几年发生了不少类似合约溢出的安全事件,并导致用户大量损失。但由于其良好的适应性和可扩展性,已被广大开发者和社区用户所积极采用。
这次 Libra 携 Move 强势归来,便是主打的安全牌。基于 Rust 和 100%静态类型验证的全新思路,从底层内存和智能合约编程的代码层面,来提高了安全性,以期避免发生在以太坊的安全事件。这也是这次 Libra 发布后,不少人都认为,Move 语言才是 Libra 最大的创新。
但可能我们不太了解的是,由美国区块链安全公司 CertiK、耶鲁大学实验室和哥伦比亚大学实验室共同研发的编程语言 DeepSEA的研发也将于近期开发完成。
该语言利用植入其编程语言本身的形式化验证技术,自动创建数学原理来证明源代码的安全性,并获得了以太坊基金会、IBM Blockchain和量子链基金会的科研奖金。DeepSEA 语言在主打安全性的同时,也在寻求兼容除 EVM 之外的更多虚拟机,实现信息和资产的跨链共享。
今天来自CertiK 的安全专家团队对Move、Solidity、DeepSEA进行了分析比较,解释这三种编程语言之间的差异,并详细说明其中的优缺点和复杂性。
Solidity 
以太坊成功地在应用场景中引入了智能合约的概念:
当比特币将储存在区块链上的数据类型进行编码时,以太坊的用户就可以上传任意一个程序来定制该系统。与比特币相比,以太坊最大的不同点是:它可以支持更加强大的脚本语言,允许开发者在上面开发任意应用,实现任意智能合约,就是基于这个图灵完备编程语言——Solidity 用以执行这些智能合约。
在 Solidity 上发行一个应用程序其实十分的简单,它可以让用户创建一个自己的 Token(也可称为“代币”),用户可以自行持有或者将其转移至任何以太坊的账户上,也就是我们常说的发币程序。
简而言之,实现这个功能的方法只需要上传一个储存表格的程序,表中需要显示每个用户持有多少代币,并列出一些功能即可。
比如将一个账户上的代币转移至另一账户上的代码如下:
但是,在实际运行过程中,Solidity 的使用并没有我们想象的那么顺利。比如经常出现的整数溢出漏洞会导致 Token 无限增发、重入风险会导致智能合约遭受到类似DAO 攻击的严重损失等。
2018年4月,就有黑客利用以太坊 ERC-20 智能合约中整数溢出漏洞攻击 BEC(美链的代币“美蜜”)智能合约,成功向两个地址转出了天量级别的 BEC 代币,导致市场上大量增发的 BEC 被抛售。此事使得当日 BEC 的价值几乎归零,64 亿人民币瞬间蒸发
另一个 Solidity 可能存在的错误是在编译器中仍存在一些漏洞,这些漏洞可能会导致智能合约存在巨大的安全风险。通常程序员只查看程序的源代码,如果编译器有一个bug导致它打出的字节是错误的,这样的错误非常难以防范,即便经过了完善的人工测试和静态分析也仍然不可避免。
整体而言
Solidity 是一个功能强大并且非常灵活的编程语言——但是仍旧存在安全风险。Solidity 不提供任何证明代码(或者以太坊虚拟机中的编译码)安全性的功能。因此由第三方提供智能合约代码审计、或者第三方的形式化验证是证明代码正确的最有效的方式。目前基于以太坊的智能合约应用广泛,Solidity 的安全性是值得我们重视的。
Move