xGov Committee - xGov Beta Architecture

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

xGov Beta Architecture

xGov Committees are responsible for voting on Proposals.

The formalization of xGov Committees and their voting power, as defined by ARC-0086, is provided below.

Let

A governance period is a pair (Bi,Bf)∈N2(Bi,Bf)∈N2 such that

BiBfBfBf≡0(mod106),≡0(mod106),>Bc,>Bi.Bi≡0(mod106),Bf≡0(mod106),Bf>Bc,Bf>Bi.

And is intended as a range of blocks [Bi;Bf)[Bi;Bf) (BiBi included, BfBf excluded).

Bi<BcBi<Bc is valid and denotes a period across the xGov Registry creation.

An xGov is an address a∈Aa∈A that has acknowledged the xGov Registry on block hh and is therefore eligible to acquire voting power.

The xGov acknowledgement is defined by the pair (a,h)(a,h) (represented on the xGov Registry as an xGov Box).

If xGovs unsubscribe, the xGov acknowledgement of their address aa is lost and the pair (a,h)(a,h) is removed from the xGov Registry state.

For a governance period (Bi,Bf)(Bi,Bf), an address aa is an eligible xGov in [Bc;Bf)[Bc;Bf) if and only if there exists a block height kk with Bc≤k<BfBc≤k<Bf such that the xGov Registry state at height kk contains (a,h)(a,h) for some h≤kh≤k.

Once the xGov Registry has recorded an acknowledgement (a,h)(a,h) with h≥Bch≥Bc, the address aa is considered an eligible xGov for every governance period (Bi,Bf)(Bi,Bf) such that h∈[Bc;Bf)h∈[Bc;Bf); in particular, it is not necessary to re-acknowledge the xGov Registry for subsequent governance periods.

For a fixed governance period (Bi,Bf)(Bi,Bf), the voting power of an eligible xGov (a,h)(a,h) in that governance period is the integer

w((a,h);Bi,Bf)∈N,w((a,h);Bi,Bf)∈N,

defined as the number of blocks proposed by an eligible address aa in the governance period [Bi;Bf)[Bi;Bf)1.

If an xGov a has acknowledged the xGov Registry at some h∈[Bc;Bf)h∈[Bc;Bf) and has proposed one or more blocks in [Bi;Bf)[Bi;Bf), then all such proposals in [Bi;Bf)[Bi;Bf) contributes to its voting power, including those that occurred before hh.

Fix an xGov Registry (g,R,Bc)(g,R,Bc) and a governance period (Bi,Bf)(Bi,Bf) as above.

An xGov Committee for (g,R,Bc,Bi,Bf)(g,R,Bc,Bi,Bf) is a finite set

C⊆A×N>0,C⊆A×N>0,

of address–weight pairs (a,v)(a,v) such that:

The corresponding xGov Committee object is the tuple

Comm:=(g,R,Bc,Bi,Bf,C).

For convenience, we write

Addr(C):={a∈A∣∃v>0,(a,v)∈C}
for the set of xGov Committee members (addresses) induced by CC.

The number of xGov Committee members (or cardinality of the xGov Committee) is defined as

Members(Comm):=|Addr(C)|=|C|.

This value corresponds to the totalMembers field in the ARC-86 canonical JSON representation of the xGov Committee.

The voting power function of the xGov Committee is the map
vC:Addr(C)→N>0,vC(a):=v such that (a,v)∈C.

The total committee voting power is

Votes(Comm):=∑(a,v)∈Cv=∑a∈Addr(C)vC(a).

This value corresponds to the totalVotes field in the ARC-86 canonical JSON representation of the xGov Committee.

Optionally, the relative vote of a member a∈Addr(C) is

shareC(a):=vC(a)Votes(Comm),

whenever Votes(Comm)>0.

An xGov Committee is identified by the Committee ID, as defined in ARC-86 canonical JSON representation.

The xGov Committee selection procedure and the assignment of their voting power is performed by the Algorand Foundation.

Given the xGov Committee for the governance period [Bi;Bf)[Bi;Bf), the xGov Committee Manager SHALL declare on the xGov Registry:

within the rounds interval [Bi;Bi+103)[Bi;Bi+103).

If the xGov Committee Manager fails to declare the xGov Committee within the rounds interval, the xGov Committee is considered stale and Proposals are suspended.

The xGov Daemon SHALL assign the current xGov Committee to Proposals upon creation (see Proposal Creation section).

  1. If aa is not eligible as an xGov in [Bc;Bf)[Bc;Bf), its voting power is implicitly taken to be zero, and it is not included in the xGov Committee. ↩