rucknium presented simulation results for the Nyx eclipse attack under different patches and adversary strategies (separate /24s vs. 10 nodes per /24). His patch and ofrnxmr’s proposed changes perform roughly the same in the reviewed scenarios; ofrnxmr’s aims to handle more diverse strategies and includes bucketing, coarser deduplication, test-before-evict, and one outbound peer per netgroup. Images of results were shared. interestingband argued that any P2P without node weights is doomed, that whitelist changes are pointless, and that the correct approach is weighting nodes by hashrate/mining capability (non-miners connect via miners). Several participants pushed back: most nodes do not mine, a small miner could give an adversary an advantage, IPv4 scarcity currently provides a form of address limitation, and the proposed patch is a simple, practical defense against the specific Nyx cookbook attack rather than a comprehensive sybil solution. vtnerd supported the PR for that reason while noting residual issues without IPv4 scarcity. ofrnxmr described the concrete changes in the proposed series and noted they are not mutually exclusive with rucknium’s PR. rucknium listed possible paths (merge his PR, ofrnxmr’s, both, do nothing, or another solution). Discussion continued on list-size trade-offs, academic vs. practical approaches, and the need for a stop-gap while larger designs are explored. rucknium: 7. Shi et al. (2026) "Are Unreachable Nodes Truly Safe? Fully Eclipsing Monero’s P2P Network!" (https://arxiv.org/pdf/2609.10260). p2p: increase white_list size and change connection selection algorithm ( rucknium: ofrnxmr: Do you want to discuss your proposed patches? interestingband: p2p without any weight for nodes is doomed to fail by design, since all nodes are equal interestingband: No idea why you are wasting time on white list change, it's pointless plowsof: rucknium: interestingband: It fixes this specific attack. It's not pointless. interestingband: There is an approach for p2p layer around nodes based on their weight which should be linked to their mining capabilites, all other nodes should be connected via them. Done. interestingband: It doesn't fix any attack interestingband: It's the same pointless approach as OSPEAD for decoy selection rucknium: The simulation proves it fixes the Nyx attack. interestingband: Your simulation is far from reality then, bcs monero should work with any anonymous network jeffro256: Solution to problems with decentralized network: make it centralized. Nice. > interestingband: There is an approach for p2p layer around nodes based on their weight which should be linked to their mining capabilites, all other nodes should be connected via them. Done. ofrnxmr: Not the same thing, but the 101s drop replacement i spoke about at last meeting (not implemented) would add some metric of weighting to whether peeer connections are dropped (instead of random selection). My series does test-before-evict as well vtnerd: The change makes the attack harder, but as interestingband: points out its difficult to determine which nodes to select and why. The node weight isn't anymore centralized than the mining process boog900: most nodes do not mine and a lot of miners don't run nodes vtnerd: Otoh, most nodes arent mining so Im not sure how that would work vtnerd: Yes boog900: Chainalysis would just need to run a small miner to get an advantage over normal nodes gingeropolous: i've tasked the bots with a similar thing, current progress here: boog900: Or insert adversary plowsof: is mining hash cheaper than renting ips? who knows vtnerd: chainanalysis just needs to convince everyone to switch to ipv6 and it's the same issue rucknium: My patch definitely isn't meant to solve all network sybil issues. It's just a simple, quick patch to prevent major network disruption if an adversary decides to use the Nyx cookbook soon. vtnerd: Yes, I support the pr for that reason. Just pointing out that it's dicey without ipv4 scarcity ofrnxmr: rucknium do you want to share the prelim results of the recent sims? rucknium: Yes. Do you want to explain what you patches do? syntheticbird: vtnerd: on the topic of expensive addressing and communication protocol against sybil attacks. monero p2p over meshtastic would be a blast for common people and a bummer for adversaries. rucknium: your* rucknium: meshtastic bandwidth is likely too little. syntheticbird: true boog900: Yeah our current network security relies on addresses being limited, I don't think PoW is the answer though syntheticbird: sadness then interestingband: jeffro256: You don't get it; it's about being clear about who is partiicpant and who is not, and assumptions of the decentralized "game". And centralized way is what you all are doing by relying on ipv4 subnet. rucknium: Recently, 10% of Tor exit nodes were acting maliciously. Then the Tor project just removed them from the directory. Monero can't do that. ofrnxmr: * Bucket whitelist into into 256 buckets of 16 > rucknium: Yes. Do you want to explain what you patches do? ofrnxmr: * bucket graylist into 256 buckets of 32 ofrnxmr: * dedup by /16 instead of /24 ofrnxmr: * test peers before evicting from whitelist ofrnxmr: * one outbound peer per netgroup (IPv4 /16, IPv6 /32)[... more lines follow, see https://mrelay.p2pool.observer/e/nMCU6rgLd3BQR2l4 ] rucknium: image (outbound-adversaries-unreachable-status-quo-rucknium-ofrnxmr.png) rucknium: ^ Here the Nyx attack eclipse results. The first two you've seen before. The bottom one is ofrnxmr 's patch. interestingband: I didn't specify anywhere any assumption about underlaying network cleanet, tor, i2p. The approach with explicit weight linked to hashrate works with any network. rucknium: It's stochastic, so just one run with one unreachable node doesn't show the large-sample average. ofrnxmr: rucknium: This is if the attacker has each node in a separate /24 rucknium: Yes ofrnxmr: Results look different if we concentrate the nodes, and likely different still if the ratio of goodto bad is less in our favor rucknium: Now, when the attacker has 10 nodes in each /24. (Well, not "each" /24. But 10 per /24. Same number of adversary nodes total (1000) ) rucknium: image (outbound-adversaries-unreachable-status-quo-rucknium-ofrnxmr-10per.png) rucknium: In this scenario, even the unpatched node does OK after a while because it has rbrunner7 's subnet deduplication logic. interestingband: jeffro256: And alternative p2p layer can be active in parallel with what is active atm, with explicit share of resources between them. This way you get benefits of both at the cost of 1/N resource per each channel of communication. LOL rucknium: I'd say with the scenarios we have reviewed, my patch and ofrnxmr 's patch perform roughly the same. But ofrnxmr 's patch intends to handle more diverse adversary strategies, AFAIK. interestingband: What are the assumptions of your model for simulation, and what is proven in your simulation ? or it's just statistics for different strategies ? rucknium: It is reassuring that an adversary really needs to have IP addresses in separate subnets to perform the attack. Thanks to gingeropolous for helping patch a bug in monerosim to allow us to test the 10per-subnet scenario. rucknium: interestingband: I explain that in the PR description: rucknium: I assume that the adversary is carrying out the Shi et al. (2026) Nyx eclipse attack. There are other possible attacks, of course, that I don't model in the simulation. interestingband: "TL;DR: An adversary with 1,000 or more IP addresses under its control ..." this part is solved with p2p based on weight linked to hashrate interestingband: and then miners has weight, non miners has to rely on some miners or be a miner interestingband: done interestingband: whole PR can be wiped gingeropolous: for a well-funded adversary hashrate isn't as expensive as we'd want it to be. trust me im a believer in PoW solves all the things but .... rucknium: I solve it in fewer lines. interestingband: Nah, it's the only mechanism to protect network and consensus: contribute to hashrate interestingband: or rely on someone who does boog900: > or rely on someone interestingband: it's pointless to have p2p network disconnected from consensus rucknium: Possible paths I see are: 1) My PR is reviewed and merged. 2) ofrnxmr make a PR and gets it reviewed and merged. 3) combination of both. 4) Do nothing. 5) Some other solution is developed. interestingband: 5 sgp_: There are clearly downsides to prioritize by hashrate lol. But if you really want to propose this idea then write it up instead of interrupting interestingband: and all prev options are not an option at all since they are analysed in the context of all monero components ofrnxmr: rucknium: Ours arent mutually exclusive, mine can easily revert some of the changes from yours if mine is to be accepted later interestingband: sgp_: I will ofrnxmr: its much more lines than yours, of course, since it solves multiole issues that can arguably land on their own interestingband: sgp_: And I'm not just interrupting, I've already said how to implement it so that both ways can coexist at the same time in backward compatible way rucknium: vtnerd: I welcome you to review my PR on GitHub: ofrnxmr: I mean, monero doesnt typically like when you do 20 things in a single pr, so i might just start upstreaming certain commits that fix actual bugs, or fix bad behavior rucknium: Anything else on this item for now? interestingband: rucknium: What are the downsides of bigger lists ? Why not have it bigger or smaller ? interestingband: "The defense scenario simulation increased the white_list size limit from 1,000 to 10,000. The limit was set arbitrarily. To be effective, the value in the simulation just needed to exceed the total count of the sum of honest and adversary nodes." So that constant is just a number to "fix" one attack scenario in your simulation, without validation of all other use cases or even proving anything at all ? rucknium: Bigger list would mean slower performance in routines that operate on the list. interestingband: Basically blind bit flip interestingband: How many hours has been wasted on that ? LOL rucknium: This research team that has written multiple papers about eclipsing the Monero network has suggested increasing the white_list size for over a year. rucknium: Simpler fixes are better than complex fixes, ceteris paribus. ofrnxmr: Mine increases the size because its not reasonable to bucket peers with a small 1000 whitelist interestingband: rucknium: Those ppl successfully wasted time in a spirit of academic research with their useless formalism. That's the most important part of academic research that should not be adopted by MRL. ofrnxmr: white = 256 * 16 = 4096, gray he 256 * 32 = 8192. Iirc bitcoin is 256 * 64 = 16384 ofrnxmr: Mine ^ rucknium: This attack is very practical and not just hypothetical (formal) at all. rucknium: I'll end the meeting here. We can continue discussing after. interestingband: Yes, but your approach to solve it is wrong and solution is bad rucknium: Thanks everyone. interestingband: The same as OSPEAD, real attack / problem, but solution is bad boog900: interestingband: rucknium: picked this up after multiple reports about how weak our address book is, in the latest paper they did a real attack on our seed nodes. The solution stops their attack. Yes it does not go all the way to make our address book and p2p layer completely secure but it could certainly be a stop gap while you work on a whole extra P2P layer. boog900: Thanks rucknium 🙏 syntheticbird: Thanks Rucknium interestingband: boog900: My commetns mostly about goal and analysis of the solutions for the stated problems (problems are kinda known already). Bcs most solutions I don't like personally can be rejected by anyone else who is doing proper indenpendent/unbiased analysis of them. sgp_: interestingband: just propose PoS or whatever with nodes with stake getting connection preference syntheticbird: nah spirobel already have the PoS proposer role interestingband: I was talking about aligning p2p with PoW consensus, do you see a difference ? sgp_: no I don't pls explain. PoS = PoW sgp_: we can't have 2 people championing similar ideas or else it might make progress interestingband: sgp_: Please make sure that you are not touching any code with this depth of understanding of reality. boog900: Its easy to say it would be better to do XYZ, but until XYZ is done all we have is Ruck's PR. sgp_: yeah ruck's is a trivial fix with clear immediate benefits. it's not meant to be a comprehensive solution jpk68: lmfao syntheticbird: jpk68: ssssshhhhhhhhhhhhhh jpk68: sgp_: ^ jpk68: That's what I meant to reply to, oops syntheticbird: Don't say oops. Impose your mistakes. gingeropolous: interestingband: if you wanna read the great stat machines output from your entropy: syntheticbird: inb4 your sim sucks because you didn't specify things correctly and its all your fault syntheticbird: also I have a working prototype that is much better gingeropolous: its not even a sim at this point, just arithmetic. syntheticbird: gingeropolous: don't underestimate one's blindness in front of a proof interestingband: boog900: Btw, I think approach with independent ref implementation is a nice way forward, but it can be done faster I think than how it's going with cuprate atm. spirobel: reductive > syntheticbird: nah spirobel already have the PoS proposer role gingeropolous: although i do like what the bot came up with as an alternative sorta based on it: "5a. Inbound connections beyond a per-/16 quota pay a workshare per handshake" syntheticbird: spirobel: how so? You are very into proposing PoS. Does that remove any of your other accomplishment? syntheticbird: no interestingband: syntheticbird: top-bottom analysis doesn't require looking into simulation numbers, since my comment was about simulation model setup and it's assumptions. spirobel: syntheticbird: we talked extensively about this. People can just read the comments i made back then and left on the PoS CCS syntheticbird: well ok sorry for the joke boog900: interestingband: Nice 👍️ syntheticbird: interestingband: how? interestingband: sgp_: Atm There are 2 approaches for the best consensus, and it's either PoW (but it requires diff logic around RandomX) or something called proof-of-pledge based on physical devices with real pledge inside, so it's not a ephemeral PoS with nothing at stake, but it's a stake per participant, and it looks like it can't be implemented in reality due to some fundamental reasons. boog900: syntheticbird: Just yolo slop it all interestingband: syntheticbird: How ? 1. stop writing prose about code, and write code, 2. ... syntheticbird: interestingband: That's my bad. I was expecting some constructive from your mouth but ig I set the bar too high. boog900: You know a lot about writing code and not talking right? interestingband: syntheticbird: Nah, i've just commented about your blog post about code, it's a waste of time syntheticbird: interestingband: just imagine if I gave a fuck syntheticbird: about your opinion syntheticbird: imagine sgp_: ooh this pledge thing sounds fun, is it like the pledge of allegiance to monero. nodes need to prove they are true people who have sworn allegiance, and aren't a bad guy. so kinda like a permissioned network cult, but cool interestingband: LOL gingeropolous: instead of getting hostile i recommend the ignore feature of this glorious technology syntheticbird: sgp_: putting symbolism on the protocol like that would be hilarious sgp_: ok i'll stop sorry. put up or shut up with a written, organized, well-reasoned proposal sgp_: until then I don't care about comments about some mythical PoW node selection basis interestingband: sgp_: Nah, it's about real resource backing digital token, any real resource locked in a box gingeropolous: im tellin yah, there might be something in the botslop: " Inbound connections beyond a per-/16 quota pay a workshare per handshake" interestingband: sgp_: In the context of MRL, there is a need for a formal proof for cryptography, but atm it's just audits with "opninions", so is your advice applicable to your own efforst or no ? interestingband: Anyway, I'm talking about research relevant for monero, it doesn't contradict with the purpose of MRL sgp_: uh, no sgp_: sgp_: see "The Latest Development: zkSecurity's Formal Verification" interestingband: I can't submit CCS proposal due to downtime, and any work upfront isn't eligible for funding, so that's why it's private atm > sgp_: ok i'll stop sorry. put up or shut up with a written, organized, well-reasoned proposal sgp_: and also see "What Formal Verification Doesn't Tell Us" interestingband: sgp_: That one is nice, I even reacted to your comment about it back then. But it's not enough, and it's just 1 audit interestingband: sgp_: My entry is effect in reality, I never chase goals that are disconnected from reality. I guess my formal verification is a bit different from what is done by others. syntheticbird: interestingband: You can there is a pastebin for it interestingband: operations CCS means all types of participants can interact with each other, offline archive / queue of proposals isn't operational CCS interestingband: syntheticbird: I hope you are not touching any critical code with this depth of understanding of reality. syntheticbird: ^ > interestingband: Please make sure that you are not touching any code with this depth of understanding of reality. syntheticbird: sense of humor or genuinely low IQ ? interestingband: I've never reviewed any code written by you, but I just don't know any human who can solve complex problems with code and like to write prose about code at the same time. syntheticbird: I need to frame this message on my wall syntheticbird: this is peak comedy interestingband: https://github.com/Cuprate/cuprate/pull/6, 2 PRs where you add relatively big change and then wipe it later, so it doesn't look like I'm wrong, LOL interestingband: I don't argue about your ability to write prose, you are probably good at it rucknium: This conversation can be moved to #monero-research-lounge:monero.social thomasbuilds: yeah u guys need to move from the lab and go sit on the long chairs ofrnxmr: Ok, we dont needthe echo thomasbuilds: arguing in the lab can break a sample and boom next corona virus comes out interestingband: rucknium: ok, I have nothing more to add on that topic atm View quoted note →
↑