Evmos PGS Bounty
Bounty:[Evmos][入门][了解 Evmos] | Bounties | DoraHacks
Rewards: 1000 EVMOS
Hacker:@whiskoy_eth
(2022年万向黑客松冠军,独立投研开发者)
视频回顾:IBC 生态系统 - Evmos_哔哩哔哩_bilibili
什么是PGS
公共物品质押(Public Goods Staking)是 Dora Factory 的一项创新。在该系统下,验证者奖励不再是简单的节点佣金,而是会被重新注入对应生态系统,以Grant、Hackathon、Bounty或直接资助的形式支持生态系统开发人员和开发前沿技术的团队的研究发开工作。
无论外部市场状况如何,PGS 验证器可以为生态系统开发者提供稳定的资金支持,从而有助于确保链上活动的可持续性和长期增长。这些开发者激励措施将提供给 DoraHacks 平台上的所有社区成员。
一、Evmos 的技术亮点
1、什么是 Evmos
Evmos 是 Cosmos 生态系统中一个去中心化的 PoS 链,目标是将基于 Ethereum 的 dapp 和 assets 带到 Cosmos 生态系统中。Evmos 使用带有 Tendermint 核心共识的 Cosmos SDK 构建,提供基于 Cosmos 的区块链的 fast finality 和高吞吐量。通过使用 Ethereum 的 EVM,开发者可以在 Tendermint 共识环境中部署他们基于 Ethereum 的应用程序,伴随而来的是更低的交易费用,更快的交易速度,和 PoS 共识带来的安全性。
Evmos 支持 Cosmos 的区块链间通信协议(IBC),该协议允许使用它的基于 Tendermint 的链之间直接共享代币和数据。因此,部署在 Evmos 上的 EVM 应用也可以被更广泛的 Cosmos 生态系统中的网络参与者(如 Cosmos、Osmosis、Cronos 等)访问在 Ethereum 上看到的各种程序,包括去中心化的交易所、市场、借贷协议、NFT 应用、游戏等等。
2、一些定义
-
Tendermint 是一种共识算法和软件,用于构建分布式应用程序。它是一种拜占庭容错(BFT)共识算法,能够容忍不超过 1/3 的拜占庭节点的存在。Tendermint 主要包括 Tendermint Core 和 应用程序区块链接口 ABCI 。
-
Tendermint Core 是 Tendermint 的核心组件,是一个可插拔的共识引擎,可以与任何状态机(如 EVM)集成。Tendermint Core 确保了同样的交易在每个机器上都按照同样的顺序进行存储。
-
ABCI :**ABCI 负责连接状态机和 Tendermint 底层共识,位于 Tendermint Core 和 Cosmos SDK 之间。**ABCI 事件可以标记验证人被罚没或者获得通胀奖励等事件,ABCI 还允许开发人员交换其特定于应用程序的区块链的共识引擎。
-
Cosmos SDK 是一个用于构建区块链应用程序的开源框架,它是用 Go 语言编写的,并且可以在 Tendermint 上构建安全的区块链应用程序。
-
IBC 协议是 Cosmos 生态中的一种链间通信协议,它允许不同的区块链之间进行连接和通信。通过 IBC 协议,Cosmos 实现了区块链之间的互联互通,使它们可以相互交互和传递价值,解决了区块链互操作性的问题。
3、生态相互受益
Evmos 允许以太坊作为 Cosmos SDK 应用特定区块链运行。这使得开发人员能够拥有以太坊的所有所需功能,同时受益于 Cosmos 生态:
-
EVM 兼容性;
-
通过 Tendermint 共识引擎实现高吞吐量;
-
通过 IBC 进行水平扩展(通过添加更多节点来提高性能);
-
快速交易确定;
-
支持完全兼容的 JSON-RPC 层,可以与现有以太坊客户端和 Metamask 等工具交互。
同时,Cosmos 生态也将受益:
-
引入以太坊生态用户;
-
承接部分以太坊 Defi 生态交易量;
-
带动 Cosmos 自我生态发展。
4、技术亮点
Evmos 是 Cosmos 生态搭建在 Tendermint POS 机制上的 EVM 兼容应用链。**Evmos 可以理解为将以太坊的共识机制换成了 Tendermint Core 的 ABCI 应用。**它通过 IBC 协议实现完全可互操作性,同时通过引入 Cosmos SDK 以及 TendermintCore 共识机制,具有以下技术亮点和经济机制:
-
基于 Tendermint POS 机制,具有高度安全性和可扩展性。
-
通过 IBC 协议实现完全可互操作性,可以与 Cosmos 生态中的其他链进行跨链交互。
-
引入 Cosmos SDK,使得开发者可以使用 Go 语言快速构建应用。
-
兼容 EVM,可以运行 Solidity 智能合约,与以太坊生态具有良好的兼容性。
4.1 Tendermint 共识
Tendermint 共识算法是一种拜占庭容错(BFT)共识算法,它的核心流程包括三个阶段:Propose、Prevote 和 Precommit。具体介绍如下:
-
Propose 阶段:Tendermint 算法先随机选出一些节点作为 Validators,然后选择其中一个 Validator 作为 proposer 节点。Proposer 节点负责提出一个新的区块,将其广播给其他 Validator 节点。
-
Prevote 阶段:在收到 proposer 节点提出的新区块后,其他 Validator 节点会对该区块进行验证,并在验证通过后进行 prevote。Prevote 是指 Validator 节点对某个区块提出的投票,表示该节点认为该区块是有效的,并且可以作为下一个区块的候选区块。
-
Precommit 阶段:在收到超过2/3的 Validator 节点的 prevote 后,Validator 节点会进行 precommit。Precommit 是指 Validator 节点对某个区块提出的最终投票,表示该节点已经确认该区块是有效的,并且将在下一个区块中包含该区块。一旦一个 Validator 节点进行了 precommit,它就不能再更改它的投票。
4.2 惩罚机制
Evmos 中,被惩罚的验证人将会失去一部分抵押品,同时还可能会被禁止参与共识一段时间。Evmos 的惩罚机制如下:
-
双签惩罚:如果验证人在同一高度对两个区块进行签名,将会被惩罚。
-
断线惩罚:如果验证人在一段时间内没有验证区块,将会被惩罚。
-
安全问题惩罚:如果验证人的节点被黑客攻击,导致网络安全问题,将会被惩罚。
4.3 ERC20 资产兼容
为了实现让智能合约,ERC-20 资产与 Cosmos 原生资产的跨链互通,团队开发了 ERC-20 模块,之前这个问题必须通过桥等者中心化的解决方案实现,而 ERC20 模块允许 Evmos 将原生 Cosmos SDK 资产与 ERC20 资产实现快速转化,并且保证在发行环境/运行时(EVM 或 Cosmos)上保留与原始资产的可替代性,并保留 ERC-20 合约的所有权。此转换功能由管理原生资产对注册的 $EVMOS 代币持有者管理;此治理功能是使用 Cosmos-SDK gov 模块实现的,所以 ERC20 机制下,用户可以在 EVM 链上使用 Cosmos 原生资产 (OSMO, ATOM) ,同时,ERC20 资产可以进入到 Cosmos 生态 (AAVE, Compound) 使用。
二、Evmos 的经济机制
1、dApp store 模型(类似app store的分润模式)
通常,大部分 L1 上将网络价值都给到了矿工以及质押节点,而用户和开发者并没有获得最大化激励。而 Evmos 试图通过合理的机制设置解决这个问题。相较于 EIP1559 中,费用中的基础费用被销毁;在 Evmos 中,销毁的基础费用被用于奖励「开发者」和矿工/验证节点 (50/50),这个参数可以通过治理进行修改。小费还是和 EIP1559 中一样,给到验证节点。
2、The quality of servie 协议(用户激励)
对于用户而言,主要以燃料费用补贴以及流动性激励等形式从用户激励池中调用资金。
为了激励 Evmos 上的使用,社区可以通过治理为特定的智能合约注册激励,并且在一定的区块时间内使用用户激励池。通过向用户分配燃料补贴(少于收入),本质上和用燃料费用激励开发者的逻辑是一样的,将 EVMOS 更多用于激励生态参与者,反哺生态。
什么项目可以为用户争取到相应的补贴取决于社区的治理投票,并且代币持有者最有能力推动网络对这些 dApp 的使用, 这本质上还是增加了 EVMOS 的使用场景。
3、IBC 中继服务补贴
中继者是一项吃力不讨好的工作,因为他们目前只有支出,(Evmos上线当时中继器没有收入)而在 Evmos 中,IBC 交易,特别是 UpdateClient 和 IBC 转账将获得至少 50% 的补贴。
我们认为 Cosmos 上最值得学习的是 Relayer 的 Aultuistic Behavior (利他行为),这也是 Cosmos 生态系统得以构建最去中心化、运行良好的链集的原因。
4、战略储备和社区池
这部分会通过 Grants 计划给到一些生态建设者,并且对于活跃度高的节点拿出部分资金进行委托支持。
三、Evmos 的潜在风险
1、验证节点分布过于中心化
目前现在头部集中,前 10 个节点占据全网超过 50% 的质押量,属于头重脚轻的局势。很多社区看空者甚至认为 Evmos 会在这个熊市中死掉。
2、对于验证节点的风险
2.1 双签
在相同的区块高度对两个区块进行签名会导致对 Evmo 的惩罚,尽管双签的惩罚性参数尚未定义。1)所有验证节点和 Sentries 都有 double_check_height=1 作为预防手段;2)验证者节点启用了 PEX,但没有广告地址。我们选择不使用公共 + 私有 VPC 架构,因此验证器仍然可以在灾难性故障时回退到它自己的对等节点。3)验证者私钥的手动验证,以防止双重签名。标准程序是在启动/停止操作时手动检查所有节点的验证器密钥 JSON。
2.2 停机时间
验证者丢失前 10,000 个区块中的 95% 以上将导致 0.01% 的罚没。不可用:验证者离线一定数量的块将导致罚没,如果验证者超过了错过块的上限,它将从活跃节集中移除,尽管尚未定义不可用的参数。停机和不可用可以通过 监控/警报等方式, 及早确认问题来源并且将节点私钥转移到备份机器。
2.3 安全性差导致恶意行为
如果验证者是分布式拒绝服务 (DDoS) 攻击的受害者,如果其私钥被泄露,或者如果其其他不良行为同样是无意的,则验证者的质押仍可能会被削减——强调选择安全、高可用性的参与式基础设施的重要性。可以在 OS 上进行 hardening 解决。
当然 Evmos 会采用 Cosmos 的监禁参数,这意味着在被削减后的验证者会自动进入监禁期,并于之后有资格重新参与共识。在 Cosmos 上,监禁期目前是 2 天,之后验证者可以提交解除监禁的交易申请重新加入活动集,当然还有 chain-agonostic 等智能合约风险,我们将持续关注 Evmos 的发展。
3、链间跨链风险
现在,想象一下如果你将 100 ETH 转移到 Solana 上的跨链桥上以获得 100 Solana-WETH,当以太坊受到 51% 的攻击会发生什么。 攻击者将他们自己的一堆 ETH 存入换取 Solana-WETH,然后等 Solana 确认交易后立即在以太坊上回滚该交易。 Solana-WETH 合约现在不再是完全背书的,也许你的 100 Solana-WETH 现在只值 60 ETH。 即使有一个完美的基于 ZK-SNARK 的桥可以完全验证共识,它仍然容易受到像这样的 51% 攻击的盗窃。
因此,在以太坊上持有以太坊原生资产或在 Solana 上持有 Solana 原生资产总是比在 Solana 上持有以太坊原生资产或在以太坊上持有 Solana 原生资产更安全。 其中,“以太坊”不光指以太坊的 base 链,还指建立在以太坊上的 L2。 如果以太坊受到 51% 攻击后回滚,Arbitrum 和 Optimism 的资产也会恢复,因此,在 Arbitrum 和 Optimism 之间的 “cross-rollup” 应用在遭受 51% 攻击是有保障的。而如果以太坊没有受到 51% 攻击,也就没有办法分别对 Arbitrum 和 Optimism 进行 51% 攻击。 因此,在 Optimism 上持有 Arbitrum 发行的资产仍然是绝对安全的。
当资产跨链数多于两条时,问题会变得更糟糕。如果有 100 条链,链之间许多相互依赖的 dapp 会导致只要其中一条链发生 51% 攻击,会造成整个系统的链与链之间系统性的传染(contagion),威胁到整个生态系统的经济。 这就是为什么我认为生态间相互独立的空间应该与统治的空间保持一致 (例如,以太坊生态应用之间可以彼此紧密交互, Avax 生态应用之间也可以保持彼此交互,但以太坊应用 和 Avax 应用之间不应该产生交集)。
顺便说一句,这也是为什么 rollup 不应该去使用其他第三方作为数据层。 如果一个 rollup 将其数据存储在 Celestia 或 BCH 或其他任何链上但处理的是以太坊上的资产,一旦数据层受到 51% 攻击资产就完蛋了。 Celestia 上提供的 DAS(Data Availability Sampling,数据可用性采样)并不会帮助你抵抗 51% 攻击,因为以太坊根本就不读取 Celestia 提供的 DAS ,以太坊不会读取一个容易受到 51% 攻击桥上的任何数据。 因此,如果要为以太坊原生资产提供安全的 rollup ,必须使用以太坊作为数据层(对于任何其他生态的 rollup 也是如此,选择自己生态的 base 链作为数据层)。
我不觉得这些问题会马上出现,用 51% 的算力去攻击哪怕一条链也是困难且昂贵的。 然而,随着跨链桥和跨链应用的增多,发起攻击就会显得划算。 没有人会为了窃取 100 个 Solana 上的 WETH 而攻击以太坊(或者只是为了窃取 100 个以太坊上的 WSOL 攻击 Solana ),但如果桥上有 1000 万个 ETH 或 SOL,那么发起攻击的动机就会高得多,大型矿池联合发起攻击的概率也会高很多。 因此,跨链活动具有反网络效应:跨链应用和资产越少越安全,应用和资产越多越存在风险。
参考:
Evmos 1.0 :https://mp.weixin.qq.com/s/tRErOlH4Ls-nNntg22MLVQ