Looks like there's some renewed interest in this - any chance a shared mining pool (which I thought of, but figured it was somewhere in this thread already - and it was) could make an appearance, or is the I/O cost still too high?
It's possible to make vanity address mining much like regular bitcoin mining, in the sense of tracking the total work completed by each participant, and possibly distributing rewards to all participants rather than just the finder. The idea would be, if somebody wants 1DanieLRH, post the bounty for 1Danie, and keep track of how many addresses each miner returns. Eventually, a matching address will come back, and all of the partial matches will make it possible to determine the division of compute resources.
I suppose the partial rewards would be possible, but could tax the pool a bit too much. It is running on Google App Engine which charges for each read/write operation. I guess if there is enough demand I can look into that.
Though the way I had thought of doing this was to be a bit more useful in the work generated - but then samr7 seems to have disappeared and several code changes would be needed, if even possible without breaking the whole 'zero trust' bit. But a possibly simpler solution dawned on me that should work without any changes on the miner side - but may be a headache in the making for accounting.
In addition to the long-prefix (Lx) work posted, you would have another set of work posted that has much simpler vanity prefixes (Sx) - be that short common words, repeating characters, or just inherently simpler prefixes (trying to recall why some characters were inherently more difficult than others.. might have been dreaming that); say prefixes that may average just a few per day (as opposed to the current '50% change of hitting a solution in N years')
A miner would run the oclvanityminer app twice*, with two different URLs for each (so that each gets a different list), supplying the same bitcoin address (this becomes the miner's 'ID'). When started 'as is', each will be mining at about the same hash rate (a 50/50 split), so the number of solutions sent out for Sx becomes indicative of how much work they're doing toward the solution of Lx.
If the miner decides to give Sx a higher priority (assigning more threads, say), this inherently cuts into the hash rate for the Lx, making it less likely that they will hit the Lx within the same time frame as somebody who leaves it at 50/50. So while they may get a larger proportion of the bounty** once Lx has been found, it would - on average - take longer for it to be found, thus eating into electricity/maintenance costs and also allowing more shares by others to be submitted in that time.
If they decide to do the opposite, giving Lx a higher priority than Sx, they may arrive at a solution of Lx more quickly, but because they have sent in fewer Sx, they'll get a smaller proportion of the bounty.
* May need -g XxY tweaks as otherwise it may run out of resources (and crash the driver while at it - oops).** One option to discourage this behavior further is by giving the miner that actually finds the bounty a larger proportion by default - thus encouraging a miner to mine as fast as possible, 'beating' others to the solution, while letting them decide the shares vs actually-finding-it trade-offThe upsides to this approach are:
- Can be done right now without any tweaks to the mining software.
- The Sx results can be actually useful. Be that many 1Piachu prefixes for your own use, shorter prefixes as paid for by other customers (but with corresponding very small bounty), or generic prefixes ready to be sold off to a trusting party.
- Would enable a shared pool, as proposed.
The downsides are many, too, though:
- You'd have to set up the server to actually handle all this, and have to explain to everybody that you must run both instances or all work is done for nothing (as 'shares' are essentially not recorded). This may be forced by taking the original pool URL down (miner client will throw an error) and putting a notice up to explain what's going on. Alternatively, keep it up for those using the current format and add new sought-after Lx on a new URL.
- You might not care for 'free' prefixes for your own use, convincing customers to post/add Sx entries and include bounties for those as well may be difficult, and while I can see the use for you selling packs of "1,000 1He11o addresses" for $n, most people would not be trusting you to have actually destroyed the private keys.
- The 'discouragement' option modifies it from a fully shared pool to one where luck is factored back in (right now, it's almost completely luck whether you get the Lx before anybody else.). On second thought, maybe that's not really a down side. Just an aside.