The usability of ergomixer is dependent on the existence of half-mix boxes.
However, creating such boxes has the effect of waiting till someone uses such boxes.
In order to provide incentive to create half-mix boxes, we can use the idea of “stealth addresses” by @kushti
Recall that both half-mix box and stealth address rely on some g^x
for secret x
known to the owner of the half-mix box.
Let some user, say Carol, be the one providing incentive. She will randomly pick some (or all) of the existing half-mix boxes and use their g^x
to make stealth payments to all the owners.
The half-mix box owners can then accumulate and use those stealth payments in any way they choose; in particular they can use them to participate in the mix process again.
If some owners forget to pick such stealth payments, those boxes will be lying unspent and essentially wasted. In order to avoid this, Carol can make the stealth payments protected by the script:
stealth_owner || (height > timeOut && Carol)
, which will allow Carol to collect such unused payments after some timeOut
height. The timeOut is not really necessary… (she can just add || Carol
)