Author

Topic: Direct connection to miners: better or worse? (Read 845 times)

vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
August 06, 2012, 01:15:30 PM
#5
Nodes still need to hear unconfirmed transactions so they can properly reject double spends.

No they don't. Only if you are accepting 0/unconfirmed transactions you need it.

Accepting 0/unconfirmed transactions is something average users do every day.  I accept 0/unconfirmed transactions all the time depending on the circumstances, particularly if I am accepting bitcoins from someone I trust or have recourse against, or if it's a small amount and I am not concerned about a double spend risk.  Being able to see that a transaction has arrived immediately and without waiting an unpredictable number of minutes for a confirmation is a convenience so ubiquitous we take for granted, is typical of modern-day software, and there is no real good reason to take it away.


hero member
Activity: 555
Merit: 654
Nodes still need to hear unconfirmed transactions so they can properly reject double spends.

No they don't. Only if you are accepting 0/unconfirmed transactions you need it.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
Nodes still need to hear unconfirmed transactions so they can properly reject double spends.
hero member
Activity: 555
Merit: 654
- CON. Users are less anonymous since miners can see the IP of users from where transactions are coming. This can be solved by users using Tor.

hero member
Activity: 555
Merit: 654
I've been thinking about the benefits or drawbacks of users connecting directly to miners.
Casascius Instant Partial Confirmation proposes a method where users can locate miners by addresses published on blocks.
These addresses could be normal IP, Tor addresses or whatever system each miner chooses to be located.

Currently the P2P network serves two purposes:

1. Send transactions from users to miners
2. Send blocks from miners to users.

These two transports are coupled together now but this may not be the best idea. One can imagine that users could connect directly to miners to send the transactions and the P2P network is only used to broadcasts blocks. Users willing to send a tx would choose a random sample of K miners of the last X blocks, possibly weighed by network hash power percentage. Then send the tx only to those miners.

The benefits/drawbacks would be:

- PRO. Less than half the network bandwidth usage (also users never see txs that never got into a block because of low fees)
- PRO. Less than half the CPU usage in clients (not true on v0.6.3+)
- PRO. P2P network less susceptible to DoS by spamming.
- PRO. Less memory usage for client application (no need for Tx cache, Sig chache, Orphan Tx cache, etc.)
- PRO. Huge simplification in client application

- CON. No 0-confirmations for transactions (at least not in the way it's done today)
- CON. Miners have to find there own methods to prevent DoS attacks to their servers.
- CON. Miners are less anonymous (but they are not completely anonymous in Bitcoin anyway)
- CON. New miners must publish empty blocks until they are known by the network.


Migrating from the current system gradually would be very easy by:

- adding the possibility to connect directly to miners
- reducing the incentive of users to broadcast the tx using the P2P network by reducing the bandwidth available for tx exchange.

What do you think?

Best regards,  Sergio.

Jump to: