Replying to Avatar Super Testnet

I am designing my implementation with an "admission fee" system where the coordinator charges people money to get into the pool. In this design, I think reputation is important. Nothing stops a coordinator from charging 100 people $1 to get into the pool and then running off with the money without ever actually letting them in. In order to allow coordinators to grow a reputation for honesty, I think it is important that they be *pseudonymous,* rather than *anonymous.*

I did think of a way to do the admission fee atomically (i.e. so that users don't pay unless they get into the pool), which would allow for full anonymity because in this alternate model, the coordinator is not even trusted with a single sat. But the way I thought of requires each user to broadcast a base layer transaction in the "sad path."

For example, if a troll joins the signing ceremony and then refuses to sign anything, that would force each user to use the sad path to recover their admission fee, and thus do a base layer transaction. I suspect a typical base layer mining fee will cost more than $1 in the majority of cases where a coinpool might be desirable, so doing the funding transaction atomically (at least the way I thought of doing it) would give trolls the ability to cause asymmetric misery in a pool of e.g. 100 people. Namely, it would only cost them 1 uneconomical base layer transaction to make 100 people do an uneconomical base layer transaction or lose their money.

I thought that was an unreasonable tradeoff, especially when the admission fee is likely to be a low amount: any coordinator who charges a *large* admission fee is likely to be dispreferred by users, who will likely gravitate toward coordinators with three characteristics: (1) they charge a low admission fee (2) they have a good reputation concerning "not stealing the admission fee" (3) they have a good reputation concerning uptime

Very interesting!

And consider that users closing the laptop, or even just a flaky Tor route, can cause failed attempts with missing signatures, so this is likely a very common case, especially for large rounds.

Reply to this note

Please Login to reply.

Discussion

Yes. The design I opted for instead ejects trolls from the signing ceremony if they fail to send in all requisite signatures, or send invalid signatures. Everyone else just restarts the signing ceremony without the trolls, but this time their admission fee is already paid, because they paid it the first time, so there's no need to pay again.

This model disincentivizes trolls; it costs them money to join the ceremony but refuse to sign (or give an invalid signature), but no one else is effected except that they restart the ceremony. In my tests with 11 people, the ceremony takes about 30 seconds, and if 1 user was a troll, it takes an additional amount of time that is slightly less than the original amount, due to having one less person. (So something like 30 seconds for the first try + 25 seconds for the second try.)

Another factor about anonymous coordinators: my hope is that users who have Umbrel nodes or similar will also run my coinpool software and thus onboard their friends and family to bitcoin. This is, in my opinion, safer than doing so via LNBits or LNDhub because those solutions are custodial, and if your Umbrel gets fried while your friends and family have their money on it, they can lose that money.

My coinpool software, by contrast, is self-custodial, so if your Umbrel gets fried, all it means is your users have to use their unilateral exit transactions to get out of the pool. That seems safer to me and thus more likely to appeal to the types of hardcore bitcoiners who purchase Umbrels and similar node boxes.

Very nice.

So what are the different phases of the protocol, and what's the timeout for each of them?