HackZ Whitepaper
  • Executive Summary
  • Need for the Project
    • Competitive Landscape
    • Our Solution
  • Adressable Market
  • Model Overview
    • Courses, Games, Challenges
    • Technical Architecture
  • Tokenomics
    • Utility of tokens
    • Rewards system
  • Community and Governance
    • Problems with current DAOs
    • HackZ DAO - voting and treasury
    • Formal description of HackZ's semi-reputation based DAO
  • Roadmap
  • Team
    • Supported by
  • FAQ
Powered by GitBook
On this page
  • Math Specification of HackZ DAO Voting System
  • Example
  1. Community and Governance

Formal description of HackZ's semi-reputation based DAO

HackZ DAO introduces novel, semi-reputation based governance system in which voting power is mathematically tied to rating points and activity on the platform.

PreviousHackZ DAO - voting and treasuryNextRoadmap

Last updated 7 months ago

Math Specification of HackZ DAO Voting System

Let Ri,R‾,RDR_i, \overline{R}, RDRi​,R,RD be the rating of iii-th user, mean user rating, and rating deviation (in other words standard deviation of users ratings).

Then the z-score for the -th user, ziz_izi​ representing how many standard deviations RiR_iRi​ is above the mean R‾\overline RR is given as:

zi(Ri)=Ri−R‾RDz_i(R_i) = \frac{R_i - \overline{R}}{RD} zi​(Ri​)=RDRi​−R​

Let κ\displaystyle \kappaκ denote a constant activity multiplication factor , and let AiA_iAi​ denote a set Ai={g1,g2,...,gj}A_i=\{ g_1, g_2, ..., g_j\}Ai​={g1​,g2​,...,gj​}, where gjg_jgj​ is the number of challenges played by jjj-th user and satisfies the following:

gj∈Ai  ⟺  (∣Rj−Ri∣≤RD  ∧  gj>0)g_j \in A_i \iff (|R_j - R_i| \leq RD \; \land \; g_j > 0)gj​∈Ai​⟺(∣Rj​−Ri​∣≤RD∧gj​>0)

Note that the AiA_iAi​ set is different for each user (assuming users have different rating scores) and it includes data about the number of challenges played by other users with similar skill. By users with similar skill we mean all users whose ratings lie within 1 standard deviation from the rating of iii-th user. Information about the median of set AAA allows us to define ψ{\displaystyle \psi }ψ, which we'll define as "inactivity damping function".

ψ(Ai)=κmed(Ai){{\displaystyle \psi }(A_i) = \frac{{\displaystyle \kappa }}{med(A_i)}} ψ(Ai​)=med(Ai​)κ​

The purpose of ψ{\displaystyle \psi }ψ is to reduce the excess voting power of inactive users with high rating. It does so by considering the median number of played challenges in time period ttt within the set of similarly rated players. That way HackZ governance system rewards only active users, while simultaneously not making casual learners lose track of their progress.

Unlike other popular MMO games, HackZ does not reset users' ratings/divisions after each season.

Finally, the Voting Power function can be defined as:

* In order to be counted, tokens have to have to remain on the same wallet, starting from 7 days prior to introduction of the relevant DAO proposal.


Example

To get a more intuitive understanding of the mechanism, readers might want to consider the following example:

  • The constant parameters:

  • Data regarding user named "Bob"

So for every 100 tokens, player Bob will be able to exercise 134 votes. This is a moderate voting boost, which came along with some activity in the game and a slightly above average rating.


Now, let's describe the expexpexp function. That function serves as an exponent in the final voting multiplication expression, and resembles a typical sigmoid function. Below, eee stands for Euler's constant and gig_igi​ is the number of challenges that were played by iii-th player in time period ttt.

exp(zi,gi,ψ(Ai))=zi1+e−gi∗ψ(Ai)exp(z_i,g_i,\displaystyle \psi(A_i))=\frac{z_i}{1+e^{-g_i*{\displaystyle \psi }(A_i)}} exp(zi​,gi​,ψ(Ai​))=1+e−gi​∗ψ(Ai​)zi​​
VP(ti,exp⁡(...))={ti⋅cexp⁡(...),if exp⁡(...)>0;ti,otherwise. VP(t_i, \exp(...)) = \begin{cases} t_i \cdot c^{\exp(...)}, & \text{if } \exp(...) > 0; \\ t_i, & \text{otherwise}. \end{cases}VP(ti​,exp(...))={ti​⋅cexp(...),ti​,​if exp(...)>0;otherwise.​

where: exp(...)exp(...)exp(...) - abbreviation for exp(zi,gi,ψ(Ai))exp(z_i,g_i,\displaystyle \psi(A_i))exp(zi​,gi​,ψ(Ai​)) for iii-th user, tit_iti​ - number of HCKZ tokens held on an address belonging to iii-th user*, ccc - constant base multiplication factor

κ\displaystyle \kappaκ and ccc parameters are purposefully not predetermined and should be adjusted according to protocol's needs. The κ\displaystyle \kappaκ parameter controls how much we want to punish inactivity, while the ccc parameter controls how much we want to boost the voting power of highly ranked users.

Initial values deemed as reasonable by the author are: κ=2,{\displaystyle \kappa} = 2, κ=2, c=1.5c=1.5c=1.5

κ{\displaystyle \kappa}κ = 2

c=1.5c=1.5c=1.5

RBOB=1500R_{BOB}=1500RBOB​=1500 (user rating)

R‾=1400\overline{R}=1400R=1400 (mean rating)

RD=100RD=100RD=100 (standard deviation of ratings)

gbob=2g_{bob} = 2gbob​=2 (number of challenges played by Bob)

ABOB={3,5,4}A_{BOB}=\{3,5,4\}ABOB​={3,5,4} (set of challenges played by users with similar skill, median med(Abob)=4med(A_{bob})=4med(Abob​)=4)

tbob=100t_{bob}=100tbob​=100 (tokens held by user)

The only thing we care about is that Bob is 1 RDRDRD above the norm and played half as many games as the median, so he will obtain the following exponent:

exp(z,g,ψ(A))=11+e−12∗ κexp(z,g,\psi(A))=\frac{1}{1+e^{{-\frac{1}{2}}* \space {\kappa}}} exp(z,g,ψ(A))=1+e−21​∗ κ1​
Where did e−12κe^{{-{\frac{1}{2}}}{\displaystyle \kappa}}e−21​κ come from?
exp(z,g,ψ(A))≈0.73exp(z,g,\displaystyle \psi(A)) \approx 0.73exp(z,g,ψ(A))≈0.73

Now that we know the exponent: exp=0.73exp=0.73exp=0.73, we can calculate cexp(...)c^{exp(...)}cexp(...) and find out the votes multiplicator.

VP(t,exp⁡(...))=t∗1.50.73VP(t, \exp(...)) = t*1.5^{0.73}VP(t,exp(...))=t∗1.50.73
VP(t,exp⁡(...))≈ti∗1.34VP(t, \exp(...)) \approx t_i*1.34VP(t,exp(...))≈ti​∗1.34

e−12κe^{{-{\frac{1}{2}}}{\displaystyle \kappa}}e−21​κ equivalent to: e −gmed ∗ κe^{\space \frac{-g}{med} \space * \space {\displaystyle \kappa }}e med−g​ ∗ κ which is the same as e−g ψ(A)e^{-g \space{\displaystyle \psi }(A)}e−g ψ(A)