public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Natanael <natanael.l@gmail•com>
To: Mike Hearn <mike@plan99•net>
Cc: bitcoin-development@lists•sourceforge.net
Subject: Re: [Bitcoin-development] Electrum 2.0 has been tagged
Date: Thu, 12 Mar 2015 19:27:24 +0100	[thread overview]
Message-ID: <CAAt2M1_zVXnp_EjtZHiP9wSq+cERgibZ_C992zZHtv+Lpmgsfw@mail.gmail.com> (raw)
In-Reply-To: <CANEZrP2AhCfks7Q+16PHGB0ZEeWwbdbbQM_xj3ebrkgDBgbosg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3387 bytes --]

Den 12 mar 2015 17:48 skrev "Mike Hearn" <mike@plan99•net>:
>>
>> b) "Creation date" is just a short-term hack.
>
>
> I agree, but we need things to be easy in the short term as well as the
long term :)
>
> The long term solution is clearly to have the 12 word seed be an
encryption key for a wallet backup with all associated metadata. We're
heading in that direction one step at a time. Unfortunately it will take
time for wallets to start working this way, and all the pieces to fall into
place. Restoring from the block chain will be a semi regular operation for
users until then.

This have been mentioned a few times before, and what I think is necessary
is to create a common file format that can be interpreted by a library
which all wallets can use. I see it as similar as the work to create
libconsensus for parsing the blockchain.

We need something extensible that can describe how to derive all addresses
used by the user. What HD branches to derive and how, with block numbers
(or bloom filters of block hashes or similar) to note where all previously
known transactions related to the wallet have occurred, and the last known
block (so only new blocks need to be scanned).

A way to describe one HD tree as a multisignature wallet tied to a hardware
wallet if you have that (could include serial number or MAC of the device
for simple identification by the wallet client). A way to describe another
set of addresses as using a custom extension. A way to denote one private
key as being used for stealth addresses together with details for how to
identify the transactions (prefix, mailbox to look in, etc). Labels for
transactions. P2SH script templates so those addresses can be recovered. A
way to describe Copay style multisignature wallets and what server to use
for coordinating with the other coowners. A way to describe threshold
crypto group signature wallets and how to coordinate. Computer parsable
descriptions of HD branches as change addresses, as being used for
receiving payments in merchant payment systems, etc... Also, you should
really be talking to people like accountants and auditors to see what
features they'd like to see when it comes to things like how company
wallets could have rules defined for how to use the various HD branches.

And so on... I think you get my point by now.

The basic idea is that the wallet uses the library to parse the wallet file
and tells the user which sections it understands (can't expect all wallets
to handle custom extensions or stealth addresses, etc), then proceeds to
scan the blockchain for those addresses. Then the user also won't be
surprised that not all funds are found and won't think they're lost.

I think it should be referred to as an import/export format, more than as a
backup format.

You always want the most recent metadata the wallet of origin can provide
when importing, to reduce unnecessary extra work. You don't want really old
backup files. If people add new seeds and various new extensions that can't
be automatically recovered from old wallet backups, they need new backups.
You might as well use the wallet's own internal formats for backup, as the
wallet developer might better know how to optimize for the use cases he
have designed for. But at the same time we should ask wallet developers to
offer conversion tools to generate export format files from custom wallet
data files.

[-- Attachment #2: Type: text/html, Size: 3698 bytes --]

  parent reply	other threads:[~2015-03-12 18:27 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-01 15:23 Thomas Voegtlin
2015-03-02  7:09 ` Andreas Schildbach
2015-03-02 15:37 ` Mike Hearn
2015-03-02 17:11   ` Jim
2015-03-11 14:58   ` Thomas Voegtlin
2015-03-11 15:31     ` Andreas Schildbach
2015-03-12  8:56       ` Thomas Voegtlin
2015-03-11 17:14     ` Mike Hearn
2015-03-11 19:04       ` Jim
2015-03-11 19:24         ` Ricardo Filipe
2015-03-11 19:46           ` Gregory Maxwell
2015-03-11 22:57             ` Aaron Voisine
2015-03-11 23:22               ` Mike Hearn
2015-03-11 23:50                 ` devrandom
2015-03-11 23:54                   ` Mike Hearn
2015-03-12  0:11                   ` Gregory Maxwell
2015-03-12  2:41                     ` devrandom
2015-03-12  4:09                       ` Gregory Maxwell
2015-03-12 19:08                         ` Bryan Bishop
2015-03-12 10:30                     ` Andreas Schildbach
2015-03-12 10:28                   ` Andreas Schildbach
2015-03-18  2:06                     ` devrandom
2015-03-12 10:41         ` Andreas Schildbach
2015-03-12  3:43       ` slush
2015-03-12 16:47         ` Mike Hearn
2015-03-12 17:20           ` Gary Rowe
2015-03-12 17:42           ` Gary Rowe
2015-03-12 18:27           ` Natanael [this message]
2015-03-12 18:51             ` Andreas Schildbach
2015-03-12 19:14               ` Natanael
     [not found] <1353069350.4360497.1426126034565.JavaMail.yahoo@mail.yahoo.com>
2015-03-12  2:16 ` Thy Shizzle
2015-03-12  3:59   ` Neill Miller
     [not found] <372541993.4372759.1426123313134.JavaMail.yahoo@mail.yahoo.com>
2015-03-12  2:26 ` devrandom
2015-03-12  2:38 Thy Shizzle
2015-03-12 10:43 ` Andreas Schildbach
2015-03-12  4:21 Thy Shizzle
2015-03-12 11:51 ` Neill Miller
2015-03-12 12:59   ` Thy Shizzle
2015-03-12 16:39   ` devrandom
2015-03-12  5:12 Thy Shizzle
2015-03-12  5:25 ` Aaron Voisine
2015-03-12  5:58 Thy Shizzle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAAt2M1_zVXnp_EjtZHiP9wSq+cERgibZ_C992zZHtv+Lpmgsfw@mail.gmail.com \
    --to=natanael.l@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=mike@plan99$(echo .)net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox