最近大家对于水龙头和超高压测试的规则做了很多讨论,作为这些规则的制定者之一,我想在此跟大家交流一下我们初衷和困惑。更多地,是想听听大家的意见。
超高压测试的目的
首先,超高压测试的目的是让社区尽量多地发各种类型的交易,对PlatON测试网进行充分测试。
所以,在此阶段,不得不依赖于一些脚本和工具等”非真实用户“手段来达到目的。对于普通用户来说,现阶段无法做到绝对公平。
不过,我们每周也在做一些针对普通用户的活动,希望能让每个人都参与拉力赛。比如用户可以在论坛发帖、提bug、参与AMA活动或快闪活动,都有机会获得奖励。这些活动都是机器人很难参与的,是根据用户对社区的贡献来进行奖励的。
目前的一些争议和建议
对于超高压测试,主要的争议点在于,有些用户通过提高手续费的方式使得自己发的交易排名靠前,是否有失公平。
我汇总了一下大家在各个帖子中的讨论(主要参考了这几个帖子:https://forum.latticex.foundation/t/topic/1428/27,https://forum.latticex.foundation/t/topic/1654/8,https://forum.latticex.foundation/t/topic/1659/3)
主要的建议的如下:
-
提高”攻击“成本
扩大中奖范围,不再只选择某固定区块中奖,中奖区块增多,如果攻击者想”占据“所有区块会使得手续费消耗巨大,”攻击“成本提高。让普通用户的交易有机会被打包。有两种建议:
-
把一个中奖区块改为一个区块区间。每次取整5000高度的前后10个区块,总共20个区块,取这些区块中的交易作为奖励。
-
把开奖周期拉长为一天。每天指定固定的区块,按某个账户中的区块数或者连续中的区块数给奖励。
出于峰值测试的考虑,不可能无限扩大中奖区块的区间,所以仍存在大户把所有区块占满的情况。
-
-
改变奖励方式
-
取最后的几个交易。
-
平分奖励。所有的交易平分一个总奖金。
-
随机选取。随机选取(而不是按打包顺序)抽取中奖交易。同时,可以公布随机选取的规则。比如,取当前区块的hash值最后几位数字,作为区块内中奖交易的序号。大家觉得这种选取方式是否合理?是否仍会被攻击?
-
从规则上限制手续费。如只选取手续费在10LAT以下的交易中奖。不过这个规则是否过于”中心化“?是否过于干预网络的正常交易行为?
以上方式都可以在一定程度上增加攻击成本,让普通用户有参与的机会。但大户的中奖概率仍远远高于普通用户。
-
-
限制水龙头
- 关闭水龙头。关闭水龙头意味着阻拦了新用户的参与,也让目前手里测试LAT较少的用户没机会参与后续的活动。
- 水龙头上更严格的机器人验证方式。这是我们团队最近在积极研究的方向,目前已经在开发。也请大家多推荐一些好的验证方式。
- 水龙头做KYC。我们一直对于用手机验证等方式比较谨慎,除了合规性要求的必要的KYC之外,不想在论坛或测试网上进行”实名化认证“,担心会引起社区的对于身份匿名性的质疑。
水龙头要限制到什么程度其实是个很tricky的问题。如果过于复杂,会增加普通用户参与的门槛,导致活动效果不好,如果限制不严格,又会使得大量被刷。
以上每种方案都各有利弊,欢迎大家来拍砖,或提出更好的建议。希望我们能一起讨论出一个改进的方案来。
PS
对于目前面临的种种问题,其实都可以归咎于一开始水龙头限制不够,以及保留了大量旧贝莱世界测试网的数据,导致了用户”不在同一起跑线“。我们也在考虑在第二期拉力赛中进行改进,比如可以
- 重置链,清除旧数据;
- 重新梳理比赛规则,兼顾各方的公平性,让每个用户都有参与感。
具体方案还没定,也想听取大家的意见,怎样才能吸引更多的用户参与进来,并且每个人都能玩得开心。