4 ms·
When a chain fails to find consensus and forks due to different consensus rules, the 2 chains persist until the developers tell us which chain is the right one.
by hudon 9y ago
When a chain fails to find consensus and forks due to different consensus rules, the 2 chains persist until the developers tell us which chain is the right one. Let's take the 2013 Bitcoin fork for example. OK now a merchant who has accepted Bitcoin on one chain could have had a transaction that was 20 blocks deep. Then, when the miners decide to abandon that chain and obey the developers and go on the other chain, the merchant's transaction is no longer confirmed if it wasn't played on the other chain. This is how blockchain consensus failures change the past of the ledger and therefore how the blockchain fails to be immutable by your definition.
side note: I'd be wary of calling blockchain's consensus mechanism "computer science", it's more of a social consensus when consensus rules are different (ie. when forks are involved).
- darawk 9y agoI didn't say consensus can't fail. I said it's immutable: https://en.wikipedia.org/wiki/Immutable_object https://en.wikipedia.org/wiki/Immutable_object Blockchains are immutable. Immutability is the property you want for elections. Blockchains are absolutely computer science. The consensus PoW mechanism is not part of 'blockchains'. It is a part of cryptocurrencies. Blockchains are simply a log-structured Merkle tree.
- hudon 9y agoRepeating things don't make them true. You defined immutability as the inability of changing the past. I have provided you an example of the past of Bitcoin being changed (24 blocks were invalidated). I await your rebuttal.
- darawk 9y agoThat isn't changing the past. It's changing the interpretation of the past. The old transactions are still there, they're just not considered valid. That's fine. An election blockchain can't enforce its result anyway. A dictator can always simply say "yep, I got voted against, but too bad, i'm staying". What's important though, is that in a blockchain based system, that dictator would not be able to claim legitimacy convincingly. We would know and be able to prove that they invalidated or ignored the results. They cannot invalidate/ignore the true tally without everyone knowing they did it, just like you know that those Bitcoin transactions were invalidated. That is exactly the point.
- hudon 9y agoIf I had a data structure whose contents could be interpreted differently by different parties, I'd have a very hard time convincing stakeholders that it was immutable... and I'd feel bad trying to do so. > We would know and be able to prove that they invalidated or ignored the results To your new point, though, picture this: it's 2016 and you're running your election on the blockchain. Unfortunately, a consensus bug in the blockchain causes the updated nodes (say, half the network that updated) to split. The devs decide to go forward with the new consensus rules and abandon the other chain. However, we find that the tally on the abandoned chain elected Hilary and the tally on the new chain elects Trump. What happened? Were the devs co-erced? Did they introduce the bug themselves? Why was the tally different on the abandoned chain? Who collected the tally and wrote it to the blockchain? How do we know or prove the legitimacy of the chosen blockchain over the abandoned one, as you claim?
- darawk 9y ago> If I had a data structure whose contents could be interpreted differently by different parties, I'd have a very hard time convincing stakeholders that it was immutable... and I'd feel bad trying to do so. Whether or not you could convince someone of it, it is so. The definition of an immutable data structure is that the contents of it don't change. It says nothing about interpretation. Immutability isn't some nebulous concept, it has a specific definition in computer science. And it is that the data itself does not change. > To your new point, though, picture this: it's 2016 and you're running your election on the blockchain. Unfortunately, a consensus bug in the blockchain causes the updated nodes (say, half the network that updated) to split. The devs decide to go forward with the new consensus rules and abandon the other chain. However, we find that the tally on the abandoned chain elected Hilary and the tally on the new chain elects Trump. What happened? Were the devs co-erced? Did they introduce the bug themselves? Why was the tally different on the abandoned chain? Who collected the tally and wrote it to the blockchain? > How do we know or prove the legitimacy of the chosen blockchain over the abandoned one, as you claim? There is no need for consensus in an election-based blockchain, and this is not a new point, it's been my point the entire time. It's the point of all blockchain-election solutions. We can arbitrarily choose any chain, and then verify all the properties that we care about on it.
- kerkeslager 9y ago> When a chain fails to find consensus and forks due to different consensus rules, the 2 chains persist until the developers tell us which chain is the right one. Let's take the 2013 Bitcoin fork for example. OK now a merchant who has accepted Bitcoin on one chain could have had a transaction that was 20 blocks deep. Then, when the miners decide to abandon that chain and obey the developers and go on the other chain, the merchant's transaction is no longer confirmed if it wasn't played on the other chain. This is how blockchain consensus failures change the past of the ledger and therefore how the blockchain fails to be immutable by your definition. Okay, so which of the chains changed? (Hint: neither changed; they can't change, because they're immutable). You seem to have a chip on your shoulder with this idea the developers control the blockchains. Every time you see something about blockchain you seem to jump in and start arguing with people in favor of your pet issue. I've seen you do this on multiple threads now. The irony is, there are some persuasive arguments for the idea that developers have too much control of blockchains, but you're not saying any of them, because you clearly don't grok the technology. You have a Wired-magazine-level understanding of the technology: you know the history and social systems around the technology but you clearly don't understand the concept of immutability as it applies to blockchain forks, or why consensus is both a social concept and a computer science concept when applied to blockchain, or how a block is validated. In your defense, understanding blockchains requires a lot of background, and I'd say most people don't understand it. But most people aren't arguing so vehemently for their opinion.
- hudon 9y agoThe ledger that is Bitcoin changed. From the merchant's perspective: Bitcoin was one ledger, then it became another. Transactions that were 24 blocks deep changed. That is the ledger changing. The developers are the ones that told everyone that this change would happen. The rest of your post is pretty offensive but I'm willing to look past it if you want to actually talk about your blockchain ideology with civility. I honestly think the disconnect here is you're thinking in terms of bits and atoms and I'm thinking from the user's perspective. If we're going to build something useful with the blockchain, we have to think from the user's perspective. It doesn't matter if it's 2 separate "block chains", they're both attempts at finding consensus on 1 ledger: the Bitcoin ledger. That's the whole point of a distributed ledger: at any given time you may have disagreeing versions of it existing simultaneously, but it's still 1 ledger trying to find consensus so that users can know what happened actually. And if there are times where developers are ESSENTIAL to resolve ledger consensus failures, that is precisely the kind of central control that could be abused in ways Satoshi was trying to avoid. We don't even know if the 2013 bug was intentional or not. What if the developers were compromised and the fork was made so that someone could execute a large double-spend? What if this happens again in the future?