I've seen that it's possible to encode custom data in the block chain.

I'm wondering if it's possible for someone to start a mining pool consisting of client that use some metadata in either wallets or their transactions to process only some transactions, possibly for zero fees, that offers a confirmation time service level.

If so how would one determine the amount of processing power required to honour a certain service level?

Would this service undermine some principal technical mechanisms of the bitcoin network?

1 Answer 1


From what I understand, you are asking whether one can customize a client running at a mining pool to favour some transactions based on factors like what metadata they contain or where they were sent from.

The answer is, yes, it would be pretty easy if you would be able to program a custom client or pool software.

Searching for a piece of information in a transaction is pretty easy and shouldn't require too much processing power (one could for example use OP_PUSHDATA and later OP_DROP to store some data without affecting the transaction). The downside is that anyone could see which transactions were potentially prepared like this.

If you wanted to discriminate based on where the data came from (for example, your own eWallet, or custom wallet running on a computer), you'd need to spend some more time coding, but one couldn't distinguish between your special transactions and the normal ones. You could for example encode the client to wrap the transaction up in some data packet and sign it using a specific key and algorithm before sending it to your server. You'd have to write some special code to check the signature and relay the information to the pool, but it shouldn't be too hard.

Such service would certainly go against the spirit of Bitcoin, and probably you'd get some backlash from the community if it found out, but it is possible none the less. Unless such a pool would hold a considerable amount of Bitcoin network's hashing power however, it would not disturb how the network works. However, if it was to reach 51+% percent of the hashing speed, as it is always with such an attack, it could control the entire network.

  • Just to be clear, I have no intention of attempting to code such a service. Also when I ask about undermining the network, really I mean technically as opposed to idealistically, as in could such a pool of alternative clients be considered a form of attack, or destabilise the network in any way? I've edited to clarify
    – barrymac
    Jan 6, 2012 at 14:55
  • @barrymac Edited accordingly. Basically, unless you hold the majority of hashing power, the network should be safe. Otherwise it would just make the waiting time for transactions being included in the blocks longer (on average by the percentage of network hashing speed it possesses).
    – ThePiachu
    Jan 6, 2012 at 16:02
  • Are you actually saying that an attempt by a particular client or pool to accelerate some transactions over others would actually end up have the opposite of the intended effect, and in fact delay them ? interesting!
    – barrymac
    Jan 9, 2012 at 11:39
  • @berrymac If you wanted to include ONLY preferred transactions, other transactions would be delayed, because they would have to be mined by other pools. When you solve a block, other pools have to start over, thus the delay.
    – ThePiachu
    Jan 9, 2012 at 12:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.