Author

Topic: can a tx determine who is allowed to mine it? power to the users (Read 1017 times)

sr. member
Activity: 403
Merit: 251
In theory (not part of the protocol), the transaction could include requirements for the block header to be included. So for example it could specify that only specific version numbers in the block header are allowed. However, the version number can be faked, it doesn't tell you what the miner is really running.

The simplest solution is probably to just hand-pick who you are submitting your transaction to; if they don't broadcast it, only those who received it can mine it.
Yes, they don't have to broadcast it.

But if someone tries a soft fork with nonstandard transactions that can't be mined by anyone,
then *other* nodes don't have to broadcast these funny tx's. (effectively, the dev team would decide)

staff
Activity: 4326
Merit: 8951
The power has been not in the hands of users, but in the hands of pools,
Yep.

Quote
"Centralization" is a non-issue, unless one entity gains a majority hashrate AND decides that breaking Bitcoin is worth more than 1800 BTC a day.

Here I'm not so sure. Would you have ever used Bitcoin if it was advertised to you as: "Totally secure unless _two_ computers, or their operators, are compromised by someone who doesn't mind making a mess"?

If you're willing to accept that kind of security model you could have something _far_ more efficient than a blockchain.

But as Meni said, the ask in this post can be accomplished by selecting who you give your transactions to.

The OP might find the idea of transaction checkpoints interesting.  The notion is that we could have transaction which specify a small (32 bit, say) checkpoint in them and a softforking rule that miners cannot take fees from a transaction where the checkpoint doesn't agree with the chain.  This would allow users to make their fees conditional on the miner mining a chain they like.  Very simple to implement.
sr. member
Activity: 461
Merit: 251
A somewhat related idea that I've always liked is for transactions to optionally include a block hash such that the transaction fees are claimable by the miner only if his chain builds upon the included block hash.  This would allow users to specify block construction policies that miners must adhere to if they want to receive the transaction fees.  The net effect would be for miners to enact policies that make the most (paying) users happy, else they be put at a competitive disadvantage to miners that do.

This isn't currently relevant, as transaction fees are insignificant, but in a future where they aren't, this idea could be used to distribute some of the power that miners currently hold to the users.

Though, I suppose it's not entirely clear that users would enact better policies than miners.  And perhaps the users would just carelessly delegate away this power, with it becoming more consolidated than it was with the miners.  Violating the Iron law of oligarchy is quite the engineering challenge Smiley
full member
Activity: 144
Merit: 100
This brings up a good point.  If I want to patronize a certain miner, but don't care how long it takes, I can send the transaction directly to them.  If they don't rebroadcast it before they mine it, then they get the fee.  Depending on the miner, though, I may be waiting a while.  Lets say I wanted to patronize BitMinter.  I could send them a secret transaction, which they alone would mine and get the fees from.

However, over the past two days, they have only had 3 blocks per day.  http://blockchain.info/blocks/BitMinter.  If you are willing to wait 1/3 of a day, then this solution works.  Keep in mind, though you will be competing for block space with the rest of the world for those 10 minutes, so the fee had better be higher than market rate.
sr. member
Activity: 350
Merit: 250
This idea screams double spend fraud.
legendary
Activity: 1512
Merit: 1036
The power has been not in the hands of users, but in the hands of pools, for a long time. ASICs are just a technology miners use, it has not fundamentally changed the distribution of hashrate between pools. ASIC users are free, however, to vote to distribute their horsepower to pools in a way that it does not centralize power or give it to those with anti-Bitcoin transaction inclusion/exclusion rules.

"Centralization" is a non-issue, unless one entity gains a majority hashrate AND decides that breaking Bitcoin is worth more than 1800 BTC a day.

The growing difficulty is a good thing, it makes for a higher computational price-of-entry for attack. A determined entity (a three letter agency of a nation state, for example) could have made ASICs long ago, now they would have to overpower all the GPU, FPGA, and ASIC miners currently in existence.
donator
Activity: 2058
Merit: 1054
the post is not talking about boycotting ASIC miners, only on retrieving the power to 'vote',
i actually brought up the term 'economic majority' which was attributed to you, and i am trying to think how to apply it in the future of the protocol when the set block reward will not be as significant as the transaction fee.
Ok, I think I understand a bit better what you're trying to do.

I had noticed you linked to the page on economic majority. I should point out that the page had some information which I think is untrue and is different from what I was thinking of when bringing up the term (I've now edited it).

Specifically, people who have bitcoins don't have much power in this - they'll have the same bitcoins whatever fork is chosen, and must go along with whatever other people choose if they want their bitcoins to maintain the value. Those with power are people who have other things of value which they are willing to exchange for bitcoins - they can hold their valuables hostage and refuse to give them away for bitcoins of the "wrong" branch.

Basically, if Bitcoin is seen abstractly as a service provider, you can only negotiate your "terms" (how the Bitcoin protocol works) before buying - afterwards you're locked in.

Of course, you can have bitcoins and still offer more valuables for more bitcoins, with bargaining power corresponding to the additional value you can offer.

The point of this is that
1. You should not expect people who have bitcoins (and can thus pay tx fees) to have a say in this.
2. No special action is needed to maintain the power of the economic majority, this happens organically through market forces.
3. Trying to maintain voting power by choosing who can mine a tx is not appropriate, as the real voting is not done in mining, but on the market.
member
Activity: 92
Merit: 10
meni,
in regard to ASIC mining, it is not similar to the 'jump' between GPU mining and CPU mining. both a video card and a CPU are not specific task hardware, and they allow low entry level to the mining arena. people could mine on their existing hardware, this has changed.
but i agree we should not focus on preventing change... it is futile and counterproductive.

the post is not talking about boycotting ASIC miners, only on retrieving the power to 'vote',
i actually brought up the term 'economic majority' which was attributed to you, and i am trying to think how to apply it in the future of the protocol when the set block reward will not be as significant as the transaction fee.
donator
Activity: 2058
Merit: 1054
Blocks don't have the discriminative power to determine who it is that found them.

In theory (not part of the protocol), the transaction could include requirements for the block header to be included. So for example it could specify that only specific version numbers in the block header are allowed. However, the version number can be faked, it doesn't tell you what the miner is really running.

The simplest solution is probably to just hand-pick who you are submitting your transaction to; if they don't broadcast it, only those who received it can mine it.

In any case, I think the problem is overstated - we didn't have a problem when ATI was the only manufacturer of mining hardware, and I don't see how mining ASICs would be much different. And, boycotting ASIC miners as a method of combating the perceived problem suffers from tragedy of the commons.
legendary
Activity: 1792
Merit: 1122


question: if i pay a fee for my transaction, can the protocol limit who is capable to mine this transaction and collect the fees with his block rewards [ for example only a miner running the same or lower version of bitcoin] ?

having such a function will assure that in time, when the system is matures enough, market laws will allow voting to return to the users.

https://en.bitcoin.it/wiki/Economic_majority

Currently not, but this is not a new idea.

This could be done in a soft-fork.

Each transaction will include a zero-value output, which the script contains a block height and the corresponding hash. The miner may take the fee only if he is mining on this chain, or the block becomes invalid.
member
Activity: 92
Merit: 10

right now with the rise of ASIC miners the 'voting' power of which version of the protocol is run is in the hands of larger and fewer miners.
this reduces the decentralized effect of bitcoin.

we must also take into account that the set 'block reward' is getting smaller with time, halving every 4 years.
as the network scales up more % of the total block reward is going to come from transaction fees.
at some point in time transaction fees will amount to the major part of block rewards.

question: if i pay a fee for my transaction, can the protocol limit who is capable to mine this transaction and collect the fees with his block rewards [ for example only a miner running the same or lower version of bitcoin] ?

having such a function will assure that in time, when the system is matures enough, market laws will allow voting to return to the users.

https://en.bitcoin.it/wiki/Economic_majority
Jump to: