从Staking聊起,4种掌控以太坊网络的方式作者:Todd,Ebunker 合伙人

今天借着Kraken暂停 Staking 这个新闻,想做一个 Staking 的科普&分析:

-本质上,Staking 最重要的就是看 2 把私钥的归属权

-由于 2 把私钥的归属权不同,又诞生了 4 类 Staking 方案

我相信有这篇超长 thread,你对于Lido,Rocket,Coinbase,Kraken,SSV 以及 Ebunker 能有一个更深的理解。

如果把以太坊看作是一家公司的话,负责 Staking 的验证者(Validator)就是员工。它的工作就是验证交易的合法性,然后打包区块上链(虽然构建区块这活儿,如今也已经慢慢外包给MEV服务商了)。

首先,作为验证者,你需要证明你的员工身份,毕竟不是谁都可以来随便验证。交了 32 ETH 押金后,你需要持证上岗(即:【验证 key】)。

理论上,做 Staking 的第一步,就是创建一个验证 key。随后,你拿着你的验证 key,也就是你的工作证,才能给每一个交易盖戳。

第二,以太坊贴心地设计出了第二把私钥,用于接收刚刚提到的押金(32 ETH)。

当你去做验证者时,你会要填一个“提现地址”。它是未来你提取本金和工资的地址,而那个地址的私钥理论上应当在你的手里(即:【提现 key】)。

我打个比方,这是你的工资卡。

这样 2 把私钥:①验证 key(工作证)、②提现 key(工资卡)的用途,我想大家都明白了。

接下来,根据 2 把私钥的不同归属,才诞生了四种 Staking 解决方案:

  • -CEX 类

  • -大池子类(Pooled Staking)

  • -SaaS 类(Staking as a Service)

  • -Solo 类

从Staking聊起,4种掌控以太坊网络的方式

方案一、CEX 类/全托管

如果你使用交易所 Staking 方案,例如 Binance,Coinbase 或者今天刚宣布停止 Staking 服务的 Kraken。你会发现,你根本没有创建过【验证 key】,也没有填过【提现 key】,那这种就是标准的“全托管”。

那这两把钥匙分别在哪呢?

-验证 key 在 Binance Pool 或者 Coinbase Pool

-提现 key 则在 Binance 和 CB 的冷钱包

你根本不用上班(参与验证),工资卡也给了交易所帮你保管。这种方案是最省心的,而且有保底。

但是不适用于对去中心化有追求的人,毕竟 FUD 三天两头有,而且现在看美国甚至不允许你这样搞。

方案二、大池类 Staking(Pooled Staking)

这就是 Lido 和 Rocket Pool 的 Staking 方案。你仍然不用创建两把 Keys,由 Lido 和 Rocket 管理,那它和交易所的区别在哪呢?

先聊聊验证 key:

交易所:显然,它旗下就 1 家运营,即它自己。

Lido:Lido 1.0 旗下有 29 家专业运营商,Lido 把 ETH 都委由他们管理,所以验证 key 是相对分散的, 29 家运营商各拿一部分。等于说 Lido 是个集团,旗下有强力打工天团 29 人,你自己不用打工,让打工天团专业人士帮你上班。所以,运营商抽 5% 分成,Lido 再抽 5% 。

Rocket Pool:Rocket Pool 旗下可以有无数家运营商,任何人带着机器/云服务器+ 16 个 ETH 都可以来当运营商。等于说 Rocket Pool 是众包平台,旗下一堆美团骑手,自带电动车(机器/云服务器)和机房,帮你跑节点。

理所当然,他们也要抽成。

再聊聊提现 key:

这里有必要再补充一个原理:Staking 提现到底是个什么流程?

我之前的帖子又简单介绍过上海升级以及提现,传送门→

https://twitter.com/0x_Todd/status/1619950421124206593 

众所周知,以太坊是两条链: 以太坊 1.0 (执行层) Beacon Chain(共识层)。 当你去 Stake 时,第一步是把 ETH 汇款到以太坊 1.0 Beacon 金库地址(https://etherscan.io/address/0x 00000000219 ab 540356 cbb 839 cbe 0530 3d 7705 fa…)锁仓,然后 Beacon Chain 给你在共识层生成对应的 eth。

注意这些 ETH 是锁住,而非在 1.0 上销毁,或者是跨链到 beacon chain 上,它只是被锁住-映射而已。

从Staking聊起,4种掌控以太坊网络的方式

而上海升级后,提现将是一种新的交易类型。当你提现时:

1.你的节点通知 Beacon Chain,发出提现信号

2.排队

3.排队到你后,Beacon Chain 通知以太坊 1.0 的金库

4.以太坊 1.0 的金库地址给你指定的地址汇款,比如0x Todd.eth

所以,所谓我的【提现 key】,本质上是0x Todd.eth 这个地址的私钥。

而 Lido & Rocket 的提现 key,是帮你又多包了 3 层:

1.你通知 Lido\RPL,我要提现

2.Lido\RPL 通知运营商,某某节点要提现

3.运营商通知 Beacon Chain,某某节点要提现

4.排队

5.Beacon Chain 通知以太坊 1.0 金库

6.以太坊 1.0 的金库地址给 Lido\RPL 提现金库汇款

7.你销毁了 stETH\rETH,Lido\RPL 智能合约给你的地址汇款。

PS:如果换成交易所,第 7 步就是CZ\阿姆斯特朗给你的 Binance\Coinbase 中心账户直接加余额。

对于大池子类方案,

第 1、 4、 5、 6、 7 步都无懈可击✅,是纯粹链上操作。

而薄弱环节在第 2、 3 步⚠️。

理论上,大池子类方案可以拒绝你的提现,比如你因为使用龙卷风被美国 OAFC 制裁了,那么第 2、 3 步不给你传信就能做到。

我为什么叫它“大池子”方案,因为它所有节点的提现地址,填的都是同一个地址,即 Lido\RPL 的提现金库智能合约地址。

当然,对于 CEX 而言,它们仍然有较大的进步。

但是由于第 2、 3 步的操作空间的存在,也让这类方案成为了一个很接近“全托管”的方案。毕竟,提现 key 理论上仍然为大池子所有,你手中持有的只是“提现地址”的“提现地址”。

所以,对于不掌握最终资金去向的方案,我都倾向于划归“全托管”。

部分 Rocket Pool 支持者经常声称它是完全去中心化的,这个广告语深入人心。

但是当你看完此 thread,你会知道,它是在验证 key 部分,做到了去中心化,任何人都可以当验证者(Lido V2也正在努力实现)。

而在提现 key 这个部分,作为用户,仍然无法参与,你的资产仍然静静地躺在第三方的钱包当中。

当然,Lido,Rocket 相比交易所来说,仅多操作一两步,却更加去中心化,仍是不错的折中方案。尤其是 Lido,stETH 流动性非常赞(目前远超其他所有LSD方案),是重要加分项。

方案三、SaaS(Staking as a Service)类/小池子类

到了第三步,Staking 就更加原教旨主义了。我个人是有一定的去中心化洁癖的,尤其是经历了一系列 CEX 暴雷后。

刚才做了比喻,验证 key 是工作证;提现 key 是工资卡。

那么,人们天然就会想,有没有一种方案,就让别人替我打工,同时我自己领工资呢?

现实生活没有这种美事儿,但以太坊网络有,就是 SaaS 或叫 VaaS(Validator as a Service)。我们以非托管矿池 @ebunker_eth 为例。

我们首先要做的,是把验证 key 做成 keystore 给到 Ebunker Pool。接下来,由专业矿池来维护这个节点的出块。同时,提现地址填我自己的,即我掌握最终以太坊的提现权。

总结下:

【验证 key】,我和矿池各一份;

【提现 key】,只有我有。

即:矿池打工/我拿钱/矿池拿抽成。

这个方案和大池子类有什么区别呢?区别在:

Pooled 类,提现地址是统一的(即 Lido\RPL 金库),所以它是“大池子”。

SaaS 类,提现地址是每个人都填自己的,所以它是“小池子”。

PS:大池子,小池子的说法是我起的,我觉得这个很形象,便于理解。

那你可能会问,那像 SaaS 类,如果矿池不帮你去 Beacon chain 广播,你还是无法提现啊?

关键来了,因为你手里有你的【验证 key】,如果最差情况发生,例如矿池 rug 了,你还可以亲自去跑这个节点,亲自广播。

同时,你手里还有【提现 key】,所以你可以亲自提现,完好无损取回本金。

而在大池子类方案里,最坏情况发生后,你是没有这个能力的,因为你既没有验证 key 也没有提现 key。

那你可能会问第二个问题,SaaS 方案中,小池子矿池能否做到卷我钱跑路? 这是以太坊 Staking 设计的精巧之处,因为你在创建节点时,会填入自己的提现地址,矿池无法篡改它。所以,即便矿池 rug 了,你的本金绝对无法被矿池拿走,因为偷走它的难度≈攻击以太坊本身。

而在大池子方案里,最坏情况发生后,理论上它可以携款跑路。很简单,它只要升级它的金库合约,将它的 ownership 转移给攻击者。当然这是最坏情形,发生的概率很小。

为了反制这一点,Lido 引入了多签来管理智能合约升级;而 Rocker Pool 似乎对此事讳莫如深,暂时没有找到它讨论合约升级的相关内容。

所以,对于不想打工(毕竟 7* 24 运维节点不是个轻松活),又有安全性要求(不给第三方管理资金),选择 SaaS 服务是个不错的选择。除了@ebunker_eth 之外,还有一些矿池提供类似的“非托管”服务,可以到 Rated 上查询。

当然,缺点也有,所有的非托管 SaaS 类,均没有 LSD 方案。道理也很浅显,人家不掌握你的私钥,怎么敢给你发存折(LSD)?当然,有些 SaaS 矿池也会提供大池子方案,大池子方案就可以给 LSD。

再用精简的话说:谁掌握私钥决定了是否可以 LSD。CEX、大池子方案都可以,小池子,Solo 都不行。

上海升级后,以太坊提现最久 1 – 2 个月,SaaS 类小池子方案,流动性也得到了一定的保障,所以,这也是我个人最喜欢的方案,省心/稍费事/不把私钥给别人/APR 不错。

方案四、Solo 类

最后,给大家介绍一下最终的圣杯,Solo Staking。

Solo 顾名思义,自己玩,不引入任何第三方,去中心化和安全性拉到满星的方案。

Solo 矿工,自己独自占有验证 key 和提现 key。优点显而易见,安全、没人抽成,给以太坊增加多样性,而且…满足精神世界的需求!

缺点也显而易见:自己亲自打工,需要成本:时间成本(维护它),资金成本(租赁服务器/搭建物理机房)。若不 24 小时维护,你的 APR 会略低一些,因为有惩罚。

例如,目前全网出块有效率为 97% ,Vitalik可能就是一个 Solo 矿工,专业如他,也只能做到 96% 有效率,Rocket Pool 更低,它是众包的,有效率只有 95% 。

从Staking聊起,4种掌控以太坊网络的方式

Solo 的门槛我觉得至少是 10 K 以太坊,也就是 30 组节点以上,一方面是考虑才能出块的稳定性(抢不到 MEV 的区块,也是很难受的)。一方面是收入打不平成本。

但是,如果你的以太足够多,甚至超过 30 K, 50 K,那你可以考虑雇点人来跑,毕竟付工资要比被大池子/小池子按百分比抽佣便宜,肯定要盈余更多。

而且,Solo 是永恒的圣杯。如果数量足够大,我是强烈建议研究一下 Solo。数量低于 100 K,建议重温一下第 2 类和第 3 类。

另外,插入一个支线。

SSV 是干嘛用的?SSV 其实是 DVT 这门技术的研究者,它暂时和上述四类方案不是竞争对手,而是合作关系。DTV 是用于拆分验证 key 的。

当你的验证 key 被拆成 4 份之后,妙处在于:

① 一个运营商掉线,那其他运营商可以立刻补上;

② 同时每个运营商都不清楚完整的验证 key,这个让验证这个环节更去中心化,它可以让 Lido 类、SaaS 类和 Solo 方案变得更强。

终于写完了这篇!虽然很长,希望这篇分析能帮大家彻底捋清所有 Staking 方案之间的关系和异同。欢迎大家 mark,随时复习。有任何很关于以太坊 or Staking 任何问题,欢迎推特 DM 私信作者@0x_todd。

最后的最后!欢迎大家一起来当验证者!为以太坊网络安全做出你的贡献。

Ebunker 官网:https://www.ebunker.io
更多讨论请加入:https://discord.gg/nuvw 6 hmvnK
Ebunker Twitter:https://twitter.com/ebunker_eth