The initialisation should take as input the stake distribution (with the cardano keys), and the registration takes as input the Mithril key and a signature of the mithril key with the cardano key. Before registering a party, the signature (with the cardano key) is checked.
Currently, we have that KeyReg::init() does not take anything as input. With the changes above we want the stake distribution and Cardano keys (ed25519) of all eligible parties initialised. Then, we using the key_reg.register(), instead of register(&mut self, stake: Stake, pk: VerificationKeyPoP) we want as input the Cardano Key, the VerificationKeyPoP key, and a signature of VerificationKeyPoP with the ed25519 key.