We are a bunch of cryptocurrency buddies/Buddhas who want to set up a stake pool. I’m the techie in the group, so naturally I’m the first operator. I’ve got to the point where I’m to register the stake pool, pledges and all. To do that we need the verification staking keys for the pool owners (
stake.vkey). This is the sticking point. How do I find my own stake verification keys? How do I explain the other owners how to do this?
I don’t find any option in Daedalus or Yoroi to export the verification staking key. (This would seem the natural thing—while it isn’t public information, the key isn’t really useful to disrupt anything except your own pool.)
The Guild Operators docs seem to imply that I need to create a new wallet, with known stake verification keys, and transfer the whole pledge there. This seems inconvenient and unsafe to me. The co-owners would have to trust me with potentially their entire fortunes. We wouldn’t be able to use tools like Daedalus or Yoroi to manage our finances.
@_ilap has a really nice script to generate stake keys from mnemonic phrases. I haven’t tried this yet—I think it would solve it for me, but I doubt my co-owners could do it without my help—and if I’m to help them that exposes their wallet recovery phrase to me, which just seems like an insane security practice. (No-one is ever supposed to see that phrase except the wallet owner, right?)
A slightly better option would be to send them a version of that script, one that reads in the mnemonic phrase and spits out the staking verification key, and ask them to send me that file. Still, that would entail telling them it’s OK to enter your recovery phrase in software someone sends you—which is very bad security education. I really don’t like this idea—although I confess it would “work”.
The official docs gloss over this point entirely.
So what am I missing? Am I misunderstanding the documentation? Or is the
stake.vkey easily accessible somewhere?
Naturally, I found this other topic immediately after posting Link a payment.addr generated with a stake.vkey to a recovery phrase
It seems to belie my assumption above:
Have I misunderstood, and the
stake.vkey is actually sufficient to actually delegate on someone’s behalf? I had assumed the staking signing key (
stake.skey) would be needed for this.
I’ve created the other topic you’ve linked and I created our stake pool using the stake.vkey of my buddies. Honestly, I don’t know if this is the securest thing to do, but as we trust each other (worst thing to say in security matters, I know…) it works out this way.
The script mentioned in the topic helps you extract this key from your wallet phrase. If you need any further help just let me know.
Thanks for the feedback @GiantDole
So if I understand correctly, either your buddies ran this script themselves, or you ran it together with them on their computers?
I’ve adjusted the script for them, so the execution is very simple. Then they’ve executed the scripts all by themselves with their seed phrase and send me their stake.vkey.
You’re most welcome!
Thanks again @GiantDole! I think I’ll give that a try then.
Maybe I’d been overthinking the security principles here. (I’m an information security officer in my day job, I guess that’s an occupational hazard!) I don’t love the idea of having them enter their recovery phrase into non-official software. But I believe we trust each other enough to do this anyway.
I think there should be some official user interface to get this verification key, so that pledging doesn’t involve the recovery phrase. When I get more confidence in my setup I’ll propose this to the wallet devs.
Well you need the recovery phrase to generate the stake keys, in my understanding Daedalus stores them in some different format.
Of course I understand your concern of entering the phrase in a non-official software, but only a bit bash knowledge is sufficient to validate that there is nothing suspicious about the script. If you’re concerned you could rewrite it such that the only output will be the stake.vkey and not all the keys possible.
That’s true @GiantDole! I will do that.