When the import/export key be implemented I would like to know if it will be possible to export a key with an option like: The exported file can only be imported one time, or that the exported key was exported with an option that removed the key from the wallet that exported it. I ask this because I would like to receive for example a exported key file from someone but with the certainty that the key is not on this someone wallet anymore (or any other wallet).

Will this be possible?

5 Answers 5


No, there is no way to keep track of what people do with their private keys. You could easily write down the key before exporting it and you can use it without ever importing it to a wallet. It's possible to construct a transaction from the private key manually or using some 3rd party software and then broadcast that transaction to the network.

It sounds like you want to be able to send money without using the blockchain by simply passing private keys around. You then run into the double-spending problem. This is exactly the problem that the blockchain is solving. So, no, if you want to securely send bitcoins you will have to use the blockchain.

  • The only way around this is to obtain a privkey from a trusted source which is protected by some kind of tamper-evident mechanism. This is the way BitBills and Casascius' physical bitcoins work and even then you still have to trust the issuer not to keep a copy of the keys themselves. Commented Oct 4, 2011 at 19:49
  • 1
    And though the details elude me at the moment (and Google fails me) I want to say I'd heard a workable scheme someone cooked up for when multi-signature transactions become available. Commented Oct 5, 2011 at 0:04
  • 1
    Hi David, if you find this workable scheme, please post here. Thanks
    – Leo
    Commented Oct 5, 2011 at 0:43

No it would not be possible. The exporting party can always keep a copy of the key if it so desires, simply by making a wallet backup prior to export. You should always assume that any keys/wallets that you receive from others have copies retained by the sender.


No and trying to do so breaks the security of bitcoin.

If you want to send someone coins then create a transaction. This will be verified by the network and the wealth can be safely and irreversibly transferred.

A bitcoin address merely consists of a public key and private key. The address doesn't store any other secret locally (like a code which determines how much it is worth). The client (and any other client) can determine how much a particular address is worth by using the network.

Given that an address merely consists of two keys (strings of numbers) there is no possible mechanism to ensure that when you are given a copy that no other copy exists.

One thing you can do: Immediately verify the coins still exist and then transfer it to another address you own (one which has a secret private key). Once confirmed that transaction is irreversable and your funds are no longer at risk. The "potentially compromised" address can then be deleted.


By design, Bitcoin has only one owner, a key has many.

Only the coins guarantee unique ownership, otherwise it would be a nightmare, backup-wise.


This is impossible in principle. It would take a physical hardware security device to prevent someone from replicating the key or generating a signed transaction with the key while they have it that they can publish later.

Instead, you generate the key and give them the address. Have them send the Bitcoins to that address. You will know that only you have the key because you generated it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.