I have an idea (not sure if it is a new one), so-called "mining for transaction", aims at dealing with the following problems:
1. Tx fee is required to prevent DoS attack. However, some people may not want to pay Tx fee. Particularly, if the tx amount is small (e.g. 0.0001BTC), the tx fee (now usually 0.005BTC) may exceed the tx amount
2. To avoid overhead, miners may not include any tx in their blocks (this did happen). Since tx fee is only a very tiny part of the mining bonus, this kind of unethical behavior is not punished and will hurt bitcoin economy
3. Currently, non-miners (bitcoin users who are not miners) have no position in blockchain development. This is not good because they should be valued as stakeholders of the network.
4. Currently, the only mechemism to adjust the block generation rate is by re-target for about every 2016 blocks. However, there is no mechemism to reduce the variation between rounds. Gaps between rounds could be only a few seconds with good luck, or much longer than 10 minutes with bad luck.
1. To minimize tx fee while still preventing DoS attack
2. To encourage miners to include tx to block
3. To make the process of mining more decentralized by engaging non-miners in the mining process, hence reduce the risk of 51% attack
4. To provide a feedback mechemism to reduce the time variation between blocks
1. Priority has the same meaning in the current protocol -- as defined here: https://en.bitcoin.it/wiki/Transaction_fees
. A tx with high priority means its input value is big, input age is old, and/or tx size is small
2. Tx hash, Block hash, Target, and Tx fee have the same meaning in the current protocol
3. Block bonus is the coins generated by mining, now 50BTC
4. Adjusted Tx hash (ATH) = (1 - x) + ((Tx hash * x) / (2^256 * Priority)), where x ranges from 0 to 1. For example, if x = 0.01, any adjusted Tx hash should range from 0.99 to 1
5. Adjusted block hash (ABH) = Block hash * ATH_1 * ATH_2 * ATH_3 * ...... ATH_N , where ATH_1 is the ATH of the first Tx in the block, N is the number of Tx in the block (ignoring the generation tx)
6. A block is vaild if ABH =< Target
By doing so, a tx-sender will mine for his own transaction (usually by CPU) before sending it to the network. A lower ATH is better, and there is no specific target. Miner will want tx with low ATH since they could reduce the ABH, which increase the likelihood of having a valid block (controlled by the value x).
x should be a fixed parameters, and x=0 is equivalent to the current protocol. The value of x should be small enough to ensure that the benefit from mining for transaction is less than that of mining for low block hash (otherwise people will mine for transcation and no one will mine for a block)
Alternatively, tx-senders may opt to pay traditional tx fee, instead of mining for his own tx (e.g. in case of using a slow computer). Or they may do both if they want to ensure instant acceptane by the network.
This protocol increases the cost of DoS attack by requesting proof-of-work and/or tx fee from tx-sender.
Since tx-senders will mine while usually they won't, this effectively increase the total hashing power of the whole network, lowering the chance of certain types 51% attack. It is now more difficult to prevent some or all transactions from gaining any confirmations, as the attacker will become less competative than honest miners. Also, it is difficult to invalidate historical tx as more mining power is needed to compensate the exclusion of historical tx.
Although the overall difficulty will be increased, it will be compensated by mining efforts from tx-senders and the de facto diffculty for miner should be similar to the current protocol. Bad miners trying not to include any tx will be punished as their de facto difficulty is higher than honest miners (more accurately: not lowered)
Feedback mechenism: At the beginning of a round, there is only a few tx on the waiting list and it is (relatively) more difficult to find a valid block. As the waiting list becomes longer, the de facto difficulty for the next block will be lowered by multipying many ATHs. This will reduce the likelihood of extremely good-luck and bad-luck rounds, and make the blocks more even distributed.
The only thing I am not sure is the choice of value of x. The system will collapse if the benefit of mining for tx is greater than mining for block. By the way, this article is conceptual and details (e.g. calculation of ATH, ABH and Priority) could be modified
If you like my idea, please send some tips to: 1Q8Ggvt13zrPdKNniPpCToHfTkSc5sgscW