Replies: 5 comments 5 replies
-
Thanks for working on this. Have you seen https://github.com/PulpCattel/jm-scripts#jmsim? I would recommend open sourcing the code for your tool if you haven't already, otherwise it's hard to recommend and use it. From just a quick look I'm curious about a few things.
|
Beta Was this translation helpful? Give feedback.
-
I was thinking of a github repo or something like that. If it's a standalone HTML file (but I see that it needs to download the
Here there's a simple visualization of the selection process: https://gist.github.com/chris-belcher/87ebbcbb639686057a389acb9ab3e25b#cost-of-sybil-attacks I think an important part is that for each CoinJoin as makers are selected they are removed from the next "draw". So the probability of being chosen changes at each selection "round".
This topic comes around often. See for example: #1247, but you can find many others (often feedbacks on this are contradicting, some people would prefer even stronger defaults, say exponent 2 instead of 1.3 for example.) I think almost everyone agrees fidelity bonds are a suboptimal mitigation but better than nothing (as you can see, most of the 2k offers without bond are probably malicious in some way. If the top dogs in the orderbook want to spy, at least we know for sure they have to lock hundreds of btc to do so).
Possibly, but there are a lot of things to consider. Some that come to my mind:
|
Beta Was this translation helpful? Give feedback.
-
I've improved a lot the web app basing it on your script. It's now available under GitHub pages built from the verifiable code repo! Thanks a lot for your suggestions. It's available at https://m0wer.github.io/joinmarket-fidelity-bond-simulator/ and this is the repo: https://github.com/m0wer/joinmarket-fidelity-bond-simulator |
Beta Was this translation helpful? Give feedback.
-
IMHO is definitely worth it. Fidelity bonds are probably the single most important decision a maker has to take. Fidelity bonds are also the main defense against sybil attack, so takers would certainly benefit from knowing who they are picking based on their settings. The code for this is unlikely to change, so I'd expect almost no maintenance burden (it can also reuse code from the
No, I'd say it's not really stable at all, and it would be even less stable with more users. I also don't think it's true that makers have to make this decision once. This is a market and if they want to be competitive they should keep an eye on what's happening. Fees can be changed with a simple restart, so they are less of a problem, but a bond is committing and I'd personally prefer to know exactly what I'm getting in return for locking my sats.
Well, some people run JM to make money, that's the whole premise of the system. If you are locking 100btc in a bond I don't think you'd mind to get something in return other than privacy. Relative fees work very well with big CJ amount.
It's certainly more dynamic, since you can simply change your fees and restart. The impact they have is for sure smaller than your fidelity bond. You can set your fees to 0 and you would get nothing like a decent bond would give you. |
Beta Was this translation helpful? Give feedback.
-
Lets talk about the hundreds of spam offers with no fidelity bonds. They look like they're engineered by the same team or person to collude in as many coinjoins as possible and sniff out information. We should reduce this attack by requiring more makers with fidelity bonds. The default should probably be changed to 5% from 12.5% currently. This should also encourages legit makers to add fidelity bonds. The next likely step for the attacker is to tack on customary fidelity bonds onto their hundreds of makers so that they can be part of the coinjoins again. We'll need to have a way to make this futile. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Currently there are around 2,000 offers on the order book. At first this sounds good, but if we only consider offers with a fidelity bond, the number drops to less than 100. But from those hundred, the top 6 have 90% of the total weight in terms of bond value.
This is crazy, these must be involved in almost all coinjoins!
I've discovered this while investigating what would make a good bond value, with the intention of becoming a maker and at least getting some coinjoins for free. I've developed a tool to calculate the chances of being chosen depending on the bond size and time. And I've discovered that even with 10M sats locked up for a year, the probability of being chosen as one of the 7 makers with a bond is 0.0006%, even lower than the probability of being the "bondless" peer of ~1/2000 (0.0138%).
This basically happens because the top offer has the mouthwatering amount of 141 ₿ locked for more than a year. And it really disincentivizes plebs from submitting fidelity bonds. Why would someone lock 10M sats when the chances of being picked would be higher with those 10M sats just sitting in a secondary instance looking to be picked as the "bondless" peer?
Additionally, it's concerning that for a 10M sats coinjoin there are only ~40 makers with bonds. That does not feel like a large enough "anonymity pool."
Feel free to correct me and to play with my instance of the orderbook and the
simulatorthat I've created for this research.Happy coinjoining!
Edit: strike-through old simulator URL -> new simulator
Beta Was this translation helpful? Give feedback.
All reactions