Another posts about some hacky software

... that fills YOUR niche usecase that is: generating wireguard vanity keys. But really fast! On your GPU!

Initial writeup: 2024-09-28

So because of the stuff that I was and still am doing at work right now I came in contact with CUDA programming and how computing stuff can be sped up using that.

And while I was just learning about that programming model, I had to generate some vanity keys for new hosts that I added to my wireguard network.

Wireguard keys being ed25519 curve public / private keys, you quickly come in contact with strings that look like:

3IoFKcJHn5SEnx3wRZNbhuFSL3E0EUcGEQa3Tg3gsXU

which by themselves don't convey any meaning. Wouldn't it be great if we had something like:

marktni+SbIHW/9KhsUewRoVX/w99TNOMraFMRmfn04=

for a user called "mark"? Then, we'd have a "vanity key".

Now, this key is the public key for distribution to other hosts. It depends on a private key though (curve25519), and for a private key's public key to start with some fancy prefix, we need to generate and check lots of keypairs.

wicuvanity

And this is where wicuvanity comes in. In case you have a Nvidia GPU slumbering in your Computer, you might as well utilize it for generating vanity keypairs! After all, recent GPUs come with many more threads than CPUs. Yes, they are dumber threads than CPU threads, but by having so much more of them, we can achieve a much higher throughput.

In fact, comparing the wireguard-vanity-address-tool that is in the extra repo of Arch against wicuvanity, on an i9-14900K against wicuvanity on a RTX 4090, I was able to achieve roundabout four times the throughput. Even better: your GPU's computations are (mostly) independent from you CPU's, so you can run both at the same time!

It has never been easier to generate keys starting with prefixes like:

dontbuynvidiaiKb7p96ObtDtPhMIHLW4kJ4OmRGF2Q=

because nvidia's monopoly on HPC is staggering. But for good reason! Their GPUs are just that fast... 🥲

ROCM version, when?

Try it out

You can find the sourcecode on sourcehut:

=> https://git.sr.ht/~chrs/wicuvanity

And a PKGBUILD on the AUR:

=> https://aur.archlinux.org/packages/wicuvanity

Next steps? gmlgcd 2.0! I made lots of changes for it to be useful software. Cheers!

=> View comments | Home

Proxy Information
Original URL
gemini://shtrophic.net/wicuvanity.gmi
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
123.039693 milliseconds
Gemini-to-HTML Time
1.599943 milliseconds

This content has been proxied by September (3851b).