Author

Topic: BIP Proposal: eliminate no-fee transactions in Bitcoin (Read 3548 times)

legendary
Activity: 1512
Merit: 1036
Nothing that you have stated is anywhere remotely useful or informative.

First of all this is not a "BIP", since the decision on whether or not to include free tx has nothing to do with the Bitcoin protocol.
Per BIP 0001:

A Standards Track BIP describes any change that affects most or all Bitcoin implementations, such as a change to the network protocol, a change in block or transaction validity rules, or any change or addition that affects the interoperability of applications using Bitcoin.

This change eventually invalidates some transactions that the reference client currently creates.

optional inclusion of no-fee transactions by miners should be eventually removed.


Second, miners will eventually drop free transactions all on their own, without the blessing of your wise and thoughtful post, because doing so is in their economic best interests. This will happen all on its own as the transaction volume increases.

It is also in their best economic interest to drop transactions that the reference client creates by default. This BIP first fixes the transactions that Bitcoin is creating.
legendary
Activity: 1064
Merit: 1001
optional inclusion of no-fee transactions by miners should be eventually removed.

Nothing that you have stated is anywhere remotely useful or informative.

First of all this is not a "BIP", since the decision on whether or not to include free tx has nothing to do with the Bitcoin protocol.

Second, miners will eventually drop free transactions all on their own, without the blessing of your wise and thoughtful post, because doing so is in their economic best interests. This will happen all on its own as the transaction volume increases.
legendary
Activity: 1512
Merit: 1036
Catching attention with such a title is NOT nice at all and however good your idea might be that you actually want to present, people will immediately look down on it because nobody likes to be fooled.

Okay, you get a non-fooly subject.

Please state exactly how many satoshis is the minimum fee per kB for the centuries to come and why.

I purposefully don't address what the minimum fee amount is, only that the current method for calculating it is appropriate for all transactions, and that optional inclusion of no-fee transactions by miners should be eventually removed. As always, the amount may be changed in the future if deemed necessary, independent of it's enforcement.
legendary
Activity: 2618
Merit: 1007
Catching attention with such a title is NOT nice at all and however good your idea might be that you actually want to present, people will immediately look down on it because nobody likes to be fooled.

Also: Please state exactly how many satoshis is the minimum fee per kB for the centuries to come and why.
legendary
Activity: 1064
Merit: 1001
There will be no more free transactions.

So? I think we all understood that free transactions are doomed. They are only included now to bootstrap the network. As soon as the transaction volume is consistently over the block limit they will be discouraged.

Quote
I would address one more issue if I find it fits the motivation of the BIP, set a max size of the "generate" transaction to avoid miner-flooding (paying the generate transaction out to 1MB of addresses).

You mean the coinbase / subsidy? That's not in a miner's best interests since each additional payout address reduces the amount of space for transactions with fees. As the subsidy dwindles the incentive will decrease exponentially.

Quote
Unfixable in Bitcoin: It would be possible for a mining entity/pool to directly accept free or lower fee transactions under contract. In the miner's block, the miner can include directly-submitted transactions that are not published to other nodes, that appear to pay a minimum fee, but as the miner can "print" fees for free, they can refund the fees to the transaction submitter/gambling site/exchange, thereby offering a cheap occasional spam service.

A solo miner wouldn't have enough hash power to make this economical unless the contractee was willing to wait upwards of days or weeks for the first confirmation. If it was a mining pool, the pool operator would have a tough time explaining to members why some of the transaction fees were not paid out.

But I think you're getting confused with the "minimum fee." There is no minimum fee for transactions in an actual block, miners can fill the block however they want. Including having NO transactions (someone is doing this currently). The minimum fee applies to the relay of transaction messages through the peer to peer network, and it exists to prevent spam.

Either way, directly submitted transactions are not really a problem. A miner would never accept less than the current average fee per kilobyte for a direct submit since doing so is not in their best interests. And they would never need to post the transaction as including more fees than the average, since doing so doesn't help it get into the block (it's already a direct submit).

So far you haven't raised a single valid problem. Bitcoin developers, correct me if I'm wrong, I'm going by the information that I have read over the last few months.
legendary
Activity: 1512
Merit: 1036
The simple philosophy "read before write" applies here.

The priority on transactions must exist, especially with respect to aged coins, or else an attacker can flood the peer to peer network with free transactions that move one satoshi back and forth between two addresses.


There will be no more free transactions. See subject.


I would address one more issue if I find it fits the motivation of the BIP, set a max size of the "generate" transaction to avoid miner-flooding (paying the generate transaction out to 1MB of addresses). This only moves the transactions a miner-flooder would create to the main part of the block though. Typed but not included:

Unfixable in Bitcoin: It would be possible for a mining entity/pool to directly accept free or lower fee transactions under contract. In the miner's block, the miner can include directly-submitted transactions that are not published to other nodes, that appear to pay a minimum fee, but as the miner can "print" fees for free, they can refund the fees to the transaction submitter/gambling site/exchange, thereby offering a cheap occasional spam service.
legendary
Activity: 1064
Merit: 1001
The simple philosophy "read before write" applies here.

The priority on transactions must exist, especially with respect to aged coins, or else an attacker can flood the peer to peer network with free transactions that move one satoshi back and forth between two addresses.
legendary
Activity: 1512
Merit: 1036
Actually I was lying in the alarmist subject (changed), but now you are reading. It's not developers, just me. I consider a standardization on one true fee as beneficial for Bitcoin. The proposal's incompatible "forking" modification, enforcing mandatory transaction fees in miner's blocks, would only take effect after a very long sunset period or after near unanimous miner voting consensus.

I think it's a good idea, you should too.

BIP draft proposal (actually half-a-BIP, I got tired of writing):


Abstract

This standards-track Bitcoin Improvement Proposal declares that Bitcoin and Bitcoin compatible network clients shall now consider all transactions to require the minimum per-kB fee when creating transactions. A future client version shall begin enforcement of this rule in all transaction and mining activity, with a final block number declared after which non-minimum-fee transactions will be considered invalid, including the invalidation of blocks created including them.


Motivation

The computation resources used by transmission, verification, and storage of Bitcoin transactions have no relation to the wealth or patience of the sender. However, Bitcoin currently determines whether fees are required with these exact criteria. Bitcoin has a special high-priority class where transaction fees are not required if the transaction value is large enough or the age of the input is sufficient. Bitcoin clients create transactions without fees if the transaction fits this high-priority criteria. This BIP removes all priority calculations and considerations.

There is only a limited area for these fee-free transactions in a block - 27kB of 250kB. This may create scenarios whereby, depending on network utilization, free transactions may be processed faster than fee-paying ones, or fee-free transactions languish waiting for free space. The implication of such automatic no-fee transactions is not presented to users when creating transactions. This BIP removes the free transaction window from mining.

Except for this free transaction class, other transactions currently require a minimum fee. However, these fees are not strictly enforced by miners, resulting in the creation of transactions by various clients, or organizations on behalf of their customers, with less than the required fee, that will languish or not be processed at all. These are created in the hopes that a miner that doesn't observe rules will eventually include these transactions. This BIP demands minimum fees be paid on all transactions, with its eventual invalidation of all non-compliant transactions.

Rationale

Bitcoin has inconsistent rules that create inconsistent handling of transactions. It makes some transactions free, and doing strange things such as adding another 10 BTC input to a transaction might make an otherwise 0.5 bitcoin fee transaction qualify to be free.

Bitcoin lets high value transactions have free priority. This is counter-intuitive, common sense would set the value of a money transfer at the amount of currency contained in the transfer. Analysis of the Bitcoin protocol would tell you that data size and computation cost should be paid for by transaction fees. Bitcoin does not use the former, it inconsistently uses the latter.

There is no such thing as a "low priority" transaction in Bitcoin, there are only transactions that don't follow minimum fee rules. The reference Bitcoin client won't send these transactions, but others will, often without the knowledge of users of a wallet or banking service. This creates poor performance with no explanation when these transactions aren't processed in a timely fashion.

As maximizing profits is the goal of almost all independent miners, it is reasonable for fee-seeking miners to ignore fee-free (but rule observing) high-priority transactions, creating a poor experience for users of standard clients that create them.

Bitcoin in newer versions (and miners using it) now gives preferential treatment to transactions that include more than the minimum fee - this factor alone is sufficient to prioritize transaction inclusion.
Jump to: