<p>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.</p>

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

<p>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.</p>

<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2012-01-06T14:55:56.727Z
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
CC BY-SA 3.0
2012-01-06T16:02:58.700Z
@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
CC BY-SA 3.0
2012-01-09T11:39:01.277Z
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
CC BY-SA 3.0
2012-01-09T12:34:51.403Z
@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
CC BY-SA 3.0
2012-01-06T13:40:45.807Z
2012-01-06T16:00:56.040Z
2012-01-06T16:00:56.040Z
ThePiachu
<p>I've seen that it's possible to encode custom data in the block chain. </p>

<p>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.</p>

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

<p>Would this service undermine some principal technical mechanisms of the bitcoin network? </p>

<mining-pools><security><development><transaction-selection>
Would it be possible to create a mining pool service that specifically processed only certain transactions?
barrymac
# Would it be possible to create a mining pool service that specifically processed only certain transactions?

(Asked by: username_0 on 2012-01-06)

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?

**Tags:** mining-pools, security, development, transaction-selection


---

## 1 answers

### Answer by username_1 on 2012-01-06. Score: 3 | Accepted answer

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.

> **Comments:**
> **username_0**: 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  
> **username_1**: @username_0 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).  
> **username_0**: 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!  
> **username_1**: @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.  

---

