this post was submitted on 06 Feb 2024
209 points (96.9% liked)
Asklemmy
44005 readers
662 users here now
A loosely moderated place to ask open-ended questions
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
A lot of the ideas presented on this thread are less applications for federation and more applications for blockchain of some kind. For example, wikipedia or uber eats replacement. Before you blindly downvote me for this suggestion, let me explain why.
In federation, you have servers which talk to each other. Users own their own accounts and there are multiple repositories of information. Lemmy is a repository of links and comments, each lemmy instance has its own repository. Mastodon is a repository of tweets, replies, and DMs. This works great. Everybody makes their own repository of information, and users can subscribe to any repository they like. They can also, via federation, access other repositories and "pull" or "push" data to them. That last sentence is the magic of federation you don't get on platforms like Facebook. ActivityPub and federated platforms solve this problem of provider lock-in, at least partially.
This fediverse is not great when you need to establish a single repository of information that everybody in the network uses and is in sync for all users. Because it has no mechanism to arrive at consensus as to what should go into that authoritative repository. Even if all participants can be relied to act honorably (something the internet rarely provides), there will be disagreements about what should go into that repository. Edits may come in at different times, how do we resolve which edit goes "first"? Because it may make the second edit irrelevant, etc. Federation can't solve this problem. ActivityPub can't solve it and Nostr can't solve it. But..
This is the exact problem blockchains solve: how can you establish a centralized repository of information (ledger) and administer it in a decentralized, P2P way where you can't trust all participants to honestly participate? You cannot develop P2P systems which maintain a centralized repository of information without blockchain because no other P2P system has been able to solve this problem. There is no other mechanism of arriving at consensus and prevent sybil attacks.
Wikipedia? Centralized repository of information. Uber eats? Centralized repository of foods available, drivers, customers, and orders. eBay? same. And by the very nature of blockchains, they can also have an economic layer built into them which provides a means of exchange among participants. Useful for an eBay replacement, maybe less useful for a wikipedia replacement. Those means of exchange ("tokens") can be used not just for transfer of funds, but also for things like building/scoring user reputation and incentivizing specific behaviors, especially if you want to incentivize behavior that is contrary to a user's normal economic interest, such as providing a subsidy for restaurants on Uber who use more expensive, but more sustainable food packaging.
The non-P2P solution is to trust the administration of this centralized repository to a trusted authority. We trust wikipedia to administer articles and decide what ultimately goes in them. That system works fine for wikipedia, I'm not convinced we need a decentralized version.
There are many blockchains with various technical attributes which may work better or worse for solving these problems. They may use proof-of-work, proof-of-stake, etc. Some are more decentralized than others and have features like censorship resistance, privacy, smart contract, etc. But they solve this exact problem.
Isn't the point of blockchain that it's immutable? What about people who want to delete their own stuff? Or even mods or admins that have to delete stuff for legal reasons?
Immutability is not bad, there are some situations you want immutability. For example, to secure voting systems, you may want to be able to write on the chain that "precinct 156 reported votes x/y/z in this quantity" so that if anybody comes along and tampers with those numbers later on, you can point to the chain and say "no see, actually, these are the real original numbers that the precinct published". The precinct could lie about their numbers of course and publish bad numbers to the chain, blockchain doesn't protect against that (unless the votes themselves are recorded on the chain by the individual voter), but the blockchain protects against those numbers changing in the future or another party incorrectly claiming they are a/b/c when they are actually x/y/z. That's a situation where immutability helps. Same with financial transactions. If you sent somebody money, you want a record of that (a receipt) if they later claim you never sent it to them. Examples of records which have a high degree of immutability that people use in everyday life are: court records, census data, house deeds, etc.
Blockchains usually have some degree of immutability but from a technical perspective they don't necessarily have to. If we're talking about data storage, you don't have to store the data itself on the chain, the chain data can just "point to" off-chain data which you can take down or modify at will.
An example of a scenario where this could work is: you have a blockchain for coordinating the sharing of medical information between different parties. You, as a user, have an account on this blockchain. The only data stored on chain is a list of parties and who you have authorized to receive your medical data along with a pointer to a file storage system like Amazon AWS which contains your medical data in encrypted format. You can add or revoke authorization at any time by changing how that data is encrypted. Whoever you gave authorization to prior may have made a copy of the data at that point in time, but you can block them from accessing new data you put out. When Amazon AWS gets a request to transfer a copy of your data to a new party, they can check the blockchain to see if that party is authorized to receive it.
The benefit of such a system would be that:
That's useful for "real life" data, so to speak, stuff that should be immutable, save for a few occasions, like correcting errors; but my question was geared towards internet content. Taking your example of Wikipedia, if the service suffers from a wave of trolls, as it exists today, it can roll back the changes. With a blockchain? That's significantly harder, especially if useful edits happened in the meantime.
There's also this problem:
Supposing this Wiki doesn't store any of the content, then the endpoints become the targets, which beats the whole purpose of the blockchain resilience/immutability. An endpoint that can't be reached is useless, one that has been compromised is even worse. You can trust the blockchain, but not the endpoint. And if the endpoint is where the "real stuff" is at anyway, why even bother with a blockchain?
I'm not convinced we need a Wikipedia that runs on blockchain, but for the sake of it being an interesting question, I'll answer it. Firstly, having a revision history is not bad. If you go to any wikipedia page, you can see most of the edits made, even those made by trolls, and the moderation decisions around those edits. This is good for transparency. When a user visits wikipedia, they see the "authoritative version" of that page, but the revision history is available to them if they want to read it. So with blockchain, you can roll back changes by changing which set of data is the "authoritative version" and you can have revision history, they are both important features.
There are a few types of data that are so harmful we can't have them, even in the revision history. For this kind of problem, we reduce immutability (as referenced before by using pointers instead of storing data on-chain), or we can prevent that data from being put into the chain in the first place. An example of a way to do this is to require that every new block (every revision to a wikipedia page) be approved by a set of users who have reputation >x. Maybe that means a moderator has to sign off, or 10 regular users with at least one approved edit, you can set the threshold however you like and assign reputation however you'd like. As a user's reputation is recorded on the blockchain, any node can easily verify their reputation amount.
The purpose of the blockchain in this wikipedia example is to:
Deleting anything from the internet is theorically impossible, it shouldn't a mandatory requirement for anything.
Instead you publish a deletion request that politely asks everyone to pretend it doesn't exist
Whether it's impossible is up for debate. Deleting your data from any social media or google-like platform is pretty much impossible. Deleting your old blogger that hasn't been archived in any manner, perfectly doable.
There's also the blatantly illegal stuff that is removed from the wider net whenever it's found, like child abuse stuff. Imagine that kind of thing being available "forever" in a blockchain.
I meant in the sense that if someone got a copy while it was up, then it's not really gone. Even if the statists try to exterminate all copies, they will probably fail.
After all, even the pirate bay is still reachable in the clearnet. There is stilln a long way to go before they can really stamp out thoughtcrime.