编者注:本文为TaipeiEthereumMeetup社区成员邱骏的译作,译自2018年8月Vitalik介绍Casper发展历程的长推特。一年过去,Eth2.0的分叉选择规则已确定为LMDGhost,而非Vitalik在该长推特中表示偏爱的IMDGhost,但文中提到的Casper的观念演变史,仍足一观。
前言
以太坊针对PoS共识模型的研究最早始于2014年,这些研究后来演变成目前广为人知的?CaspertheFridenlyFinalityGadget?/?CorrectbyConstruction两种共识模型,它们分别由两个不同的团队开发且存有不少差异。Vitalik用一系列推文简述了从2014以来Casper的开发脉络,由于中文社群仍缺乏针对Casper开发路线相关的总结,因此译者特将此系列推文翻译成中文并且补上一些注解,希望可以成为开发者或研究员在学习Casper时的重要文献,并期望读者对Casper设计理念有更直觉的理解。
为了避免读来生硬,建议读者先大略掌握PBFT/CasperFFG/GHOST的重要概念,PBFT的部分可以参考译者的这篇文章:若想搞懂区块链就不能忽视的经典:PBFT。最后要特别感谢以太坊基金会研究员梁智程提供诸多素材与协助校阅。
以下正文开始。
B-Harvest将于4月14日推出代替Gravity DEX的新项目Crescent:4月8日消息,Gravity DEX开发团队B-Harvest宣布代替Gravity DEX的新项目Crescent(CRE)计划于4月14日推出,并将由Cosmos Hub转向基于Cosmos的同名区块链Crescent。B-Harvest团队还计划通过一系列新功能充实该平台,包括跨区块链借贷工具以及新的订单簿DEX模型。一旦Crescent启动,B-Harvest的旧协议Gravity将继续运行,Crescent将向用户提供质押收益奖励,以吸引用户将流动性迁移到新协议。
此前报道,Gravity DEX开发团队成立代替Gravity DEX的新项目Crescent,Crescent已经公布了治理代币CRE分配模型,总量2亿枚,其中将向ATOM委托者(delegator)空投1亿枚,另外1亿枚作为战略储备。(CoinDesk)[2022/4/8 14:13:10]
简介
我将要用一系列的推文来解释以太坊Casper共识协定的研究历史/脉络/进展,包括FFGvsCBC的争论、混合模型到完全PoS的转换、随机性扮演的角色、共识机制的设计考量以及其他议题。
无利害关系问题与远程攻击
以太坊的权益证明研究始于2014年1月的Slasher协定。虽然Slasher演算法并不是非常理想,但它引入了一些重要观念,特别是利用罚金来解决「无利害关系问题」。然而,我所使用的罚金相当少,单只取消投票奖励。VladZamfir于2014年中加入了,他迅速引入验证者必须押金的方法。押金是比奖励还大的数字,做出错误的行为将会使押金被取走。
慈善组织Future of Life Insitute设立以Vitalik Buterin命名的奖学金:9月24日消息,慈善组织 Future of Life Insitute 设立了以以太坊创始人 Vitalik Buterin 命名的博士和博士后奖学金,将奖励对以人工智能(AI)存在的安全性为主题的研究。其中博士奖学金最高每年 4 万美元,持续五年,以支付学费等并额外提供 1 万美元的研究经费;而博士后奖学金将授予 2022 年秋季后取得博士学位的博士后研究员,每年将提供 8 万美元的奖金,持续三年,并额外提供 1 万美元的研究经费。[2021/9/24 17:03:47]
我们花了2014下半年的大部分时间试着解决「远程攻击」,攻击者可以将他们的押金从主链提领出来,并且形成另一条具有更多签名的攻击链,如此新加入的节点,让他们以为攻击链是一条主链。如果攻击链与主链分叉的时间点距离当前相当近,攻击链不会造成问题,因为验证者若在两条链上同时对两个互相抵触的讯息签名,则这个签名可以当成惩罚验证者的证据来没收押金;但是若分叉发生在很久之前,攻击者可以取出押金以避免被没收。
我们最后得出:远程攻击是无法避免的,原因大致跟PoW拥护者所说的差不多。然而,我们没有接受他们的结论。因为我们发现:我们可以引入两个额外的安全假设来解决远程攻击:1.节点至少每4个月要登入一次;2.节点直接拒绝4个月以上的回溯。
这对PoW拥护者来说是个令人厌恶的肉中刺,因为这感觉是一个「信任假设」:每一次同步区块时,你必须先信任某个来源以取得区块链。但是对我们这些龌龊的主观主义者来说,这不是大问题:不管在哪一种情况,你都需要某个可信来源告诉你区块链所使用的共识规则,所以PoS所需的额外信任并不大。
动态 | Vitalik Buterin 提出激励开发者的新方案:将智能合约交易手续费资助合约创建者:Vitalik Buterin 在以太坊研究论坛上发表文章,提出一种激励开发者的新方案,当开发者创建一个智能合约后,任何其他使用该合约的用户付出的交易手续费的一部分(比如说 33%),会发送给合约的创建者作为激励,而且还提出了两种关于奖励的算法,分别是线性和超线性。该想法出自于 9 月 16 日在以色列举行的 StarkWare Sessions 会议上,在探讨关于公链基础设施的开发,资金应该是通过治理和协议获得,还是说应该被独立的企业资助话题中,以太坊创始人 Vitalik Buterin 认为,「通过协议获得资金的优势是,这个方法可以获得更多的资金。而劣势也很明显,由于这类方法是中立的,所以无论利用任何机制都会被恶意攻击,之前也已经遇到过各种各样的尝试。所以这类方法的最大的挑战是想出一套合适的治理结构和其组件。然后他还举了一个例子,如果我们设置这样一个资助机制:当有人使用了某个智能合约,因此而产生的转账费的一部分会分配给该合约的创建者,这样的机制就非常的中立。[2019/9/23]
确立了押金及罚金的使用后,我们接下来要决定它们「是什么」。我们知道我们希望的是「经济敲定性」,验证者将会基于以下方式对区块签名:一旦一个区块被敲定,如果要敲定一个冲突的区块,则必须要有大部分的验证者签出与自己先前讯息冲突的讯息。但对于这样的讯息,可以被链侦测并惩罚。
我写了一篇又臭又长又离题的「注共识」文章。注共识是一个有趣的提案:验证者下注哪一个区块会被敲定,而注决定了哪一个链会形成共识。PoW也具有这样的性质,因为挖矿是一种注。如果你注在对的链上,你会获得奖励;如果你注在错的链上,你失去挖矿成本。但在PoS我们可以有更高的赔率:验证者的赔率一开始很低,但是随着验证者看到彼此对于某个区块的信心逐渐增加,所有人的赔率都会平行地指数上升,直到所有人都注同一个区块,这就是敲定。
以太坊创始人Vitalik指责Instagram和Facebook允许虚假账户在平台上存在:以太坊的创始人Vitalik Buterin一直在处理大量欺诈的Twitter模仿者,这些犯试图从天真的投资者那里盗取密码,而最近V神的注意力被Instagram和Facebook转移了。这他在推特上批评Facebook和Instagram,因为他们的平台上存在明显的虚假账户。[2018/3/30]
CasperCBC
同时,Vlad开始大量研究机制设计,特别是让Casper更能抵抗寡占。我们也开始研究受到古典拜占庭容错启发的共识,例如Tendermint。Vlad认为古典BFT并没有说服力,他想透过一个他称为「正确建构」的方法尝试重新发明BFT。
正确建构的哲学与传统BFT相当不同的点在于「敲定」是完全主观的。CBC的哲学是,验证节点对讯息签名,且若他们签了与他们先前的讯息相抵触的讯息,则他们必须提交一个「辩护」以证明他们投票的新讯息与旧讯息相比之下有较多的支持,以取得「转换」的权利。
为了侦测敲定性,节点寻求讯息的模式。这些讯息可以证明,多数验证节点以一种方式可靠地对某区块B投票,且偏离B必须大部分验证者非法转换投票。例如,若所有节点投给B,则所有节点都投给「包含所有人对B的投票的区块」,这证明了他们支持B且知道其他所有人都支持B,因此他们不会有转换的合法理由。
最后我放弃了注共识,因为这个方法似乎有根本上的风险。我也回头试着理解PBFT是怎么运作的。虽然这花了一点时间,但过了几个月后我搞懂了。
CasperFFG
Vitalik Buterin:BTC本身是有问题的,BCH值得去争取:Vitalik在推特上发文称,“BCH是比特币名称的合理竞争者,虽然社区支持隔离见证(SegWit)已经一年有余,但目前并未得出合理的扩容方案。”[2017/11/16]
我试着简化了PBFT,将其放入区块链的脉络,并把它描述为4个「砍押金条件」,这些规则阐述哪些讯息的组合是自我抵触因此违反规则的。我定义了决定区块是否敲定的规则并且证明了最关键的「安全性」与「可行活跃性」:1.若某区块被敲定了,则无法在不少于1/3验证者违反砍押金条件下敲定另一个抵触的区块;2.若某区块被敲定了,2/3诚实的验证者总是可以合作以敲定新的区块。因此只要有2/3诚实的验证者,演算法就不会推翻之前的决定或卡住。最后我将砍押金条件从4条简化成2条,并发展成CasperFFG——被设计成为任何PoW/PoS/其他类型区块链提供敲定性的覆盖层。
敲定性是一个非常重要的进展:一旦区块被敲定,无论网络怎么延迟都能保证安全,而且回溯区块需要超过1/3验证者作弊,且可被检测出来且并销毁押金。因此,回溯敲定性的成本可能会高达数亿美元。透过不同的方式,CasperCBC以及FFG都达到了这个特性。
要注意的是:CasperCBC和FFG都是抽象的覆盖层,他们都需要建立在某个现有的分叉选择规则之上。用大白话讲,CasperCBC是敲定覆盖层适应分叉选择规则;而CasperFFG是分叉选择规则适应敲定覆盖层。
FFGvsCBC
Vlad最初对分叉选择规则的偏好是「最新讯息驱动GHOST」——一种针对PoS的改版GHOST;而我最初的偏好是先采取「混合式PoS」,使用PoW作为基底的分叉选择规则。
在最初版的FFG当中,PoW将会逐个区块地运作一条链,而PoS将会紧随在后敲定区块;CasperCBC从一开始就是完整的PoS。同时,Vlad跟我各自提出了共识诱因的理论。
这里有一个非常重要的区别是「唯一可归责错误」——你可以知道出错时谁应该负责而被惩罚,以及「非唯一可归责错误」——一个错误可能是多方中的一方造成的。一个非唯一可归责错误的经典案例是离线vs屏蔽,也称为「言者-听者错误等效性」。
惩罚唯一可归责错误是容易的;惩罚非唯一可归责错误则是困难的。如果你无法分辨区块停止敲定是因为少数的节点离线或是因为多数的节点正在屏蔽少数会怎么样?针对这个议题目前有三种解法:1.轻微地惩罚两边;2.严厉地惩罚两边;3.将链一分为二,各自惩罚两条链的其中一边,且让市场决定哪条链较有价值。或者可以参考我写的这篇。
2017年11月,我把CasperFFG砍押金条件以及对由于「平方溢金」导致的1/3节点离线的问题的解法写成论文。
当然,我非常清楚诉诸社交层面来解决51%攻击并不是很好,因此我开始寻求至少能让链上节点能自动侦测「合法链」与「攻击链」的方法。这是一个早期的想法。这想法还不错,但是仍不是最理想的,除非网络毫无延迟,否则它只能保证节点之间嫌疑分数差异的上限,而并非所有节点完全同意。
同时,我对Vlad的模型的主要批判与「泄气攻击」有关,攻击者可以有效威胁要制造51%攻击来造成所有人损失金钱,因而驱使所有其他人退出,因此只用极低的成本便能主导链。Vlad开始建立经济模型以评估在他的模型之下进行上述攻击的实际成本。
值得一提的是,上述所有的议题并非为PoS独有。事实上在PoW中,人们倾向直接放弃且假设预防51%攻击几乎不可能,且51%攻击是必须不计代价避免的末日。但是,如同以太坊的传统,Vlad与我误把「有野心的」这个词当成赞美,而继续研究减缓以及恢复51%攻击的不同方法。
2018年初,Vlad在CBC的研究开始快速推进,包括安全性证明的进展。—看这个史诗般的2小时简报以跟上2018年3月为止的研究进度同时,CasperFFG也有了重大进展,以合约的方式实现的决定使开发工作变得容易。2017年12月31日,我们发布了Python版的测试网。
Casper与分片开发路线的整合
不幸的是,FFG的开发慢了下来。以合约实现FFG虽然把一些事情变得更容易,却让未来要从EVM转到EWASM以及从单链Casper转到分片Casper的工作变得更困难。此外,团队的研发工作被分成「主链Casper」和「分片链Casper」,可想而知在这两个团队之间产生了大量不必要的重复工作。
2018年6月,我们做了一个重大的决定:放弃以合约实现的CasperFFG,取而代之的是追求以一条独立链运作的Casper,如此的设计将使分片变得更加容易。
完全PoS的转换导致我开始更认真思考PoS的分叉选择规则。CasperFFG与CBC都需要全部的验证节点在每个「时期」投票以敲定区块,这代表每秒将会数以万计的签章传向每个验证节点。BLS签名聚合使其在计算成本上是可行的。但是我想试着利用这些额外的签名以让链更加稳固,在几秒内取得等同于「100个确认」的安全性。这里是我初步的想法。
然而,所有这些分叉选择的方法都有一个缺点:它们都将验证节点分为「见证节点」与「出块节点」,而这些负责产生区块的出块节点拥有过大的权力。这样做不太好,主要是因为它需要我们有一个很安全的链上随机数生成器以公平地挑选出块节点,而链上随机数生成器很困难,而且一些简单的方法例如RANDAO似乎有愈来愈多问题。JustinDrake跟我开始解决这个问题:Justin使用VDF,这是一个输出具有确定性与可验证的函数,但需要大量不可平行化处理的序列时间进行运算,使提前窜改变得不可能;而我对Vlad教妥协,使用基于GHOST的分叉选择规则以大幅减少对出块节点的依赖,允许在恶意出块节点大于90%且诚实见证节点大于50%的状况下,链仍能不受干扰地成长。Vlad很开心,但还没开心到极点:他偏好LMDGHOST,而我偏好IMDGHOST。
大约同一时间,我也试着想出一个方法来「流水线化」CasperFFG,将敲定时间从2.5个时期减至理论上最佳的2个时期。我对RPJ分叉选择规则能够很好地相容于FFG这件事感到开心。它还有一个很重要的「稳定性」:分叉选择是一个对未来分叉选择的好预测。这看起来很明显,但我们却很容易做出不具有这种特性的分叉规则。最近的进展是:LMDGHOST可能由于技术细节只能在2回合中有25%容错,但是IMDGHOST仍可以有完整的33%容错。
FFG与CBC之间主要的取舍是:CBC似乎有较好的理论性质;而FFG似乎比较容易实现。同时,VDF也取得了许多进展。
还有,我最近决定研究LeslieLamport1982年的老论文,在这边论文中他提出了一个共识演算法:若假设所有节点,包括观察者,皆在线上且具有很低的网络延迟,则具有99%容错。网络延迟的假设按理来说会使其不适合作为主要的共识算法。然而,它可以在某一个情境运作相当良好:作为51%屏蔽侦测的嫌疑分数替代方案:基本上,如果51%共谋团体开始屏蔽区块,其他验证节点以及一般节点可以侦测到屏蔽的发生,并且使用99%容错的共识演算法来达成屏蔽正在发生的共识,并协调少数分叉。关于这个研究的长期目标就是要尽可能减少对社交层的依赖,并将破坏链稳定的成本最大化,使其利用社交层回溯的可能性最小化。
还有什么?FFG的部分还有形式化证明,规格的完善,以及实现的持续进展,并着眼于安全及迅速的开发。CBC的部分也差不多。接下来让我们勇往直前吧!
原文链接:
https://medium.com/taipei-ethereum-meetup/history-and-state-of-ethereums-casper-research-85e8fba26002
作者:?JuinChiu
本文首发于TaipeiEthereumMeetup的Medium站,EthFans经授权转载,为符合大陆读者的习惯,进行了简繁转换并将部分术语改为习惯用法。
PoC是基于空间的共识机制PoC的全称是Proof-of-Capacity。Capacity其实是存储空间的意思,之所以用这个词,是因为早先PoC被称为PoS,也就是很名正言顺的空间证明的概念,
1900/1/1 0:00:00一、行情分析根据CoinMarketCap的数据显示,在过去的8月份,加密货币整体市值下跌9.51%左右.
1900/1/1 0:00:00摘要:比特币的长期趋势依然向好,山寨币的相对价格接近年内新低。短时,比特币有所回落,但山寨币表现相对强势。短期,市场调整趋于尾部,近期企稳的可能性进一步增加.
1900/1/1 0:00:00周二,华尔街日报报道称,VanEck/SolidX将于本周四根据SEC的114A规则向机构投资者出售“受限版”的比特币ETF。这让市场对几乎沉默的比特币ETF再次重燃希望.
1900/1/1 0:00:00摘要事件:8月26日,中国互联网金融协会区块链研究工作组召开了关于供应链金融领域区块链应用实践与标准化建设的研讨会。互金协会主导区块链应用研究,推动区块链+供应链金融落地应用.
1900/1/1 0:00:00在过去的几年里,一些行业已经发现将区块链技术融入其日常运营中的好处,医疗行业也不例外。在2016年IBV的一项调查里指出“区块链的医疗集团”似乎在区块链采用上加快步伐,甚至领先于金融服务行业.
1900/1/1 0:00:00