Bitcoin Forum
May 17, 2024, 03:35:18 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Valid, but non-transmittable. Internal Node Logic can stop spam transactions.  (Read 1230 times)
coastermonger (OP)
Sr. Member
****
Offline Offline

Activity: 367
Merit: 250

Find me at Bitrated


View Profile
February 13, 2014, 10:52:59 AM
 #1

It's curious that even with a dust limit of 5430 satoshi's, the network is still getting spammed to no end.  https://blockchain.info/address/1SochiWwFFySPjQoi2biVftXn8NRPCSQC

Nodes that receive these transactions will happily send out "inv" messages and relay them to other nodes, who respond with "getdata," also confirm the transactions as valid, and broadcast the transactions to everyone else.  What if nodes had further logic to understand when these types of transactions are being created?  Since they are essentially never going to confirm and are zero cost, it doesn't make sense for every node to be forced to broadcast them to begin with.  

The solution won't necessarily be straightforward.  A simple check such as [(sum of inputs)/(number of inputs) >5430 = true then send] might sound promising, but in practice it doesn't cut it because a spammer could just include one or several much larger outputs back to themselves as part of the overall transaction.  Additionally, talking about any kind of limitation on the types of transactions that can be sent out strays into dangerous territory: no one wants to cripple the network.  

But is it possible to nip this type of spam in the bud or are we stuck with it for all eternity? I'm imagining a future where dozens of unconfirmed transactions arrive into my account by the minute.   Undecided

Bitrated user: Rees.
hostmaster
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250


View Profile WWW
February 13, 2014, 11:04:02 AM
 #2

It's curious that even with a dust limit of 5430 satoshi's, the network is still getting spammed to no end.  https://blockchain.info/address/1SochiWwFFySPjQoi2biVftXn8NRPCSQC

Nodes that receive these transactions will happily send out "inv" messages and relay them to other nodes, who respond with "getdata," also confirm the transactions as valid, and happily broadcast the transactions to everyone else.  What if nodes had further logic to understand when these types of transactions are being created?  Since they are essentially never going to confirm and are zero cost, it doesn't make sense for every node to be forced to broadcast them to begin with.  

The solution won't necessarily be straightforward.  A simple check such as [(sum of inputs)/(number of inputs) >5430 = true then send] might sound promising, but in practice it doesn't cut it because a spammer could just include one or several much larger outputs back to themselves as part of the overall transaction.  Additionally, talking about any kind of limitation on the types of transactions that can be sent out strays into dangerous territory: no one wants to cripple the network.  

But is it possible to nip this type of spam in the bud or are we stuck with it for all eternity? I'm imagining a future where dozens of unconfirmed transactions arrive into my account by the minute.   Undecided
thanks for good explanation. I think Bitcoin spammers best cared by another mechanism who will shutdown nodes which seem to spamming at least temporarly. smtg like X node did total H amount transaction under Y amount time and the percentage per transactions was below 1000 satoshi and he sees and alert box, spamming harming our eco so you gotto wait Z amount time...
just thinking on it little bit....
coastermonger (OP)
Sr. Member
****
Offline Offline

Activity: 367
Merit: 250

Find me at Bitrated


View Profile
February 13, 2014, 11:23:27 AM
Last edit: February 13, 2014, 12:18:41 PM by coastermonger
 #3

Localizing and penalizing nodes that broadcast spam might also sound like a good idea at first, but it's easy to circumvent by creating new nodes, or hijacking tools to take advantage of someone else's resources to broadcast a transaction.  I.e. https://blockchain.info/pushtx

I'm of the belief that some types of spam can be definitively and mathematically identified, so the first issue to focus on for the moment is:  What criteria would definitively identify a transaction as spam?  

Keep in mind that the potential for false positive blocks is not permissible, and any changes that caused them would likely be rejected (and should be) by the devs and community

Bitrated user: Rees.
coastermonger (OP)
Sr. Member
****
Offline Offline

Activity: 367
Merit: 250

Find me at Bitrated


View Profile
February 13, 2014, 12:01:56 PM
 #4

Actually, whether or not we can even discuss that first probably depends on this process.  


Bitrated user: Rees.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8421



View Profile WWW
February 13, 2014, 12:28:05 PM
 #5

it doesn't make sense for every node to be forced to broadcast them to begin with.  
They don't. Stock nodes will not relay these dust transactions.  Unfortunately, a lot of people have overridden the defaults, and the abuse we're currently seeing is the result.

If you're unhappy about it, go see what pools are mining them, and prod their hashing customers to ask their pools why they're mining abusive spam.
coastermonger (OP)
Sr. Member
****
Offline Offline

Activity: 367
Merit: 250

Find me at Bitrated


View Profile
February 14, 2014, 09:00:47 AM
 #6

it doesn't make sense for every node to be forced to broadcast them to begin with.  
They don't. Stock nodes will not relay these dust transactions.  Unfortunately, a lot of people have overridden the defaults, and the abuse we're currently seeing is the result.  

So... people can override the node default to send these dust transactions,
Is it possible to have a client that still doesn't have to accept them?

Bitrated user: Rees.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!