Bitcoin Forum
May 07, 2024, 06:31:11 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Thoughts on transaction pool and orphan pool and DOS attack  (Read 409 times)
Dr.Z (OP)
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
December 05, 2017, 02:34:29 AM
Last edit: December 05, 2017, 07:58:38 AM by Dr.Z
 #1

When a node receives a transaction, it first verifies the signature is valid or not. If the transactions pass the validation with a correct signature, they are added to the transaction pool. If a transaction’s inputs refer to a transaction that is not yet known, the orphan transaction will be stored temporarily in the orphan pool.

DOS attack: Just simply fake some transactions with randomly generated key pairs, they will pass the validation and fill up the orphan pool(since the nodes cant find the input address).

Am I wrong with the transaction validation mechanism on the node or do I miss other technical details? Because this sounds trivial and no one thought about this?
In order to get the maximum amount of activity points possible, you just need to post once per day on average. Skipping days is OK as long as you maintain the average.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Dr.Z (OP)
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
December 06, 2017, 01:56:06 AM
 #2

Wrong place?
unholycactus
Legendary
*
Offline Offline

Activity: 1078
Merit: 1024



View Profile WWW
December 06, 2017, 02:07:08 AM
 #3

The generated keys won't control any funds. This makes you unable to produce a valid transaction.
ranochigo
Legendary
*
Offline Offline

Activity: 2968
Merit: 4168



View Profile
December 06, 2017, 11:53:27 AM
 #4

DOS attack: Just simply fake some transactions with randomly generated key pairs, they will pass the validation and fill up the orphan pool(since the nodes cant find the input address).

Am I wrong with the transaction validation mechanism on the node or do I miss other technical details? Because this sounds trivial and no one thought about this?
Nearly there. The orphan pools serves primarily those without a parent transaction that can be found in their UTXO. For those transactions, they are stored in a orphan pool with a max transaction size of only 100, if I'm not wrong.
You can't do much with it. Even if you want to spam up to their limits, its fruitless and it won't be relayed to other nodes.

Oooh wait, I found it: https://github.com/bitcoin/bitcoin/blob/3c098a8aa0780009c11b66b1a5d488a928629ebf/src/net_processing.h#L13.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Dr.Z (OP)
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
December 07, 2017, 01:00:34 AM
 #5

Nearly there. The orphan pools serves primarily those without a parent transaction that can be found in their UTXO. For those transactions, they are stored in a orphan pool with a max transaction size of only 100, if I'm not wrong.
You can't do much with it. Even if you want to spam up to their limits, its fruitless and it won't be relayed to other nodes.

Oooh wait, I found it: https://github.com/bitcoin/bitcoin/blob/3c098a8aa0780009c11b66b1a5d488a928629ebf/src/net_processing.h#L13.

Thank you. What happens when it reaches the limit. Drop existing transactions or refuse new coming transactions.
I think although the spams won't affect other transactions, it will somehow interrupt the service of orphan pool.
ranochigo
Legendary
*
Offline Offline

Activity: 2968
Merit: 4168



View Profile
December 07, 2017, 02:47:34 AM
 #6

Thank you. What happens when it reaches the limit. Drop existing transactions or refuse new coming transactions.
I think although the spams won't affect other transactions, it will somehow interrupt the service of orphan pool.
For each additional orphan transaction newly received, the client will select one random transaction to kick out, IIRC.

Frankly speaking, the orphan pool isn't of too much importance and if anyone were to spam it, the service wouldn't be really affected either. The main transaction pool should be the mempool.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
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!