加入 PolkaWorld 社区,共建 Web 3.0!
从上个月开始,Kusama 的提名人和验证人都需要手动操作来领取区块奖励了,跟以前的 “坐享其成” 相比,这种方法确实是麻烦了点。
那你有没有想过,为什么 Kusama 要做这个改动呢?今天这篇波卡百科的文章就解释了为什么延迟支付(Lazy payouts)如此重要。
Polkadot 和 Kusama 让所有的质押者(staker)通过提交一笔交易来领取他们上一个 era 的奖励。这自然会导致奖励分配的分散,因为人们在不同的时间进行交易,而不是在一个区块内更新所有质押者的账户。即使每个人都同时提交了一个奖励请求,但由于它们是单独的交易,区块构造算法只能在每个块中处理有限数量的交易,并确保网络保持恒定的区块时间。如果在一个区块内发掉所有奖励的话,可能会对网络稳定性造成严重损害。
延迟支付(Lazy payouts)要求在每个 era 中,每位质押者仅有一笔领取奖励的交易,这里的质押者可以是验证人或提名人。Polkadot 之所以要求这样做,是为了避免一类攻击,即有人用几千个帐户去提名一个验证人。奖励分配的主要成本是改变存储中的帐户,而 Polkadot 无法在一次交易中支付几千个帐户。
Polkadot 存储了多达 84 era 的奖励信息,从 era 编号地图,到验证人分数、通胀奖励和提名风险。
(PolkaWorld 注:奖励领取方式如上,打开 js,点击质押,点击 1 Payouts 栏,再点击 2 Payout 按钮就可以领取了)
奖励在获得后,如果超过 84 个 era ,就不能申领了。这意味着所有的质押者,无论是提名人还是验证人,都必须在 84 个 era 内领取你的奖励,否则就无法申领了。(注:目前 1 个 era 是 6 个小时,所以你必须在 21 天内进行领取。)
为了领取奖励,验证人必须从其控制密钥(controller key)提交一个 payout_validator(era: EraIndex)
的交易,其中 era
是他们领取奖励的 era。
提名人需要从其控制密钥(controller key)提交一个 payout_nominator (era: EraIndex, validators: Vec<(T::AccountId, u32)>)
的交易,其中:
era
是提名人领取奖励的 eravalidators
是以下元组的列表:era
期间提名的,并且提供索引可以避免搜索,并允许更低的交易费用。
如果使用 polkadot.js 用户界面,网站会自动为你处理这些细节。
batch
功能,允许用户将多个交易批量处理成来自同一来源的单个交易。因此,用户可以使用此功能为单个验证人或提名人领取多个 era 的奖励。此方案可防止恶意提名人,但对用户体验来说有点差,尤其会伤害那些更愿意成为被动参与者的一些小的提名人,对他们来说,交易费用可能代表其回报的一小部分。我们也正在积极研究其他的解决方案,例如,让一个用户去帮一个验证人的所有提名人去领取奖励,只要这个用户愿意支付交易费就行。
原文:https://wiki.polkadot.network/docs/en/learn-lazy-payouts
翻译:PolkaWorld 社区
https://github.com/paritytech/substrate
https://github.com/paritytech/polkadot
https://bootcamp.web3.foundation/
活动预告:
4 月 29 日,PolkaWorld 线上分享活动,集结了多个波卡生态硬核项目方,带你解锁 Defi 新玩法,赶紧扫码回复 “0” 预约直播吧!
更多内容:
弄丢私钥就彻底玩完了?Substrate 社交恢复功能想再抢救一下
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:波卡(Polkadot)第一中文社区,带你寻找 Web 3.0 时代新机遇!
评论0条