作者:Jiawei,IOSGVentures
引子
在当前的以太坊生态中,存在着许多的中间件。
左侧是应用端的视角。一些dApp的运行依赖于中间件:例如DeFi衍生品依赖于预言机喂价;例如资产的跨链转移依赖于跨链桥作为第三方中继。
右侧是模块化的视角。例如在Rollup排序中我们需要构建Sequencer网络;在链下数据可用性中我们有DAC或者PolygonAvail和Celestia的DA-PurposeLayer1。
这些大大小小的中间件独立于以太坊本身而存在,运行着验证者网络:即投入一些代币和硬件设施,为中间件提供服务。
我们对中间件的信任源于?EconomicSecurity,如果诚实工作可以得到回报,如果作恶则将导致质押代币的Slashing。这种信任的级别来源于质押资产的价值。
如果我们把以太坊生态中所有依赖EconomicSecurity的协议/中间件比作一个蛋糕,那么看起来会像是这样:资金根据质押网络的规模被切分成大大小小的部分。
然而,当前的EconomicSecurity仍然存在一些问题:
对于中间件。中间件的验证者需要投入资金以守护网络,这需要一定的边际成本。出于代币价值捕获的考虑,验证者往往被要求质押中间件原生代币,由于价格波动导致其风险敞口存在不确定性。
其次,中间件的安全性取决于质押代币的总体价值;如果代币暴跌,攻击网络的成本也随之降低,甚至可能引发潜在的安全事件。该问题在一些代币市值较为薄弱的协议上尤为明显。
对于dApp。举例而言,一些dApp不必依赖于中间件,而只需要信任以太坊;对于一些依赖中间件的dApp,实际上其安全同时依赖于以太坊和中间件的信任假设。
中间件的信任假设本质上来源于对分布式验证者网络的信任。而我们看到由于预言机错误喂价导致的资产损失事件不在少数。
加密安全公司Forta上线委托质押功能:金色财经报道,加密安全公司Forta宣布上线委托质押功能,允许所有FORT持有者都能因保护网络而获得奖励。
此前报道,去年6月,加密安全公司Forta推出原生代币FORT,旨在增加安全研究人员监控区块链网络的动力。[2023/2/28 12:34:38]
这样,进一步地带来木桶效应:
假设某个可组合性极高的DeFi应用A,相关牵扯的TVL达到数十亿级别,而预言机B的信任仅仅依赖于数亿级别的质押资产。那么一旦出现问题,由于协议间关联所带来的风险传导和嵌套,可能无限放大预言机所造成的损失;
假设某模块化区块链C,采用数据可用性方案D、执行层方案F等等,如果其中的某一部分出现行为不当/遭受攻击,波及范围将是C整条链本身,尽管系统其他部分并没有问题。
可见系统安全取决于其中的短板,而看似微不足道的短板可能引发系统性风险。
EigenLayer做了什么?
EigenLayer的想法并不复杂:
类似于共享安全,尝试把中间件的EconomicSecurity提升至等同于以太坊的级别。
这是通过「Restaking」来完成的。
Restaking即是把以太坊验证者网络的ETH敞口进行二次质押:
原先,验证者在以太坊网络上进行质押以获得收益,一旦作恶则将导致对其质押资产的Slash。同理,在进行Restaking之后能够获得在中间件网络上的质押收益,但如果作恶则被Slash原有的ETH质押品。
具体Restake的实施方法是:质押者可以把以太坊网络中提款地址设置为EigenLayer智能合约,也即赋予其Slashing的权力。
除直接Restake$ETH之外,EigenLayer提供了其他两种选项以扩展TotalAddressableMarket,即分别支持质押WETH/USDC的LPToken和stETH/USDC的LPToken。
Force DAO 代币增发漏洞简析:据慢雾区消息,DeFi 量化对冲基金 Force DAO 项目的 FORCE 代币被大量增发。经慢雾安全团队分析发现: 在用户进行 deposit 操纵时,Force DAO 会为用户铸造 xFORCE 代币,并通过 FORCE 代币合约的 transferFrom 函数将 FORCE 代币转入 ForceProfitSharing 合约中。但 FORCE 代币合约的 transferFrom 函数使用了 if-else 逻辑来检查用户的授权额度,当用户的授权额度不足时 transferFrom 函数返回 false,而 ForceProfitSharing 合约并未对其返回值进行检查。导致了 deposit 的逻辑正常执行,xFORCE 代币被顺利铸造给用户,但由于 transferFrom 函数执行失败 FORCE 代币并未被真正充值进 ForceProfitSharing 合约中。最终造成 FORCE 代币被非预期的大量铸造的问题。 此漏洞发生的主要原因在于 FORCE 代币的 transferFrom 函数使用了`假充值`写法,但外部合约在对其进行调用时并未严格的判断其返回值,最终导致这一惨剧的发生。慢雾安全团队建议在对接此类写法的代币时使用 require 对其返回值进行检查,以避免此问题的发生。[2021/4/4 19:45:30]
此外,为了延续中间件原生代币的价值捕获,中间件可以选择在引入EigenLayer的同时保持对其原生代币的质押要求,即EconomicsSecurity分别来源于其原生代币和以太坊,从而避免单代币的价格暴跌引发的「死亡螺旋」。
可行性
总体来看,对验证者来说,参与EigenLayer的Restaking有资本要求和硬件要求两点。
参与以太坊验证的资本要求是32ETH,在Restaking上保持不变,但在引入到新的中间件时会额外增加潜在的风险敞口,如Inactivity和Slashing。
MXC抹茶现已上线dForce(DF):官方公告,MXC抹茶已于6月20日14:00上线dForce(DF),并开放DF/USDT交易。现已开放DF充值,6月20日 13:30-6月23日 24:00,用户在MXC抹茶净充值不少于1500 DF,即有机会瓜分2000 MX。
据dForce官方资料显示,DF是dForce Network的应用型平台数字资产,主要用于手续费、社区治理和激励。详情请阅读相关公告。[2020/6/20]
而硬件设施方面,为了降低验证者的参与门槛,实现足够的去中心化,合并后以太坊验证者的硬件要求很低。稍好的家用电脑其实已经可以达到推荐配置。这时一些硬件要求其实是溢出的。类比于矿工在算力资源足够的时候同时挖多个币种,仅从硬件方面来说,Restaking相当于用溢出的这部分硬件Capability去为多个中间件提供支持。
听起来很像Cosmos的InterchainSecurity,仅此而已?实际上,EigenLayer对后合并时代以太坊生态的影响可能不止于此。本文我们选取EigenDA来做进一步阐述。
EigenDA
注:此处仅十分简略地介绍数据可用性、纠删码和KZG承诺。数据可用性层是模块化视角下的拆分,用于为Rollup提供数据可用性。纠删码和KZG承诺是数据可用性采样的组成部分。采用纠删码使得随机下载一部分数据即可验证所有的数据可用性,并在必要时重建所有数据。KZG承诺用于确保纠删码被正确编码。为避免偏离本文主旨,本节将省略一些细节、名词解释和前因后果,如对本节Context有疑问,可阅读IOSG此前的文章「合并在即:详解以太坊最新技术路线」以及「拆解数据可用层:模块化未来中被忽视的乐高积木」。
作为简单回顾,我们把当前的DA方案划分为链上和链下两部分。
链上部分,PureRollup是指单纯把DA放到链上的方案,即需要为每个字节恒定支付16gas,这将占到Rollup成本的80%-95%之多。在引入Danksharding之后,链上DA的成本将得到大幅降低。
动态 | 在线FortuneJack投票添加加密货币 TRX暂时领先:据cryptocoinspy消息,为了促进加密货币的采用,流行的在线FortuneJack推出了一项名为Coin Primaries的新活动,已经添加了Tron(TRX)、Verge(XVG)、ETC和EOS四个代币进行投票,获得最高票数的代币将可在平台上使用,目前Tron(TRX)处在领先地位。[2019/1/25]
在链下DA中,每种方案在安全性和开销上有一定的递进关系。
PureValidium是指仅把DA放在链下,而不做任何保证,链下数据托管服务商随时有关机下线的风险。而特定于Rollup中的方案包括StarkEx、zkPorter和ArbitrumNova,即由一小部分知名第三方组成DAC来保证DA。
EigenDA属于通用化的DA解决方案,与Celestia和PolygonAvail同属一类。但EigenDA和其余两者的解决思路又有一些差异。
作为对比,我们首先忽略EigenDA,来看Celestia的DA是如何工作的。
以Celestia的QuantumGravityBridge为例:
以太坊主链上的L2Contract像往常一样验证有效性证明或欺诈证明,区别在于DA由Celestia提供。Celestia链上没有智能合约、不对数据进行计算,只确保数据可用。
L2Operator把交易数据发布到Celestia主链,由Celestia的验证人对DAAttestation的MerkleRoot进行签名,并发送给以太坊主链上的DABridgeContract进行验证并存储。
这样实际上用DAAttestation的MerkleRoot代替证明了所有的DA,以太坊主链上的DABridgeContract只需要验证并存储这个MerkleRoot。对比将DA存储到链上而言,这样使得保证DA的开销得到了极大的降低,同时由Celestia链本身提供安全保证。
高性能支付比特币BPP(Bitcoin Payment Performance)元旦前完成分叉:高性能支付比特币BPP于区块高度501888完成分叉,确切时间是2017年12月31日晚8点30分。在区块高度501888前持有比特币的用户将获得BPP分叉币糖果奖励,国内外家加交易所将陆续开放BPP的提取与交易。[2018/1/1]
在Celestia链上发生了什么?首先,DataBlob通过P2P网络传播,并基于Tendermint共识对DataBlob达成一致性。每个Celestia全节点都必须下载整个DataBlob。
由于Celestia本身仍然作为Layer1,需要对DataBlob进行广播和共识,这样一来实际上对网络的全节点有着很高的要求,而实现的吞吐量却未必高。
而EigenLayer采用了不同的架构——不需要做共识,也不需要P2P网络。
如何实现?
首先,EigenDA的节点必须在EigenLayer合约中Restake他们的ETH敞口,参与到Restaking中。EigenDA节点是以太坊质押者的子集。
其次,数据可用性的需求方拿到DataBlob后,使用纠删码和KZG承诺对DataBlob进行编码,并把KZG承诺发布到EigenDA智能合约。
随后Disperser把编码后的KZG承诺分发给EigenDA节点。这些节点拿到KZG承诺后,与EigenDA智能合约上的KZG承诺进行比较,确认正确后即对Attestation进行签名。之后Disperser一一获取这些签名,生成聚合签名并发布到EigenDA智能合约,由智能合约进行签名的验证。
在这个工作流中,EigenDA节点仅仅对Attestation进行了签名,来声称自己对编码后的DataBlob进行了存储。而EigenDA智能合约仅仅对聚合签名的正确性进行验证。那么我们如何确保EigenDA节点真的对数据可用进行了存储呢?
EigenDA采用了?ProofofCustody的方法。即针对这样一种情况,有一些LazyValidator,他们不去做本应该做的工作。而是假装他们已经完成了工作并对结果进行签名。
ProofofCustody的做法类似于欺诈证明:如果出现LazyValidator,任何人可以提交证明给EigenDA智能合约,由智能合约进行验证,如验证通过即对LazyValidator进行Slashing。(更多有关ProofofCustody的细节可参考Dankrad的文章,此处不再展开。
小结
经过上述讨论和比较,我们可以看到:
Celestia的思路与传统的Layer1一致,做的其实是Everybody-talks-to-everybody和Everybody-sends-everyone-else-everything,而区别是Celestia的共识和广播是针对DataBlob来做的,即仅确保数据可用。
而EigenDA做的是Everybody-talks-to-disperser和Disperser-sends-each-node-a-unique-share,把数据可用性和共识进行了解耦。
EigenDA不需要做共识和参与P2P网络的原因是,它相当于搭了以太坊的「便车」:借助EigenDA部署在以太坊上的智能合约,Disperser发布Commitments和AggregatedAttestations、由智能合约验证聚合签名的过程都是在以太坊上发生的,由以太坊提供共识保证,因此不必受限于共识协议和P2P网络低吞吐量的瓶颈。
这体现为节点要求和吞吐量之间的差异。
在安全性方面,Celestia使用Tendermint作为其共识,这意味着如果控制了Celestia的2/3的代币,就有可能发生多数攻击。与此同时,Celestia对纠删码进行欺诈证明,且轻客户端同时做DAS。这需要至少一个诚实的全节点和足够多的轻客户端来做DAS。
而EigenDA的安全性本质上依赖于以太坊的验证者集,继承了以太坊的Slashing原语,为DA层提供了EconomicSecurity的保证。如果Restaking在EigenDA的质押者越多,则意味着更多的安全。而降低节点的要求也同样有助于增强去中心化程度。
需要注意,EigenDA是应用层DA,区别于Danksharding的协议层DA——Application-specific相较于General-purpose的优势在于Sovereign和Flexibility。这使得针对不同Rollup的数据可用性需求可以定制不同的方案。
DiscussiononEconomicSecurity
最后再回头聊聊EconomicSecurity。
我们假设大多数EconomicSecurity参与者是理性的,受到经济激励的驱动,并总是倾向于最大化自己的利润。这些参与者可能是中间件的验证者,他们提供硬件设施、质押中间件原生代币,并获得代币作为奖励。
理性的参与者会考虑投入与产出:如果把这些投入放到其他地方,是否可以获得更多收益?所以,中间件需要保证其代币的价格维持在一定的水平。如果代币激励足够大,那么自然会吸引更多的验证者加入,从而进一步提升网络的去中心化程度;如果无法维护代币价值,项目方可能不得不自掏腰包运行验证者集,随之则将导致中心化以及审查问题。
另外还有安全级别的考虑——中间件的安全性取决于质押代币的总体价值;如果代币暴跌,攻击网络的成本也随之降低。
综上两点,中间件需要不断提升其协议代币的价值以强化激励,从而确保EconomicSecurity足够稳固。除构建中间件服务本身之外,项目方需要额外付出大量的边际成本。
EigenLayer的Restaking则同时解决了上述两个问题:
关于投入产出,如果硬件设施的Capacity足够,验证者无需投入额外代币成本,而是将已有的ETH质押份额扩展到新的协议。
当然,这将扩大一部分风险敞口。如何衡量这部分风险,在具体实施细节披露之前我们无法下判断,但直观来说,只要验证者没有主观作恶的意愿,这部分风险是在可控范围内的,因为Inactivity的本质区别于Slashing:Inactivity可能是意外下线或因为网络原因错过投票所导致的,而Slashing的原因则是恶意行为,后者将导致被移除验证者网络并失去ETH。
关于安全级别,具体将取决于EigenLayer本身以及针对特定中间件的采用率。目前以太坊网络共质押了14,836,535枚?ETH,以市场现价计算,假设只有1%的ETH参与到某个中间件的Restaking中,能够产生接近2亿美金的资产保护。此外,在去中心化程度方面,以太坊的验证者集亦是加密生态中最去中心化的群体。
ClosingThoughts
由于EigenLayer仍在早期阶段,我们缺少关于具体实施的材料,本文内容更多为逻辑面的梳理。对于一些技术细节仍待进一步探究和讨论。
但我们已经看到EigenLayer提出的HyperscalingEthereum的创新所在,在EigenLayer之上会有非常多有趣的话题值得探讨。如果您仔细阅读本文并理解了EigenLayer的Vision和Positioning,大概会感到与我们同样兴奋。
IOSG始终关注并积极拥抱以太坊生态,将持续跟进EigenLayer为以太坊未来格局带来的潜在改变及其投资机会。
PayattentiontoEigenLayer:)
请注意:本文部分idea来源于与EigenLayer团队的社区讨论
References
https://messari.io/report/eigenlayer-to-stake-and-re-stake-again
https://twitter.com/SalomonCrypto/status/1572094840619532288
https://twitter.com/\_nishil\_/status/1573018197829115905
https://twitter.com/MeirBank/status/1589013673385000960
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。