作者|ColinSchwarz
编译|Jhonny
背景信息
在本系列的第一篇文章《Serenity将带来什么?》中,我们概述了以太坊网络发展至今的历史,并解释了备受期待的Eth2.0将解决的主要问题。在第二篇文章《以太坊2.0:如何实现扩展性?》中,我们介绍了Eth2.0中有望实现的Plasma、状态通道等Layer2扩容方案和Sharding(分片)扩容方案。在本文中,我们将探讨Eth2.0将使用的Casper共识机制,并介绍实现Casper机制的信标链。建议读者结合之前的两篇文章来对Eth2.0有着更加深入的了解。
共识算法
在传统的价值和信息交换网络中,通常有一个中介机构来保护和验证网络。例如,银行为客户的资产提供安全保障,并对客户的在线交易和信息进行中心化的控制。而在区块链领域,由于区块链网络是去中心化的,因此不需要这样的中介机构。
由于没有中介机构,区块链网络就必须使用某种形式的系统来维护安全,并确保添加至分布式账本中的新信息的有效性。
也就是说,区块链网络的大多数节点必须就单一版本的网络状态“达成共识”,以便保证网络的安全。
为了实现这个目的,区块链使用各种“共识算法”,这些算法是一组被写入协议代码中的预定义规则,允许网络达成共识并实现最终性(finality)。最终性的意思就是“一旦完成了特定的操作,该操作将永远铭刻在历史记录中,并且该操作将不可被逆转。”。
共识算法决定了网络的安全性、确认速度,以及在分布式账本中对交易进行排序和验证的方式,从而提供真实的账本记录。这确保了通过去中心化的方式,添加至区块链中的新区块将是系统中唯一的真相版本。
工作量证明(PoW)是最早由比特币使用的区块链共识算法,该算法确保了比特币网络的安全性和去中心化。最近,出于很多原因,很多其他区块链平台已经引入了诸如PoS(权益证明)、DPoS(代理权益证明)和PoA(权威证明)等其他共识算法。
为何需要PoS?
诸如比特币等工作量证明(PoW)系统涉及许多通过计算机硬件连接至区块链网络的矿工。PoW共识算法会为每个新区块设定一个目标值(targetvalue),矿工们会竞相成为第一个找到该目标值并添加该新区块,这样就可以获得挖矿奖励。
为此,他们通过一个哈希函数来运行被提议区块的区块头数据(headerdata),该哈希函数将返回/输出一个固定长度的字符串(哈希值)。矿工会一直改变他们输入的“nonce值”,也即对这个区块头重新运算哈希,直到输入的“nonce值”生成的哈希值与该目标值相匹配。此时,新区块将被广播至网络中的所有节点,这些节点将验证该区块并将之添加至账本中,而成功挖出此区块的矿工将获得挖矿奖励。
PoW系统的关键方面是,找到正确的哈希输入需要大量的计算能力(也即存在挖矿难度),但是一旦矿工找到了正确的输入(也即“nonce值”),就很容易验证输出(也即哈希函数返回的哈希值)。挖矿过程的难度保证了网络的安全性,而节点验证每个区块是相对简单的,这使得成千上万的网络节点可以维护该区块链的最新记录。
美SEC前主席:以太坊更像是“百老汇门票”,而非一种募资手段:4月22日消息,前美国证券交易委员会(SEC)主席Jay Clayton在接受CNBC的最新采访中表示,他同意SEC现任主席Gary Gensler的观点,即很大一部分加密货币可能属于证券范畴。在被问到以太坊是否会被认定为潜在未注册证券时,Jay Clayton用百老汇剧院门票做了类比,他解释说,如果作为制作一部百老汇剧并获得未来门票,那么这个门票就会被视为证券,但如果演出成功,门票售出,那么这个门票就不再是证券,而只是门票,这一逻辑也可应用在以太坊上。
Jay Clayton认为以太坊具有更多“百老汇门票”的特征,而不是一种募集资金的手段,不过他也承认自己不知道有关这件事的全部事实。(U.Today)[2023/4/22 14:20:10]
但不幸的是,通过哈希找到每个目标值的难度需要大量的计算能力和电力,这降低了网络的效率和矿工的利润。所有矿工都必须花费大量的电力和计算来试图确认区块并赢得奖励,但只有其中一个矿工会成功地挖出新区块。正因为如此,每个区块的挖掘都会造成大量电力和计算的浪费。这意味着尽管PoW算法能够保证网络安全,但该算法的效率非常低。
PoW区块链除了效率低下外,挖矿领域还容易受到市场垄断的影响,因为这种挖矿方式给予了那些拥有更多资源的参与者不公平的优势。有钱有势的个人和组织能够负担得起大量更快、更强大的挖矿硬件设备,这使他们有更大的机会成功地挖出新的代币。当前,大约65%的比特币挖矿是由5家大型挖矿集团完成的,理论上他们可以联合起来控制50%以上的算力市场(尽管他们不太可能会这么做)。这就造成了一种情况,比特币和其他PoW区块链网络并不像它们最初设想的那样去中心化,这危及了它们的独立性和实用性。
PoS(权益证明)最早出现于2012年,是为了解决PoW机制在效率、成本和中心化等方面的问题而提出的。事实上,以太坊团队从项目一开始就计划过渡到PoS,但是直到最近才制定了通过Casper机制来实现这一过渡的计划。在PoS系统中,整个挖矿过程都是虚拟的,从而消除了对昂贵且低效的挖矿硬件的需求。能源消耗被经济激励和博弈论所取代,作为一种保护网络和验证区块的手段。
在PoS网络中,“矿工”被“验证者”所替代,这些验证者都拥有该网络的原生代币。验证者通过质押(staking)一定数量的代币来参与网络中的区块验证(包括提议区块和对区块进行证明),如果该被提议/证明的区块被添加进了网络中,那提议/证明该区块的验证者都将获得与质押成比例的奖励。在PoS网络中,由于不存在PoW那样的挖矿,使其比PoW系统的成本效益和能源效率要高几千倍。
“NothingatStake”的问题
实现PoS共识证明算法的最大问题之一是“NothingatStake(作恶无成本,好处无限多)”的问题。自2013年以来,人们一直在尝试PoS共识,Peercoin等早期采用者很快就遇到了这个问题。
数据:近24小时以太坊上Dex交易量约为7.01亿美元:据欧科云链OKLink数据显示,截至今日18时,近24小时以太坊上去中心化交易所总交易量约为7.01亿美元。其中交易量排名前五的分别是Uniswap V2 2.98亿美元,环比上升11.48%;Curve 1.88亿美元,环比上升82.95%;0x协议 0.67亿美元,环比上升5.46%;Tokenlon 0.48亿美元,环比上升29.51%以及1inch 0.41亿美元,环比上升80.35%。[2020/10/22]
PoS协议的早期采用允许任何拥有网络原生代币的人充当网络验证者,这些PoS项目假定那些拥有代币的人对网络的成功有既得利益(即会为了自身利益而自发地参与进来成为验证者,并诚实地进行验证)。
在假定拥有更多代币的人几乎没有动机会进行攻击的前提下,那些拥有更多代币的人被赋予了更多的验证权。
然而,早期的PoS项目很快意识到这种逻辑是有缺陷的。通常,矿工/验证者只会被提供一个区块进行验证。然而,由于延迟的原因,常常会有多个区块被提议,并向矿工/验证者提供两个可供选择的区块。
在传统的PoW系统中,矿工一次性只能在一条分叉链中进行挖矿。要成功地将一条非法的分叉链取代之前的“权威链”(也即最长链),那需要拥有50%以上的网络算力,这对于比特币等大型PoW区块链网络来说是非常困难的。
而在PoS网络中,验证者是有可能同时对两条不同的分叉链上的区块进行验证的,而且不需要承担额外的费用。事实上,在PoS采用的早期阶段,从理论上讲,验证者在任何可用的分叉链上进行staking都符合自身的经济利益,因为这样做,无论哪条分叉链被确认,验证者都会获得交易费用奖励,这就是“NothingatStake(作恶无成本,好处无限多)”问题。
这种问题的最糟糕后果可以通过以下几个安全性假设来加以阐述:
验证者将试图实现自我利润的最大化,即便这会损害整个网络;
没有验证者会无私地进行验证(只在一条链上验证区块);
验证者将修改它们的软件,或者下载修改后的软件,从而允许他们验证多条分叉链(标准软件带有内部逻辑,用于在发生分叉时选择正确的分叉链)。
由于上述这些安全性假设,可能会导致出现多条分叉链,使得网络共识出现延迟并更加复杂,如果不加以解决,还可能导致网络出现重大的安全漏洞。如果每个验证者实际上都可以对网络中每条分叉链的区块进行验证,那么恶意验证者将能够最少通过1%的验证权就可以进行双花攻击(也即对同一笔代币花费多次)。他们可以将代币通过其中一条分叉链发送至某个交易所,然后将代币从该交易所中提现,之后只验证另一条分叉链上的区块。
由于假设所有验证者都在对两条不同的分叉链进行验证,第二条链将会获得越来越多的证明并最终成为唯一有效的链。这意味着,之前在第一条分叉链上支出并从交易所提现的代币交易将不再有效。如此一来,一笔成功的双花支出就发生了,而交易所也被走了资金,无论涉案金额有多大。
以太坊 DApp 浏览器 MetaMask 拟于 11 月进行重大代码更改,以简化 API:以太坊 DApp 浏览器 MetaMask 计划从今年 11 月 16 日起进行重大代码更改,例如,停止注入「window.web3」,对「window.ethereum」API 进行重大更改,以简化化 MetaMask API 和为用户提供更快速、更可靠的服务。[2020/8/16]
实际上,这几乎是不可能的场景,因为肯定有很多验证者是诚实的,并且他们只验证一条正确的分叉链。更有可能的情况是,攻击者需要在网络中拥有超过1%的验证权,或者贿赂或与其他验证者合谋,才可能完成更复杂的群体攻击。无论哪种方式,早期的PoS算法都没有PoW算法那么安全,而PoW算法在51%的攻击可能发生之前都是安全的。
简而言之,PoS的早期尝试由于缺乏要求每个验证者需要质押实际价值,这导致了网络很可能出现延迟、复杂和不安全等问题。
“NothingatStake”问题的解决方案:Casper
幸运的是,以太坊团队已经从早期PoS项目的缺点中吸取了教训,并设计了Casper协议来消除“NothingatStake”的问题。2014年,Vitalik在一篇名为《Slasher》的文章中首次提出了消除“NothingatStake”问题的想法。文中提出了一个简单的解决方案:“让主链意识到其他的分叉链。之后,如果一名矿工被抓到同时在两条链上进行挖矿,该矿工将受到惩罚。”
尽管这一概念自被提出以来已经得到了很大的发展,但这一概念成为了Casper共识算法的基础。
Casper是一种用于对那些验证多条分叉链的验证者或者对网络造成损害的验证者进行惩罚的算法。
Casper的第一个实现将使用以太坊当前的PoW提议机制在Eth2.0链上引入新的区块。如果两个区块同时被提议,那验证器只会因为在一条链上进行质押而获得奖励,因此通过当前的Eth1.0链来下注是有意义的,因为这条旧链是最有可能成功的链。
更重要的是,Casper协议引入了一种机制,即如果任何验证者试图通过同时验证多个区块来支持某条无效的分叉链,那该验证者质押的代币资产将被销毁。这是通过执行两条“Casper戒律”的特殊保护机制来实现的:
第一条“Casper戒律”是,验证者不能在同一区块高度发布两个不同的投票(即不能在同一个区块高度签署两个不同的区块);
第二条“Casper戒律”是,验证者不能在已经投票的情况下,在其他投票时间范围内再次进行投票。
任何违反其中一条戒律的验证者都被认为是恶意验证者,并且他们的全部存款(不仅仅是他们的质押金)将被罚没。为了提高网络的可用性和减少对交易的审查,那些节点离线的验证者也会受到适度惩罚。具体参见Unitimes此前发布的文章《Eth2.0AMA第二期|Vitalik:以太坊2.0已没有未解决的研究挑战》。Casper研究者VladZamfir将这种全新的PoS安全机制比作是在PoW系统中任何发动51%攻击的人所使用的挖矿硬件都会即刻着火并烧毁。
持有超1枚ETH的以太坊地址数量创历史新高:Glassnode数据显示,持有超过1枚ETH的以太坊地址数量创历史新高,为1086741个。上一次新高1086644出现在7月19日。[2020/7/20]
如果Casper机制正确地加以实现,那它将消除“NothingatStake”的问题,并使以太坊网络安全地过渡到PoS机制。
Casper实际上是由以太坊基金会进行的两个不同但相关联的研究项目的融合,即CaspertheFriendlyFinalityGadget(FFG)和CaspertheFriendlyGHOST:Correct-by-Construction(CBC)。
CasperFFG将使以太坊从PoW共识机制平稳地过渡为PoS共识机制。因此,CasperFFG模式通过将这个新的PoS协议覆盖到当前的以太坊PoW协议上,从而集成该全新的PoS协议。区块依旧是通过PoW方式进行挖掘,但每个epoch期间的最后一个slot就是PoS的检查点(每生成64个区块(大约需要6.4分钟)称为一个epoch),网络验证者会在检查点对自上一个检查点以来的区块最终性(finality)进行评估。CasperCBC将会在FFG之后实现,用于完成向PoS共识的转变。
信标链
Casper权益证明机制将通过信标链(beaconchain)加以实现,信标链将是一条与当前以太坊PoW链并行运行的独立链。信标链将是Eth2.0链的“系统链”,其主要职责将是存储和维护验证者注册表、处理分片链和信标链之间的交联(crosslink)以及在每个epoch期间打乱和分配验证者至各个分片链中(Eth2.0系统中将存在1024条分片链)等等。
用户通过一个将部署在当前以太坊旧链上的智能合约中发送32ETH(质押金)就可以参与到信标链的权益证明协议中来。这笔质押金将生成一个收据(receipt),该收据将包含一个显示该验证者被分片至哪条分片链的ID(阅读此文章了解更多有关分片的信息)。
用户进行了质押之后,将会成为信标链中的待定验证者(pendingvalidator)。在等待一段时间后,用户才会被“激活”成为有效验证者(activevalidator),之后就可以参与PoS协议验证了。只有当信标链处理了来自Eth1.0链生成的抵押收据之后,用户才可以被“激活”成为有效验证者。被激活的验证者将轮流提议新的区块和对区块的有效性进行投票。
Casper的早期版本将使用现存的PoW提议机制,之后的版本将使用更为有效的提议机制。Vitalik展望“将区块提议转变为一种PoS循环区块签名机制。”为了组织验证者串谋发起攻击,信标链通过实现随机性来随机地将验证者分配到不同的分片链中来进行区块提议/投票验证。如果验证者不知道自己何时会被分配到哪条分片链中,那就能阻止他们提前串谋发起攻击。
在遇到分叉的情况下,验证者将使用他们客户端的信标链分叉选择规则来自动地选择正确的链。该分叉选择规则通过“LastMessageDriVENGreediestHeaviestObservedSubTree(LMDGHOST,由最新消息驱动的GHOST)”来决定哪条链才是“规范链”。潜在攻击者如果想要对错误的分叉链进行验证,那就必须手动修改或消除LMDGHOST分叉选择规则。
声音 | Multicoin Capital执行合伙人:以太坊2.0有结构性和根本性的开放性问题:Multicoin Capital执行合伙人Kyle Samani表示,项目是否留在以太坊完全取决于开发人员想要构建的应用程序类型。对于开放金融应用程序,以太坊是最佳构建场所。他指出,有几个项目正在构建不是以开源金融为中心的应用程序,这些项目寻求的最重要因素是可拓展性。当被问到以太坊向以太坊2.0的过渡,以及开发者在此场景中选择其项目所基于的平台时需要考虑的因素,他表示,“我可以非常肯定地说,我们真的不知道以太坊2.0将如何工作。关于它实际上是如何工作的,有一些高层次的想法,但也有相当多的结构性和根本性的开放性问题。”他表示,在2019年10月份的Devcon上,该系统的结构发生重大变化,“他们改变了分片数量,以及分片将如何交联。”他表示,“我们还可以看到,以太坊团队在研究其他团队正在做的事情,并调整他们的一些想法。可以肯定地说,我们只是不知道Eth 2.0会是什么样子,很有可能最终产品甚至不是目前计划中的产品。”他最后表示,开发者必须选择是否将所有鸡蛋都放在以太坊的篮子里,因为他们不知道“这艘船要去哪里”,在中长期内选择更具确定性的其他区块链。(AMBCrypto)[2020/1/4]
对于每个区块,其中一个激活验证者将被选中对新区块进行提议,其他验证者将通过投票的方式来证明该区块的有效性。Casper的早期版本要求验证者为他们提交的每个证明发送一笔链上交易,但这会增加主链的负荷,并加重Eth2.0致力于解决的扩展性问题。根据当前的设计,信标链将会负责PoS机制,这样验证者的投票就不会争夺PoW链或者分片链上的空间。
证明(attestations)将是信标链负荷的主要来源,因此应该尽可能地将证明聚合起来,这是很重要的。证明(attestations)可以是分片链中的验证者对分片链区块的投票,或者是信标链中验证者对信标链区块的投票。一旦每个分片链区块获得了足够多的证明(即投票),该区块就会被被添加进该分片链中,并会通过一个称为crosslink(交联)的方式将该分片的状态提交至信标链中进行证明。在实现各分片链之间的异步跨分片通信中,交联也将起着重要的作用。
路线图
信标链(也即Eth2.0的阶段0)将有望于2020年初启动,但只有当系统中质押的ETH数量达到最低数量要求,且至少存在三个处于生产就绪的客户端,信标链才能成功启动。预计之后的阶段1和阶段2将分别于2021年和2020年推出。
阶段1将引入基本的分片链结构,也即本质上是一个分片结构的试运行阶段,用于测试分片系统将如何运行。因此,阶段1将不会立即实现分片的全部扩展性潜力。此阶段将解决分片链的共识和最终性,并将允许信标链监控分片链的执行。
阶段2将见证一个完全集成分片的Eth2.0系统,分片将成为完全运行的链。阶段2也将引入全新的以太坊虚拟机eWASM。
需要注意的是,尽管这些阶段在概念上是分开的,但由于各阶段存在的相互关联性,因此各阶段的工作都在同步进行中。
此外,当前在改进Eth1.0链的努力也在进行中,也即Eth1.x,其目的是通过客户端优化来提升网络的吞吐量,实施“statefees(状态费)”来确保运行全节点的可持续性,以及稳定交费易和开发出可用于将Eth1.x链与Eth2.0链连接起来的最终性小工具(finalitygadget)。
特别感MarinPetruni?和AidanHyman审阅了本文并使许多有价值的建议。此外,这篇文章也离不开许多其他伟大的作者和研究人员在该领域所做的工作。感谢所有参与创建和发布本文引用资源的人!
文中涉及的链接:
“PoWvsPoS—thedebatedefined.
”https://bravenewcoin.com/insights/pow-vs-pos-the-debate-defined
“WhatistheEthereumCasperProtocol?
”https://blockgeeks.com/guides/ethereum-casper
“HowEthereumMiningWorks.”
https://www.coindesk.com/information/ethereum-mining-works
“UnderstandingProofofStake:TheNothingatStakeTheory.”
https://medium.com/coinmonks/understanding-proof-of-stake-the-nothing-at-stake-theory-1f0d71bc027
“Slasher:APunitiveProof-of-StakeAlgorithm.
”https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/
“CaspertheFriendlyFinalityGadget.
”https://arxiv.org/pdf/1710.09437.pdf
“Eth2.0Specs.”Github.
https://github.com/ethereum/eth2.0-specs
“Ethereum2.0.”Medium.
https://medium.com/rocket-pool/ethereum-2-0-76d0c8a76605
“BeaconCasperChainTalk.”
https://www.youtube.com/watch?v=zqL_cMlPjOI
“EthereumCasperUpdateExpectedin2019,Shardingin2020.
”https://unhashed.com/cryptocurrency-news/ethereum-sharding-update-expected-2020/
WordsofMarinPetruni?.
https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-scaling-ethereum-part-two-sharding-902370ac3be
参考文献:
Blockgeeks.“WhatareEthereumNodesAndSharding?”AccessedSeptember17,2018.
https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding.
Blockgeeks.“WhatistheEthereumCasperProtocol?”AccessedOctober12,2018.
https://blockgeeks.com/guides/ethereum-casper
Buterin,Vitalik.“Slasher:APunitiveProof-of-StakeAlgorithm.”EthereumBlog.Jan15,2014.
https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/
Buterin,VitalikandJustinDrake.“BeaconCasperChainTalk.”FilmedatShardingMeeting#2inBerlin.PublishedJuly16,2018.Video.
https://www.youtube.com/watch?v=zqL_cMlPjOI
Buterin,VitalikandVirgilGriffith.“CaspertheFriendlyFinalityGadget.”EthereumFoundation.lastrevised15Nov2017.
https://arxiv.org/pdf/1710.09437.pdf.
Chan,Justin.“PoWvsPoS—thedebatedefined”BraveNewCoin.Mar1,2018.
https://bravenewcoin.com/insights/pow-vs-pos-the-debate-defined
“Eth2.0Specs.”Github.AccessedNovember14,2018.https://github.com/ethereum/eth2.0-specs
Hertig,Alyssa.“HowEthereumMiningWorks”.Coindesk.AccessedFebruary11,2019.
https://www.coindesk.com/information/ethereum-mining-works
Kramer,Melanie.“EthereumCasperUpdateExpectedin2019,Shardingin2020.”Unhashed.July7,2018.
https://unhashed.com/cryptocurrency-news/ethereum-sharding-update-expected-2020/
Langley,Darren.“Ethereum2.0.”Medium.August7,2018.
https://medium.com/rocket-pool/ethereum-2-0-76d0c8a76605
Martinez,Julian.“UnderstandingProofofStake:TheNothingatStakeTheory.”Jun7,2018.
https://medium.com/coinmonks/understanding-proof-of-stake-the-nothing-at-stake-theory-1f0d71bc027
Vidrih,Marko.“RoadmapChangeatEthereum—ShardingandCasperattheSameTime?”Medium.Jun17,2018.
https://medium.com/@VidrihMarko/roadmap-change-at-ethereum-sharding-and-casper-at-the-same-time-745f0587ae10
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。