Bitcoin Forum

Bitcoin => Armory => Topic started by: manrus on December 09, 2013, 09:55:08 AM



Title: Paper Backup
Post by: manrus on December 09, 2013, 09:55:08 AM
For example I create paper backup and generate too many new addresses. After that my house is burn with computer. I'll restore my wallet from paper and how i can see new addresses generated after backup? I know that uses seed. But from one seed i can generate billions addresses.


Title: Re: Paper Backup
Post by: Kupsi on December 09, 2013, 06:39:46 PM
For example I create paper backup and generate too many new addresses. After that my house is burn with computer. I'll restore my wallet from paper and how i can see new addresses generated after backup? I know that uses seed. But from one seed i can generate billions addresses.

When you restore your wallet, Armory will check the 100 first addresses to see if any are used. If address 79 is used, it will check all addresses up to address 179, and so on.

If your addresses aren't used, just click "Receive Bitcoins" and the addresses will be created one by one.


Title: Re: Paper Backup
Post by: bitpop on December 19, 2013, 02:58:38 PM
Properties can generate thousands more


Title: Re: Paper Backup
Post by: TierNolan on December 19, 2013, 03:14:57 PM
There is a inefficiency with address creation.

In order to calculate address 101, you need address 100, so they have to be created in sequence.

Assuming you only have 100 addresses, then, when creating address 110, it has to calculate 101, 102 up to 110.

If you have 100 addresses and you ask for 1000 more, it will create them in the following order

Create(101), creates 101
Create(102) creates 101 and then 102
Create(103) creates 101, 102 and then 103
...
Create(1000), creates 101, 102, 103, ...., 999 and then 1000

What it should do is just run create(1000) and use the 900 addresses created.  However, it loops, through create(101) to create(1000).

If you ask for 100 addresses at once, it has to calculate around 5000 addresses due to this system.  If you ask for 500, then it calculates 125000 addresses.

This might be fixed in 0.9, but it means that you must ask it for addresses in short steps.

I think unlocking the wallet might help.


Title: Re: Paper Backup
Post by: bitpop on December 20, 2013, 12:40:41 AM
.9 seems to have removed chain code


Title: Re: Paper Backup
Post by: TierNolan on December 20, 2013, 01:04:42 AM
.9 seems to have removed chain code

It still exists, it is just generated from the root key.  This means you only need to store half as much on the paper wallet.


Title: Re: Paper Backup
Post by: bitpop on December 20, 2013, 01:06:15 AM
Is that less safe? It seems like less encryption. Is there a discussion about that somewhere?


Title: Re: Paper Backup
Post by: goatpig on December 20, 2013, 07:58:51 PM
Is that less safe? It seems like less encryption. Is there a discussion about that somewhere?

The chaincode is now extracted out of the root key, obviously in a fashion that can't reveal the root key. It increases recovery security in the sense that the chaincode isn't generated in an isolate fashion regarding the root key, so a damaged chaincode can be recovered.

It increases determinism in the wallets while maintaining the same level of security.


Title: Re: Paper Backup
Post by: bitpop on December 21, 2013, 05:56:51 AM
Is that less safe? It seems like less encryption. Is there a discussion about that somewhere?

The chaincode is now extracted out of the root key, obviously in a fashion that can't reveal the root key. It increases recovery security in the sense that the chaincode isn't generated in an isolate fashion regarding the root key, so a damaged chaincode can be recovered.

It increases determinism in the wallets while maintaining the same level of security.

Coo


Title: Re: Paper Backup
Post by: etotheipi on December 23, 2013, 06:28:42 AM
There is a inefficiency with address creation.

In order to calculate address 101, you need address 100, so they have to be created in sequence.

Assuming you only have 100 addresses, then, when creating address 110, it has to calculate 101, 102 up to 110.

If you have 100 addresses and you ask for 1000 more, it will create them in the following order

Create(101), creates 101
Create(102) creates 101 and then 102
Create(103) creates 101, 102 and then 103
...
Create(1000), creates 101, 102, 103, ...., 999 and then 1000

What it should do is just run create(1000) and use the 900 addresses created.  However, it loops, through create(101) to create(1000).

If you ask for 100 addresses at once, it has to calculate around 5000 addresses due to this system.  If you ask for 500, then it calculates 125000 addresses.

This might be fixed in 0.9, but it means that you must ask it for addresses in short steps.

I think unlocking the wallet might help.

This has been a known issue for a while.  The modularization of the code made it difficult for me to avoid the N2 runtime for address generation -- it really wasn't that hard to fix, but I had other priorities.

On that note, goatpig went ahead and fixed it in his branch, so it should appear in 0.91.


Title: Re: Paper Backup
Post by: TierNolan on December 23, 2013, 10:38:45 AM
This has been a known issue for a while.  The modularization of the code made it difficult for me to avoid the N2 runtime for address generation -- it really wasn't that hard to fix, but I had other priorities.

On that note, goatpig went ahead and fixed it in his branch, so it should appear in 0.91.

It isn't that big an issue.  I was just responding to this post.

Properties can generate thousands more

If someone asks for "thousands" of addresses, the program will appear to lock-up.

When I was testing a java program that generated Armory addresses, I asked for 10k addresses.  This corrupted my wallet file when I force closed the program, thinking it had crashed.  (highlighting the benefits of the paper wallet backup).


Title: Re: Paper Backup
Post by: goatpig on December 23, 2013, 03:58:49 PM
This has been a known issue for a while.  The modularization of the code made it difficult for me to avoid the N2 runtime for address generation -- it really wasn't that hard to fix, but I had other priorities.

On that note, goatpig went ahead and fixed it in his branch, so it should appear in 0.91.

It isn't that big an issue.  I was just responding to this post.

Properties can generate thousands more

If someone asks for "thousands" of addresses, the program will appear to lock-up.

When I was testing a java program that generated Armory addresses, I asked for 10k addresses.  This corrupted my wallet file when I force closed the program, thinking it had crashed.  (highlighting the benefits of the paper wallet backup).

There is indeed a difference between Armory crashing and Armory hanging. We plan on adding some UI notifications to make the distinction easier.