There are good answers to these for some applications, but I don't see what they are here.
There are good answers to these for some applications, but I don't see what they are here.
Yes, it doesn't remove that data from the chain and a client could easily end up undoing deletes, but if you think that server based deletes actually remove the data, you might be in for an unpleasant surprise depending on the servers in question.
People redistribute snaps all the time even though they're supposed to "go away", yet people still use it.
Sometimes it's not about Big Bad Censoring Governments.
Specifically, this solves the problem of data consistency across different node/peers without needing a central (ie, Facebook's servers) master.
The way it works, is like so: http://gun.js.org/distributed/matters.html
However, a blockchain is still actually useful for a P2P Facebook. A blockchain that uses a consensus algorithm (PoW, PoS, etc.) is not scalable enough, though. But that is okay, as we do not need to solve the Double Spending problem for tweets/photos (see the previous link as to why).
So what does a "blockchain" mean then? A blockchain is a cryptographically signed linked list, often a DAG (Directed Acyclic Graph). But these graphs would more likely be social networking data, which is naturally a graph - and they would be signed with user's public/private key pair.
Solving for that is pretty easy, we already have it working:
http://hackernoon.com/so-you-want-to-build-a-p2p-twitter-wit...
And our goal is to build a social network that has distinctly different properties than Facebook, one that is based on psychological research and emotional intelligence:
https://hackernoon.com/a-new-kind-of-social-network-emotiona...
Finally, the hardest factor is to remove the complexity of cryptography. There turns out to be a good security standard that lets user emulate username/password combos (see the middle link for more details), in summary:
You use PBKDF2 to extend a user's password with a salt, this creates a Proof of Work which is used as an AES symmetric cypher key to decrypt their private key. Fully P2P, but with a traditional UI that users understand, yet PBKDF2 makes it impractical for a cracker to guess (or even a dictionary attack) against the user's account.
How do I delete data in this scheme? Maybe by signing each data "node" with a separate key, which can then be shredded if I want? Where would those keys be stored?
I would understand if you were pushing some alternative social network like Scuttlebutt/Patchwork but pushing database on every hacker news post with social media theme is strange.
Do you propose to replace facebook with gundb app that is possible to make in two minute tutorial: https://hackernoon.com/so-you-want-to-build-a-p2p-twitter-wi... since you share it everywhere?
Don't get me wrong. I think GunDB is wonderful project that i actually want to use for things but maybe this is not best way to get new users.
If i didn't know about GunDB and saw your frequent similar comments on Hacker news i would be pretty suspicious.
Ultimately, I have to choose one of two philosophies:
(A) Be ashamed of the free (MIT/ZLIB/Apache2 Open Source) code that I have spent tens of thousands of hours donating for others to use.
(B) Or strongly believe in why I've devoted so much of my life to, fixing these problems, and be proud to share and evangelize it with the world.
Obviously, I don't want to come off as a bot, but ever since the first day I started working on GUN I've gotten haters saying things. As a result, it forced me to grow a thick skin. Even if you try to do nice things, people try to hate you, be skeptical, or be suspicious (this is a natural human tendency).
So, do I be (A) fearful to not post or comment, simply because I know some will not like it or get tired of it? Honestly, the thought crosses my mind every time I basically do anything in life, but I've decided "No, that is an easy trap of depression and pessimism to get stuck in."
Instead, I've decided to be proactively do (B), that even if only 1 person gets value out of my post, and they discover "Aha! This is a free MIT/ZLIB/Apache2 system that does EXACTLY what I need!" then my belief is that the world is better off. Better off for them, better off for me, and hopefully better off for the users who use the app they create.
If I forced you to pay me $$$ to read my articles or $$$ to use my code, then there would be a strong argument that my behavior is unethical.
Or even if I tried to show you ads or mine your data, then that would be unethical.
The problem is, I'm building tools that fight that type of unethical behavior. But that immediately puts us at a disadvantage compared to those who do exploit/manipulate people/the-masses into doing things.
Now, what is the relevance of the week-long HackerNews-obsessed Facebook debacle?
Well, I hope my comments have pointed out clearly, that nobody would be in this situation if they used P2P/decentralized end-to-end encrypted systems. And that is exactly one of the reasons why I've built the tool, and donated it for anybody to use. However (perhaps this is my pessimism coming through), it seems like people get more glee complaining/griping about how evil Facebook is for hosting all their pet/child photos for free, while still playing the victim card, AND doing nothing to change their behavior or spend time/energy/work to build alternatives. (To clarify: We shouldn't pity Facebook, they profit a lot off of people, but building solutions is a better win for the world than complaining about it. Although I'm afraid comments like that will cue the haters.)
I do occasionally mention SSB, Mastodon, etc. but they also have their problems (Mastodon is federated, will lead to the same thing as with email, everybody will use gmail), SSB is way way way better.
So, there you go. Thoughts?
No person or company is allowed to own more than 24.9% of a banking charter, and preferably not more than 10%. The reason is that having multiple entities each pursuing their own agenda makes it less likely that everyone will collude and run off with the money. It doesn't especially matter who those entities are, as long as they're not closely affiliated with one another.
Similarly, for whatever problems democracies have, they tend to function at least marginally better than corporate-owned countries like Rhodesia, Batavia, etc. And economically, there is a reason why currencies tend to be a better store of value over time than in-app credits or company scrip.
Personally I think creating government privacy legislation would be a much better use of time than trying to build a social network on blockchain, but I understand the thought process.
I'm curious, is that a law? From which country?
I believe it's the Bank Holding Company Act:
For all intents and purposes, Facebook's database is closed source. The community doesn't know exactly what this private company does with this data. We have to trust them with it. A blockchain database is trustless.
With Bitcoin, the people you're trusting are miners, and they are highly incentivized to preserve the correct functioning of the system because they get paid in bitcoin and they want it to stay valuable.
With a federated social network blockchain, there'd have to be an incentive to preserve privacy greater than the incentive to do any other bad thing like manipulating elections.
You're not 'trusting' a single entity in that case because you're making literally all the information public for anyone to see, use, resell, etc.
That's like saying we shouldn't have to trust Equifax, let's just make everyone's name, address, SSN, and credit history public on the internet to begin with.
You'd set up another centralized honey pot that these psychopaths actively look for.
> How would a blockchain make it better?
Besides censorship protection, the platform could reward users to make itself better. Lots of things become possible when you have control over the reward system and don't just extract the value to the top.
> What coalition of people will run the blockchain, and why would they be more trustworthy than whomever would run the database?
This is the decentralized aspect. Whoever starts the project isn't necessarily more trustworthy. They might build that trust over time(or not). Either way the project doesn't live and die by them if successful.
I personally don't think that goes under "features" to be honest. Every uncensored social network is basically a cesspool.
There are other choices besides authoritarian censorship, despite the popularity these days.
...and add their own content, which is only viewable from that site and not elsewhere on the network. And the most popular one of those will eventually just displace the decentralized network.
Sure a platform could add their own features off-chain. But the user would not be rewarded by the protocol for such divergences.
The ability to do logical deletes that will be honored by the main consumer client isn't really sufficient to deal with the problem.