I am looking for a method which would allow a keypair to be modified in a manner which is unpredictable to the original creator.
So I was thinking a user creates a key and commits it by making a transaction which is written to the blockchain. The block hash could be used as a source of unpredictability to derive a new keypair. Can this be done in a manner than only the derived private key can be computed from the original private key and the derived public key can be computed without the original or new private key?
k = existing private key K = existing public key B = hash of block hash k' = derived private key K' = derived public key
Is there some pair of functions such that solves the following?
K' = FPub(K, B) k' = FPriv(k, B)
Are there any security implications?
To be clear the new public key should be derived using only public information (existing public key and scalar).