I can't tell for sure. But if you are looking for a similar feature I would implement it as following:
An ID contains a private and a public part (That's what Teamspeak does). So I guess it's some asnyc encryption key you can generate yourself.
Now just generate a sequence of numbers e.g.
s = [1..n] and hash them.
As soon as the first
M bits of the generated hash match the first
M bits of the public key you take it as a valid prof of work for the Security level of
n rounds of hashing to find the hash, but to prof it, the server must only hash the result
s once and check how many bits match to your public key. The dificulty for you will rise exponentially.
This is in fact similar to what Bitcoin does. But Bitcoin tries to get a certain numbers of Zeros in front of the hash and you don't hash a random number but the b-tree of the block you want to mine plus a nonce (random number).
Generate an ID e.g.
Export it to see the secret: e.g.
If you now increase the security, just the first part of the export changes. From 8 → 9 → 24 it gets from
My highest key has some number around
29147155819 at level 34.
I think this number will somehow hash to something that is related to my public key. So anyone can proof it with a single round of hashing, but my PC needed
29147155819 rounds of hashing to find it, which took quite a while ;)
Btw: The max security is 128, so I guess that's the length in bits of the public key.
I hope I was able to help - Tarion