Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

Can I always use single public key (addr1) for all my transactions and when I spend every time protect it with different scripts / keys (key2, key3, etc.), so that spending requires at least two keys ('key1', and 'key-n') but addr1 remains the same for receiving bitcoins.

example.

(transaction, output script): (input address, amount) --> (output 1); (output 2)
--------------------------------------------------------------------------
(trxn1, script1): (addr1, 10 BTC) --> (addr2,  5 BTC); (addr1,  5 BTC)
(trxn2, script2): (addr1,  5 BTC) --> (addr3,  1 BTC); (addr1,  4 BTC)
(trxn3, script3): (addr1,  4 BTC) --> (addr4,  1 BTC); (addr1,  3 BTC)
(trxn4, script4): (addr5, 12 BTC) --> (addr1, 10 BTC); (addr5,  2 BTC)
(trxn5, script5): (addr1, 13 BTC) --> (addr6,  2 BTC); (addr1, 11 BTC)

Is it possible to make script 1, 2, 3 and 5 would require different keys (at least 2; key1 and key-n) to spend bitcoin from this address?

Is it possible with Script? Is there any other ways in which I can keep single address for all my transactions?

addr1 is my address; transactions 1, 2, 3, 5 are my spends and transaction 4 is receiving transaction.


Motivation: To use same address for all my transactions. Reason is, I own firstbits address '1vijay', and I don't want to loose in case of my private key compromised. I am looking for any solution that would solve my problem, particularly scripts.

pseudo-script would be something like,

scriptPubKey: <pubKey1> OP_DROP <pubKey2> OP_CHECKSIG
scriptSig: <sig>

I would like to use 'pubKey1' as my receiving address always, but my spending would depend on private key corresponding to 'pubKey2'.

share|improve this question
    
Looks like, it is too tricky, and not for everyone. It would be better if different addresses used every time. –  vi.su. Mar 8 '13 at 5:01
1  
If you can't spend your bitcoins with just key1, then you're not really receiving bitcoins with that address, are you? I suspect you could do something similar to your question using key splitting. –  Nick ODell Mar 8 '13 at 16:03
    
No, looks like, key splitting is about private keys. But, split keys are going to be the same always.. –  vi.su. Mar 8 '13 at 16:44

3 Answers 3

If you are to receive a transaction with address A, you need A's private key in order to spend it and nothing more.

If you want to require two or more addresses to be used to spend money you receive, you would need to use a multisig address. After that, you would need to use m-of-n private keys to spend the coins, with m and n being predefined when you create the multisig address.

There are other ways one could restrict coins from being spent - say requiring a password or allowing anyone to spend them, but they are a lot more obscure and generally not used by anyone.

share|improve this answer
    
by keeping receiving address the same with every transaction, is it possible to make spending would require private key + extra details (like, another key), through scripts? –  vi.su. Mar 7 '13 at 15:17
    
@vi.su. The way one can redeem the transaction is determined by the sender, not the receiver. They can specify what data is needed - signature or password. You could, however, just send all of your incoming transactions from one address straight into a multisig address and thus require that extra data. Asides that, there isn't much you can do. –  ThePiachu Mar 7 '13 at 20:57

I don't really understand what you're asking, but I think the answer is no.

In every such scheme, there would be two pieces of information - a secret part/key, and a public address. You can split the secret key to n pieces (multisig), and the implementation of this is underway, but the basic observation remains.

Now, if the private key is leaked, the bitcoins are spendable. If you need to receive bitcoins on a system without the ability to spend them, just delete the private key from that system, and only keep it elsewhere.

share|improve this answer
    
My question is, how to allow an address to receive bitcoins without worrying about primary key compromised. Through script, is it possible to prevent the spend using another key (by keeping my address same). –  vi.su. Mar 5 '13 at 13:30
    
@vi.su. - perhaps this is what you meant to ask? bitcoin.stackexchange.com/questions/8142/… –  ripper234 Mar 5 '13 at 15:10
    
I have completely rephrased my question. please check. –  vi.su. Mar 6 '13 at 8:25

What you ask is impossible. The scriptPubKey determines the conditions under which the bitcoins can be accessed. For a different set of conditions (e.g. first (key1,key2), then (key1,key3)...) you need a different scriptPubKey. And a different scriptPubKey means a different address on which you receive the bitcoins.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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