<p>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.</p>

<p>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 <a href="http://en.wikipedia.org/wiki/Double-spending">double-spending</a> 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.</p>

CC BY-SA 3.0
2011-10-04T19:49:17.113Z
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.
David Perry
CC BY-SA 3.0
2011-10-05T00:04:15.803Z
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.
David Perry
CC BY-SA 3.0
2011-10-05T00:43:05.730Z
Hi David, if you find this workable scheme, please post here. Thanks
Leo
CC BY-SA 3.0
2011-10-04T18:05:34.960Z
2011-10-04T18:05:34.960Z
D.H.
<p>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.</p>

CC BY-SA 3.0
2011-10-04T17:59:57.513Z
2011-10-04T17:59:57.513Z
nanotube
<p>No and trying to do so breaks the security of bitcoin.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p><strong>One thing you can do:</strong>
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.</p>

CC BY-SA 3.0
2011-10-05T05:41:44.577Z
2011-10-05T05:48:54.150Z
2011-10-05T05:48:54.150Z
DeathAndTaxes
<p>By design, Bitcoin has only one owner, a key has many.</p>

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

CC BY-SA 3.0
2011-10-04T18:27:45.493Z
2011-10-04T18:27:45.493Z
Mascarpone
<p>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.</p>

<p>Instead, <em>you</em> 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.</p>

CC BY-SA 3.0
2011-10-05T00:53:40.300Z
2011-10-05T00:53:40.300Z
David Schwartz
<p>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).</p>

<p>Will this be possible?</p>

<development><wallet>
Will it be possible to export a key and only allow it to be imported once?
Leo
# Will it be possible to export a key and only allow it to be imported once?

(Asked by: username_0 on 2011-10-04)

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?

**Tags:** development, wallet


---

## 5 answers

### Answer by username_1 on 2011-10-04. Score: 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](http://en.wikipedia.org/wiki/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.

> **Comments:**
> **username_2**: 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.  
> **username_2**: 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.  
> **username_0**: Hi username_2, if you find this workable scheme, please post here. Thanks  

---

### Answer by username_3 on 2011-10-04. Score: 2

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.


---

### Answer by username_4 on 2011-10-05. Score: 1

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.


---

### Answer by username_5 on 2011-10-04. Score: 0

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.


---

### Answer by username_6 on 2011-10-05. Score: 0

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.


---

