I need help checking basic assumptions before starting my project.
My goal is to generate encrypted transaction instructions on an offline computer running Daedalus which later is to be passed manually to an online computer also running Daedalus for broadcast to the Cardano Blockchain.
Here are the assumptions for which I am asking comment:
The Daedalus wallet does not pass private keys to the block chain.
So in order to move ADA, Daedalus must be sending transaction instructions in a message encrypted with the private key. If the receiving computer on the Cardano blockchain can decrypt the message using the public key then it knows that the sender has control of the private key with out actually seeing it so it makes a transaction from the unencrypted message and tries to include it into the next block.
We can accomplish offline transactions with two computers running Daedalus - one offline and one online. the following describes how to do it in the most crude implementation.
Add code to offline Daedalus which makes the characters of the encrypted transaction instructions visible on the computer display. The big assumption here is that there is no need to be online in order make encrypted transaction instructions as long as all the variables such as nonce can be entered by the user.
Add code to online Daedalus so that it accepts input from the user so that the characters displayed on the offline computer can be entered. The online Daedalus then attempts to decrypt the message using the public key which is included in the message and if successful then passes the encrypted message through to the Cardano blockchain as if the message originated from online Daedalus in the normal manner.
The Cardano blockchain will think the message was generated by the online Daedalus.
It won’t know the message was entered into the online Daedalus computer after being generated by the airgapped offline Daedalus computer.
That would keep our private keys off Internet connected devices assuming the offline airgapped Daedalus computer was used to generate the private key to begin with.
This is how offline transactions work on Ethereum with MyEtherWallet.
I need to know if the basic idea will work on Cardano with Daedalus.
Thanks for your comments