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 1WNLDY-0002mM-ME for bitcoin-development@lists.sourceforge.net; Tue, 11 Mar 2014 11:51:32 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of zikula.org designates 74.125.82.48 as permitted sender) client-ip=74.125.82.48; envelope-from=drak@zikula.org; helo=mail-wg0-f48.google.com; Received: from mail-wg0-f48.google.com ([74.125.82.48]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1WNLDX-0003Hy-9W for bitcoin-development@lists.sourceforge.net; Tue, 11 Mar 2014 11:51:32 +0000 Received: by mail-wg0-f48.google.com with SMTP id l18so5702402wgh.7 for ; Tue, 11 Mar 2014 04:51:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=yN1NCNQ48ojMwafXc43oz4ACnkbg8aZcS/SVOkIrQWY=; b=LJnS2OAmHIloUS86u/r20bABaaonEaSlNCFqXO42sDCJUP56n6JyPi4gJF0/Rh1Fgp JsnL23cYqucuVPxcKKXmPXMFrelBjtGPadmB0WSujzLnX6EtS7N4HHgU5aPkGzbPWlYV gCXwQJW2bZSxjxXDV/XM/KB2llqMM8Bc8z1Oyb8pzIwT5tRwtgAmDlQJi80pEDEAdrCR XcWvmDQ9JqK0n4zWbIOtHCMhIYYsgC08gt8vvJohV0F9zcldTJFXYvabf4tdIyZRIvqk mCUc8Kc1UrzFu7Lqq7BCQ9ydheS7ybr3Kg1zApDdqJzBbtcMoVkONcj3yb4rcMaxL684 Amqg== X-Gm-Message-State: ALoCoQlm8O9FDeH8I6GBdJt/VKOU2kd5gR1jajS/4+W7zqyuzMMBJtP/lJCyUN2xW9CLdZ13rGC0 X-Received: by 10.180.77.129 with SMTP id s1mr2623031wiw.56.1394538220165; Tue, 11 Mar 2014 04:43:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.205.69 with HTTP; Tue, 11 Mar 2014 04:43:20 -0700 (PDT) In-Reply-To: References: <531DFDF8.80008@gmail.com> <531E52FE.5090107@jerviss.org> <531E5454.1030601@gmail.com> From: Drak Date: Tue, 11 Mar 2014 11:43:20 +0000 Message-ID: To: Gavin Andresen Content-Type: multipart/alternative; boundary=f46d043c801e3d337604f4533b55 X-Spam-Score: -0.5 (/) 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 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message X-Headers-End: 1WNLDX-0003Hy-9W Cc: Bitcoin Dev , kjj Subject: Re: [Bitcoin-development] Multisign payment protocol? 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: Tue, 11 Mar 2014 11:51:32 -0000 --f46d043c801e3d337604f4533b55 Content-Type: text/plain; charset=UTF-8 Gavin, You have pretty much nailed my intent in both respects. This sets up a way to negotiate the address and abstract away the nasty details of finding public keys from bitcoin addresses, and provides a nice clean way for redemption abstracting away the long strings of hex. For redemption, I think as each party signs the tx if the script returns true, it would be acceptable to just go right ahead and broadcast it, or maybe as you suggest all signatures go back to the initiating party and they do the final work. I very much like the idea of assuming each party uses HD wallets, that certainly simplifies things greatly. I also like the use of email addresses as a negotiation medium, but I also wonder if this could be made agnostic in any BIP proposal so it could work with other communication mediums like bitmessage for example (just forward thinking anonymity a little). I definitely think there is a need for a protocol because multisig, regardless of the application has two technically involved steps: negotiation of an address, and redemption of any subsequently encumbered funds. A protocol would enable different wallet implementations to participate in such a transaction and make wide-spread use much more likely and possible. Drak On 11 March 2014 01:15, Gavin Andresen wrote: > Multisig is orthogonal to the payment protocol (but payment protocol is > needed first). > > There need to be protocols for: > > a) Establishing multisig wallets of various sorts. See: > https://moqups.com/gavinandresen/no8mzUDB/ > https://moqups.com/gavinandresen/no8mzUDB/p:ab18547e0 > ... etc. for a UI mock-up. > There needs to be some protocol so all participants in a multisig wallet > contribute keys (actually, we should just assume everybody uses BIP32 HD > public keys so we get privacy from the start). > > Multi-person shared wallets, escrows, and "wallet protection service" > wallets (which might be protected with two-factor authentication) are > different use cases and probably use slightly different protocols (and will > probably need different BIPs eventually). > > > b) Gathering signatures for a multisig spend. Here is where the payment > protocol is useful; the PaymentRequest message should be passed around so > all participants know what is being paid for, and maybe a partially-signed > Payment message is where the signatures are gathered (or maybe the > signatures are sent separately and one of the participants creates and > submits the Payment and gets the PaymentACK... "to be designed"). > See: > https://moqups.com/gavinandresen/no8mzUDB/p:a7e81be96 > https://moqups.com/gavinandresen/no8mzUDB/p:af7339204 > ... for UI mock-up for the multi-person-spend case. > > And maybe a protocol for "I don't want to be part of this multisig any > more / I lost control of my private key don't trust me in this multisig any > more". > > > > On Mon, Mar 10, 2014 at 8:14 PM, Jeff Garzik wrote: > >> All of that only melds with the payment protocol under an extremely >> expansive definition of "payment." The payment protocol is really >> geared towards a direct one-to-one relationship.... > > > >> >> > -- > Gavin Andresen > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/13534_NeoTech > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > --f46d043c801e3d337604f4533b55 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Gavin,

You have pretty much nailed my i= ntent in both respects. This sets up a way to negotiate the address and abs= tract away the nasty details of finding public keys from bitcoin addresses,= and provides a nice clean way for redemption abstracting away the long str= ings of hex.=C2=A0

For redemption, I think as each party signs the tx if t= he script returns true, it would be acceptable to just go right ahead and b= roadcast it, or maybe as you suggest all signatures go back to the initiati= ng party and they do the final work.

I very much like the idea of assuming each party uses H= D wallets, that certainly simplifies things greatly. I also like the use of= email addresses as a negotiation medium, but I also wonder if this could b= e made agnostic in any BIP proposal so it could work with other communicati= on mediums like bitmessage for example (just forward thinking anonymity a l= ittle).

I definitely think there is a need for a protocol becau= se multisig, regardless of the application has two technically involved ste= ps: negotiation of an address, and redemption of any subsequently encumbere= d funds. A protocol would enable different wallet implementations to partic= ipate in such a transaction and make wide-spread use much more likely and p= ossible.

Drak


On 11 March 2014 01:15, Gavin Andresen &= lt;gavinandres= en@gmail.com> wrote:
Multisig is orthogonal to t= he payment protocol (but payment protocol is needed first).

<= div> There need to be protocols for:

a) Establishing mu= ltisig wallets of various sorts. See:
... etc. =C2=A0for a UI mock-up.
=C2=A0 There needs to be so= me protocol so all participants in a multisig wallet contribute keys (actua= lly, we should just assume everybody uses BIP32 HD public keys so we get pr= ivacy from the start).

Multi-person shared wallets, escrows, and "wallet = protection service" wallets (which might be protected with two-factor = authentication) are different use cases and probably use slightly different= protocols (and will probably need different BIPs eventually).


b) Gathering signatures for a multisig s= pend. Here is where the payment protocol is useful; the PaymentRequest mess= age should be passed around so all participants know what is being paid for= , and maybe a partially-signed Payment message is where the signatures are = gathered (or maybe the signatures are sent separately and one of the partic= ipants creates and submits the Payment and gets the PaymentACK... "to = be designed").
=C2=A0 See:
... for UI mock-up for the multi-person-spend case.

And maybe a protocol for "I don't want to be part of this m= ultisig any more / I lost control of my private key don't trust me in t= his multisig any more".



On Mon, Mar 10, 2014 at 8:14 PM, Jeff Garzik <jgarzik@b= itpay.com> wrote:
All of that only melds with the paym= ent protocol under an extremely
expansive definition of "payment." =C2=A0The payment protocol is = really
geared towards a direct one-to-one relationship....
=C2=A0=
=C2=A0
--
Gavin Andresen

-----------------------------------------------------------------------= -------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases = and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf= .net/sfu/13534_NeoTech
_____________________________________________= __
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment


--f46d043c801e3d337604f4533b55--