Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YW7pY-0001oC-OV for bitcoin-development@lists.sourceforge.net; Thu, 12 Mar 2015 18:27:36 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 74.125.82.178 as permitted sender) client-ip=74.125.82.178; envelope-from=natanael.l@gmail.com; helo=mail-we0-f178.google.com; Received: from mail-we0-f178.google.com ([74.125.82.178]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YW7pS-00050i-Kz for bitcoin-development@lists.sourceforge.net; Thu, 12 Mar 2015 18:27:36 +0000 Received: by wesu56 with SMTP id u56so18245142wes.12 for ; Thu, 12 Mar 2015 11:27:24 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.194.104.99 with SMTP id gd3mr86952065wjb.114.1426184844636; Thu, 12 Mar 2015 11:27:24 -0700 (PDT) Received: by 10.194.28.170 with HTTP; Thu, 12 Mar 2015 11:27:24 -0700 (PDT) Received: by 10.194.28.170 with HTTP; Thu, 12 Mar 2015 11:27:24 -0700 (PDT) In-Reply-To: References: <54F32EED.6040103@electrum.org> <550057FD.6030402@electrum.org> Date: Thu, 12 Mar 2015 19:27:24 +0100 Message-ID: From: Natanael To: Mike Hearn Content-Type: multipart/alternative; boundary=089e010d879c0c7a8a05111b89aa X-Spam-Score: -0.6 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (natanael.l[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1YW7pS-00050i-Kz Cc: bitcoin-development@lists.sourceforge.net Subject: Re: [Bitcoin-development] Electrum 2.0 has been tagged X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2015 18:27:36 -0000 --089e010d879c0c7a8a05111b89aa Content-Type: text/plain; charset=UTF-8 Den 12 mar 2015 17:48 skrev "Mike Hearn" : >> >> 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. --089e010d879c0c7a8a05111b89aa Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


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 th= e long term :)=C2=A0
>
> The long term solution is clearly to have the 12 word seed be an encry= ption key for a wallet backup with all associated metadata. We're headi= ng in that direction one step at a time. Unfortunately it will take time fo= r 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 thin= k 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 cr= eate 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 b= lock numbers (or bloom filters of block hashes or similar) to note where al= l previously known transactions related to the wallet have occurred, and th= e last known block (so only new blocks need to be scanned).

A way to describe one HD tree as a multisignature wallet tie= d 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 de= scribe another set of addresses as using a custom extension. A way to denot= e one private key as being used for stealth addresses together with details= for how to identify the transactions (prefix, mailbox to look in, etc). La= bels for transactions. P2SH script templates so those addresses can be reco= vered. A way to describe Copay style multisignature wallets and what server= to use for coordinating with the other coowners. A way to describe thresho= ld crypto group signature wallets and how to coordinate. Computer parsable = descriptions of HD branches as change addresses, as being used for receivin= g payments in merchant payment systems, etc... Also, you should really be t= alking to people like accountants and auditors to see what features they= 9;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 al= so 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 origi= n 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 ex= tensions 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 optim= ize 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 f= iles from custom wallet data files.

--089e010d879c0c7a8a05111b89aa--