4 ms·
Blockchains don't have a concept of a "current undisputed state". If you managed to create a longer (and valid) Bitcoin chain on your own than the longest one t
by vvillena 5y ago
Blockchains don't have a concept of a "current undisputed state". If you managed to create a longer (and valid) Bitcoin chain on your own than the longest one there is at this very moment, and publish it, all other clients will start using it as the new longest chain. And if two equally long chains are published at about the same time, and clients get split, things will probably get resolved in the next block. So, most of the time, the current longest chain won't probably change, and if you discount, say, the 6 newest blocks (using bitcoin as an example), then it will definitely not change. So, the "undisputed state" and the "current state" are actually separate concepts in a PoW blockchain.
Regarding storage, you argument that transactions shouldn't matter, since the important thing is the state. But then we're back to the fundamental problem. Why should we trust a state created from thin air that has no proof of how it was created? That's just a distributed database, which has is uses, but it's not a distributed blockchain.
- noxer 5y agoDon't assume blockchains are bitcoin or BTC like systems. I talk about the "current and undisputed or better indisputable (final) state". Bitcoin does not have this. Hence it can not function without history. This is a property of BTC not one of blockchains in general. Plenty other systems have a current state and a final state and there is no "better state" that can comer around and replace it. Final really means final. Its often called a closed ledger. Other systems have checkpoints and what not to reach a similar goal. BTCs "final" is just to wait some blocks its never final its just becomes incredibly unlikely to change the longer you wait. This is objectively worse than having a final state and on top of that it requires the history rather than just the last final state. >Why should we trust a state created from thin air that has no proof of how it was created? That's just a distributed database, which has is uses, but it's not a distributed blockchain. You have no choice. Either you agree with the current final state or you dont use the blockchain. Your choice is to use it or not. You choice is not to validate or not or validate and fix something if its wrong. The act of validating doesn't do anything. No matter what your validating gives you in the end you can only accept the current final state of the running network or not use it at all. Also its not created out of thin air. It was validated by the code. If there is a mistake it is there because of the code people used back when it happened. If you were there running your node it would have made the same mistake. whats the point to find it now? (beside the fact that it was already found and fixed) It doesn't change the state the state is final. Bugs happen. If you assume cheating however then well you should assume someone would have screamed back when it happens so you would already know that someone cheated somehow. Whats the point of validating it? you already know you dont want to use that chain. Zero reason to detect the cheating yourself. We know pretty well from all incidents where blockchains had to be "fixed" there is no way someone would find an unknown incident by the placebo validation act.
- sillysaurusx 5y agoNo matter what your validating gives you in the end you can only accept the current final state of the running network or not use it at all. I'm a bit of a blockchain noob, but isn't this the opposite of how blockchain works? What I mean is, yes, you can design it the way you're saying, but doesn't that open you up to double-spend attacks and enforced centralization? You need a central ledger at that point, since your "final state" has to come from somewhere. I'm confused but intrigued. EDIT: Ah, https://news.ycombinator.com/item?id=27259783 https://news.ycombinator.com/item?id=27259783 points out the problems with this approach much more eloquently than I did.
- noxer 5y agoIf you have a final state double-spend attacks are actually impossible. They are based on the fact that someone can insert a transaction then "overwrite" it by providing a longer chain where the transaction didn't happen or went somewhere else. This is only ever possible if there is no final state. Also not sure why you would need centralization for what. Simplified a final state is when a majority declares it as final not a central entity does that. A double spend would have to include both transaction into the final sate which obviously would violate the systems rules. You cant move the same balance again when you already move it away. So that just wont happen because the code does not allow it. The second Tx is simply invalid just like if you would try to move more coins than you have. If you want to read more about final consensus see https://xrpl.org/consensus-network.html https://xrpl.org/consensus-network.html There are ofc other project with similar concepts this is just the oldest.
- Dzugaru 5y agoWhy do you need a blockchain at all then? This is what I really don't get. If you have your "majority" available at all times they just agree on account balances and call it a day. Just like WebMoney did circa 1998.
- noxer 5y agoYou dont need a blockchain its a misleading term. There are distributed ledgers that dont requires a chain of blocks. Also majority in a decentral system is not that simple. It can be done with FBA (Federated Byzantine Agreement). If that's the case, then yes, account balances are simply agreed on and they call it a day (or technically its called a closed ledger). Then they add the next. Now ledger are blocks of data and the best way to order them is to chain them with hashes depending on the previous ledger (block). And we are back to "blockchain". Its still misleading the "magic" part isn't the chain of blocks. Its the fact that the double spending problem can be solves without an arbiter of truth. >Just like WebMoney did circa 1998. I dont know about the technical way this was implemented back then but most likely the system was operated by a single entity. There is some kind of master balance database and the all other sync with that. A double spending can be prevented by rules applies to the master DB. AKA a write-sync is denied if it violates the balance rules. This is easy to do centralizes and obviously who ever controls it can circumvent the rules if he wants to.