Double accounting tables for player B and C among players {A..Z}:

  • + means to be creditor (receiver)
  • - means to be debtor (sender)
player A position
B -100
C 0
D +500
Net +400
player B position
A +100
C -100
D +50
Net +50
player C position
A 0
B +100
D -150
Net -50
player D position
A -500
B -50
C +150
Net -400

discharging with a coordinator:

In an ideal world where we make sure all players are present:

  1. coordinator makes sure if there is no discrepancy in double accounting
  2. negative position players sends money to coordinator
  3. coordinator deals the money to creditors

If it is expected that some of players may not join

  1. coordinator makes sure if there is no discrepancy in double accounting
  2. coordinator calculates the set off between attendents sends back new tbles
  3. negative position players against Coord sends money to coordinator
  4. coordinator deals the money to positive position players

Example continues where D is missing in the session:

player A

player position
Coord -100
D +500
Net +400
  • Was expecting to be paid but it turned out it has to be pay 100 units now since D is missing

player B

player position
Coord 0
D +50
Net +50

player C

player position
Coord +100
D -150
Net -50

Discuss

1. Shielded accounting

  • Assuming we are in shielded setting like zcash where coins are in merkle tree and spent coins are in nullifiers map.
  • Any player can issue an IOU for example A issues 100 unit IOU and give it to B. This is more less similar of creating new token where total supply is 100 units:
player A position
B -100
player B position
A +100
  • And B also can hand over some porsion of this IOU
  • Question can we invent some special issuer View key that they can also depcrypt the transaction of tokens that they issued?
player A position
B -70
C -30
player B position
A +70
player C position
A +30

2. We don't want coordinator to see positions

  • Can FHE help? Even some players are not present?
  • Can Coordinator make sure that double accounting holds then?
    • If positions are kept in a shield we can make proofs about consistency of positions?