Pages:
Author

Topic: offline address - or a way to explicitly freeze an address (Read 2619 times)

legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
I still have to go a long way to answer questions like,
whether this can be implemented?
can I do this?
will this ever be released?

1. Probably can not be implemented.
2. Probably no easy way to do it yourself without changing the protocol. It could be client dependent.
3. Probably not ever be released.
sr. member
Activity: 405
Merit: 255
@_vjy
Instead of using time locks that expire on a fixed date, I would suggest using 'ratchet' time locks where the expiry date can be postponed indefinitely by the owner of the address.

so, someone gets they key can extend the lock and prevent you from spending.

how you could postpone a time lock? through a new transaction?
legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
No matter how you cut it though, if you have a time-locked address, the bad guy has just as much chance of being the person to get the coins the minute the time runs out as the good guy, possibly even more so if the good guy is in a vulnerable position.

True. But my idea is to use the time lock as an additional security feature on top of already existing security features, such as offline wallets and multisig.

Instead of using time locks that expire on a fixed date, I would suggest using 'ratchet' time locks where the expiry date can be postponed indefinitely by the owner of the address.
sr. member
Activity: 405
Merit: 255
@_vjy
when in doubt, "frozen" addresses can be unlocked, and then locked with new "freeze" key.

You keep saying this.  I give up.

easy for you, I can't do that.  Smiley

I still have to go a long way to answer questions like,
whether this can be implemented?
can I do this?
will this ever be released?
legendary
Activity: 3472
Merit: 4801
when in doubt, "frozen" addresses can be unlocked, and then locked with new "freeze" key.

You keep saying this.  I give up.
sr. member
Activity: 405
Merit: 255
@_vjy
I think, "time-based lock" is different from "frozen".

"time-based lock" is for predefined time, "freezing" is adhoc.

compromised "time-based lock" address, has no protection.
when in doubt, "frozen" addresses can be unlocked, and then locked with new "freeze" key.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
No matter how you cut it though, if you have a time-locked address, the bad guy has just as much chance of being the person to get the coins the minute the time runs out as the good guy, possibly even more so if the good guy is in a vulnerable position.
legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
You can generate an address offline.

As long as you keep the private key secret, nobody can steal the bitcoin.

A frozen address with time-activated release would be far more secure than an offline address.

The requirement to 'keep a private key secret' makes security depend on humans, and humans are fallible.  Best to outsource security to the protocol as much as possible.

I can see lots of real world scenarios where a time-locked address would be useful and an offline address isn't good enough:

(1) A large 'bank' or exchange that has billions of dollars worth of bitcoin in cold storage. Even if the bank assigns multiple signatories to spend those bitcoins, they could be kidnapped and forced to disclose the private key.
(2) A famous rich person who is publicly known to own a lot of bitcoins.  Again, the frozen wallet would discourage kidnappers.
(3) A problem gambler who wants to keep his retirement fund safe from himself.
(4) A single parent who has terminal cancer and greedy relatives, and who wants to leave his bitcoins to his 13-year old child.
(5) A bitcoin enthusiast who lives under a tyrannical regime and fears that the authorities might imprison and torture him in order to obtain his bitcoins.

As bitcoin gains in value and maturity, these kinds of examples are going to gain relevance.
sr. member
Activity: 405
Merit: 255
@_vjy
How to freeze your bitcoins:

1. Print a paper wallet at bitaddress.org
2. Send your bitcoins to the address printed on it
3. There is no step 3

Recover your bitcoins later by creating a throwaway Blockchain.info web wallet, importing the paper wallet, and sending the coins to an address of your choice.  You can avoid leaving any unused coins in the web wallet simply by printing a new paper wallet and sending the balance there.

@casascius, thanks for your post. finally, I think my post got some attention.
you are one of very few members, I can recognize by profile name. Smiley

now, how would you solve my main problem,

Quote
I want to keep my firstbits address 1vijay, 1visu forever, to receive and spend.
legendary
Activity: 3472
Merit: 4801
thats ok, it is just an example. an incomplete idea.

FTFY  Wink
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
How to freeze your bitcoins:

1. Print a paper wallet at bitaddress.org
2. Send your bitcoins to the address printed on it
3. There is no step 3

Recover your bitcoins later by creating a throwaway Blockchain.info web wallet, importing the paper wallet, and sending the coins to an address of your choice.  You can avoid leaving any unused coins in the web wallet simply by printing a new paper wallet and sending the balance there.
sr. member
Activity: 405
Merit: 255
@_vjy
finally, I got 1 more want in the poll. I am happy as if it is implemented.
I will edit first post for clarity. Smiley
sr. member
Activity: 405
Merit: 255
@_vjy
something like this..  Roll Eyes

Code:
{
  "hash":"...",
  "ver":1,
  "vin_sz":1,
  "vout_sz":2,
  "lock_time":0,
  ...
  "frozen":1,
  ...
}

I don't see where the "unfreeze key" is in that example?

thats ok, it is just an idea. an incomplete example.
legendary
Activity: 3472
Merit: 4801
something like this..  Roll Eyes

Code:
{
  "hash":"...",
  "ver":1,
  "vin_sz":1,
  "vout_sz":2,
  "lock_time":0,
  ...
  "frozen":1,
  ...
}

I don't see where the "unfreeze key" is in that example?
sr. member
Activity: 405
Merit: 255
@_vjy
something like this..  Roll Eyes

Code:
{
  "hash":"...",
  "ver":1,
  "vin_sz":1,
  "vout_sz":2,
  "lock_time":0,
  ...
  "frozen":1,
  ...
}
legendary
Activity: 3472
Merit: 4801
Would like to end this thread, as I figure out implementation further.  Smiley
your suggestions always welcome.

Yes. Please end this thread.

Your suggestion of:

the same way how script spends coins.

verify unlock signature, unlock, verify spend signature, spend

or, something similar to that.

offers no improvements over multisig.  You would need to provide anyone who sends you bitcoin with the public key of your "unlock keypair" and they would have to create a transaction that includes that in the "script".  This would only lock that transaction, not the entire address, until the "unlock keypair" was compromised.  Then you would have to send out to everyone another unlock public key, and would have to move all your own old coins to a new transaction using the new unlock keypair.

This is essentially a multisig solution that requires giving out a public key instead of an address?
sr. member
Activity: 405
Merit: 255
@_vjy
Would like to end this thread, as I figure out implementation further.  Smiley
your suggestions always welcome.
sr. member
Activity: 405
Merit: 255
@_vjy

> The "script" that is used in a bitcoin transaction describes
> what is required to spend the transaction. How can
> this be used to lock and unlock an address?

the same way how script spends coins.

verify unlock signature, unlock, verify spend signature, spend

or, something similar to that.
legendary
Activity: 1792
Merit: 1008
/dev/null
just use Armory, can even be the same wallet (then u have to use Coin Control) Wink
legendary
Activity: 3472
Merit: 4801
Yet, I am not very sure.

This much is now very clear to me.

Frozen or not is just 1 bit detail, I hope this is possible through 'script'ing, so requires zero or minimal change.

The "script" that is used in a bitcoin transaction describes what is required to spend the transaction. How can this be used to lock and unlock an address?

Just we need to check whether address is frozen before proceeding with sign validation.

Easy to say. As far as I know, impossible to do without a "hard fork". Do you know of a method that would avoid a "hard fork" that you haven't described yet?

I am suggesting that this can be implemented as specialized freeze/unfreeze transaction, or through a new flag in usual transactions.

Which would require a "hard fork" as far as I know. Do you know of a method that would avoid a "hard fork" that you haven't described yet?

We are not going to redo all the hashing from Genesis block.

Nobody said anything about hashing from the Genisis block.  Perhaps you don't understand what a "hard fork" is?

This again for the emotional attachment with the random bits. I want to include compromised address as one of multisig address. Now, I have to let everyone know my new address. When this address gets compromised, or every time I want to use different key to sign, then I have to create another multisig address.

Ok, I think I see your concern with multisig, but I still don't see how you are going to fix that problem with you "address freezing" process.
Pages:
Jump to: