链群行动扩展协议
1. 关于协议
此扩展协议基于 LOVE20 扩展协议标准,扩展行动参与机制,允许行动者以链群的方式参与行动。
- 行动者可自由加入/退出所选链群,进行可验证的共识行动
- 行动者基于所在链群的链群服务者的验证结果获得行动铸币激励
- 支持此行动的治理者,通过对链群服务者的不信任投票降低其链群整体收益的方式,来监督和惩罚作弊或违背行动验证规则的链群
2. 初始参数
2.1 代币合约地址
表示链群行动所在的代币,激活所需要的质押代币也是这个代币。
2.2 激活链群需最小治理票占比
- 激活链群时,链群 NFT 持有者的治理票占比(有效治理票数 / 总治理票数,精度 1e18)不得低于此参数
- 仅在激活时校验一次,与加入行动、验证容量无关
2.3 激活链群需质押代币数量
链群服务者激活链群时需质押的代币数量。
2.4 参与代币合约地址
行动者参与行动时使用的代币地址,支持以下两种类型:
- 当前链群行动所在代币
- 包含当前链群行动所在代币的 LP 代币
2.5 最大参与代币占比
- 单个行动者最大参与代币数 = 已铸造代币总量 x 最大参与代币占比 x 行动当轮投票率
3. 治理者
3.1 不信任投票
在验证阶段对一个或多个链群服务者进行不信任投票:
- 投票上限:对单个链群服务者的不信任票数 ≤ 自己给扩展协议合约投的验证票数
- 投票目的:惩罚验证不公或有其他作恶行为的链群服务者
- 投票效果:降低该链群服务者所服务的所有链群的铸币激励
- 说明理由:投不信任票时同时提交原因在链上公示
链群服务者的不信任率 = 链群服务者收到的不信任票总数 / 此行动的投票总数
投不信任票会同步额外更新数据:
- 被投链群服务者已验证的每个链群的得分:链群参与代币总量 x (1 - 链群服务者的不信任率)
- 行动总得分:已验证链群累计得分
4. 链群服务者
下述两种方式可以成为链群服务者:
- 在 链群 里铸造自己的链群 NFT,并在链群行动中激活链群成为链群服务者
- 获得已激活的链群对应的 NFT
4.1 链群激活或恢复
链群 NFT 持有者若其治理票占比(有效治理票数 / 总治理票数)不低于本行动设置的「激活链群需最小治理票占比」,可选择质押链群激活所需代币数量(使用链群行动所在的代币),激活一个新链群或恢复旧链群。
激活时需提供:
- 链群说明:例如,一些注意事项,以及如何联系到链群服务者,如何加入所在链群的行动者群(例如:QQ 群、微信验证群)等
- 最大容量(可选):行动者参与此链群的累计最大代币参与量,0 为不限制
- 行动者最小参与量:需大于 0
- 行动者最大参与量(可选):0 为不做限制
- 行动者最大地址数(可选):0 为不做限制
恢复链群时,自动继承原链群中所有未退出的行动者
4.2 链群更新
立即更新,并在当轮立即生效(不影响已参与的行动者)
- 链群说明
- 最大容量
- 行动者最小参与量
- 行动者最大参与量
- 行动者最大地址数
4.3 链群验证
持有链群 NFT 的链群服务者,可以提交验证,完整验证后会同时更新下面 4 类得分
- 行动者得分:每轮的验证阶段,链群服务者(持有链群 NFT)基于行动的验证规则,提交每个行动者的原始得分[0~100],并计算每个行动者的最终得分:行动者的原始得分 x 参与代币数量
- 链群内所有行动者总得分:简化后续计算行动者激励
- 链群得分生成:链群参与代币总量 x (1 - 链群服务者的不信任率)
- 行动总得分:已验证链群累计得分
合约自动记录每轮的历史数据(行动参与代币总量、链群参与代币总量、每个行动者的参与代币数),验证时基于当轮的历史数据计算得分。
4.3.1 批量验证机制
链群行动者较多,无法一次提交验证成功时,允许链群服务者分多次完成整个链群的验证。
注意:
- 若当前轮次链群服务者未能成功提交链群验证,则自动放弃本链群参与本轮激励的分配
4.4 链群指定验证代理
链群服务者可为链群设定一个钱包地址作为链群验证代理,验证代理可以代替链群服务者提交链群的验证结果。
为确保安全性,实现严格的所有者检查机制:
- 设置时记录所有者:当链群服务者设置验证代理时,会记录设置时的链群 NFT 所有者地址
- 验证时检查所有者:每次验证时检查:
- 验证代理地址是否匹配
- 设置验证代理时的所有者是否与当前链群 NFT 所有者一致
4.5 链群取消激活
链群服务者在链群创建后的下一轮开始,可随时取消激活链群,并立即返还质押代币。
链群取消激活后,行动者可继续领取之前未领取的行动铸币激励。
已取消激活的链群,新行动者无法加入,现有行动者也无法追加代币;还未验证的链群也无法再接受验证。
注意:质押代币返还给当前持有链群 NFT 的地址。
5. 行动者
5.1 加入行动
行动者指定链群参与行动时:
- 首次参与,参与代币数不低于所选链群行动者最小参与量
- 累计参与代币数不超过单个行动者最大参与代币数
- 累计参与代币数不超过所选链群设置的行动者最大参与量
- 不超过链群行动者最大地址数
5.2 铸造行动激励
行动者加入后,下一阶段开始链群服务者验证,验证后下一阶段可铸造自己的行动激励
行动者的行动铸币激励 = 行动者得分 / 链群内所有行动者得分 x 链群铸币激励
链群铸币激励 = 行动总激励 x 链群得分 / 行动内所有链群得分
5.3 退出行动
可随时退出并立即返还累计参与的所有代币
6. 体验模式参与行动
- 体验地址添加:任何地址可在指定的链群下配置允许体验地址列表及每个体验地址的参与代币数
- 体验代币托管:提供者通过批量新增等待列表地址与对应参与代币数,将体验代币转入合约托管
- 体验模式参与:体验地址参与行动时可选择体验模式并指定体验代币提供者地址,参与代币直接使用托管额度,无需行动者再提供代币
- 体验模式限制:体验模式下行动者不可追加参与代币
- 体验代币返还:体验地址退出行动或提供者代替体验地址退出时,参与代币直接返还给体验代币提供者
- 体验地址管理:体验代币提供者可查看特定链群下正在使用其体验代币参与行动的地址列表,并可代替体验地址退出
- 体验激励归属:体验模式下行动者获得的行动激励归行动者所有
6. 特殊情况
若某轮所有链群都未能提交验证,则验证阶段结束后,任何人可触发行动激励销毁,销毁此行动所有可铸造激励,将代币变为未铸造。