月亮链 月亮链
Ctrl+D收藏月亮链

DAH:Libra 采用的 HotStuff 算法作者亲述:「尤物」诞生记_dah币最新消息

作者:

时间:1900/1/1 0:00:00

Facebook公布了Libra白皮书和相关技术文档之后,链闻发现了Libra区块链将使用基于拜占庭容错共识的「LibraBFT」共识算法,而LibraBFT算法则是「HotStuff」的一个变种。之后,链闻又顺藤摸瓜,找到了「HotStuff」论文的第一作者、美国康奈尔大学大学在读博士生尹茂帆,请他讲述了HotStuff的奥妙。

TedYin今年25岁,目前导师是著名计算机科学家EminGünSirer教授和RobbertvanRenesse教授。他同时也是市场颇为瞩目的区块链新项目AvaLabs的联合创始人和首席系统架构师。

2018年暑期期间,他在VMwareResearch实习时提出了「HotStuff」协议中核心算法,并完成了相关论文。

我们邀请TedYin撰文分享了他提出「HotStuff」核心算法前前后后的经历。我们希望通过这篇文章,记录下一个创新性算法被年轻华人研究者提出的背景,一个有可能推动区块链技术发展的基础性研究工作完成的来龙去脉。我们希望以此帮助读者更好理解「HotStuff」,更可以激励区块链行业的研究者和开发者更好地建设。

撰文:TedYin,康奈尔大学博士生,AvaLabs的联合创始人兼首席系统架构师

TedYin,HotStuff论文第一作者,AvaLabs的联合创始人和首席系统架构师。

一入系统深似海

没想到,HotStuff,这个被我中文起名为「尤物」协议的科研成果,或多或少竟源自于我第一个「失败」的研究。请容我细细说来。

2016年,博士之旅伊始,我的导师EminGünSirer教授便拿出几份论文让我细细研读。其中有:

PaxosMadeModeratelyComplex;

ByzantineQuorumSystems;

ImplementingFault-TolerantServicesUsingtheStateMachineApproach。

这些都是共识协议研究经典中的经典。更没想到的是,有一天,我竟有幸与ByzantineQuorumSystems的两位作者合作完成了后来的尤物协议。

Solidus Labs完成1500万美元战略融资,Liberty City Ventures领投:11月5日消息,加密原生风险监控公司Solidus Labs今日宣布完成1500万美元战略融资,Liberty City Ventures领投,Exor Seeds和GSR参投。Solidus Labs于5月份完成2000万美元的A轮融资。Solidus Labs位于纽约,创立于2018年,在华盛顿特区、特拉维夫和伦敦设有办事处。其使命是通过量身定制的合规性和风险监控解决方案来实现安全和受监管的加密市场。(Businesswire)[2021/11/5 21:28:39]

相较于人工智能的论文,计算机系统相关的研究论文篇幅都较长,一般有十来页。而共识协议算法的论文每一页的难度又令人望而却步。在理解了共识问题的基础以及经典算法以后,一次开会中,Gün教授开始考我了。本来胸有成竹的我,被他连珠炮一般的问题问得说不出话来。

「看来你需要回去重新读一遍啦,Ted!」,他淡然一笑,「不必担心,本来这世界上没多少人懂Paxos。」

在1990年提出的一种基于消息传递且具有高度容错特性的一致性算法,很多大型分布式系统都采用Paxos算法来解决分布式一致性问题,Paxos算法被普遍认为难以理解,难以实现。)

我愧色满面,仓皇逃出了办公室。于是下决心要把其中逻辑理清,以至无懈可击。

「异步」难题

共识协议,或者推广至各种分布式系统的协议,是一类基于时态逻辑的算法描述,其难点在于「异步」。

所谓异步,就是若干个相对独立逻辑可以同时执行,并且它们之间能够依据算法发生交互。这里的「异步」与异步协议中异步所指不同,更接近于并发的概念。

其实在日常生活中,我们也无时无刻不进行这种「异步」的操作:我们不会干等一天别人的消息,也不会在整个项目所有的事情做完后才睡觉休息。我们往往是会「同时」处理若干个不同的事务,尽量不会因为一件事没有做完而被卡住不做后续的所有事情。

这种等待着一件事情完成再处理另一件事情的过程,就可以被称为「同步」;而把事情做一部分丢给别人,接着马上进行其他操作的过程中,则产生了「异步」。

声音 | Libra协会成员:尽管战略并未敲定 但Libra将在2020年推出:Facebook(FB.O)旗下加密货币Libra协会成员:尽管战略并未敲定,但Libra将在2020年推出。[2019/12/19]

正如生活中的多任务同时处理一样,带有异步/并发性质的算法设计充满了挑战。以Paxos算法为例,它是一种对宕机有一定容忍度的冗余算法。用通俗的话讲,也就是我们希望有若干个机器去备份同一个系统状态。这个状态可以是用户的信息、银行的交易,或者平台上程序的执行序列。这种「备份」,使得整个系统有一定的抗故障能力——一台带状态副本的机器崩溃之后,我们仍然有别的机器可以使用。

Paxos作为这类协议的代表已经在业界获得了广泛的使用,比如Google的Spanner系统。毫不客气地说,云服务和大规模数据中心的崛起,重要原因之一就要归功于此。美国计算机科学家莱斯利·兰波特提出了Paxos算法,这成为让他在2013年获得图灵奖的重要原因之一——当然,兰波特有太多的贡献了,包括后文会提到的拜占庭容错算法,这里就不一一展开了。

不过,像Paxos这类算法因为需要保证系统各个机器同时处于一致的状态,以便对外表现为一个不间断的服务,因而十分难以设计和理解。

当然,我的那个故事的结局是:重新来过,认真钻研,自信满满地再次接受也解答了Gün教授提出的若干个刁钻的问题,最终通过了他的考验。

「那么接下来我希望你思考一下能不能基于区块链的结构设计一个CFT算法,打败Paxos。」Gün教授说。

「好的。」我回答到。

虽万难吾往矣

就这么简单的一句话,花去了我整整第一年一个学期的时间。

现在回想,这个过程短暂又漫长,时而枯燥无味,但时而又充满惊奇。我曾经构想出了一些看似正确的算法,但仅仅过了一天,随即便发现无法证明,或者算法本身存在错误。直到在第一个暑假来临前,我向导师提交了一份关于这方面研究的报告。

在报告中我分析了尝试用链式结构打败Paxos的各种大方向。其中主要分为两种:

一种路线是采取类似原中本聪共识中的概率模型,然后通过随机的等待时间来建立起一个可以收敛的共识链;

声音 | 经济政策研究中心主席:Libra或未能成功推出,但已成功播下引入另一种全球数字货币的种子:经济政策研究中心(CEPR)主席Beatrice Weder di Mauro表示,虽然Libra可能未获得立法者的批准,但它已成功播下了引入另一种全球数字货币的种子。具有全球资产的国际货币体系比当前的体系具有主要优势,当前的体系目前由美元主导。像Libra这样的全球货币网络的想法“威胁”了各国央行,因为建立在全球网络基础上的数字资产将降低其自身的重要性和在市场上的地位。但在生态系统中出现类似项目的可能性仍然很高。(ambcrypto)[2019/10/26]

另一种截然不同的思路则是像Paxos那样,使用子集交来把Paxos「编码」在链上。

在报告中,我给出了基于Python快速构建的Raft和第一种路线的性能对比,得出了不成功的结论。而Gün教授对另一个路线并不持乐观态度——因为Paxos/Raft现在已经被优化得很快了,在这种只有宕机的容错场景下是不具备优势的。

我们决定放弃这个CFT相关的研究,我也转而有了一个新项目,也就是后来的Avalanche协议。它是一种概率安全的拜占庭容错协议,这里暂不展开。

有趣的是,报告提到的两条路线中,第一个正好和早期的DPoS思路如初一辙。DPoS是一个备受争议的协议,它在早期并不是拜占庭容错的,而且协议本身没有严格的证明或者性能的测试,主要使用它的EOS虚拟货币,也沦为了一个高度中心化的系统。而第二个路线,如果将问题的领域由宕机容错变为拜占庭容错,Paxos改换成DLS/PBFT,则像极了后来的尤物协议。

一拍即合

17年秋季学期即逝,我向VMwareResearch的首席研究员DahliaMalkhi表达了实习的意向。

当年12月,在清华—康奈尔区块链研讨会期间,Dahlia和VMwareResearch的高级研究员IttaiAbraham飞到深圳,短暂参会并作了学术报告。报告内容是关于BFT协议在区块链时代下的新研究课题。期间,他们宣布发现了2007年获得SOSP最佳论文的ZyzzyvaBFT系统存在的正确性问题,借此说明BFT协议过于复杂和难以理解,以致在业界无数专家审稿的10年以后,仍然可能会发现算法层面的正确性bug。

声音 | 大卫?马库斯:Libra是开源软件,不属于我们,而是属于社区:金色财经直播报道,在本次Libra听证会上,议员Bill Foste提问有什么手段阻止Libra被用于勒索软件吗?马库斯回答Libra是开源软件,不属于我们,而是属于社区,我们会放弃对代码和网络的控制。[2019/7/18]

我们在她宣讲的当天吃了早饭,席间她简短地用了30分钟问了一些关于我目前科研的问题作为面试。

Dahlia在业界以一针见血和才思敏捷著称,在挺过了她的一些关于Avalanche协议的一些尖锐问题后,她表达出了对我一开始那个「夭折」CFT项目的浓厚兴趣。在次年的远程交流中,她提到了一个在构想的BFT算法有些类似于我的项目,并且询问我当初放弃的原因。之后我们一拍即合,去VMwareResearch实习的事情也就这么定了下来。

太平洋的风

实习就这么开始了。从东岸的纽约飞到了西岸的加州。美好的湾区,全新的暑假。烈日下,太平洋的风时而拨弄着我手中的纸页,我则低头继续思考着「谁是坏人,谁是好人,谁又背叛了谁」的问题——拜占庭容错。

Dahlia告诉我说,一般世界各地的博士生来这里实习的头一周都不需要做什么,而是应该去尝试摸清自己的能力,以及寻找感兴趣的项目。彼时,她提到希望我能看一下他们于三月份撰写的文稿。

我喜忧参半。「喜」是因为有明确的文稿可以阅读,「忧」则是这个预印稿是不是意味着算法已经设计完毕,而我能做的事所剩无几?

实际上,在「挣扎」着阅读了一周以后,我发现初稿中描述的算法很是模糊,正确性的证明也是一笔带过,其中两个核心引理都是一句话。于是,在商议后,我们做了一个后来觉得极为明智,但对我来说也十分挑战的决定:我不去看那篇预印稿,而是从一张白纸开始,凭着自己受到的启发,结合已有的积累,用我的符号系统来重新描述算法,并且尝试给出严格的证明。

整个过程大概又花费了将近一周,最后我将重写的几页稿子交给了Dahlia。令我欣喜的是,得到的反馈非常鼓舞人心。Dahlia说我自己重头设计的算法在本质上和她当初的构想大体相似。

但是不久她就发现了一个很不一样的地方:我的协议里面需要的假设比原本的预印稿的要更少。

动态 | 金融稳定委员会:引入Facebook的加密货币Libra需要一个新的监管框架:据路透社报道,6月25日,协调G20国家监管的国际机构——金融稳定委员会(FSB)表示,引入Facebook的加密货币Libra需要一个新的监管框架。此外,在此前大阪举行的G20会议中,FSB称,公司引入虚拟货币不会成为问题。FSB主席表示,FSB将和和其他机构共同监督加密资产的风险,并在必要时实施追加措施。[2019/6/26]

我的解释是,原稿里面维护的变量和隐含条件过多,而且有的好像也不是必要。我相信「简单即是优美」的原则,于是去掉了一些觉得冗余的不变量。

瞬间,Dahlia变得严肃认真了起来,直截了当地说,「不,这个简化会直接破坏协议的正确性」。

好在我已早有准备,向她解释了这个「重要」条件其实是不必要的。但是她依然坚持。

讨论变得逐渐激烈,于是我壮了胆,带着十足底气的口吻「挑战」道:「Ifso,couldyoupleaseshowmeacounterexample?」她立即开始在眼前的白板上写写画画,我全神贯注,准备迎接对我思维以及口语表达的挑战。

在她数次尝试失败之后,我再次耐心地解释了一遍无需那个条件的原因。我说,听上去确实挺反直觉的,我一开始也觉得困惑,但是后来发现证明正确性并不需要它。最后,她将马克笔缓缓放下,笑着长出了一口气说,「目前我想不到反对的理由。Ted,你赢了。哈哈。」

证明不是一笔挥就的。我一开始自鸣得意的证明很快就被Dahlia发现了一个致命问题:有一个条件从来没有用过。和之前我们所争论的冗余条件不同,我们都意识到这是一个极为关键的条件,奈何找遍了整个证明都没有!

这种感觉就像是修好一个机器后发现手头多了一些零件,又或是做完手术发现金属盘里多出了一些器官一般。所幸的是,很快我们发现了其中一句话其实暗含了条件,但欣慰之余又感叹就算是专业人士,做这种BFT协议也是十分棘手。

随后,我们计划将旧稿替换成现在重写的新稿。

高手过招

Dahlia一直是我最敬重的学者之一,因为她平易近人,跟年轻人打成一片,而在讨论学术问题时又有着渊博的知识储备和学者的严肃威严,讨论细致入微,不让毫厘。

老实说,在讨论中,大多数时候还是她取得了「胜利」。跟高手「过招」,我不得不叹服她思维的深度、广度和速度。这也是跟她合作的乐趣:就像是一场赛车比赛,稍一不留神,她就在弯道直接超车,一骑绝尘了;或是在你飞速狂奔而不知其所往时将其横刀拦下,使之冷静下来解释清楚。

不久,坐在旁桌的MikeReiter也加入了我们的讨论。我对计算机安全领域的大佬知之甚少,自然也是不知道这位Mike的来头。只是当时觉得他特别友善,还经常来问我需不需要来看一眼我的稿子,或者讨论一下算法问题。

MikeReiter,现为北卡罗来纳大学教堂山分校计算机系教授

他也对HotStuff感兴趣,于是我们便有了三人的开会小组。再后来我才意识到,原来最早读的那篇于1998年发表的著名论文「拜占庭仲裁系统ByzantineQuorumSystems」,正是Dahlia和Mike在AT&T实验室工作时期所合著的成果。那时的我还在幼儿园留着口水,咬着手指。

1998年发表在学术期刊「分布式计算」上的论文「Byzantinequorumsystems」

相比Dahlia,Mike更像是那种深藏不露的扫地僧。他时常会在你作报告加速时打断,慢条斯理道:「恕我愚钝,但是我不理解你刚刚说的东西,你能再解释一遍吗?」而我逐渐察觉到他懂的其实远比看上去的多,总能在关键的地方提出非常好的问题。一旦他和Dahlia争论起来,我几乎无法插嘴,只好在一旁以崇敬的目光看着两位「神仙大战」。

犹物之生

Dahlia提起了最初的论文稿其实投了2018年的PODC会议,结果被拒。原因有二:审稿人觉得这论文写得太笼统,他们没能理解算法的具体过程,以及证明过于简陋;另一方面则是他们认为实用拜占庭容错算法的期刊版本已经在其中「暗示」了可能存在线性复杂度的换届,所以论文号称的线性换届并不是新东西。

Dahlia对第一点心服口服——这也是让我不看原文重头写过的原因之一。但她对第二点不以为然,因为她去找来了那个期刊论文,所谓「暗示」并不可行。

就这一点,我们两人在一次讨论中对PBFT期刊版本的算法进行了剖析,最终得出了一个好消息和一个坏消息:好消息是PBFT的换届做不到线性,也就是审稿人的说法有误;但坏消息是,Dahlia的旧稿里面的算法并不符合标题所说的完全线性,而是有更深层次的微妙之处。

就在这次和Dahlia对PBFT期刊版本的讨论中,我们得到了新的思路

实际上,为了保证响应度,不得不变成平方复杂度;或者为了线性复杂度而放弃响应度。无论何种取舍,皆使我们的贡献度大幅缩水——这朵乌云不幸地于周五飘在了头顶,在这沦为「incrementalwork」的阴霾下我们若有所思地开始了周末。

柳暗花明

山重水复后,我席间提到的一个思路给了Dahlia新的启发。于是,在那个周日的下午,当我还在家慵懒地用笔记本看新闻时,突然收到了一封她上千字的邮件。

果然,在我们的HotStuff体系中,尽管最初的算法跟Tendermint本质相仿,但还有别的变种可以打破这种壁垒:在保证与PBFT类似响应度的同时,达到线性的消息复杂度下界,即理论最优。值得一提的是,前面提到的Paxos同样也是线性复杂度。

主要思路就是那天讨论中我突发奇想提到的:「如果我们增加一个阶段呢?两个阶段的协议变三个阶段,但是好像我们可以用中间阶段维护的不变量来避免Liveness的问题,从而完全保证响应度。」

于是,便有了第三版的「尤物」,也是Facebook的LibraBFT所基于的那个。

尽管在最终发表的论文中,我被列为第一作者,但是这个算法的提出,与Dahlia和Mike等经验丰富学者的紧密协作及相互间激发出的灵感密切相关。我也很开心,能够在VMwareResearch短暂的暑假实习期间完成「尤物」的主体部分算法。

在实习结束之后的半年间,我们坚持不懈地完善理论和代码,并且也尝试向业界推广该成果。我们都对创造可以用于实际系统的协议充满热情,也都对理论和系统实践有着一定经验。Dahlia显然比我拥有更多的经验和更深刻的认识,我从她身上学到了很多。令人感动的是,她对我的思考和每一个建议都认真加以考虑,并且也充分信任我的一些观点——这使得我凭借自己对系统和这个行业的理解能有所施展。

例如Facebook的Libra技术文档中反复提到的「起搏器」,就是由我提出并取的名字。当时我看到HotStuff框架提供了一次从算法层面对共识安全和性能的机会,然后在第一次描述算法时就将保证系统安全的部分抽离出来,然后将与具体应用相关的heuristics部分分离成为一个「起搏器」,来拯救Liveness。

这一点,毫无疑问,是谈论HotStuff无法避开的有趣话题。

我真心期待这个「尤物」,能够让无论是国外还是国内的巨头,抑或是创业公司,能够真正构建实际的拜占庭容错系统。毫无疑问,Facebook首先尝了鲜。

我们在2018年向他们推荐了「尤物」,而后如技术文档中所说,在考虑了市面上诸多其他算法后,他们作出了决定。

与此同时,我也向一些国内的创业公司宣传了算法。遗憾的是我跟国内大公司并没有机会接触,只听说他们在共识上栽了不少跟头。

讽刺的是,如今的市场上,极大一部分区块链公司并没有实现所谓的区块链,遑论拜占庭容错。残酷的现实就是,就算从Google、Facebook或是阿里、腾讯等公司抓出最优秀的程序员,其中能够熟练掌握Paxos、且知晓如何从头构建这样高效系统的人屈指可数。

但是我们不要感到灰心丧气,因为这反而是对国内产业的一个前所未有的,赶超世界最领先水平的机遇。除比特币和以太坊之外,一个合格的、成熟的新BFT容错系统尚未诞生,谁将摘取这个王冠——更确切的是,哪些公司将弯道超车,这尚未可知。

我希望「尤物」能够抛砖引玉,为此铺平道路。

标签:DAHAXOBFTHOTdah币最新消息MaxonrowBBFT价格Unique.Photo

火必交易所热门资讯
ETH:币安能杀死以太坊吗?_EVERBNB

文|凯尔编辑|文刀自从币安宣布推出BinanceChain以来,关于其与以太坊竞争的讨论就从未停止.

1900/1/1 0:00:00
ION:BIONE交易所关于VT\/伏特币更换ERC20网络完成公告_DIONE

尊敬的用户:根据VT/伏特币官方消息,VT/伏特币已更换完成为ERC20系列代币。BIONE交易所将于2019年7月2日15:30开启VT转入转出,已按1:1进行兑换,Bione交易所将不再支持.

1900/1/1 0:00:00
比特币:经济学家谢国忠:华尔街交易员正在通过东亚比特币市场谋利_ICEBT

经济学家、前任摩根士丹利董事总经理谢国忠近期表示,加密货币将不会被承认为合法货币,因为政府不能用它发行债券,其巨大的波动性可能会让这样一个政府破产。只有少数交易所运营商有望获利.

1900/1/1 0:00:00
KEX:交易头部同态搏杀 王者之战从未停歇_BNB

文|嚯嚯编辑|文刀2019年上半年,交易市场从年初沉寂到逐渐回暖。期间,行业热点不断更迭,IEO打新、“共振”融资、Staking理财......风口一个接一个.

1900/1/1 0:00:00
ONE:VGO即将登陆BIONE交易所_BIOFI币

尊敬的BIONE用户:BIONE已成为VGO首批白名单交易所之一,将于2019年6月30日14:00开放充值,6月30日20:00开启VGO/USDT交易对.

1900/1/1 0:00:00
OKB:OK点卡风波:有人贱价出货 有人抄底扫货_DAILY

北京时间7月4日20点,加密货币交易所OKEx发布公告称,将取消点卡抵扣币币、杠杆交易手续费,生效时间将另行公告通知;此后,点卡只可用于抵扣币币杠杆的利息、法币交易的手续费.

1900/1/1 0:00:00