Liquid quadratic voting

How Nicolas Works

Nicolas implements liquid quadratic voting for collective decisions with multiple alternatives, finite voice credits, and transparent quadratic cost accounting.

Vote Intensity

Participants can support or oppose every alternative with a finite real-valued vote intensity.

Quadratic Cost

A vote vector spends the sum of squared intensities, so stronger preferences become progressively more expensive.

Softmax Outcome

Nicolas aggregates support and maps it to winning probabilities with a numerically stable shifted softmax.

The Mechanism

For participant ii, vote vector aia_i, voice budget BB, and aggregate support VV.

Each participant's direct vote vector is bounded by their available voice credits:

ai=(ai1,,aim),j=1maij2Ba_i = (a_{i1}, \ldots, a_{im}), \qquad \sum_{j=1}^{m} a_{ij}^{2} \le B

Here ii indexes the participant, jj indexes an alternative, mm is the number of alternatives, aija_{ij} is participant ii's signed vote intensity on alternative jj, and BB is the participant's available voice-credit budget.

The app displays gross cost as the quadratic spend:

gi=j=1maij2g_i = \sum_{j=1}^{m} a_{ij}^{2}

Here gig_i is participant ii's gross quadratic cost, computed by summing the squared signed intensities across all mm alternatives.

With liquid delegation, a voter may control their own credits plus delegated credits. Nicolas prices the controller's whole submitted vector once against the controlled credit bundle.

Ci=Bi+s=1qibs,gi=j=1maij2CiC_i = B_i + \sum_{s=1}^{q_i} b_s, \qquad g_i = \sum_{j=1}^{m} a_{ij}^{2} \le C_i

Here CiC_i is controller ii's total controlled credit budget, BiB_i is their own direct budget, ss indexes delegated credit sources, qiq_i is the number of delegated sources controlled by participant ii, and bsb_s is the credit amount contributed by delegated source ss.

Nicolas aggregates signed vote intensity by alternative:

Vj=i=1naijV_j = \sum_{i=1}^{n} a_{ij}

Here VjV_j is the aggregate signed support for alternative jj, nn is the number of participants whose submitted vectors are included, and aija_{ij} is participant ii's signed vote intensity on that alternative.

Outcome probabilities use the shifted softmax implemented in the results code:

Qj=exp(VjM)k=1mexp(VkM),M=maxkVkQ_j = \frac{\exp(V_j - M)}{\sum_{k=1}^{m} \exp(V_k - M)}, \qquad M = \max_k V_k

Here QjQ_j is the outcome probability assigned to alternative jj, kk indexes alternatives in the denominator, VkV_k is the aggregate support for alternative kk, and MM is the largest aggregate support value across all alternatives.

What Delegation Changes

Delegation changes who controls credits for a decision.

If a member delegates credits and does not vote directly, the delegate can spend those credits as part of one controlled bundle. If the member votes directly, their active delegation is excluded for that decision.

If controller ii receives credit sources with amounts b1,,bqb_1, \ldots, b_q, their controlled credit budget is:

Ci=s=1qbsC_i = \sum_{s=1}^{q} b_s

Here CiC_i is controller ii's controlled credit budget, ss indexes credit sources, qq is the number of credit sources, and bsb_s is the amount from source ss.

Nicolas prices the controller's submitted vector once against that combined budget:

gi=j=1maij2Cig_i = \sum_{j=1}^{m} a_{ij}^{2} \le C_i

Here gig_i is controller ii's gross quadratic cost, jj indexes alternatives, mm is the number of alternatives, and aija_{ij} is the controller's signed vote intensity on alternative jj.

That means delegation is degressive. If qq members vote independently on the same alternative with equal budgets BB, their maximum combined intensity is:

qBq\sqrt{B}

Here qq is the number of independent members and BB is each member's equal voice-credit budget.

If those same credits are delegated into one bundle, the delegate's maximum intensity from the combined budget is only:

qB\sqrt{qB}

Here qBqB is the total delegated budget controlled as one bundle.

Since qBqB\sqrt{qB} \le q\sqrt{B} for q1q \ge 1, independent aligned votes can produce more aggregate intensity than the same credits delegated to one controller. Equivalently, splitting a target intensity xx across qq independent voters is cheaper:

q(xq)2=x2qx2q\left(\frac{x}{q}\right)^2 = \frac{x^2}{q} \le x^2

Here xx is the target aggregate intensity, and each of the qq independent voters contributes x/qx/q intensity.

Unused delegated credits stay idle. Delegation can reduce total possible intensity because several independent voters can split the same target intensity more cheaply than one controller can spend it as a single bundle.