28

Vitalik 用中文详解以太坊 2.0 staking 设计细节及开发现状

 4 years ago
source link: https://www.tuicool.com/articles/zENf6zj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Vitalik Buterin 详细解答了以太坊 2.0 中文社区关于 staking 的疑惑,他表示 ETH 2.0 与 Cosmos、Tezos 等 staking 较为火热的公链的设计不同,在前期暂时没有「委托」的概念,即持币人不能将持有的 ETH 去中心化地委托给节点代为挖矿。

原文标题:《ETH2.0 如何 Staking,我们去问了 V 神》

作者: Rudy 卢地

昨日荣幸被拉进了新建立的以太坊 2.0 中文社区,进去时群里只有几十人,一看 V 神的微信也在群里,并且 V 神那会好像非常有时间(后来知道了是在台北机场等候飞机),一直在群里非常活跃地与各位以太坊 2.0 爱好者们互动(中文表达能力也是越来越强了),整个下午变成了一场非常长时间的线上 AMA。

AMA 谈及了分片、治理、DApp、1.0 和 2.0 过渡等等,我和小伙伴们瞅准机会当然也问了不少 staking 相关的问题,之前只能在以太坊论坛等公开网络上寻找 V 神与其他人的碎片化解读,今天终于能得到 V 神的亲自讲解,一些之前非常想问的问题都得到了解答,心情十分舒畅。

现在便将这场 AMA 中与 staking 相关的提问与 V 神的解答整理一下,应该是目前设计版本的权威解读了。

解读整理

1. 32ETH 是成为一个节点所需的质押值,既是下限也是上限。如果有 320ETH 则只能建立 10 个节点,而不能将 320ETH 质押给 1 个节点。

2. 32ETH,对应 1 个节点,对应 1 个私钥。

3. 可以通过 1 个客户端运行多个节点,但验证、签名的区块数也相应增多,如果同时运行数百节点可能需要租赁服务器。

4. ETH 2.0 与 Cosmos、Tezos 等 staking 较为火热的公链的设计不同,在前期暂时没有「委托」的概念,也即持币人不能将持有的 ETH 去中心化地委托给节点代为挖矿。

5. 但在阶段 2 (最早开启的是阶段 0)将可以通过合约成为节点,届时节点服务商可以发起节点合约,设定返利规则,其他持币人通过往合约打币「凑齐」32ETH 来参与,并得到分红。

(最后附有 AMA 中 Staking 部分实录)

Staking 服务商的发展机会

依照 V 神目前给出的解释,在阶段 0 与阶段 1 无法实现去中心化委托,那么持有 ETH 的持币者无法将 ETH 质押给节点代为挖矿,Staking 服务商难以再沿袭之前建立节点、社区拉票、返利分红这样的模式,那么还会有哪些机会呢?

虽然以太坊这样设计的目的是为了鼓励更多的用户参与到挖矿之中,实现节点的去中心化,但是持币者们依然难以直接参与到 ETH2.0 的节点网络中。一来 32ETH 依然是一个不低的门槛,这将使得大量小持币者无法参与;二来节点需要 24 小时运行出块,虽然以太坊已经尽力最小化离线会带来的惩罚,来鼓励大众参与,但 24 小时运行也是一件累人的工作,何况还要处理节点升级、运维、防灾等等麻烦事情。

无论是持币少而不能参与,还是由于无法 24 小时在线而造成的收益不充分,都会在 ETH 增发下造成隐形的通胀损失,这必然是 ETH 持币者们不乐意见到的。针对这样的需求,Staking 服务商针对 ETH 2.0 可以探索这样几条道路。

1. 提供技术支持服务

让用户掌握私钥,Staking 服务商为其提供完整的节点技术服务,包括服务器租赁、节点升级、运维、防灾等等,收取一定的技术服务费用。

2. 中心化钱包

虽然不能去中心化委托,但可以通过提供统一的中心化钱包让用户充币,Staking 服务商再将充入的币每 32ETH 建立一个节点,按照一定的返利率对所有充币用户返利。这种办法既能解决持币者运行节点的问题,还能让持币不足 32ETH 的持币者获得 Staking 收益,但是弊端是节点跑路的风险,中心化钱包的提供者需要获得 ETH 持币者的充分信任。

3. 等待阶段 2 上线,实现去中心化委托

依照 V 神的表述,直到阶段 2 才能用合约实现 Validator 的收益取款,如果能用合约实现取款则可以让多个持币者往合约打币凑齐 32ETH,并根据合约的规则分配收益,规则在合约中透明,也没有卷走本金的风险。如果该智能合约可以实现,则 Staking 服务商可以以小额 ETH 启动大批量节点合约,并号召持币者往合约中打币,颇有种拼团发车的意味。不过按照目前的说法这需要等到阶段 2 上线,时间未知。

AMA 实录

节点条件

竹风:我关心 ETH2.0 要什么条件才能做节点

Vitalik Buterin:32 以太币和普通电脑应该够了。

大志:超过 32 个怎么办?如果有 320 个币怎么办?分 10 个节点跑吗

Vitalik Buterin:可以跑一个客户端,客户端都能管理多个 validator id (验证人身份)。但是 validator id 越多,那么需要验证的数据越多。比如如果你有 10000 以太币,可能需要服务器。

Kai:这里说的数据越多,是指同样的链上数据,若干 validator (验证人)进行 vote (投票)的次数越多吗?

Vitalik Buterin:这是分片的特点,分片的区块是给 validator id 分配的,所以如果你有很多 validator id 你需要验证和签名更多区块。

大志:10 个 id 就要保管 10 个私钥吗?还是 1 个私钥只需要 1 个客户端就可以管理 10 个 id?

Vitalik Buterin:10 个私钥。但是客户端可以用一个私钥生成多个私钥。

去中心化委托的可能

Rudy@InfPool:这样看起来,ETH 2.0 的 staking 应该不含「委托 " 的部分了。如果自己不够 32ETH,也不能去中心化地委托给其他节点?也许中心化钱包可以做一个 pool (矿池),人为地分配,每 32ETH 成立一个 Validator。

Vitalik Buterin:Phase 2 (阶段 2)后可以用合约做委托,私钥的持有者为你签名区块等等,但是不能 withdraw (取款)给自己的账户。

Rudy@InfPool:您的意思是,Phase 2 后,可以几个人通过 1 个合约凑齐 32ETH,共同成为 1 个 Validator?

Vitalik Buterin:嗯,我多描述一下这个方法吧。

你开一个 validator 的时候,需要设置两个公钥:签名的公钥和取款的公钥。Phase 2 后,不一定需要设置取款公钥,也可以设置取款合约,签名的私钥能 withdraw,withdraw 完成后 validator 里面的资金都给取款合约的地址。

所以你开新的 validator 的时候,可以先发比如 1 以太币,设置取款合约,这个合约的规则是,谁 deposit (存款)多少谁按照比例 withdraw 多少。比如,你 deposit 1 以太币,然后有 3 人 deposit 8,10,13 以太币,一共 32,所以 validator 变成 active (活跃)。一段时间后,你发 withdraw 的交易,现在因为奖励这个 validator 的 balance (余额)是 33.6 以太币(加 5%),33.6 以太币给合约,合约的规则分配 1.05 给你,8.4,10.5 和 13.65 给其他的参与者。

签名的私钥是你的,谁能 withdraw 多少的规则是合约定的。别人能看一个还未 activated 的 validator 的 withdraw 合约的规则,如果他们觉得是合理的他们能发他们的币给这个 validator。这个是委托的方法。

Rudy@InfPool:明白了,但是要等到 phase 2。我最早在 ethresearch 的这个帖子里看到合约做 validator 的构想,帖子名字叫《Decentralized Casper Validator Proposal》(关于去中心化 Casper 验证人的提案),也推荐一下: https://ethresear.ch/t/decentralized-casper-validator-proposal/1430

32 ETH 门槛

blockpunk@ 无涯:32eth 门槛还是很高

Vitalik Buterin:32 这个数字是看客户端效率设置的。如果是 4 以太币,validator id 会很多,链的 overhead 会太高了。

但是客户端效率的提升可以用去 2 个方向:一个是降低 validator 的最低 eth,比如到 8,同时提高分片的数量;第二个是不提高这些数字,让客户端变得越来越 low resource,这样越来越多用户能跑 beacon node (信标链节点)。

硬件要求

blockpunk@ 无涯:一个拥有 320000 个以太币的客户端,建立的 10000 个 vaildator 会被随机数分到 1024 条分片上,那这个客户端就得存储全部分片的数据对吗 ? 这样一台机器的带宽和存储都撑不住吧。

Vitalik Buterin:是。最近的计划不是 1024 分片,是 64 分片,2048 个 committee (委员会)。如果你的以太币超过 6 万,你需要处理几乎所有区块,所以土豪可能要泡服务器。

Rudy@InfPool:处理所有区块,租用服务器是否可以做到?再往上,6 万和 60 万的区别应该就不大了吧。

Vitalik Buterin:其实不是特别多数据,2.7 MB/sec,当然乘以 p2p 网络的 overhead 等等。

来源链接: mp.weixin.qq.com


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK