atom_crypto

Posted on Jul 14, 2022Read on Mirror.xyz

Evmos 的技术亮点, 机制设计原理以及 Tendermint 核心特色

总览

Evmos 是 Cosmos 生态搭建在 Tendermint POS 机制上的 EVM 兼容应用链。它通过 IBC 协议实现完全可互操作性,同时通过引入 Cosmos SDK 以及 TendermintCore 共识,Evmos 提供了快速确认以及高吞吐量的特性,这意味着以太坊的开发者可以相同的开发环境(EVM 兼容)和工具下,实现更低的交易手续费和更快的交易速度。

同时 Evmos 上机制原理的设计(经济学分叉理论)在开发者,用户以及验证者之间实现了长期的经济激励绑定。如果是 EVM 实现了可编程性以及可组合性,Cosmos 实现了主权性以及互操作性,那么 Evmos 可以理解为结合了两者的优点,即可编程性的可互操作性。而 IBC 协议让开发应用可以进一步享有 Cosmos 生态  的 18 亿美金的流动性(最高 170 亿美金, 很大一部分来自于 Terra 生态)以及各种应用场景,包括 Osmosis, Cronos, Secret Network, Injective 等。

而对于用户来说,用户也可以在 Cosmos 上使用以太坊上的产品,比如 AAVE, Diffusion Finance 等 Defi 产品,NFT,游戏等其他 Web3.0 产品。关于 Evmos 的 1.0 介绍,请看我们之前的文章下一个 Cosmos Hub,EVM 枢纽 Evmos,而这篇文章我们将进一步挖掘 Evmos 的特质,将在技术亮点,Tendermint 机制,节点参与,经济激励等方面展开讨论。

Evmos vs Ethereum

在以太坊中,当区块排队等待被生产时,会生成待处理的块(pending blocks)。而矿工根据接受最高的燃料费原则,在这些待处理的区块中挑选出待处理交易。而这个机制本质上是因为区块确定(determinstic finality) 无法在以太坊上实现,而区块是通过概率确定性的形式提交(probabilitic finallity),因此随着时间的流逝,区块和交易无法还原。

Evmos 中,由于采用了 Tendermint Core 的 BFT 共识机制,没有待处理状态的概念,对于提交的交易可以实现快速确认。所以 Ethermint 链(Evmos 上可以搭建的应用链)无需状态限制,Cosmos 链目前平均区块时间为 8 秒。而这个会导致以太坊 Web3 兼容的查询问题,这些查询会进入待定状态。另一个区别是在以太坊中,区块由区块验证者生成,他们gas拍卖的方式将在本地内存池中的交易包含在区块中,而 Evmos 上的交易无法从 Tendermint 节点的内存池中排序或者挑选(直接选好了)。而 Tendermint 在 0.35 版以前是用 FIFO 来挑选 mempool 中的 tx 进区块,因此没有抢跑以及三明治攻击等问题;0.35b 版本之后增加了一个 tx priority,让特定的 tx 可以优选被选上,因此投票权重较高的节点会更频繁地提议区块, 因此也会产生相应的 MEV 问题。

那么 Evmos 是如何进行待定状态查询的呢?Evmos 将进行查询,以解释节点交易内存池中存在的任何未确认交易。进行的等待状态查询将可以自主选择查询将在目标节点的内存池上进行。因此,对于两个不同节点的相同查询,等待状态将不同。这个对于所有 tendermint 的 Cosmos 链的节点都是如此, 因此和 Eth 的 global mempool 完全不一样。这意味着每个节点看到的 TX 顺序都是依据 P2P gossip 收到的顺序显示, 因此一个处于亚洲的 node 看到的 tx 和顺序会和美国的一个完全不一样。一个 broadcast 于亚洲的 tx 会在至少 300ms 后才会通过 p2p gossip 千里幺幺的传到美国的 node。每个节点接受信息不一样,根据时间差异,根据不同的地理位置会产生带宽延迟问题。

Evmos 的技术亮点

Tendermint 主要包含共识引擎,也就是我们常说的 Tendermint Core, 确保了同样的交易在每个机器上都按照同样的顺序进行存储,以及通用应用接口(ABCI) 确保交易可以通过任何语言被处理。Tendermint 是一个可插拔的共识引擎,而 Evmos 则可以理解为将以太坊的 POW 机制换成了 Tendermint 共识引擎的 ABCI 应用。关于共识引擎和 ABCI 的详细定义,我们在上篇文章 Cosmos 技术原理,设计框架以及生态全览也有介绍。

Evmos 的节点目前有 150 个,按照质押 Evmos 数量(包括节点自行质押以及质押者委托数量总和)进行排序的。Thanks to the Tendermint,验证节点被选择提议出块的随机概率是由其质押数量占据全网节点质押占比决定的,比如节点 1 上质押了 100 个 EVMOS,而全网全部节点质押的数量为 2000 个 EVMOS,那么节点 1 被选为提议出块的时间概率则为 100/2000=5%。

另外在 Tendermint 机制下,区块需要获得至少针对之前区块的 2/3 的预选承诺(节点签名)才能被提议。同时,验提议区块获得 proposer 奖励会根据预选承诺的比例(66%-100%)相应设定为 1%-5% 不等。所以对于节点来说,他们可以通过确保足够的时间让足够多的人参与签名的方式最大化收益,同时也需要保证不会错过下个区块的提议。这里需要了解在 Tendermint 中,节点若是在高度 T 提议区块的情况下, 要在 T+1 才会收到区块提议奖励,这点 mintscan / bigdipper 看不到。

Cosmos 中,Tendermint 机制确保了任何基于其上搭建的链都享有 PBFT(约为 DPOS) 的设计。对于质押者来说,没有最小质押数量限制。对于 Cosmos 上应用链的统一治理问题感兴趣的童鞋,可以看我们的文章 Cosmos Thessis- Osmosis 应用主权链的崛起中的治理问题,委托者可以将代币和投票权委托给验证者节点,验证者投票占比是根据全网质押给其代币占所有质押代币的比例所决定的。当验证者的投票结果和委托不一致时,委托者可以覆盖其投票结果,自行进行投票,这也比较类似我们通常所称的流动性民主机制。如果你要提案,那么你需要先支付押金,这个押金可以以众筹的形式募集,一旦达到门槛,这个治理就激活了,验证者和质押者都可以投票。不同的节点根据获得的奖励向质押者收取一定的手续费用(全网最低 5%)。而节点在初始注册时,需要设置初始费率,最高日费率变化,最高费率等参数。这些参数后续只可以向下调整。

ERC20 机制

为了实现让智能合约,ERC-20 资产与 Cosmos 原生资产的跨链互通,团队开发了 ERC-20 模块,之前这个问题必须通过桥等者中心化的解决方案实现,而 ERC20 模块允许 Evmos 将原生 CosmosSDK 资产与 ERC20 资产实现快速转化,并且保证在发行环境/运行时(EVM 或 Cosmos)上保留与原始资产的可替代性,并保留 ERC-20 合约的所有权。此转换功能由管理原生资产对注册的 $EVMOS 代币持有者管理;此治理功能是使用 Cosmos-SDK gov 模块实现的,所以 ERC20 机制下,用户可以在 EVM 链上使用 Cosmos 原生资产 (OSMO, ATOM) ,同时,ERC20 资产可以进入到 Cosmos 生态 (AAVE, Compound) 使用。

同时对于开发者而言,可以将基于 ERC20 智能合约开发的应用迁移到 Cosmos 生态。比如最近 Swiss staking 提出的 Proposal 35, 将 OSMO 代币注册为 ERC20 代币,Evmos 上部署 OSMO 代币的 ERC20 代币合约本质上是创建一个合成的原生 OSMO。这个新功能可以将 OSMO 和/或 ATOM 应用在 Aave,DifussionFi Dex 这样的协议中。另一种就是实现了 Evmos 上 Evmos 原生资产与合成资产间的交易和兑换。这个新模块将允许在 DeFi 协议、NFT 市场和基于 ERC20 标准的新应用程序中使用这些合成代币。

经济机制设置原理

通常,大部分 L1 上将网络价值都给到了矿工以及质押节点,而用户和开发者并没有获得最大化激励。而 Evmos 试图通过合理的机制设置解决这个问题。相较于 EIP1559 中,费用(包含基础费用和小费)中的基础费用(这里的基础费用是浮动的,受到网络的活动以及燃料价格市场的影响)被销毁,在 Evmos 中,销毁的基础费用被用于奖励开发者和矿工/验证节点 (50/50), 这个参数可以通过治理进行修改。小费还是和 EIP1559 中一样,给到验证节点,这个模型他们称为 dApp store。相较于传统苹果商店的分润模式(一部分给到开发者,一部分给到苹果运营商),而 Evmos 的网络强调活性 (ongoing),这意味着网络运营商(节点)可以实时为应用提供基础设施服务。

当然 permissioned chain 的特质,所有其上搭建的应用需要通过治理。而对于用户而言,主要以燃料费用补贴以及流动性激励等形式从用户激励池中调用资金。

为了激励 Evmos 上的使用,社区可以通过治理为特定的智能合约注册激励,并且在一定的区块时间内使用用户激励池。目前网络增发的 25% 给到流动性的激励池(每个 epoch1 周)。通过向用户分配燃料补贴(少于收入),激励用户更多使用 Evmos 上的产品。

注意这个本质上和用燃料费用激励开发者的逻辑是一样的,将 EVMOS 更多用于激励生态参与者,反哺生态。同时什么项目可以为用户争取到相应的补贴取决于社区的治理投票,并且代币持有者最有能力推动网络对这些 dApp 的使用, 这本质上还是增加了 EVMOS 的使用场景。这种形式被称为治理型 “The quality of servie (QoS) 协议。

而对于流动性激励而言,合约也是通过治理控制的,代币持有人可以决定 Evmos 上的什么应用可以获得流动性激励,可以是 DEX LP 仓位(Sushishwap LP 仓位),货币市场 IOU(AAVE aToken) 或者其他流动性 IOU(Connext 流动性)等。当然比例参数(25%)也可以通过治理调整。

IBC 中继服务补贴

中继者是一项吃力不讨好的工作,因为他们目前只有支出,没有收入。而在 Evmos 中,IBC 交易,特别是 UpdateClient 和 IBC 转账将获得至少 50% 的补贴。当然对于 Cosmos Hub 中,早已经有相关的提案 ICS-29,用于补贴中继器的费用,正式上线应该还需要 2-3 个月时间。中继节点主要负责将数据包在不同的链间进行传递。但是对于想要和其他每个 IBC 链相互连接的链来说这个成本很高。目前在 Relayer 领域,stragngelove,cro-nest, 还有 notioanlDAO 占有市场的大部分份额,跑了 30 多个节点,对于新加入的节点追赶难度会比较大,需要较多的硬件资源,机房, data center 和硬件。

我们认为 Cosmos 上最值得学习的是 Relayer 的 Aultuistic Behavior (利他行为),这也是 Cosmos 生态系统得以构建最去中心化、运行良好的链集的原因。

验证者和委托者对于维护 Evmos 区块链的安全性以及帮助区块提议和验证至关重要。验证者还可以提供很多其他服务,包括提供预言机、安全的桥梁服务、为 Celestia 的 Rollups 或其他 Evmo 子链提供服务。在创世时,将有 150 个活跃的验证者,这取决于委托给每个验证者的数量。验证者数量可以通过治理投票进行调整。并且这些创世节点也可能随时会被淘汰(根据锁仓量)。

目前 Osmosis 上大部分 90% 的节点都是之后加入的非创世节点。在 Evmos 的模型中,40% 的新发行代币将根据所质押的 Evmos 代币数量按比例奖励活跃的验证者及其委托人。验证人向其委托人收取质押奖励的佣金。每个验证者都可以选择自己的佣金率,但全网规定的最低佣金率为 5%(Osmosis 也是 5%,但是像 Cronos 是没有规定的,所以很多新节点通过零费率的方式吸引 TVL)。

战略储备和社区池

这部分会通过 Grants 计划给到一些生态建设者。并且对于活跃度高的节点拿出部分资金进行委托支持。Osmosis 之前就是讨论通过类似的提案给,拿出部储备资金通过委托质押的形式支持新的节点(虽然没有足够 TVL,但是非常活跃,给社区带来很多价值的,比如提供中继服务、构建浏览器、维护开源工具、部署显示网络整体市场增长的 Dashboard、内容和用户教育等),不过目前社区的反馈并不积极。提案是否能够真正落地还很难说。当然战略合作伙伴的资金也是从储备池中筹款(有锁定期,这个也类似于 Osmosis, 比如 Cosmos 支付给 Cosmwasm 的费用 OSMO 需要锁定)。而社区池资金也是由治理控制,主要用于引导重要的工具(比如隐私功能,比如验证节点使用的监测工具等)、基础设施、教育内容和其他资源,同时也可用于追溯公共产品资金(Optimism 的 Two House Token Model)。

潜在风险与挑战

验证节点分布过于中心化:目前现在头部集中,前 10 个节点占据全网超过 50% 的质押量,属于头重脚轻的局势。很多社区看空者甚至认为 Evmos 会在这个熊市中死掉

对于验证节点来说,主要有以下风险以及我们的解决方案

双签:在相同的区块高度对两个区块进行签名会导致对 Evmo 的惩罚,尽管双签的惩罚性参数尚未定义。1)所有验证节点和 Sentries 都有 double_check_height=1 作为预防手段;2)验证者节点启用了 PEX,但没有广告地址。我们选择不使用公共 + 私有 VPC 架构,因此验证器仍然可以在灾难性故障时回退到它自己的对等节点。3)验证者私钥的手动验证,以防止双重签名。标准程序是在启动/停止操作时手动检查所有节点的验证器密钥 JSON。

停机时间:验证者丢失前 10,000 个区块中的 95% 以上将导致 0.01% 的罚没。不可用:验证者离线一定数量的块将导致罚没,如果验证者超过了错过块的上限,它将从活跃节集中移除,尽管尚未定义不可用的参数。停机和不可用可以通过 监控/警报等方式, 及早确认问题来源并且将节点私钥转移到备份机器。

安全性差导致恶意行为:如果验证者是分布式拒绝服务 (DDoS) 攻击的受害者,如果其私钥被泄露,或者如果其其他不良行为同样是无意的,则验证者的质押仍可能会被削减——强调选择安全、高可用性的参与式基础设施的重要性。可以在 OS 上进行 hardening 解决。

当然 Evmos 会采用 Cosmos 的监禁参数,这意味着在被削减后的验证者会自动进入监禁期,并于之后有资格重新参与共识。在 Cosmos 上,监禁期目前是 2 天,之后验证者可以提交解除监禁的交易申请重新加入活动集,当然还有 chain-agonostic 等智能合约风险,我们将持续关注 Evmos 的发展。

Reference

Guide to Evmos

The Evmos Token Model

Evmos Documentation

Evmos