7 ms·
In all seriousness, what are the advantages Blockchain has over a public SQL database with limited reads and writes that also maintains a public transaction his
by bepotts 8y ago
In all seriousness, what are the advantages Blockchain has over a public SQL database with limited reads and writes that also maintains a public transaction history? Cause when I hear people talk about the problems Blockchains solves (outside of cryptocurrency which is a whole other topic), I don't see what advantages Blockchain has over that. A public SQL database isn't the most "clean" solution, but it'll save everyone a bunch of time and money over the resource intensive blockchain verification process.
This idea that centralization is always evil, or that public actors are inherently untrustworthy and we need some mathematical algorithm to verify all interactions between them strikes me as one of those Silicon Valley idiosyncrasies that Silicon Valley haters laugh at.
- celticninja 8y agoThe SQL database has to be maintained by someone and with enough political or legal pressure the maintainer can be forced to change it, not so with a blockchain.
- milkytron 8y agoNot as easily.
- wrs 8y agoInstead, with a blockchain such pressure results in a fork of the chain, which in some cases (notably those involving token ledgers) may be even worse.
- giancarlostoro 8y agoYou've never heard of a blockchain fork? Where the developers change the blockchain... It's happened before for different reasons.
- purerandomness 8y agoWith enough political or legal pressure, you easily deploy a "51% attack" on the chain, and fork it as you like. Just as the NSA runs almost all the Tor exit nodes nowadays, what would stop a government from running the majority of blockchain nodes and gain consensus majority?
- sparkie 8y ago> With enough political or legal pressure, you easily deploy a "51% attack" on the chain, and fork it as you like. A 51% attack can do two things: Enable "double-spend" attacks - where the hash rate majority will ignore a block which was previoulsy mined and had a "confirmed" transaction, and instead mine from an older block which didn't have that transaction - but instead place a transaction paying themselves the money back. Anyone accepting payments over Bitcoin should use their common sense as to how many confirmations they should wait depending on the amount of money being transmitted. A 51% attack might eventually be able to write a chain longer than the current one, but it will take some time - and there is the chance that if it fails, the miner will have wasted his electricity costs. The other attack a 51% hash power can perform is denial-of-service. They can ignore blocks containing transactions they do not want to include in the chain, and as long as they continue to mine the longer chain, those transactions will not succeed. 51% attacks can not change the rules of Bitcoin (although there are many people who wrongly believe this to be the case). If you try to change the rules, the rest of the network will reject your blocks and ignore you. > what would stop a government from running the majority of blockchain nodes and gain consensus majority? The costs, primarily. In the case that one party did accumulate a majority of hashing power, the network participants can agree to change the hashing algorithm to one which runs on commodity hardware. That would be many billions of dollars of specialized hardware equipment going down the drain, and will only make the system stronger by encouraging individual participation. Monero did this successfully, and plans to do it each 6 months to deter attempts to game their proof-of-work.
- lmm 8y agoAppend-only/log-structured databases are worthwhile (SQL databases end up similarly structured internally). "Mining" and all the overhead it entails is only worthwhile if you need zero-trust, and few if any use cases do.
- arisAlexis 8y agotrue. it's not like Governments falsify data, forge evidence and all that. It's crazy to think the world needs zero trust.
- purerandomness 8y agoHow do consensus protocols help here?
- sudoscript 8y agoCurrently we trust information by the source it comes from. It’s an authority-based model. Consensus shifts that trust from authority figures to others in your group. Bottom-up trust instead of top-down.
- purerandomness 8y agoSorry, I should have made more clear what I mean: When Governments falsify data, in my opinion bottom-up consensus doesn't help, since governments then also could simply participate in that consensus-forming process (see 51% attack)
- arisAlexis 8y agoyou think a government of Burma for example can 51% attack Ethereum? The purpose of all this is to put all their balance sheets and title deeds etc on the global blockchain not a private blockchain they control in their offices.
- 8y ago
- mortdeus 8y agoThe main innovation is that blockchain is decentralized and yet still verifiable. A public SQL database is in nature centralized. Even if you were to try and shard it out to everybody in the network you have the difficult time of cross verifying such data heavy records.
- purerandomness 8y ago> A public SQL database is in nature centralized Why would a SQL database be centralized in nature? Just as your n nodes hold the entire blockchain, you would have n nodes holding the entire SQL database. Of course, you could have a blockckain only on one node, centralised. That wouldn't make it inherently "centralized", however. Same with SQL databases.
- mike_hearn 8y agoThere aren't any decentralised SQL engines really. There are distributed databases that provide SQL-like abilities, like Spanner, but they're optimised for huge scale and not low trust. They're still expected to be run by a single organisation, not a p2p network of many organisations. I am the lead engineer on Corda, which is an open source 'enterprise' (i.e. institutional/industrial) blockchain-inspired platform. But if you don't like the B word you can think of it as a decentralised database that can be queried using SQL. The intro to the technical white paper describes some of the issues with "just run a public SQL database" approach: https://www.corda.net/content/corda-technical-whitepaper.pdf https://www.corda.net/content/corda-technical-whitepaper.pdf Why not just use a shared relational database? This would certainly solve a lot of problems using only existing technology, but it would also raise more questions than answers: • Who would run this database? Where would we find a sufficient supply of angels to own it? • In which countries would it be hosted? What would stop that country abusing the mountain of sensitive information it would have? • What if it were hacked? • Can you actually scale a relational database to fit the entire financial system? • What happens if the Financial System™ needs to go down for maintenance? • What kind of nightmarish IT bureaucracy would guard changes to the database schemas? • How would you manage access control? So, it's ultimately a system that tries to address these questions and many others too. If you can solve these issues then you can suddenly actually propose an entire market putting all data into a single database engine, and at that point things can get a lot more robust and efficient. But it just wouldn't be politically possible on any sort of scale to do that with Postgres.
- deleted 8y ago[deleted]
- herbst 8y agoI haven't seen a better approach for decentralised verifyable databases yet. Postgres for example offers several approaches for mirroring or decentralisation however non of them feels certanly clean and all of them come with their own downsides. I agree that we are not there yet to use it as a simple drop in solution for such problems. But we are certanly getting there. Also there are no limited reads (or writes for that matter) every actor of the blockchain can modify their local version as much as they want.
- zzzcpan 8y agoBut Blockchain cannot exist outside of cryptocurrencies. It's a system where popularity of a cryptocurrency is crucial for blockchain's security. So if it can't succeed as a cryptocurrency there is no blockchain to talk about. And once it succeeds we can start solving hard peer to peer trust problems with it.
- xtracto 8y agoUhh HyperLedger from IBM is used to build blockchain systems without an unerlying cryptocurrency. The use of cryptocurrencies within blockchain is to "promote" the adoption/distribution of a system. However, there are other cases where the stimulus for the adoption is non-monetary (e.g. access to the information) and thus a crypto-currency is not needed.
- bb2018 8y agoI agree 100% with this. Maybe there are some slight advantages in some edge use cases - but if someone came out with a company that was "modified public SQL database technology" would people be investing their money and declaring it important to the future of technology? The answer would be no.
- munchbunny 8y agoMaybe a different but related question worth asking is: what does a blockchain accomplish that cryptographically signed audit logs in a centralized database don't? Setting aside the specific technical details, in concept a database of cryptographically signed audit logs and a blockchain aren't so different - blockchain adds decentralization and a trust/truth resolution formula, at the cost of a different set of scalability concerns. So when is that decentralization specifically useful?
- mjevans 8y agoThe above, but published and witnessed (and signed) by others; I think that's often called a 'sigwit' system as shorthand.
- munchbunny 8y agoThanks for the reference! I got curious and looked it up. Turns out the term is 'segwit'. But more to the point, turns out some cryptocurrency implementations move the transaction database to a segwit system because of the scalability problem. Huh.
- coralreef 8y agoIf you lived in Greece or Venezeuala, you may have a different opinion about your government's fiscal policies and trustworthiness.
- deleted 8y ago[deleted]
- rspeer 8y agoWhy do proof-of-work fans believe that the only alternative to trusting nobody is trusting everybody? You get out of the proof-of-work mess by trusting one entity, and it doesn't have to be the government. And to use proof-of-work, you implicitly trust the people who wrote all the code you use anyway.
- coralreef 8y agoNot sure what you mean. How do the people decide who to trust? An individual can be coerced and becomes a single point of failure in the system.
- rspeer 8y agoYour argument against simple verified ledgers was "but the government of Venezuela!". The simple solution is to not put the government of Venezuela in charge of your ledger. Make it require multi-party consensus if you want, to reduce single points of failure. DNSSEC (for all its faults) runs on trusted multi-party consensus [EDIT: apparently not the way I think] and isn't a blockchain. But of course anyone or any set of people can be coerced, including you. That will never not be true. "How do you decide who to trust?" applies to every endeavor in life, so if you want to go do philosophy instead of blockchain, fine.
- coralreef 8y agoPoW solves this by economically incentivizing block production, and thereby creating a cost to anyone that would try to cheat the system. You don't need to trust any party, you trust the math. You said not to put the government of Venezuela in charge of the ledger. But when the government of Venezuela sends armed forces to the offices of your trusted party to confiscate its servers and equipment, what happens to your ledger?