<p>Problems:</p>

<p>1) Sybil attack (this is actually a huge one and has been for decades and decades in all kinds of applications). Other answers already mentioned this too. What is a majority if one attacker can easily pretend to be 10 million nodes?</p>

<p>Bitcoin makes (mining) nodes do Proof of Work and it's the amount of (unfakeable) work done that counts, not the number of (easily fakeable) nodes.</p>

<p>2) Timestamp? There is no such thing as an "earliest timestamped trade". Transactions arrive at different nodes at different times. Do you trust the timestamp that the attached put inside the transaction or do you listen to the majority (see 1).</p>

<p>Note that Bitcoin decides what is "earliest" by constructing a global clock that beats very irregularly, but on average every 10 minutes.</p>

<p>3) Initial download. Where in your system is a brand new node going to get the current ledger? From the majority? (See 1) Bitcoin solves this by keeping the history so as long as you start with the initial genesis block, you'll arrive at the current ledger without having to trust anyone.</p>

<p>4) Keeping balances is actually not more efficient at all if you care anything for the pseudonymous nature of Bitcoin. Every address is supposed to be unique so if you keep a balance for every address it's still going to be big. Sure you can drop zero balances but Bitcoin does that too in the UTXO set. Once validated old blocks don't matter anymore at all. They get archived on disk or even deleted (pruned). So the 50GB of blocks don't matter anymore anyway.</p>

CC BY-SA 3.0
2015-11-27T12:17:26.033Z
The bit about "zero balances being dropped" is slightly misleading, zero value outputs are actually quite valid in Bitcoin.
Claris
CC BY-SA 3.0
2015-11-27T15:18:54.530Z
True, it's not the zero that is key there. It's the fact that an output has been consumed, so it can be dropped. I was trying to suggest the analogous situation to a 0 balance, in a balance-ledger.
Jannes
CC BY-SA 3.0
2015-11-27T00:18:19.103Z
2015-11-29T15:14:45.043Z
2015-11-29T15:14:45.043Z
Jannes
<p>Something that you must explain is that you must define how nodes can join the network. If there is no barrier to entry, someone could create enough nodes to become the majority then double spend.</p>

<p>Another thing is that you described a clearing mechanism, but not an issuing mechanism. How does money enter the system at the beginning and throughout?</p>

CC BY-SA 3.0
2015-11-27T14:49:45.780Z
doesn't a powerhouse like MIT, or even the NSA if they wanted to tear the economic heart out of the dark net, have enough computing power to dominate the network already if they truly wanted to? As for the mining, it seems like that is the primary benefit of the hash problem, but the waste of electricity involved, seems like there must be a more efficient answer. I should note, I'm not proposing a new currency, I just want to know if the hash problem truly offers some other protection that I'm not aware of
Nob0dySp3cial
CC BY-SA 3.0
2015-11-29T21:15:05.757Z
@Nob0dySp3cial A design feature of the Bitcoin protocol is that if an attacker has so much hashing power, they can profit more by mining bitcoins instead of disrupting the network.
Nayuki
CC BY-SA 3.0
2015-11-26T22:31:27.960Z
2015-11-26T22:38:06.863Z
2015-11-26T22:38:06.863Z
davidhwang
<p>Mainly I am proposing the idea below because I feel that the blockchain is overkill, but I assume I must be missing something. So if someone could pick out the flaw below, I would greatly appreciate it.</p>

<hr>

<p>Suppose there is an alternative architecture:</p>

<p>Every user holds a complete ledger, not of all historical transactions, but the current balance of every other user. To send a coin, I would simply send out a message to every node saying who the money is going to and how much. Then using my address (public key), all other nodes can determine if the message actually came from me, and if so alter their copy of the ledger. As a fail safe against double spending, before this alteration takes place, every node would then query other nodes and see if if the majority have received the same message. If two transactions are present, it would enact the earliest timestamped trade (or whoever the majority thinks is first), then accept or reject the later based on balance.</p>

CC BY-SA 3.0
2015-11-26T22:52:58.550Z
It doesn't really seem like your proposed system is appreciably faster or simpler. However, there's not really enough details of the system to evaluate how well it would work. For example, how does the system resolve a split if half of the system thinks a transaction went through, and half thinks a different, mutually exclusive transaction went through? How do you prevent MIT from using their 16 million IP addresses to dominate the network?
Nick ODell
CC BY-SA 3.0
2015-11-27T14:48:54.153Z
doesn't a powerhouse like MIT, or even the NSA if they wanted to tear the economic heart out of the dark net, have enough computing power to achieve the same thing with the current blockchain?
Nob0dySp3cial
CC BY-SA 3.0
2015-11-27T18:34:10.177Z
That's true. The amount of money required to control more than half of all Bitcoin mining is something like a tenth of a percent of the US military's black budget. It's quite possible that if you fully developed this idea, it would be better/more practical than Bitcoin. As it stands, though, a lot of this is awfully vague.
Nick ODell
CC BY-SA 3.0
2015-11-29T21:13:52.313Z
See this answer for why checking the majority of your peers does not work: http://bitcoin.stackexchange.com/questions/41544/double-spending/41552#41552
Nayuki
<blockchain><encryption>
why is the blockchain necessary if bitcoins utilize cryptography
Nob0dySp3cial
# why is the blockchain necessary if bitcoins utilize cryptography

(Asked by: username_0 on 2015-11-26)

Mainly I am proposing the idea below because I feel that the blockchain is overkill, but I assume I must be missing something. So if someone could pick out the flaw below, I would greatly appreciate it.

---

Suppose there is an alternative architecture:

Every user holds a complete ledger, not of all historical transactions, but the current balance of every other user. To send a coin, I would simply send out a message to every node saying who the money is going to and how much. Then using my address (public key), all other nodes can determine if the message actually came from me, and if so alter their copy of the ledger. As a fail safe against double spending, before this alteration takes place, every node would then query other nodes and see if if the majority have received the same message. If two transactions are present, it would enact the earliest timestamped trade (or whoever the majority thinks is first), then accept or reject the later based on balance.

**Tags:** blockchain, encryption

> **Comments:**
> **username_1**: It doesn't really seem like your proposed system is appreciably faster or simpler. However, there's not really enough details of the system to evaluate how well it would work. For example, how does the system resolve a split if half of the system thinks a transaction went through, and half thinks a different, mutually exclusive transaction went through? How do you prevent MIT from using their 16 million IP addresses to dominate the network?  
> **username_0**: doesn't a powerhouse like MIT, or even the NSA if they wanted to tear the economic heart out of the dark net, have enough computing power to achieve the same thing with the current blockchain?  
> **username_1**: That's true. The amount of money required to control more than half of all Bitcoin mining is something like a tenth of a percent of the US military's black budget. It's quite possible that if you fully developed this idea, it would be better/more practical than Bitcoin. As it stands, though, a lot of this is awfully vague.  
> **username_2**: See this answer for why checking the majority of your peers does not work: http://bitcoin.stackexchange.com/questions/41544/double-spending/41552#41552  

---

## 2 answers

### Answer by username_3 on 2015-11-27. Score: 6

Problems:

1) Sybil attack (this is actually a huge one and has been for decades and decades in all kinds of applications). Other answers already mentioned this too. What is a majority if one attacker can easily pretend to be 10 million nodes?

Bitcoin makes (mining) nodes do Proof of Work and it's the amount of (unfakeable) work done that counts, not the number of (easily fakeable) nodes.

2) Timestamp? There is no such thing as an "earliest timestamped trade". Transactions arrive at different nodes at different times. Do you trust the timestamp that the attached put inside the transaction or do you listen to the majority (see 1).

Note that Bitcoin decides what is "earliest" by constructing a global clock that beats very irregularly, but on average every 10 minutes.

3) Initial download. Where in your system is a brand new node going to get the current ledger? From the majority? (See 1) Bitcoin solves this by keeping the history so as long as you start with the initial genesis block, you'll arrive at the current ledger without having to trust anyone.

4) Keeping balances is actually not more efficient at all if you care anything for the pseudonymous nature of Bitcoin. Every address is supposed to be unique so if you keep a balance for every address it's still going to be big. Sure you can drop zero balances but Bitcoin does that too in the UTXO set. Once validated old blocks don't matter anymore at all. They get archived on disk or even deleted (pruned). So the 50GB of blocks don't matter anymore anyway.

> **Comments:**
> **username_4**: The bit about "zero balances being dropped" is slightly misleading, zero value outputs are actually quite valid in Bitcoin.  
> **username_3**: True, it's not the zero that is key there. It's the fact that an output has been consumed, so it can be dropped. I was trying to suggest the analogous situation to a 0 balance, in a balance-ledger.  

---

### Answer by username_5 on 2015-11-26. Score: 2

Something that you must explain is that you must define how nodes can join the network. If there is no barrier to entry, someone could create enough nodes to become the majority then double spend.

Another thing is that you described a clearing mechanism, but not an issuing mechanism. How does money enter the system at the beginning and throughout?

> **Comments:**
> **username_0**: doesn't a powerhouse like MIT, or even the NSA if they wanted to tear the economic heart out of the dark net, have enough computing power to dominate the network already if they truly wanted to? As for the mining, it seems like that is the primary benefit of the hash problem, but the waste of electricity involved, seems like there must be a more efficient answer. I should note, I'm not proposing a new currency, I just want to know if the hash problem truly offers some other protection that I'm not aware of  
> **username_2**: @username_0 A design feature of the Bitcoin protocol is that if an attacker has so much hashing power, they can profit more by mining bitcoins instead of disrupting the network.  

---

