In what way? Publishing a DB dump with a checksum has been around for decades, and doesn't require a new user to download an entire history of deltas from day 1.
I'm curious about this as well. No one seem to be talking about specific attacks mitigated by blockchains as opposed to authorities signing current state.
The definition implies that if someone says "I'm on block 1000" they cannot create altered version of history without touching all the blocks after the change.
But how is this useful? If there is a disagreement about the last block, majority wins, right? So couldn't majority simply have the most up-to-date version of the database with a single signature?
The attacks that blockchain can protect against are:
- Fraud
- DDoS
- Censorship
The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain. Every node has the incentive to cheat and the consensus rules define a method of evaluating the proposed chain of blocks and determine it's "trustworthiness". In PoW this is often an algorithm like Greedy Heaviest Observed Sub-Tree (GHOST) which favours the fork with the highest accumulated work.
This is why it's important that mining is an expensive activity, to discourage attackers from wasting thousands of euros in electricity and then losing the block reward payment.
>The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain.
Consensus protocols do not require mining. You can simply poll X random nodes and compare what they tell you. I don't understand what mining adds to the equation. Okay, instead of "I need to control 50% of all nodes" it becomes "I need to control 50% of all mining capacity". Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?
I didn't say that consensus protocols needed mining, only PoW which is a consensus protocol uses it.
You can poll multiple nodes and each one will give you a different answer because of message propagation times.
Mining fulfils two roles:
- identity management: To identify who is a trustworthy block producer in an anonymous and trustless network, mining introduces a cost to the block generation process and we use a game theory assumption that it serves as a barrier for attackers. This doesn't mean there aren't validation checks performed by other nodes in the network and the consensus forming rules themselves of course.
- consensus formation: In a distributed network, nodes are bound to disagree on which is the canonical chain out of two or more competing forks. The most common algorithm calculates the accumulated computational effort of each chain of blocks and picks the "heaviest" one, ie the one with the most work done on it. This has the nice side effect of ensuring economic finality for the transactions in those blocks.
>Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?
That's called a Sybil attack, and yes that's one of the reasons.
Mining also makes creating blocks have a real world energy cost. So rewriting history quickly becomes almost impossible as blocks are added. An attacker would have to have more than 50% of all mining power for a sustained period of time.
I suggest reading the Bitcoin whitepaper, it's short and sweet.
That's what it solves. It removes the need for trust and dependence in a central authority. There's no central actor to hack, or that can abuse the system, or be compelled to censor.
Consider Paypal. They're obligated to follow the regulations of every single government whose citizens they serve. Paypal themselves can also make value judgements. That severely limits who can use the system, for what purposes, in what quantities, and how frequently.
FWIW, if a single actor could take command of more than 50% of a chain's hashrate then yes, they could take over and rewrite history. The theory was that this would be far too expensive in power and time for any such attack to succeed and if it did - the chain would simply fork at time pervious to the attack and the person that had taken the now defunct chain over would be the only person operating on that blockchain.
Blockchain is a revolutionary solution to the problem of achieving distributed consensus without a central authority that everyone must talk to and trust.
Unfortunately, this is a problem almost no-one has; meanwhile, where parties are able to agree on a trustworthy central authority - as parties operating within the rule of law, relying on cooperation with protocol and old-fashioned police/lawyers to identify and punish defectors in old-fashioned meatspace, generally are - blockchain is an incredibly expensive solution to the problem of distributed consensus compared to other options available to them.
The term blockchain should come with a way to decide consensus, like proof-of-work or possibly proof-of-stake. This is a solution to decentralized consensus which is a truly revolutionary concept.
From a technical perspective, yes. But the case for blockchain is difficult to make from a technical perspective so I do not bother talking about it. The tech struggles to be viable. With that said, everything is impossible .. until it is not. Somebody will figure it out.
What do you mean struggles to be viable? Cryptocurrencies is already viable and used in a lot of places. If you mean other usages of blockchain I do agree.
And please don't bring up scaling (it's already viable today so the future is irrelevant to the point) or high fess (caused by Bitcoin's incompetent devs).
The technology cannot support millions of transactions per second - at least not in the case of a bitcoin blockchain which uses a PoW consensus mechanism. I am not sure how to respond to the second statement as there is some hand-waving and dogmatic proclamation that scalability is not an issue. Saying that cryptocurrencies are used in certain cases today and therefore - scalability is not an issue is like saying you once ate an apple and therefore all apples are edible.
I'm saying it's already viable and as such handles the scale we have today. Complains like "but it can't scale to all of the payments in the world" is severely missing the point.
Also we can already achieve PayPal like transaction amounts today, with Bitcoin Cash having in practice 20% of throughput. The limiting factor to scale further is software limited, not hardware. Furthermore it's possible to reach VISA levels of throughput with further work.
Scaling is one of the hardest issues for sure, but dismissing the viability of cryptocurrency because of it is naive.
Ah, point taken! One of the obvious courses is that there wiull be multiple blockchains each handling various arenas. In that case we run into the interesting blockchain-of-blockchains problems where we have to engineer not only under one blockchain but we have to figure out how to overcome the "slowest node" problem. Truly an engineering feat waiting for a hero (or heroine). Thoughts?
>Publishing a DB dump with a checksum has been around for decades
This solves the problem of where you would publish said checksum. Instead of publishing it in an issue of the New York Times, say (which could theoretically be forged), you publish it somewhere that you can be 99.99% sure won't be forged, is viewable to everyone, and can be done fairly cheaply and would likely hold up in any court of law.
However, that's pretty much it. That's the whole benefit. You could also probably publish said checksum on facebook, with the same likelihood of it not being tampered with.
Note that I'm not arguing that blockchain won't gain adoption, just as people probably could have made a similar value-based argument about facebook in its early days, I personally believe there are cultural forces that will keep some blockchain asset in somewhat high demand.
That's not quite it. The other thing you get is "and this database guaranteed to have some properties". In the case of bitcoin for example you are guaranteed every transaction was authorised by the owner of the bitcoin being exchanged and there are no double spends.
But even that's not quite it, because those properties are flexible - even for bitcoin. They are actually assertions made by computer programs, something the lines of "if the database says X an Y are true, then I say Z is true". For example X might be "I have the put $x in an escrow account". Y might be "I have not paid the supplier $x in the agreed y days". Z might be "The escrow agent is allowed to deduct an fee from $x for himself, and pay the balance to myself and the supplier as he sees fit".
And thus we have gone from publishing the checksum of a database to controlling what can happen to $x in the future.
In general taking a snapshot of a blockchain at a single point in time and saying "all I have done is published an immutable database" misses the bigger picture. The blockchain is a chain of assertions about what has happened in the past and based on those what can happen in the future - and you can't alter the control of those future assertions re-writing the past, which is prohibitively expensive.
We currently have another way of doing a similar thing that has been refined over the centuries - contracts, interpreted by courts rather than software, enforced by governments, police and guns. Right now the new boy on the block, blockchains, only thrives where this existing system refuses to play - which is to say illegal transactions. (And maybe its detractors are right - maybe it will always be too clumsy and slow to expand beyond that.) However to say the blockchain is merely a snap shot of its database rendered immutable by a published checksum is like saying our system of law is a just the series of title deeds on house, rendered immutable because they line in some government office.
Because it finally provides a mechanism by which bad actors on a network could face repercussions for their activity. Consider how different the internet would be if hyperlinks were two-way rather than one-way. Again, it is not only about data, it is about the speed of transactability that would result when value could be exchanged instantaneously with radical transparency behind the actors on the chain. Bankers go away, auditors go away, credit requirements for market participation go away. What could be do with the trillions of dollars tied up and sitting in credit collateral accounts? Liquidity is a good thing.
People will still need loans. People will still want low risk investment vehicles to "store" their wealth in. At least some sizable number of them will want an institutional actor to handle operational security and insure against key loss.
> auditors go away
The blockchain mostly guarantees that a ledger hasn't been tampered with, but it doesn't guarantee that the transactions were correct and complete in the first place. Plus, it's trivially easy to transfer funds without it registering on the ledger; all I have to do is create a wallet and give the private key to you out of band somehow.
> credit requirements for market participation go away.
There are no credit requirements today, as long as you're only spending funds you have on hand. Credit requirements allow an actor to spend funds they don't actually possess with a reasonable expectation that they will be willing and able to produce those funds (plus interest) at some later date. Having the ledger public reduces, but doesn't eliminate, the need for the actual providers of those temporary funds to want to form some expectations of future performance.
Most of the ancillary infrastructure that's grown up around fiat currencies is there for really good reasons, and most of those reasons don't automatically go away when the underlying currency type changes.
You are not grasping the import of being able to exchange value WITHOUT a banking system in place.
As for the credit requirements comment, yes - good point. But in the case of a micro-transaction, realtime agreement. I can consume 15 minutes of power and pay for it at 15:01. A credit requirement still exists -0 but it is one second as opposed to 60-90 days worth of power. This idea assumes many things into existence that do no currently exist - I am merely offering the idea as a thought experiment. Blockchain could make everything pay-as-you-consume.
I can exchange value today without a banking system in place. I have some paper currency in my possession, and if that doesn't work there are plenty of commodity goods available to barter with. You'll notice that even in situations where cash or barter are feasible the vast majority of actors opt into the banking system anyway.
Cryptocurrencies are genuinely useful for parties who don't have access to the formal banking system for one reason or another, but I've got every reason to believe that crypto-backed banks will still be profitable and that people will flock to them as soon as they're available.
As for microtransactions, I can also consume 15 minutes of some service and not pay for it at 15:01, then automatically generate another burner account to consume another 15 minutes. This might not work for power, since there's physical infrastructure that would have to be cut over, but it would work just fine for a very large number of other services. The service provider is going to pretty quickly generate some fraud prevention strategy to prevent you from doing that, and now we've reinvented credit requirements for market participation.
Yes, you have paper money in your possession that is only worth as much as a centralized bank SAYS it is. And the awesome thing about that is that centralized banks never print ridiculous amounts of money and devalue their own currencies. That would be crazy and short-sighted. What sort of idiots would do that?
Crytpocurrencies are useful to people for a variety of reasons. And if a bank wants to deal in crytpocurrency, that is fine with me. I am glad that you have no doubt they will be profitable but you are pulling such sentiment out of thin air. There is not a precedent for cryptocurrency and how it may affect and integrate with existing systems. But consider that if you consider having a bank involved is a good thing for cryptocurrency - you might not understand the point of blockchain.
And the final point, the ledger is open, and everyone can see everything. You must consider this aspect in your scenario. I would imagine such a microtransactions agreement manifested into a smart contract or if not, prepaid. But again, only at a 15 minute. There is a level of credit there but still much smaller than 30 days worth.
> Yes, you have paper money in your possession that is only worth as much as a centralized bank SAYS it is...
Do you really want to bring volatility into this? Because in the real world fiats are orders of magnitude more stable than cryptos.
Besides, that's tangential to why people prefer banks to cash. If the Federal Reserve screws up and tanks the dollar I'm just as screwed regardless of whether my money's in a dollar-denominated bank account or a suitcase under my bed. Why do you think the vast majority of people prefer to keep their dollars in the bank instead of the suitcase?
> I am glad that you have no doubt they will be profitable but you are pulling such sentiment out of thin air.
I'm pulling that sentiment out of a basic understanding of a bank's business model and value proposition, neither of which are actually directly related to the underlying currency. We had banks with metal-backed currencies, we have them with fiats, and we're starting to see them with cryptos. Unless you can somehow convince me that Coinbase isn't a bank.
> And the final point, the ledger is open, and everyone can see everything.
Right, I can see that three dozen pseudonymous wallets owe me for 15 minutes of service each.
Anyway, the whole point of credit is I can't actually pay up today, but there's reason to believe I will be able to in 30 days. Or 6 months. Or 10 years.
What benefit does transferring value with a blockchain have over any other method of transferring digital currency? People have been using chest keys and cosmetic items as currency on Steam for years, there are even sites where you can cash out and get money in exchange for digital currencies. Steam also has the benefit of being a point of authority that can handle fraud and theft.
I would offer that the value is the distributed ledger. Where everyone would see the quality of your business dealings because you kept them on a stable blockchain for all to see.
Well ok, buit I was talking about transactability - not throughput. I have stated numerous times that the tech struggles to be viable at scale. On Bitcoin's blockchain you can transact and settle in 10 minutes. That beats 2 to 3 days all day long in a fiat-based system.
This is somewhat disingenuous. Transaction times can be as low as 10 minutes on Bitcoin, but this has high volatility. If I look in the past few months, average transaction times spike to a few hours quite frequently. Of course, if you look at the graph for January, the average transaction time jumped to days.
In standard interbank settling times, the transaction time takes days. But that's because transactions will automatically abort if they don't clear fast enough, and banks will take as much time as they can to actually close the transaction so as to avoid having to reverse it after the fact. In practice, many banks are happy to credit your balance with the deposit immediately (if the deposit is small enough, about $5k with my bank) without waiting for confirmation.
Of course, the time it takes to settle the transaction actually doesn't matter that much for the most part. In many cases, the transaction clearing time is going to be an insignificant portion of the time between invoicing the transaction and actually sending the goods.
And the reason for the spikes - blockchain technology struggles to handle large transaction volumes. The consensus mechanism monitors block creation time and tries to keep it at 10 minutes. Ideally, there are never more than a block's worth of transactions to be created at any given time. When that is not the case a backup occurs and yes, the settling takes far too long. This is the technical challenge that must be overcome before a PoW backed blockchain should be considered "viable" ready-for-prime-time. It is a significant engineering problem that I am excited to try to solve.
This is a perfectly cromulent response (see what I did there)?
I'd argue that you did not settle a transaction but more exchanged in a barter of one item for another. I am glad it worked out well for you and pray that you will experience continued expedient transactions in the future - blockchain-powered or not.
One of the ideas is that smaller payment amounts are viable on a blockchain - and there will be mining or transaction fees assessed but there will be fewer and smaller fees. Point-to-point transactability cuts out the ubiquitous payment middlemen and it gives the person making the transactions CONTROL of their transaction data. No longer will business pay credit companies to learn about you - they will have to pay YOU to learn about you.
Data is worth billions and trillions of dollars. And blockchain allows you to take control of it.
>Because it finally provides a mechanism by which bad actors on a network could face repercussions for their activity.
Would this require globally broadcasting all transaction? If yes, wouldn't globally broadcasting all transaction give you a lot of transparency anyway?
The definition implies that if someone says "I'm on block 1000" they cannot create altered version of history without touching all the blocks after the change.
But how is this useful? If there is a disagreement about the last block, majority wins, right? So couldn't majority simply have the most up-to-date version of the database with a single signature?