Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Remember remember the 5th of November on May 24, 2013, 08:43:18 PM



Title: Do nodes relay big transactions without a fee?
Post by: Remember remember the 5th of November on May 24, 2013, 08:43:18 PM
For instance, a transaction has many small inputs, and the user sends this transaction without a fee. Would a node relay this transaction to other nodes regardless of the fact that it has zero fee, but it's big(not huge, just bigger than normal)?

Trying to figure out if an attack like this would work:
  User A sends User B a transaction of the type described above. User A first makes sure his node has a lot of connections and broadcasts this transaction without a fee just once and never again.  User B after a while sees this tx in Bitcoin-Qt and is willing to send User A say 500 Litecoins immediately, but includes a sufficient fee. No miner is willing to include User A's transaction in a block, so after a while most nodes will drop it from their memory pool and it will be forgotten. User A now gets to keep his Bitcoins and also 500LTC.


Title: Re: Do nodes relay big transactions without a fee?
Post by: Gabi on May 24, 2013, 09:12:07 PM
Fee is for miners, not for relaying. A transaction is relayed to matter the fee (depending on the bitcoin rules and the local rules of course)


Title: Re: Do nodes relay big transactions without a fee?
Post by: scintill on May 24, 2013, 09:52:42 PM
The basic question might still be worth answering (I don't really know the answer), but I don't think this is an "attack" any more than any other zero-conf transaction.  There will always be ways to trick people when it comes to relayed transactions, that's why you have to wait until several confirmations prove the person can't double-spend.


Title: Re: Do nodes relay big transactions without a fee?
Post by: gmaxwell on May 25, 2013, 01:04:11 AM
As scintill says,  unconfirmed transactions are unsafe and there are many ways you can be out spent in them.

In exchange protocols what you need to do is first pay into a escrow transaction that requires both parties to sign, let that confirm and then you can be confident that it can't be spent out from under you.

As for the specific question being asked—  on Bitcoin network nothing standard will relay or mine transactions over 100k under any condition to avoid DOS attacks. Transactions without fee are not relayed if they're over 23k or so, also to avoid DOS attacks.