On another note, why oh why do you multiply the value by 2^32 to get "lavishness?" As I tried to plead before, the terms "difficulty" and "value" are perfectly applicable here, and are an established convention in vanitygen. Furthermore, value, as defined in vanitygen, is a meaningful quantity: reward / key. A user can take this number and multiply it by their key/s rate and figure out their expected reward. Multiplying by 2^32 just makes it that much harder for the user. Creating some new, arbitrary units when there are perfectly good ones already is almost a sin in the scientific community. Of course, if you can justify the creation of some new units, fine, but I don't see the justification for these ones.
Hmm, I suppose lavishness if useful when determining the mining ratio. From my FAQ page:
MR = L * (d/r) * (k/m) = 2^32 * (b/c) * (d/r) * (k/m)
(b/c) is as you said, value of the address. If you want to compare that to how much you would earn by mining blocks, you would have to multiply that by 2^32 * (d/r) * (k/m), which can be quite complex. Value would be a really small number, 2^32 is a really large number, and the other two are somewhere in between. If, however, you would take Lavishness, it would give most parts of the equation values that can be understood by people.
I suppose I should start using the Value once GPU mining stops becoming a thing and nobody will be comparing the two.
As for the complexity and bounty instead of difficulty and reward - I mainly use it to distinguish between key mining and block mining. I use "bounty", because people are setting their bounties for solving their work. Complexity I use because it is a bit of a different thing. Difficulty is an arbitrary construct in itself - a ratio of the maximum Target (2^32) to the current Target. So when talking about creating blocks we
should be using Target at all times, but we don't, as the values are really big. To get the number of hashes required to solve a block of given Difficulty (well, at 50% chance), you need to multiply it by 2^32. Alternatively, we could be using Difficulty and shares per second as the mining speed, but shares are also a construct brought about by the pools and are arbitrary (not all of them need to be ~~Difficulty 1). In Complexity, it's the actual number of keys you need to generate in order to have a 50% chance of solving the work.
Sorry for taking so long to get back about this.
I understand what you're going for, but I think you're adding unnecessary confusion. You are correct that bitcoin difficulty itself is a sort of arbitrary number since it has to be multiplied by 2^32 to be meaningful. This is because the difficulty convention was established long ago to express difficulty as a multiple of the minimum difficulty (which is 2^32 - 1). The
true difficulty is currently 3438908.9601591383 * (2^32 - 1) (the average number of hashes needed to find one under the target). In my opinion, this is an unfortunate convention, but we can't do anything about it now.
Unfortunately, you just created another arbitrary number (lavishness) by introducing this factor of 2^32 unnecessarily. It's not too late to fix it, though, since this is all new! If we wait too long though, this convention will be established and we'll all be stuck with it. Vanitygen tells you the difficulty of a pattern as the average number of keys required to find a match. This is the true difficulty, since it tells you how much work needs to be done before you will complete the goal.
Based on that, value is always a meaningful number, since it is reward / difficulty. In the case of block mining, we need to multiply the "difficulty" by 2^32 to get the real difficulty, but for address mining we don't need to do anything special. The user can simply look at the number of keys generated per second by their hardware and know exactly how much they expect to earn. If you introduce "lavishness," they need to divide by 2^32.
To sum it up, here's what I would suggest for the terms:
Bitcoin mining:Reward: 25 | units: BTC
"Difficulty": 3438908.9601591383 | units: hashes / (2^32 - 1)
Difficulty (actual): 14770001514365957 | units: hashes
Value: Reward / Difficulty | units: BTC / hash
Address mining:Reward: bounty for pattern | units: BTC
Difficulty: Pattern difficulty as reported by vanitygen | units: keys
Value: Reward / Difficulty | units: BTC / key
It's unfortunate that the 2^32 is stuck in the bitcoin difficulty, but it would only make it worse to stick a new one in the value calculation for address mining, as you propose:
Vanitypool address mining (current definitions):Bounty: bounty for pattern | units: BTC
Complexity: Pattern difficulty as reported by vanitygen | units: keys
Lavishness: 2^32 * Bounty / Complexity | units: BTC / key * 2^32
At the very least, I ask that you put that 2^32 in the same place as in bitcoin mining, so that they remain analogous to each other (although I would prefer skipping it entirely).