如何在ETH2.0上建立质押机制?
概览
让我惊讶的是,ETH2.0Phase0并没有设计委托ETH的系统,这与当前的主流PoS共识几乎是相违背的,后续各Phase的发展路线图中,也并没有看到对应的开发。单个节点参与者需要往Deposit合约中存入32个ETH来成为验证人,非节点运行方并不能在链上将ETH委托给验证人参与共识,这给开发者留下了一个需求。
市场上出现了诸多相关的解决方案,其中争议最大的无非是资产所属权问题(当然,托管方式的服务商无需考虑此问题)。ETH1.0和ETH2.0的设计区别于主流PoS公链,这让非托管方式的设计变得复杂。1.0上的合约有成熟的权限设计,但ETH的Staking系统建立在2.0上。在Phase2之前,2.0的智能合约功能将不会被启用,整个禁闭期长达2年之久,这让我们在设计ETH2.0的Staking 衍生品时遇到了挑战。
官方并没有公布原因,我个人的猜测是综合因素,有3点考虑:
1)32个ETH的成本在可接受范围,单人可运行
2)当前分Phase的计划不足以支持共识层面Delegate算法的复杂性
3)分片对于验证人数量有非常高的要求(为了去中心化)
关于32个ETH成本讨论已经非常广泛了,Vitalik在一篇博客中计算了验证人和共识的经济成本,虽然没有直接给出32ETH的结果,但基本成为了后续设计的一个重要参考。在更具体的技术文档中,除了沿用了Vitalik的计算逻辑之外,还给出了更详细的说明:
ETH2.0的经济模型审查给出了一个颇有参考意义的指标:以太坊网络中所有超过32个ETH的地址,有77.7%的总量不在交易所。这实际意味着以太坊去中心化的最大可能性。
如此多的ETH不在交易所意味着这些ETH可以用来运行独立验证人,单个节点32ETH的设计可以将77.7%的总量划分成多份,较大程度的保证去中心化。但PoS代币中有一个通病,就是大户占有的比例较高,我们并不知道77.7%ETH的地址分布,如果提供委托功能会有两个极端,1是让代币更加集中,2是让代币更加分散。经验告诉我们,结果会趋向于集中,这可能是不提供委托功能的一个主要因素。
但是反过来,代币集中并不意味着拥有者会使用能力,运行节点让拥有者考虑多方面成本,包括机会成本,时间成本,人力成本等,这些成本虽然在规模化后会降低,但这会给2.0的去中心化带来挑战。历史上有PoW转PoS的案例,Blackcoin的一星期PoW后转向PoS的案例告诉我们,一旦激励不足,那么节点流失将会非常严重。
当然,时代不同不可同日而语,但至少目前的设计来看,单人运行可行,但已经出现一些问题。
第二个原因是当前算法支持和安全问题。按照路线图的规划,Phase1.5 ETH1.0会被合并进入ETH2.0中,同时开启交易,特殊的设计让委托变得复杂。出于谨慎,跨链部分的交易被精简,只保留了deposit证明,验证人只需要存入32ETH然后离线提交证明到ETH2.0上,就可以参与2.0的共识,如果加入委托体系,无论是2.0的共识设计,还是1.0的合约设计,复杂度都会上升,考虑到一个到价值$660亿市值的项目要对资产进行再编程,安全的重要性可想而知。另外,退一步回来讲,2.0相对于1.0还是新产物,如果失败,1.0仍然能继续运行,这是一个权宜之计。
对于以太坊基金会来说,发动社区开发者参与可能更加明智,2.0合约功能开放之后,开发者可以利用合约来实现委托机制,相对于直接修改共识层,优势明显。2年的合约紧闭期,是一个可见的阻碍。
Phase1会上线分片,一共64个分片,安全需要随机的BP和128个Committees来确定。去中心化对于分片的安全意义重大,委托系统会大幅度削减验证人数量,这个数据可以查看目前支持委托的主流PoS公链,2020年各个项目的节点数,如Tezos400+,Cosmos100+,同样支持分片的Harmony有84个验证人。参考值与支持64个分片所需要的节点数相差甚远,这也可能是主要考虑的因素之一。
当然,32个ETH的划分是双刃剑,从当前Deposit合约的情况来看,以太坊强大的共识相对于其他公链来说,优势是明显的。
建立委托机制
Staking Derivative解决的问题是Delegated staked asset的流动性,如果2.0共识没有委托机制,建立针对验证人的Staking衍生品并不能解决所有问题,大部分持有者面临着不能参加共识而被稀释资产的风险,那么如何帮助持有者解决可参与性,并最大程度的降低锁定期风险和不确定性,成为了当前解决的问题。
StaFi尝试帮助ETH2.0设计一套委托逻辑来解决问题,实现ETH2.0的Staking衍生品。
准确来说,在Phase2.0之前,搭建ETH2.0的委托机制是具有挑战的。StaFi的委托逻辑在Phase2之前,会被部署在ETH1.0上,Phase2之后该合约会被迁移到2.0上。在这段过渡期里,1.0的委托合约为验证人和质押者之间建立联系,但受限于1.0和2.0的设计,一些可预见的问题是:
1)Withdrawkey的所属权
2)路线图和实现细节的不确定性
3)Ownership of Withdrawkey
4)Uncertainty in roadmap and implementation details
Withdrawkey是ETH2.0上资产的所属权凭证,开放转账后,Key涉及到一些列资产管理权限,包括奖励赎回,本金赎回等,那么掌控Key即掌握了资产的所属权。非托管的方式往往通过权限的设置来完成,但Withdrawkey生成后被写入ETH2.0中,在Phase2之前并不能修改,这导致了过渡期间Key是确权的,必须有实体来掌控Key。实体的设计,为了更好的安全性,只能通过一套验证人体系来分权,可以采用链上多签机制或者MPC分布式秘钥的管理方式,但无论哪种设计,都需要前置在Key的生成前,在提交验证人文件时,就需要完成。
StaFi独立链的设计能保证秘钥的管理,这是我们在Phase2之前的解决方案。而在之后,合约会整体迁移到ETH2.0上,实现更高程度的安全。这依赖于ETH2.0具体的赎回实现方案,由于现在并不清楚具体的方案,导致现在靠空想的设计是不现实的,所以rETH在StaFi的赎回策略也将在2.0上才开始展开,在这之前,我们会最大程度的维持Phase0阶段的staking逻辑。
rETH(ETH2.0的Staking衍生品)将基于以上的委托机制上被设计出来,分两阶段解决Staker的锁定期问题。标准化的rETH会留给DeFi协议很多创新空间,如Messari在《ETH 2.0: The Next Evolution of the Cryptoeconomy》的报告中阐述:
DETH(Deirvatived ETH) products could be further packaged into ETF-like index products, swap products that allow stakers to fix their yield and traders to speculate on yield, and other structured products (such as combining DETH with put options on the underlying token to create fixed income products).78 The design space is wide open in this respect and may even introduce unforeseen behaviors into staking.
同时StaFi也将为rETH建设应用场景,这个可以在我们公布的一系列合作可以看到。
风险
委托机制带来的风险主要是两方面的,1是机制不完善导致的偏差,2是验证人的不作为。
委托机制带来的风险主要是两方面的。1是ETH2.0设计机制不完善导致的偏差,2是验证人触发Slash的不当行为。
委托机制是以合约形式建立在ETH1.0上的,前期设计基于目前的ETH2.0设计,但因ETH2.0设计的不确定,部署的合约可能存在偏差,这些偏差包括预期功能不能实现,无法参与Staking,无法获得奖励等。这些偏差一旦发生,会产生较大的机会成本,最极端的情况是2年内 staked的ETH无法动用。
StaFi的安全设计基于本金,当偏差发生时,本金都是可以取回的。但是用户应该认知的另外一个风险是,委托Staking可能会接受到惩罚,甚至是Slash,这都有可能导致本金的损失。针对具体惩罚和Slash的设计我们会在接下来的文章中进行具体描述。
总结
32个ETH的设计带来了委托需求,在满足委托需求的道路上StaFi衍生出来的解决方案,能帮助用户很好的解决问题,但同时也有不同的风险。基于本金安全的设计逻辑可以最大程度的保护资产安全,整个周期会持续2年甚至更长时间,参与者应该知晓。