They defederated because they were both large Lemmy instances with zero review process for joining users, and they’d rapidly starting acquiring bots and bad actors. Because of federation, these accounts could interact on Beehaw’s server like they were locals.
Beehaw on the other hand, has a human-powered review process for signup. It isn’t strict, but it keeps out bots or low-effort users. Beehaw’s community goal means that reducing the amount of bots, bad actors, and low-effort users on the platform is a priority for them. Their moderating is also human-powered, and very involved - not outright banning/blocking. They reach out to users to discuss their content’s intent, and issue warnings/requests personally as needed.
That level of moderation is fantastic for fostering community and is compassionate for ignorance and error; but it isn’t scalable when being hammered by bots and an influx of new accounts. Beehaw’s only protection from instances that shelter bots and bad actors was to defederate from them until those instances were able to address them somehow.
The Beehaw admins have reached out to the admins of the other instances; their hope is to find a solution that reduces the amount of bots and spam accounts creating on .world and .works. They don’t want defederation to be a permanent solution, it’s just the only feasible one they had.
It’s feasible that there are other variables that have been missed, but essentially this works. The server asks us a question, and we answer it. We just skip the bit where we provide evidence.
It’s like looking up the answers in the back of the textbook on a test. The only thing the server sees is the paper we’re handing in, it has no idea if we cheated or not.
Boring technical explanation:
For a server (in this case, YouTube) to see what a client (your computer) is doing, it has to reach out and ask it. When a request is made, the two points will ‘handshake’ to confirm that they heard the request, then when they’ve done it. It looks something like this:
These steps can be repeated any number of times in response to a single user mouseclick, depending on what you’re trying to do. A ‘request timeout’ error is what happens if client/server asks “are you prepared?” and it takes too long for the server/client to answer “yes, I am”, so you hang up the phone.
For the server to treat clients differently at all, it needs to contact them for feedback. For adblocking, it has to ask your client if you’re adblocking. Usually the server does this by sending the client a request to serve an ad - if your client never answers back to confirm it was loaded, then the server knows you blocked the ad. The devs can tell the server that if it doesn’t get a certain answer, to enable the punishment effects. (They’ll technically be sent anyway; they’re just hidden/disabled by default if your client handshakes the ad.)
What these scripts do is lie to the server. The server asks the client if we received the ad, we ignore the script that checks whether the ad is loaded and instead directly change the answer to claim it has. Since all the server sees is the confirmation, it doesn’t know the difference.