This would solve some of the problems. If only 2 instances know about the votes, post instance and sublemmy instance, you can reasonably expect to get most instances to never release that info. It would allow either the sublemmy or post instance to manipulate around in the votes, but most manipulation would be detectable by the respective other instance.
It would open the door however to manipulating around with internal posts made from the instance in a sublemmy on the instance. And it would allow the post instance to drop votes selectively, though I think that is possible currently all the same.
Votes being sent to both the sublemmy and the post instance simultaneously would make manipulation a lot harder. And for cases like internal posts, you could add another involved “judge instance” that receives the vote details directly from source, and is merely there to confirm the total. Instances that hand out non-independent “judge instances” could be labeled as untrustworthy in the lemmy community.
So you end up with a list of instances per post that votes are reported to, to which you add the post instance, sublemmy instance, judge instance, and maybe some more.
In terms of implementation, I think the activitypub protocol needs an origin for votes, right? I would say an instance can just report the votes coming from a stock of obviously fake accounts, like “masked_upvote_1” to _999999 … and “masked_downvote_1” to _XYZ.
About the votes, I am not sure. It could be done as a lemmy-internal feature where lemmy instances and other instances knowing of the lemmy protocol send the info to all the relevant instances, while any votes from external instances only arrive at I guess the post instance and that then forwards it on to all other instances. This way the checking doesn’t work for software unaware of that lemmy specific vote implementation, but everything is still compatible.
You could then even for those lemmy-external votes add an interface on the judge instance, that would confirm via pm if your vote has arrived.
Do you think this could work?
That isn’t really going out of your way, it is the base mode of how the fediverse works. Looking at something on a different instance.
Plenty of people just use mbin and see this, without any action at all.
The point is that as it stands right now, there are already basically no restrictions. The only thing perhaps missing is the knowledge that you can simply copy paste a link into fedia or another mbin instance to view upvotes.
You can open an issue on mbin about it, to restore a semblance of restriction. But currently as it stands, all restrictions are about as fallen as they could be.
You can ofc argue that we shouldn’t open another equivalent hole in lemmys webui and api, so that you can in the future remove the ability from mbin.
I would in turn argue that this system has always been egregious, and that in the same sense as banning encryption you never hit those you want to hit using incomplete restrictions. Regular users are led to believe their votes are private, while the worst dataminers or trolls will always have their instances to query all of that info.
And how could you inform people that their votes are public without at the same time telling them how to get access to that info?
If mbin removes the info, you will get another fediverse software showing it. You will get fediverse activity pub log info pages, specific vote info pages, it will never end.
Has reddit ever managed to kill the 200ᵗʰ removeddit clone?
Please instead put your effort into changing the way lemmy federates, the only way to fix this is to make vote details private, between only a select few instances. An mbin dev in the other thread mentioned PeerTube as an example implementation where you could remove vote details like that.