Author

Topic: Ditch the chain? (Read 1053 times)

member
Activity: 67
Merit: 10
August 14, 2013, 07:33:23 PM
#6
...
The nodes then collectively agree that bitcoin#1251262613616 is now under the control of whatever address alice sent to.
...

That's the single hardest thing in distributed systems. It sounds simple, but it was actually believed to be impossible to do in any real fashion. The whole Proof-of-Work/Blockchain scheme is the first practical solution that's been deployed out there.

One way to look at the problem that I think helps a lot is imagine you're a node connecting to the network for the first time. You have 2 connections, 1 of which is honest, the other one is an attacker trying to trick you. How can you tell them apart?

- Connecting to more neighbors isn't going to help you, because making lots of fake nodes is really easy (Sybil attack).
- Just checking that there's a valid series of transactions isn't going to help, because double spends can create 2 alternate histories (Which is why all crypto currency used to have a central authority, which would manage the ordering of transactions).
- Just checking proof of work can expose you to attackers pretending to own coins they don't have, as long as they do enough PoW. (That's the danger of running an SPV node).
- Bitcoin full nodes validate EVERYTHING on their own, and then use the blockchain to determine the network's agreement of what order transactions have occured in.

Making this more efficient/better seems to be very hard. No one's figured out a way that doesn't require a blockchain.
member
Activity: 100
Merit: 10
August 14, 2013, 07:23:37 PM
#5
That is how banks work today. It depends on trusting them to use good bookkeeping practices and not cheating. It is a good system if people were honest. If the banks would only work that way, then there would be no reason for Bitcoin. The problem is that they don't behave honestly, so we need Bitcoin mining.
Theres a similar trust when making a transaction, you hope that the miner will include it. But you can always hope that the next miner will include it. Similar to my system, you just broadcast to as many nodes as possible and possibly wait for an OK response from a few.
legendary
Activity: 1386
Merit: 1009
August 14, 2013, 07:22:24 PM
#4
For such a system to work, it needs to reach consensus. Proof-of-Work is one of ways to reach consensus. It's advantage is that it requires no trust.
I am sure it has been discussed a million times before so I advise you to read the forums.
Learn about Sybil attack as well.
legendary
Activity: 1232
Merit: 1094
August 14, 2013, 07:21:51 PM
#3
Why not nodes just keep track of of bitcoins and where they are? Like so:

Alice wants to send Bob 1 btc she does so and alerts a fair amount of nodes that she did this. The nodes then collectively agree that bitcoin#1251262613616 is now under the control of whatever address alice sent to.

What if Alice also sends the coin to Dave?  Now both Dave and Bob are owners according to a "fair" amount of the network.

The chain is the record.  Each block is basically a list of transactions.  Each transaction moves coins from the control of some people to the control of other people (splitting and combining is also possible).

The coins are actually transaction outputs.  Each transaction output has a value and a rule for spending it.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
August 14, 2013, 07:18:49 PM
#2
That is how banks work today. It depends on trusting them to use good bookkeeping practices and not cheating. It is a good system if people were honest. If the banks would only work that way, then there would be no reason for Bitcoin. The problem is that they don't behave honestly, so we need Bitcoin mining.
member
Activity: 100
Merit: 10
August 14, 2013, 07:14:52 PM
#1
Why not nodes just keep track of of bitcoins and where they are? Like so:

Alice wants to send Bob 1 btc she does so and alerts a fair amount of nodes that she did this. The nodes then collectively agree that bitcoin#1251262613616 is now under the control of whatever address alice sent to. Sort of like a database with two columns, a unique ID column, and a proof of ownership column. Mining can still be a chain, but it would be much simpler considering that each block now doesn't have to store transactions. With this system, mining now is piece of cake, no need to process transactions, no need for large block chain. Transactions are as instant as the propagation on them.

Pardon me if I have something wrong technically, I'm beginning to understand how bitcoin functions cryptographically.
Jump to: