I'd like to explore the option to verify the messages that have been signed in Bitcoin wallets in Ethereum smart contracts.
Ethereum smart contract is given a list of Bitcoin addresses
Ethereum smart contract can verify if the incoming function call msg, v, r, s matches any of previously given Bitcoin addresses
Now, the question is that the built-in ecrecover()
only gives a resulting Ethereum address and I do not know how could I proceed from here.
Can built-in ecrecover() deal with Bitcoin addresses
Does there exist a way to mapBitcoin address to Ethereum address 1:1
Can built-in ecrecover() give full public key output?
If built-in ecrecover() does not work, can I write my own recover that outputs a Bitcoin address and spends reasonable gas?
Can I somehow preprocess Bitcoin addresses (or public keys) to Ethereum ecrecover() compatible format?
... which all kind of are related to one question
- Do I need full Bitcoin public key as a starting point or is Bitcoin address enough?