Substrate中society模块分析
Substrate2.0新增了society
模块,在原有membership
模块的基础上,新增这样一个类似代议制民主中下议院的society
,而membership
可以简单理解代议制民主中的上议院。membership
的人数维持在十多人到数十人规模,而society
的人数维持在数百人规模。
Society
模块是一个经济博弈,用来激励用户参与和维护一个会员社群。
昨天听Gavin分析了下Society模块,在他的设想中,治理需要有陪审团的设置,这样的一个Society应该就是一个陪审团候选人社团。但从目前Kusama上来看,这个功能还只是刚刚起步实现。
用户类别
在任何时间点,一个用户在society中是如下角色中的一个:
- Bidder:提交加入society的意向的用户。
- Candiate:将被投票是否能通过,从而加入到society的候选用户。
- Suspended Candidate: 被投票失败,延迟进入society的用户。
- Member: 成功加入society的成员用户。
- Suspended Member: 一个society成员用户,由于统计缺席太多次或者同行评议没通过,都会成为停职会员用户。
只要不是停职会员用户,用户总是下面两种角色中的一种:
- Head:成员领袖,能够免于被停职。
- Defender: 普通会员,其会员资格总是需要接受质疑和反复投票。
只要不是停职会员用户,他们中会随机选出一批出来,作为“怀疑者”。下面下面的机制中进行解释。
机制
奖励
社团成员都是通过激励来参与社团的,而激励奖金来自社团财政。这些支付有一个成熟期需要用户等待,直到他们能够支配这些资金。
惩罚
社团成员能够被惩罚到,通过罚没掉那些还没有支付到用户手中的奖励来惩罚。此外,社团成员被统计有多少次缺席,当达到一个最大极限值的时候,他们将会被停职。
怀疑者
在投票期间,从社团成员中随机选出一批作为“怀疑者”。这些怀疑者会对现在进行的候选人进行投票,如果他们不进行投票,就会被记录一次缺席,其怀疑状态被当作反对票,这个成员会被认为是懒惰的,每一个缺席投票都会积累一次缺席记录。
会员资格挑战
每一个挑战循环周期,一个社团中存在的成员会被随机选出来接受挑战,其需要保护其社团成员资格。此时,其他社团成员能够投票决定这个被挑战的成员是否仍然能留在社团中。一个简单的多数原则决定最后的结果。平局被视为挑战的失败,但假设没有其他人投票,辩护人总是对自己的挑战进行自由投票,从而使他们留在社会中。成员领袖不受会员挑战的负面结果影响。
社团财政
会员社团是由这个模块管理的国库单独资助的。这个国库的一部分是被放到一个社团池中,用来确定被接受的投标的数量。
社团增长速率
社团会员是能够按照一定规则增长扩充的,在每一个轮换周期,能够增加10名候选者进入,直到其达到最大的社团资格比例。如果这个比例达到了,候选者选择将被暂停直到有新的位置给到候选者加入。这个就需要社团成员接受挑战失败退出社团,或者需要治理来增加这个最大社团成员人数。
用户生命周期
初始化
社团是自动选择一个成员做社团领袖。
竞标过程
新的用户必须进行竞标才能加入社团。一个用户需要抵押一定的余额才能发起竞标。此外,一个已经在社团中的成员也可以为你担保,他能够动用自己的抵押为你担保,但他的抵押只能当作一半的余额为你担保。
一个竞标包括奖励信息,用户能够接受到奖励的信息,只要其加入了社团。一个担保竞标也能额外获得一定比例的奖励作为给别人担保的小费。
每一个轮换周期,竞标会被按照奖励总额进行排序,模块会尽可能选择多的竞标,只要这个社团资金池能够支付这一轮的奖励。
这些被选中的竞标将变成候选人,他们也将移入到候选过程。那些没有被选中的竞标将在竞标池中呆着,直到他们被选中或者他们自己退出竞标。
候选过程
当一个竞标者变成一个候选者,成员投票可以决定这个候选者是否能够加入社团,这个投票过程也能够在一个轮换周期中发生。
这个接受和拒绝的标准并不在链上体现,都是根据各个社团他们自己定。
在一个轮换周期的末尾,将会手机投靠,这个候选人会被随机选择一个投票来决定最终的结果。投票有三种可能,接受、拒绝和怀疑。这里面就有概率了,哪怕绝大多数都是接受,也有可能被随机选中拒绝。但基本是符合概率的。
候选投票结果:
每个社团成员投票反对这个随机选出来的表决,将会被惩罚,通过罚没他们没有认领的补偿金,同时增加一个他们缺席记录。
这些被罚没的资金将会给一个随机选出来的用户,他对同一个表决进行了投票。
如果候选人赢得这次表决,他们将受到他们竞标奖励作为未来的补偿金。如果这个竞标还有担保人,这些担保人也会收到相应比例的奖励,当然前提是在支付给这些候选人之后还有剩余。
一个赢得的候选人将会被选为社团领袖。这是随机选择的,取决于这个候选人在表决中赢得的赞成票的数量。
如果候选人输掉了表决,他们将会被停职,直到有一个停职审判来决定这个候选人是否是进入社团成员还是重新进入竞标过程,或者直接就是干脆拒绝然后罚没掉其余额。
会员过程
当一个候选人变成一个社团会员,他的角色定位将是参与社团。
常规参与涉及给候选人投票,决定那些想加入社团的候选人加入。如果以一种正确的方式进行投票表决,一个成员将增加其将来的补偿金,当补偿金成熟的时候,社团成员们能够去领取其补偿金。
社团成员同时也能够担保别人进入社团,有小费的好处。这个担保的过程,当一个人想加入社团,又资金不够的时候,请人担保是不错的方式。一个成员在一个时间点只能为一个人进行担保。
在一个轮换周期,一个随机社团群体将会被选为“怀疑者”,他们需要给现在的候选人进行投票。如果他们不投票,他们会被认为是懒惰的,同时其缺席记录将会累积一次。
在一个挑战后期,还会随机选出一个社团成员来保护自己的社团成员资格。其他社团成员需要做出一个传统的大多数支持投票,来决定这个选出的成员是否能够留在社团。
如果社团成员积累了太多缺席,或者他的社团资格没有保护住,他将会被停职。停职后就不能认领补偿金了。需要等到下一次停职审判来决定其是否能重回社团,或者被惩罚掉所有将来的补偿金。