本文总结了社区中对于Polygon侧链与L2的相关争议讨论,并且翻译了DankradFeist的文章《关于51%攻击,大家都搞错了什么》以便读者从中参考对这些争议的解答。
5月16日,以太坊扩容解决方案Polygon的市值跻身加密货币市值前20,随后StarkWare的联合创始人UriKolodny转推祝贺,但同时他强调:“Polygon是侧链,而不是Layer-2。L2的安全性依赖于以太坊;而侧链的安全性与以太坊的不相关(甚至更低)。”因此,社区围绕Polygon到底是不是L2开始了激烈的讨论。
针对UriKolodny的评论,MihailoBjelic做了以下回复?:
首先,Polygon并不是一条侧链,它是一套扩容解决方案。其次(也是最重要的),默认L2比PoS侧链(我们的是提交链commitchain)更安全是绝对错误的。为了解释其中原因,我将简单地比较一下Polygon的PoS链和StarkWare的zkRollup或者Validium。
我们的PoS链的确有自己的验证者集,但这是完全无需许可的,且质押金额已达到28亿美元。此外,该实现已经经过了实战测试(1400万个区块且零事故)。
然而StarkWareRollup只有一个PoA运营者。这个运营者可能会宕机,抢跑、审查用户的交易等。并且,它由STARKs提供安全性,这是一个全新的、未经过验证的密码学。至于Validium,情况甚至更令人担忧。DeversiFi所使用的Validium方案还依赖于一小组PoA数据可用性节点。这些节点可以合谋,通过拒绝访问数据来阻止任何或所有用户提取资金。
考虑到上述情况,我认为那种默认L2s比侧链/提交链更加安全的想法是错误的。
针对MihailoBjelic的回复,社区分别从三个角度进行了讨论:1)Layer-2与侧链在安全性上的区别;2)Layer-2能否达到与Layer-1一样的安全性;3)Eth2与侧链在安全性上的区别。而对于社区上的困惑,以太坊基金会开发者DankradFeist发布了文章《关于51%攻击,大家都搞错了什么》(见下文),该文章基本上囊括了以上讨论中的问题与解答。
EthereumFair 发布新的社区激励方案,将拿出 400万个 ETF 支持矿工:9月16日消息,以太坊分叉链 EthereumFair 发布新的社区激励方案,表示将之前转向POS信标链的 1300 多万个ETH 对整个社区与生态进行重新分配。
据悉,EthereumFair 将拿出400万个 ETF 支持矿工,200万个 ETF 给交易所;将多签地址存放500万个 ETF 支持生态建设,成立ETF DAO;对于 ClassZZ 技术社区,将根据地址余额排名空投100万个 ETF 的所有持币地址;对于社区建设,将 ETF DAO 多签地址存放100万个ETF在运营与社区方面进行支出。[2022/9/16 7:00:20]
1.首先,关于第一个问题,DankradFeist表示不赞同,他说L2确实更安全,因为作为L2必须提供与基础层相同的安全性。而PoS侧链具有较弱链(通常是侧链)的安全性。
JamesPrestwich也参与了讨论?:“与侧链相比,L2需要更少新的安全假设,但其安全性并非与主网完全一样。”他指出L2与侧链相比,具有以下不同的特点:
依赖于非审查(欺诈证明)
依赖于新的密码学和可信的设置(有效性证明)补充一点,Starks不需要依赖可信的设置
更高的硬件和带宽需求
在下文中,DankradFeist指出“侧链不验证有效性,仅验证共识条件的绝大部分,并且其不具有数据可用性检查。”关于侧链的安全性问题,详见文章中“侧链如何运作?”那一部分。
2.至于L2能否达到与L1一样的安全性。PatrickMcCorry认为,L2的目标是尽可能地接近L1的安全性,但想要完全一样,是不可能的:
Loot社区投票通过LIP-0提案,支持销毁Loot合约密钥:官方消息,Loot社区以88%的支持率投票通过LIP-0提案,支持销毁Loot合约密钥。销毁秘钥是当前合约所有者的手动操作,并将在社区对所有者包(bags)的投票结束后发生。因此下一步将对LIP协议的正式化进行投票,在提案之前讨论如何处理所有者的包。
此前消息,Loot创始人Dom Hofmann提议销毁Loot合约密钥,以消除任何个人与组织(如DAO和多重签名)作为其所有者的能力。Dom Hofmann在提案中表示,在权衡销毁Loot合约密钥的利弊之后,选择赞成销毁密钥,因为这将有助于推动项目去中心化和平等精神。提案表决投票将持续至北京时间9月13日 0:00,此外,销毁密钥至少需要超过60%的人投赞成票,否则将默认保留。[2021/9/13 23:21:28]
欺诈证明不是尚方宝剑,尤其是当发布欺诈证明的费用太高时,其安全性就更小了
同样的,零知识证明也不是万能的,会出现排序者掉线以及L1无法应对大规模退出的情况
他还提到,L2解决方案可以归结为以下四点:
数据可用性(委员会/rollup/等)
状态转换完整性(零知识证明/欺诈证明)
提款完整性(退出保证)
协议活性(排序者的选择)
这个混合的方案难以完全达到L1的安全性。
回到下面的文章,DankradFeist解释了“区块链的安全模型”,以强调为何L1的安全性如此难达到。
3.那么Polygon的PoSchain与Eth2的PoS机制对比呢?在讨论中,DankradFeist指出,在长期发展来看,PoS侧链会是一个很大的隐患。在Eth2中我们尽量移除大多数诚实假设,然而PoS桥接并不能做到。
Grin社区发布节点异常简报,Beam基金会负责人提醒Grin代码分支可能遭受相同攻击:Grin社区发布此前“GRIN节点出现异常”概述表示,Grin需要范围验证(rangeproofs),以确保负承诺值不会造成通胀情景。如果没有范围验证,就有可能创建交易输出,通过使用负值来人为地增加供给。如果没有有效的范围验证来验证输出是否为负值,恶意行为者就有可能创建包含负值输出以及高价值输出的交易,这些高价值输出似乎可以与“将创建0个新代币”平衡。在本例中,攻击者尝试利用漏洞“RangeProof的缓存验证优化中没有充分的验证”。Grin ++用户在验证中发现,并由Grin++开发人员David Burkett转发给Grin团队的其他成员,同时还提供了一个修复程序来缓解错误的rangeproof缓存逻辑。
Beam基金会负责人Guy Corem表示,多节点实现(multiple node implementation)拯救了此次恶意攻击。有一些Grin代码分支没有节点实现,很可能遭受了完全相同的攻击。
此前消息,Grin网络在区块高度1136081出现无效交易,原因是范围验证缓存逻辑错误。为此,Grin已经发布v5.0.4版本对此进行修复,用户须进行更新。[2021/3/21 19:04:31]
以下是文章内容:
关于51%攻击,大家都搞错了什么
请大家原谅标题中的挑衅意味。显然,并不是每个人都会误解51%攻击,但还是有相当一部分人没有搞清楚,因此写一篇相关的文章并无坏事。
区块链圈内大概有一个神话:只要有人控制了比特币、以太坊或者其他区块链的超过50%的算力,那么ta就可以对网络做任何事。在PoS(权益证明)机制中,只要有人聚集了质押总额的2/3,ta同样可以对网络做任何事情。ta可以转走别人的资产,随意发行代币等等。
伦敦交易所LDX与阳光社区达成战略合作:据官方消息,伦敦交易所LDX与阳光社区于2月8日达成战略合作。此次合作,阳光社区将与伦敦交易所共同打造数字资产交易服务体系,共同为所有合约用户提供专业的知识输送,以及优质的交易体验,同时双方将会携手共同开拓亚太市场。
阳光社区成立2018年,现已建立阳光社区线下俱乐部、阳光社区南方战区商学院等线上线下平台。
伦敦交易所LDX是由曾任职于Bitmex、Coinbase公司的高管于2018年1月创立的数字资产交易平台。LDX采用完全自主研发的撮合引擎LD Engine,稳健高效流畅,致力于成为最具信赖的数字资产交易平台,目前已支持3大语种版本,全球用户数超50万。[2021/2/8 19:12:04]
这种想法是错误的。以下是51%攻击可以做的事情:
攻击者可以阻止用户使用区块链,即,拦截任何他们不喜欢的交易。这叫做审查。
他们可以回滚区块链的交易,即撤销一定数量的区块并更改其中的交易顺序。
他们不能做到的是:更改系统的规则。这意味着:
他们不能简单地在区块链系统规定之外发行新代币;例如,比特币目前为每个新的区块生产者6.25BTC;他们不能将这个数字变成100万比特币
如果他们没有某个地址的私钥,他们就不能使用该地址的代币
他们生产的区块不能比共识规则规定的大
这并非说明51%攻击的后果不严重,这仍然是十分恶劣的攻击。重新排序交易可以造成双花,这是非常严重的问题。但他们能做的事情仍然有局限性。
那么包括比特币和以太坊的大多数区块链,他们现在如何确保这一点?如果有一名矿工挖出了违法共识规则的区块会如何?或者,如果绝大部分质押者对一个违反共识规则的区块签名会发生什么?
区块链安全模型
有时人们声称最长链为有效的比特币或者以太坊链。这个说法不太完整。对当前链头的正确定义是
动态 | Nano支持者“取”价值5.4万美元的代币而遭社区指责 最终归还并道歉:Nano支持者Marcus Appel今日在推特上发起一项名为“Trust(信任)”的游戏,称:“你给我多少Nano,我就多给你10%。没有限制。每个地址仅发送一次。时间限制在24小时内。”并附上了自己的收币地址。最终,该用户收到了价值5.4万美元的Nano,其中有三个人分别发给他价值1千、3千以及5万美元的Nano。但他并未如约返还,因此遭到了社区讨伐。尽管声称“贪婪一度战胜良知”,但最终他还是归还了收到的代币,并向当事人道了歉。[2019/10/23]
总难度最高的有效链。
因此,在客户端接受区块链应该用来记录当前历史数据这个条件之前,他们需要验证两个属性:
该区块链必须有效。这意味着,所有状态转换都是有效的。比如,在比特币上,所有交易只花费此前没有花费的交易输出,coinbase仅接收交易费和区块奖励,等等。
它必须是难度最高的链。通俗地说,这是一条最长链,然而“最长”不是以区块的数量来衡量的,衡量的是总共花了多少挖矿算力在这条链上。
这听起来可能有点抽象。我们有理由提出一个疑问,上述中的第一个条件由谁来验证,即谁来验证者区块链上的所有区块均应有效?因为如果还是矿工验证该链有效,那么这只是重复工作了,我们并没有真正从中获得什么。
但区块链不一样。让我们分析一下为什么,先从一个普通的客户端/服务器数据库架构开始:
请注意,对于典型的数据库,用户信任数据库服务器。他们不会检查回应是否正确;客户端确保已按照协议对其有效格式化,仅此而已。客户端(此处用一个空白的方块表示)是“非智能的”:它无法验证任何内容。
但是在区块链的架构中,是这样的:
我先来总结一下上图包括的组件。首先矿工(或质押者)生产区块链。P2P(点对点)网络确保每个人都能够使用有效的链,尽管存在一些不诚实节点(你需要连接到至少一个诚实且连接良好的P2P节点,以确保自己始终与有效链保持同步)。最后,客户端将交易发送至P2P网络并从网络中的其他节点接收最新的链更新(或者是完整的链,如果它们正在同步的话)。客户端实际上是网络的一部分,它们也将通过转发区块和交易来做贡献,但在这里不是那么重要。
重要的部分是,用户正在运行一个全节点,上图中由客户端中的柱体表示。只要客户端获得一个新的区块,就像任何其他节点一样,无论是一个矿工还是P2P网络中的一个节点,这些客户端都将验证该区块是否为有效的状态转换。
如果这不是一个有效的状态转换,该区块则会被忽略。这就是为什么网络中的矿工试图挖掘无效的状态转换是没有意义的。所有人都只会忽略它。
许多用户运行自己的节点,与以太坊或比特币等区块链交互。许多社区已将此模式作为其文化的一部分,并且非常强调每个人都运行自己的节点,由此他们就成为验证过程的一部分。确实,让大多数用户(尤其是那些质押了大笔资产的用户)运行全节点是非常重要的;如果大多数用户变得懒惰,那么矿工可能会突然被诱使生产无效区块,如此一来该模型将不再适用。
打个比方:三权分立
这有点像民主制中的三权分立——政府有不同的分支,而仅仅因为你在其中一个分支拥有多数席位(比如立法机构),并不意味着你可以做任何你喜欢的事以及藐视所有的法律。同样,矿工或质押者有权排序区块链中的交易;而他们无权轻易对社区制定新规则。
Butdoallblockchainsworklikethis?但是所有区块链都是这样运作的吗?
这是个好问题。需要注意的一个重点是,以上所说的模型只有在全节点易于运行的情况下才会奏效。作为普通用户,如果运行全节点必须要花$5000购买另一台计算机,并且一直需要1GBit/s的网络连接,那么ta根本不会选择运行全节点。尽管ta可以在某些地方达到该网络要求,但是永久地保持以运行自己的区块链节点很可能不那么方便。在这种情况下,普通用户很有可能不会选择自己运行节点(除非ta的交易非常有价值),这意味着ta将信任其他人来为其执行该操作。
假设有一条链,其运行成本太高,以至于只有质押者和交易所会运行全节点。你刚刚改变了信任模型,然后大多数质押者和交易所能够聚集在一起并改变共识规则。对于这一点,用户是没有任何争议的——如果用户对该链完全没有控制权,那么他们无法发起分叉。他们可以坚持使用旧的规则,然而,除非他们开始运行全节点,否则,他们根本不知道自己的请求是否在自己想要的链(满足其共识要求的链)上得到了回应。
这就是为什么每当出现提高以太坊或比特币的区块大小的讨论时,总会引起大量的争论——区块大小每提高一次,都会增加大家自己运行节点的负担。这对矿工来说不是什么大问题——与实际的挖矿操作相比,运行一个节点的成本要小得多——因此,这将权力的天平从用户转移到了矿工(或质押者)身上。
轻客户端如何运作?
但是,如果用户只是想用加密货币来买咖啡,该怎么办?Ta需要在手机上运行全节点吗?
当然,没人希望需要这样做,用户也不希望。那么这时候就是轻客户端发挥作用的时候了。轻客户端是较简单的客户端,它们不需要验证整条链——它们仅验证共识,即总难度或者已投票的质押金额数量。
换句话说,轻客户端会被诱使跟随一条包含无效区块的链。对此有补救措施,例如数据可用性检查和欺诈证明。据我所知,目前还没有任何一条链实现了这些,但至少以太坊未来会这样做。
因此,使用具有数据可用性检查和欺诈证明的轻客户端,用户在不需要运行全节点的情况下,也可以使用区块链的安全模型了。这是我们最终的目标,即任何智能手机都能够轻松地运行以太坊轻客户端。
侧链如何运作?
侧链是当前的热门话题。它们似乎可以提供一种简单的扩容方案,不像rollups那么复杂。简而言之:
创建一条新的PoS链
在自身和以太坊之间创建一个双向桥接
…
重点!请注意,侧链的安全性几乎完全依赖于桥接——这是一种允许某条链读取另一条链的状态的构造。毕竟,如果攻击者能够主链上的桥,让桥接链上的所有资产都为其所有,那么即便PoS链上的全节点提出异议也没办法了。所以一切都取决于桥。
不幸的是,桥的状态与轻客户端相同。它们不验证有效性,仅验证共识条件的绝大部分。然而,侧链有两个方面比轻客户端更糟糕:
桥接用于价值非常高的交易,其中大多数用户会选择一个全节点,如果可以的话
不幸的是,我们没有办法加固桥接,而我们可以对轻客户端这样做——原因就是它们无法验证数据可用性检查
第二点很微妙,可以花一到两篇文章讲解一下。但是简单来说,桥接不能做数据可用性检查,而没有数据可用性检查,欺诈证明也几乎没用了。而如果使用零知识证明,可以要求桥接打包所有有效区块的证明,从而改善这个问题——不幸的是,这样还是有可能会受到数据可用性攻击,但也是一种改进了。
总言而止,侧链的安全模型与以太坊和比特币等区块链不同,而且要弱得多。它们无法防止无效的状态转换。
这些问题都需要靠分片来解决吗?
实际上,所有这些都与分片有很大的关系。我们之所以需要分片来进行扩容,是因为只有分片能够实现这样的扩容方式:既不需要提高运行全节点的门槛,同时又能够尽可能地维护区块链的完整安全性保证。
但如果有人撤销所有历史数据呢?那么ta还是可以盗取所有比特币/ETH/等
理论上说,在一条非检查点的PoW链上,可以通过回滚所有交易来盗取比特币。是的,你不能发行一万亿个比特币,但你仍然可以盗取现存的所有比特币,这也很好,对吧?
我认为这一点非常理论化。社区会接受一个修改其好几年数据(甚至只是好几个小时)的分叉的机率几乎为零。在所有可能的分叉中,都会出现大规模的争抢,很快就会得出结论并拒绝分叉,只同意有效的链为现存的那条链。
有了PoS和敲定,这种机制将变得形式化——客户端永远不能回滚已敲定的区块。
?https://twitter.com/MihailoBjelic/status/1393686451255226368
?https://dankradfeist.de/ethereum/2021/05/20/what-everyone-gets-wrong-about-51percent-attacks.html
?https://twitter.com/dankrad/status/1393721324300865537?s=20
?https://twitter.com/_prestwich/status/1393730794238005253
?https://twitter.com/stonecoldpat0/status/1393869662572748801
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。