But a centralized database can also achieve this, right? The premise of the general public trusting a blockchain more than an established, centralized 3rd party (e.g. government) seems so feeble.
But a centralized database can also achieve this, right? The premise of the general public trusting a blockchain more than an established, centralized 3rd party (e.g. government) seems so feeble.
* The source code of all websites would be open-source, and accessible to anyone. It could still be changed, but it could not be done secretly.
* All the actions of the users of the websites would be public.
If we take social forums, for example Hacker News, it would mean that: * The algorithm behind the front page of social forums would be known. Administrators would have no way of secretly skewing it.
* When a moderator would delete a message, they would merely mark them as deleted in the blockchain, and they would merely be hidden in the UI that you use to see the blockchain. The message would still be accessible on the blockchain.
The biggest downside, though, is that there would be a fee to any action done on the website (posting, moderation actions, changing your profile, ...).What about the right to be forgotten and GDPR laws?
A blockchain is essentially an Event Sourced system. And Right To Be Forgotton is a common issue in all event sourced systems.
Several technical and one non technical solution are common:
Encrypt events with per actor keys. Delete the key when user wants to be forgotton. Or encrypt just certain attributes in the same way.
Keep actual data outside of events but only include a link to the data and checksum of the data.
Avoid storing PII in the first place. Does your domain model really require an IPaddress or First Name?
All have tradeoffs, none are silver bullets. But it is a solved problem in Event Sourcing, so it is a solved problem with blockchains (if only new programmers new this and reused patters instead of continually reinventing them)
You're saying this:
> Encrypt events with per actor keys. Delete the key when user wants to be forgotton.
Blockchain is immutable. Which key are you going to delete? Or, wait, you're going to centrally store these keys?
No necessarily. Three alternatives are common:
Data is encrypted with a key only the actor owns. Works for cases where that actor is the only one who should access it (I Reveal My Attributes type of schemes)
Data is encrypted with a sum (combination) of the key from an actor plus some other actors have: only you and the recipient can decrypt. Works for cases like messaging or p2p data exchange.
Data is encrypted with a OR of the key from an actor plus one by a trusted proxy: proxy and actor have ability to decrypt. This is closest the "centrally" storing. With the difference that "proxy" allows for a little more flexibity -in theory-.
Similarly storing all the data off the blockchain just means you didn’t need a blockchain.
And the fee thing is why none of this will work in practice so it’s a really big negative. Who on Earth wants to be nickel and dimed across the Internet for really over expensive compute and storage?
But:
* The fact that the moderators have access to these mechanisms would be known by all users
* The use of these mechanisms by moderators would be public. If a topic is upped by a moderator, it would be logged in the blockchain. No moderator would be able to do it secretly.
Regarding the fee, it's true that it's a big downside. To get a feasible use case, the devs would need to find a blockchain that reduces them.You're providing a solution that doesn't fit the initial requirement of a system being trust-less. So, indeed, your solution works, but as you described, it requires trust in the administrators of the website. The idea of web3 is that you wouldn't. "Trust but verify", if you want.
This could be used for Facebook or Reddit (given that they solve or attenuate the issue of fees), where people might have less trust in the administrators.
For stuff at the scale of Facebook and Reddit you'd also probably end up needing caching as the chains would be too slow so you end up needing a layer of trust anyway.
I’d also add keeping an eternal, permanent, public record of everything as a big downside.
There's no way I'd want to create something that is similar to what you're thinking, because it's pointless as you are thinking. Nobody would pay for this. Also messages such as these have no reason to be on an immutable blockchain. But you can certainly create specialized services for people that support your projects using ideas like this quite seemlessly.
I already have a pretty hard time with SEO spammers rephrasing the content I live from and passing it as their own. I can't imagine people lifting the entire website and making a permanent copy of it, profiting from 4 years of my work.
That's for a 100% free website with no "secret sauce" besides hard work. I can imagine any other website might want to hold their cards even closer.
Then there's also the site owners being held responsible for hosting illegal content, and being powerless to delete it.
I think that one of the allures of the blockchain is that it’s publicly visible. This may or may not be a fallacy of reasoning but hey, we’re human.
For example, in Austria we have the "Grundbuch", a register of land ownership. Everyone can inspect the Grundbuch database. Authenticity is guaranteed by requiring a public notary or a court to confirm any changes in the database, and there is a paper trail for every change to a record.
It's boring old tech, but it works, and doesn't have all the gotchas of blockchains.
I can only imagine this ancient system to be a magnitude worse in those regards.
Transaction fees are high by design. They are a form of tax on property transactions that discourages short term investments.
The system works very well and I just don't think it needs fixing.
For the few use-cases that match it, yes.
The name Grundbuch itself puts a limit on its use, but we can imagine that there are many situations that call for the same amount of protection and trust, but which require a far higher throughput.
Back when Grundbuch was set up, ground and estate was probably the most valuable asset peopel can own. Today we have stocks, bonds, contracts, savings, companies, art, private-keys, hell; even cars, that are worth a multiple of a typical meadow in the Austrian hills.
Many of these classes cannot use the a system like Grundbuch because its fees are too high or its throughput too low. No-one wants to pay upwards of €600 just to sell some AAPL stock. No insurance company wants to drive to a notary for each contract they sign and then pay €600 upwards.
I'm not trying to say that blockchain is a solution for all these cases (It isn't). I'm saying that the system is limiting, problematic and unfit for many cases. That therefore, this system is unfit for the majority of cases that would need them 2021 (but for one specific case it works).
A centralised database is controlled and modifiable by the owner - government, private company or whoever. They will act on their best interest not yours.
I don’t personally have a problem with government having my dat although they’re usually useless at implementing technology, but a decentralised blockchain would be way more trustworthy than private companies..
Also, it is trivial to implement the same verification mechanisms in traditional databases, without the performance penalties of "blockchain", and transforming them in immutable, append-only storage systems that can't be tampered transparently. A good example of this is google trillian, the backend used by Certificate Transparency implementations.
Databases as they’re usually designed today are updated in-place so they have no provenance of the data.
Blockchain data one written will exist in the history and cannot be changed. Unless specifically designed this way centralized db doesn’t work this way.
This is hardly true. It's easy to keep a history of query logs, which is enough to figure out 90% of data lineage. The rest 10% probably correspond to operations not even runnable on a blockchain.
I can mock a web3 application by opening a database to the entire internet. All edits logs will be visible, although edits will be access controlled. Now I'll claim this is observable. Some people would probably complain. But how in the world is the general public going to complain?
(I wonder if a network of such centralized DBs run by different parties might be enough to produce incentives among the different DB owners to behave in accordance to rules which they initially publish for themselves, etc. )
Perhaps alternative structures of implementing governments should be explored.
There is a huge public, cryptographically secure, append-only, verifiable centralized database (in fact, they are several), used by Certificate Transparency. Spoiler alert: Its a sparse merkle tree in MySQL.
You either know very little about cryptography and game theory or very little about government to be asserting such doubt. Crypto-currencies have many problems, but finding ones where trust can be taken for granted is trivial.