Post
Topic
Board Italiano (Italian)
Re: Quant'è il fee minimo?
by
arulbero
on 20/04/2015, 13:48:06 UTC

Quant'è il fee minimo da poter inserire?


La commissione minima per effettuare una transazione è 0, sta a te decidere se pagarla o no con i relativi vantaggi

In realtà dalla versione 0.9 la fee minima è di 1000 satoshi (al di sotto la tx non viene registrata in mempool, quindi rischia di non essere propagata correttamente nel network)

Dove è scritto che la fee minima è di 1000 satoshi? Nelle release note della 0.90 ho trovato solo questo:

Quote
Transaction Fees

This release drops the default fee required to relay transactions across the network and for miners to consider the transaction in their blocks to 0.01mBTC per kilobyte.

Note that getting a transaction relayed across the network does NOT guarantee that the transaction will be accepted by a miner; by default, miners fill their blocks with 50 kilobytes of high-priority transactions, and then with 700 kilobytes of the highest-fee-per-kilobyte transactions.

The minimum relay/mining fee-per-kilobyte may be changed with the minrelaytxfee option. Note that previous releases incorrectly used the mintxfee setting to determine which low-priority transactions should be considered for inclusion in blocks.

The wallet code still uses a default fee for low-priority transactions of 0.1mBTC per kilobyte. During periods of heavy transaction volume, even this fee may not be enough to get transactions confirmed quickly; the mintxfee option may be used to override the default.

Io capisco che i primi 50 kB sono riservati alle transazioni con alta priorità, mentre i successivi 700 kB del blocco sono per le transazioni con un alto rapporto fee/kB.
Quello che determina l'alta priorità nella prima parte del blocco non sono assolutamente le commissioni, che in questo caso non c'entrano nulla, bensì la dimensione della transazione, la quantità di btc e la loro "età" dal loro ultimo spostamento (il numero di conferme degli output non spesi).

Quote
Sending a transaction may be safely sent without fees if these conditions are met:

It is smaller than 1,000 bytes.
All outputs are 0.01 BTC or larger.
Its priority is large enough
(see the Technical Info section below)

Technical info
Transaction priority is calculated as a value-weighted sum of input age, divided by transaction size in bytes:

priority = sum(input_value_in_base_units * input_age)/size_in_bytes

Transactions need to have a priority above 57,600,000 to avoid the enforced limit (as of client version 0.3.21). This threshold is written in the code as COIN * 144 / 250, suggesting that the threshold represents a one day old, 1 btc coin (144 is the expected number of blocks per day) and a transaction size of 250 bytes.

So, for example, a transaction that has 2 inputs, one of 5 btc with 10 confirmations, and one of 2 btc with 3 confirmations, and has a size of 500bytes, will have a priority of

(500000000 * 10 + 200000000 * 3) / 500 = 11,200,000

Quindi, per assurdo, se avessi anche 1 solo satoshi e volessi trasferirlo senza fee nel mio portafoglio, potrei farlo a patto di aggiungerci ad esempio 1 btc che abbia almeno 1 giorno. Se nella transazione utilizzassi 1 btc con diversi giorni di età, con ogni probabilità questa verrebbe inclusa nella prima parte del blocco.
Ovviamente la sicurezza non c'è mai, anche perchè la dimensione dei 50 kB da riservare alle transazioni ad alta priorità penso sia in realtà solo il valore di default di un parametro modificabile da ciascun miner.