零点课堂 | Eth2 验证者如何生成和保护取款密钥?(1)

取款密钥是什么?

取款密钥(withdrawal key)是以太坊 2.0 中的验证者用来提现以太币的密钥 [1]。

以太坊 2.0 的密钥与以太坊 1.0 的密钥在生成和使用方式上大致相同,但二者并不兼容,也就是说,在以太坊 1.0 上生成的密钥不能在以太坊 2.0 上使用。

以太坊 2.0 中的密钥总是以公钥与私钥的形式成对出现。取款密钥由 权益人(staker) 自己持有,因为他们是资金的提供者,当然也想保有撤资的权利。

取款密钥是用来干什么的?

在以太坊 2.0 中,取款密钥的信息主要用于以下两种情况:在以太坊 1.0 中创建押金存入交易;在以太坊 2.0 中提现以太币。

当用户在以太坊 1.0 上存入押金时,取款公钥的作用是使该笔押金与取款私钥关联起来。这就是为什么以太坊 2.0 能通过取款公钥知道谁有权提款(与该取款公钥对应的取款私钥才有权提取该笔保证金)。取款公钥还用于将数据整合到以太坊的押金存入交易中,如下图所示:

- 图一:在存款流程中使用取款公钥(预知详情,请参见这篇文章)(编者注:见文末超链接《验证者的生命流程》)-

要注意的一点是,每个押金要约(deposit agreement)中都要用到取款公钥 [2]。

在以太坊 2.0 上提现以太币的操作细节还未确定,但无论将来采取怎么样的方式,都需要提款私钥来签名授权。

- 图二:提现操作框架 -

在上图的示例中,权益人使用提款私钥对提现操作的细节进行签名。然后,以太坊 2.0 网络就可以比较提款操作中的签名授权与存款协议中的提款身份标识(withdrawal identification)(如图一所示)。如果两者匹配,提款操作就能进行下去。

直到可以使用提款功能之前,我们都无需用到提款私钥。提款功能可能要等存入押金后一年以上才可以使用。即使功能可用后,也不一定要使用。对于那些想要长期获得奖励的权益人来说,能否提款对他们的日常操作几乎没有影响。

这就意味着,我们应该保护好自己的提款私钥,短期内不需要使用它,即使从长期来看也只需要偶尔使用它。也就是说,在平衡密钥的安全性和可用性时,安全性应该是我们更看重的。

本文由 零点财经 作者:tao 发表,其版权均为 零点财经 所有,文章内容系作者个人观点,不代表 零点财经 对观点赞同或支持。如需转载,请注明文章来源。
分享生成图片
42

发表回复

零点课堂 | Eth2 验证者如何生成和保护取款密钥?(1)

2021-06-08 10:17:46

取款密钥是什么?

取款密钥(withdrawal key)是以太坊 2.0 中的验证者用来提现以太币的密钥 [1]。

以太坊 2.0 的密钥与以太坊 1.0 的密钥在生成和使用方式上大致相同,但二者并不兼容,也就是说,在以太坊 1.0 上生成的密钥不能在以太坊 2.0 上使用。

以太坊 2.0 中的密钥总是以公钥与私钥的形式成对出现。取款密钥由 权益人(staker) 自己持有,因为他们是资金的提供者,当然也想保有撤资的权利。

取款密钥是用来干什么的?

在以太坊 2.0 中,取款密钥的信息主要用于以下两种情况:在以太坊 1.0 中创建押金存入交易;在以太坊 2.0 中提现以太币。

当用户在以太坊 1.0 上存入押金时,取款公钥的作用是使该笔押金与取款私钥关联起来。这就是为什么以太坊 2.0 能通过取款公钥知道谁有权提款(与该取款公钥对应的取款私钥才有权提取该笔保证金)。取款公钥还用于将数据整合到以太坊的押金存入交易中,如下图所示:

- 图一:在存款流程中使用取款公钥(预知详情,请参见这篇文章)(编者注:见文末超链接《验证者的生命流程》)-

要注意的一点是,每个押金要约(deposit agreement)中都要用到取款公钥 [2]。

在以太坊 2.0 上提现以太币的操作细节还未确定,但无论将来采取怎么样的方式,都需要提款私钥来签名授权。

- 图二:提现操作框架 -

在上图的示例中,权益人使用提款私钥对提现操作的细节进行签名。然后,以太坊 2.0 网络就可以比较提款操作中的签名授权与存款协议中的提款身份标识(withdrawal identification)(如图一所示)。如果两者匹配,提款操作就能进行下去。

直到可以使用提款功能之前,我们都无需用到提款私钥。提款功能可能要等存入押金后一年以上才可以使用。即使功能可用后,也不一定要使用。对于那些想要长期获得奖励的权益人来说,能否提款对他们的日常操作几乎没有影响。

这就意味着,我们应该保护好自己的提款私钥,短期内不需要使用它,即使从长期来看也只需要偶尔使用它。也就是说,在平衡密钥的安全性和可用性时,安全性应该是我们更看重的。