Technical Whitepaper

A Supplementary Material to Section 3

A.1 A Simple PoR-Fair Lottery for a 2-Tier Reputation System

For completeness, we first repeat the informal goal of PoR-fairness in our 2-tier example.

Goal (informal): We want to randomly select x1 parties from ˆP1 and x2 parties from ˆP2 so that:

1.
x1 + x2 = y, and
2.
x1 = 2max{1,αα12}x2.
3.
For each i ∈{1,2} : No party in ˆPi has significantly lower probability of getting picked than other parties in ˆPi, but parties in ˆP1 are twice as likely to be selected as parties in Pˆ2.

Here is how to create a lottery which achieves the above goal. Let c := 2max{1,α1
                        α2}. The lottery proceeds as follows:

1.
First, we choose I = cα2--α1
                        (c+1)α2y parties randomly from ˆP1;
2.
Subsequently, we choose II := -α1+α2
                        (c+1)α2y parties randomly from the union ˆP1 ˆP2. If a party from Pˆ1 is chosen twice, i.e., in both of the above steps, then choose another party randomly from the parties in Pˆ1 that have not yet been chosen in any of the steps.
3.
Take all the parties that were chosen in the above steps to form the committee.

We next show that the outcome of the above lottery satisfies, on average, the goals set for it. (Notation: For a random variable X, we denote by E(X) the expected value of X). The third property follows from the fact that the parties are chosen randomly from their respective sets. The following theorem formalizes and proves the fact that, “on average”, our above lottery satisfies the first two properties discussed in the above goal.

Theorem 4 (Reputation-Fair Lottery for two tiers).  In the above lottery, for i ∈{1,2}: let Xi be the random variable (r.v.) corresponding to the set of parties in the final committee that come from set ˆPi (i.e., |Xi| is the r.v. corresponding to xi.) Let also I (resp. II) denote the number of parties that are added on the committee in the first step (resp. in the last two steps). Then the following statements hold:

1.
I + II = y
2.
E(|X1|) = cE(|X2|)

Proof (sketch). We prove the two equations in the theorem separately.

1.
I + II = ((cαc2+-1α)α1
                             2 + α(c1++1α)2α-
                             2)y = y
2.
Let LI denote the r.v. corresponding to the set of parties that are added on the committee in the first phase of the lottery and LII the set added in the second and last phase. Denote by L the union, i.e., L = LI LII. First we note that by definition:
E(|Xi |) = E (|L ∩Pˆi|)

Additionally, since in the second phase, parties from ˆP2 who were already chosen in the first phase are replaced by other (not-yet chosen) parties from ˆP2 we know that LI and LII are disjoint.

The following hold: As in the first phase of the lottery no party from Pˆ1 is chosen an all parties are chosen from Pˆ2:

E(|LI ∩ ˆP2|) = 0
(7)

and

E(|L  ∩Pˆ |) = ℓ = cα2 --α1-y
                           I    1    I   (c+ 1)α2
(8)

In the second phase, there are α1 + α2 parties to choose from in total, out of which α2 are in Pˆ2 and α1 are in Pˆ1. Since we chose 1y+γ parties randomly we have:

        ˆ     --α2--- -α1 +-α2    --1--
                        E(|LII ∩ P2|) = α1 + α2 ⋅(c+ 1)α2y = c+ 1y
(9)

and

                α1     α1 +α2        α1
                        E (|LII ∩ ˆP1|) = α1-+-α2 ⋅(c+-1)α2y = α2(c+-1)y
(10)

Using the above equations we can compute the expectations of X1 and X2:

where the second equation holds because LI and LII are a partition of L and the third follows from the linearity of expectation.

Similarly,

The above imply:

E(|X |)
                        ----1--
                        E(|X2|) = c

A.2 PoR-Fair Definition and Lottery (Cont’d)

This section includes supplementary material for Section 3.1.



Rand(P,t; r)
1.
Initialize P := .
2.
For each Pi P with party-ID pid:
(a)
Compute si = h(pid,r).
(b)
If T(si) log |P|
                        -t, then update P := P∪{Pi}.
3.
Output P.



Fig. 11: A simple uniform sampler based on a hash function h

Lemma 2. In the random oracle model and assuming |P| > γt for some constant 1 < γ < 2, and t = Ω(log 1+ϵk) for some constant ϵ > 0, the algorithm Rand(P,t;r) has the following properties:

1.
Exp(|P|) = t
2.
For any constant 0 < δ < 1:
Pr [|(1- δ)t ≤ |P¯| ≤ (1+ δ)t] ≥ 1- μ(k),
for some negligible function μ.
3.
For any rr, the output of Rand(P,t;r) is distributed independently of the output of Rand(P,t;r).

Proof. For Properties 1 and 2, because by assumption h behaves as a random oracle, we know that for every Pi, Pr[Pi P] = |Pt| independently of whether or not any other Pi′ ∈ P. Hence, the random variable corresponding to P is the sum of |P| independent Bernoulli trials with the above probability. Therefore, its expectation will be Exp(|P|) = t, and by a simple Chernoff bound, we have Pr[|(1 - δ)t ≤ |¯P| ≤ (1 + δ)t] 1 - μ(k). Property 3 also follows from the random oracle assumption which implies that the output of h on any inputs xxis uniformly and independently distributed.



RandSet(P,t; r)
1.
Initialize P := .
2.
For each Pi P with party-ID pida :
(a)
Compute si = h(pid,r).
(b)
Interpret h(pid,r) as a k-bit integer ni.
3.
Order the parties in P according to their corresponding ni’s.
4.
Set P to be the set of the first t parties in the above ordering.
5.
Output P



Fig. 12: A simple uniform sampler without replacements based on a hash function h

a  In our blockchain construction, pid will the Pi’s public key.