public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [Bitcoin-development] Signature Blocks and URI Sign Requests
@ 2012-04-02 20:55 Alan Reiner
  2012-04-03  0:44 ` Luke-Jr
  2012-04-03 18:46 ` Gavin Andresen
  0 siblings, 2 replies; 12+ messages in thread
From: Alan Reiner @ 2012-04-02 20:55 UTC (permalink / raw)
  To: Bitcoin Dev

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

I would like to propose two things that are closely related.  I will 
start making BIPS if there's positive feedback.  Sorry it's so long, but 
I felt both should be in the same email...


_*(1) Signature Blocks*  -- A more-robust, versatile, message-signing 
exchange_

Satoshi client 0.6.0 introduced message signing, but I've been fairly 
unimpressed with the implementation.  Strictly speaking, it works, but 
it's really not intended for "regular users."  There is no indication of 
what message was signed or what address signed it.  Key recovery works 
for the computers processing it, but the user has no idea what this 
chunk of random data is.  They don't even know if the message they 
thought they signed is what's in the signature (along the lines of the 
copy&paste virus, the message could be switched out without the user 
noticing).

I have implemented Signature Blocks 
<https://bitcointalk.org/index.php?topic=56424.msg776163#msg776163> in 
Armory (as of v0.55), which is a fully-functional expansion on the 
idea.  Along the lines of BIP 10, a signature block is a human-readable 
chunk of data that immediately identifies the address and the message 
that are being signed.  It is easily copy&pasted via email or text 
files, and is fairly compact for visual identification.   Click the link 
above to see an example signature block and an Armory screenshot of the 
UI (which needs improvement, but still usable).  The verification 
process will include:

-- Check that the public key (included or recovered) matches the address 
field.
-- Verify that the signature matches the included message for this 
public key
-- The message is properly formatted with a standardized character set 
and escape/replacement scheme for things like newlines or double-quotes.

gmaxwell already pointed out that key recovery makes the "Public Key" 
field pointless.  Okay fine -- I just don't have key recovery 
implemented yet in Armory, and when I do I can ditch that field (or 
simply make it optional).  The point is to create a versatile, 
human-readable standardized form, much like the BIP 0010 
signature-collection scheme <https://en.bitcoin.it/wiki/BIP_0010>.


_*(2) Sign-Message URI scheme***-- Request signed messages from users 
using URIs_

I had the idea that for certain services, the first funding address 
could be used to identify the owner of an account, and all account 
maintenance (such as cashouts) be done through signed messages with this 
address.  For instance, the user would need both a login password *and* 
a signed message in order to make a withdrawal or purchase:

     ("Please withdraw 12.3 BTC from acct 1828349132 to address 
1Hfr3jk2093f")_signed_by_A

This gives the service the ability to use two separate factors to 
authenticate the request (username&password *and* access to unencrypted 
wallet).  This /could/ work with manual signature blocks alone... but 
it's too many steps for regular users.  However, I think it's workable 
if we expand bitcoin URIs to include "Signature Requests".

The URI scheme would add a few parameters to the scheme, and would have 
to have further replacement rules to make sure that messages are handled 
properly.   The general CONOPs would be (*Con*cept of *Op*eration*s*):

     -- User navigates to "Withdraw funds" on webpage
     -- Webpage has you fill in the details:  from-account, to-address, 
withdrawal amount
     -- Webpage produces a clickable URI link that loads all the 
information into your client, including addr-reqd-for-sig
     -- Client asks for confirmation and passphrase (if necessary) then 
produces a signature (and sig block if necessary)
     -- URI may include reply-to field that tells it where to send the 
siganture when it's ready

So the extra tags that would be needed would probably be:

         "*requestSig*=True":
                 Flag to identify that this is a signing request URI
         "*sigNeeded*=1Qjf3392k31h"
                 The address that needs to sign the message
         
"*message*=Please%20withdraw%2012.3%20BTC%20to%20addr%201Hfr3jk2093f"
                 Some encoding of the message that can be parsed the 
same way on all systems
         "*replyurl*=http://requestor.com/sig_replies.asp?"
                 (Optional) After signing, application will submit the 
signature to the replyurl

The reply url could be simply an http URL which will use bitcoin URI 
syntax, with the fields above copied.  Therefore, to complete the above 
request, the application handling the request will simply send an HTTP 
request to:

     
http://requestor.com/sig_replies.asp?*sigNeeded*=1Qjf3392k31h&*message*=...&*signature*=1fb1893ac193...&*replySig*=True

Any thoughts?  (I have no doubts that there are :) )

-Alan






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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-02 20:55 [Bitcoin-development] Signature Blocks and URI Sign Requests Alan Reiner
@ 2012-04-03  0:44 ` Luke-Jr
  2012-04-03 18:46 ` Gavin Andresen
  1 sibling, 0 replies; 12+ messages in thread
From: Luke-Jr @ 2012-04-03  0:44 UTC (permalink / raw)
  To: bitcoin-development

On Monday, April 02, 2012 4:55:03 PM Alan Reiner wrote:
> Any thoughts?  (I have no doubts that there are :) )

IMO, the sign-request URI should be an extension on the existing bitcoin: URI 
scheme; this way, sigNeeded can be omitted to imply "sign with a sending 
address".



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-02 20:55 [Bitcoin-development] Signature Blocks and URI Sign Requests Alan Reiner
  2012-04-03  0:44 ` Luke-Jr
@ 2012-04-03 18:46 ` Gavin Andresen
  2012-04-03 18:55   ` Luke-Jr
  2012-04-03 20:51   ` Alan Reiner
  1 sibling, 2 replies; 12+ messages in thread
From: Gavin Andresen @ 2012-04-03 18:46 UTC (permalink / raw)
  To: Alan Reiner; +Cc: Bitcoin Dev

RE: signature blocks and BIP 10:

We should avoid reinventing the wheel, if we can. I think we should
extend existing standards whenever possible.

So: could we encode signature blocks or BIP-10 transactions using
S/MIME ?  Or is there a more appropriate "sign a message" standard we
could/should use?

You're glossing over little details like what character encoding is
used for the message, but I'd rather leverage all the work already
done by the IETF to nail down all those little details rather then
re-discover them and come up with our own solutions.

-- 
--
Gavin Andresen



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 18:46 ` Gavin Andresen
@ 2012-04-03 18:55   ` Luke-Jr
  2012-04-03 19:42     ` Wladimir
  2012-04-03 20:51   ` Alan Reiner
  1 sibling, 1 reply; 12+ messages in thread
From: Luke-Jr @ 2012-04-03 18:55 UTC (permalink / raw)
  To: bitcoin-development

On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
> We should avoid reinventing the wheel, if we can. I think we should
> extend existing standards whenever possible.

I wonder if it's possible to make sigs compatible with PGP/EC ?



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 18:55   ` Luke-Jr
@ 2012-04-03 19:42     ` Wladimir
  2012-04-03 20:04       ` Peter Vessenes
  0 siblings, 1 reply; 12+ messages in thread
From: Wladimir @ 2012-04-03 19:42 UTC (permalink / raw)
  To: Luke-Jr; +Cc: bitcoin-development

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

On Tue, Apr 3, 2012 at 8:55 PM, Luke-Jr <luke@dashjr•org> wrote:

> On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
> > We should avoid reinventing the wheel, if we can. I think we should
> > extend existing standards whenever possible.
>
> I wonder if it's possible to make sigs compatible with PGP/EC ?
>

Or we could take a step back, further into "don't reinvent the wheel"
territory. Why not simply make use of PGP(/EC) to sign and verify messages?
It has many advantages, like an already existing web-of-trust and keyserver
infrastructure.

I still feel like this is sign message stuff is dragging the kitchen sink
into Bitcoin. It's fine for logging into a website, what you use it for,
but anything that approaches signing email (such as S/MIME implementations
and handling different character encodings) is going too far IMO.

Wladimir

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 19:42     ` Wladimir
@ 2012-04-03 20:04       ` Peter Vessenes
  2012-04-03 21:12         ` Alan Reiner
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Vessenes @ 2012-04-03 20:04 UTC (permalink / raw)
  To: Wladimir; +Cc: bitcoin-development

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

I don't think it's minimally invasive to layer PGP's web of trust on top of
Bitcoin, in fact, the opposite.

From a certain angle, bitcoin exists as a sort of answer / alternate
solution to the web of trust. Digital cash with an existing web of trust in
place was a working concept in the mid-1990s, courtesy of David Chaum, I
believe.

I totally agree on the kitchen sink concern; I would personally like to see
something like a one-year required discussion period on all non-security
changes proposed to the blockchain protocol. We know almost nothing about
how bitcoin will be used over the next 20 years; I believe it's a mistake
to bulk up the protocol too rapidly right now.

There's a famous phrase from the founder of Lotus about Lotus' engineering
process: "add lightness." The equivalent for protocol design might be "add
simplicity." I'd like to see us adding simplicity for now, getting a core
set of tests together for alternate implementations like libbitcoin, and
thinking hard about the dangers of cruft over a 10+ year period when it
comes to a technology which will necessarily include a complete history of
every crufty decision embodied in transaction histories.

Peter


On Tue, Apr 3, 2012 at 1:42 PM, Wladimir <laanwj@gmail•com> wrote:

>
> On Tue, Apr 3, 2012 at 8:55 PM, Luke-Jr <luke@dashjr•org> wrote:
>
>> On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
>> > We should avoid reinventing the wheel, if we can. I think we should
>> > extend existing standards whenever possible.
>>
>> I wonder if it's possible to make sigs compatible with PGP/EC ?
>>
>
> Or we could take a step back, further into "don't reinvent the wheel"
> territory. Why not simply make use of PGP(/EC) to sign and verify messages?
> It has many advantages, like an already existing web-of-trust and keyserver
> infrastructure.
>
> I still feel like this is sign message stuff is dragging the kitchen sink
> into Bitcoin. It's fine for logging into a website, what you use it for,
> but anything that approaches signing email (such as S/MIME implementations
> and handling different character encodings) is going too far IMO.
>
> Wladimir
>
>
>
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second
> resolution app monitoring today. Free.
> http://p.sf.net/sfu/Boundary-dev2dev
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>


-- 

Peter J. Vessenes
CEO, CoinLab
M: 206.595.9839

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 18:46 ` Gavin Andresen
  2012-04-03 18:55   ` Luke-Jr
@ 2012-04-03 20:51   ` Alan Reiner
  1 sibling, 0 replies; 12+ messages in thread
From: Alan Reiner @ 2012-04-03 20:51 UTC (permalink / raw)
  To: Gavin Andresen; +Cc: Bitcoin Dev

On 04/03/2012 02:46 PM, Gavin Andresen wrote:
> RE: signature blocks and BIP 10:
>
> We should avoid reinventing the wheel, if we can. I think we should
> extend existing standards whenever possible.
>
> So: could we encode signature blocks or BIP-10 transactions using
> S/MIME ?  Or is there a more appropriate "sign a message" standard we
> could/should use?
>
> You're glossing over little details like what character encoding is
> used for the message, but I'd rather leverage all the work already
> done by the IETF to nail down all those little details rather then
> re-discover them and come up with our own solutions.
>
I'm glossing over details because I actually have no experience dealing 
with character encodings,  or the implementation specifics of existing 
solutions (PGP or S/MIME).   That's why I'm emailing this list: I want 
to figure this stuff out, and at the same time try to converge on 
something that is efficient and can be interoperable between Armory and 
the Satoshi client (wallets, signature collection, sig blocks).

I don't go into these things solely to reinvent stuff.  My primary 
motivation for both ideas I have pitched so far (BIP 0010 and the sig 
blocks) is the versatility.  I like the encoding-independent, visual 
compactness of PGP ASCII-armored text blocks, but I don't like their 
opaqueness.  PGP vs my signature blocks basically look the same to a 
casual user, but even a moderately-knowledgeable user can appreciate the 
human-readable components of it.  You can visually identify if 
signatures are missing from sig-collection packet, or see that you 
signed with the wrong address without having to load an external program.

But that isn't a critical requirement, it's just my personal 
preference.  I'm fine with existing systems if it sidesteps a lot of 
problems and there's easy interface to it.    But, I don't want to have 
another BSDDB-wallet situation where we end up with 10x more capability 
than we need, and pay for it with 10x the complexity (at least in this 
case, using PGP is an existing crypto/security-sensitive technology).  I 
have made "simplicity" one of my goals in Armory.

Alternatively, we could change the discussion to a requirements 
discussion, to first figure out what we need in order to address 
multi-signature collection, etc.  Then evaluate competing ideas based on 
their qualities relative to the requirements.






^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 20:04       ` Peter Vessenes
@ 2012-04-03 21:12         ` Alan Reiner
  2012-04-03 23:37           ` Mike Koss
  0 siblings, 1 reply; 12+ messages in thread
From: Alan Reiner @ 2012-04-03 21:12 UTC (permalink / raw)
  To: bitcoin-development

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

Just to clarify, I'm not proposing anything to the protocol itself.  
Simply that some applications might benefit from users being to sign 
messages with existing Bitcoin identities, and what can we do to 
accommodate that (out of band)?  It's not a high priority, but I think 
it's potentially useful, and most codebases already have everything they 
need in place to implement it.


On 04/03/2012 04:04 PM, Peter Vessenes wrote:
> I don't think it's minimally invasive to layer PGP's web of trust on 
> top of Bitcoin, in fact, the opposite.
>
> From a certain angle, bitcoin exists as a sort of answer / alternate 
> solution to the web of trust. Digital cash with an existing web of 
> trust in place was a working concept in the mid-1990s, courtesy of 
> David Chaum, I believe.
>
> I totally agree on the kitchen sink concern; I would personally like 
> to see something like a one-year required discussion period on all 
> non-security changes proposed to the blockchain protocol. We know 
> almost nothing about how bitcoin will be used over the next 20 years; 
> I believe it's a mistake to bulk up the protocol too rapidly right now.
>
> There's a famous phrase from the founder of Lotus about Lotus' 
> engineering process: "add lightness." The equivalent for protocol 
> design might be "add simplicity." I'd like to see us adding simplicity 
> for now, getting a core set of tests together for alternate 
> implementations like libbitcoin, and thinking hard about the dangers 
> of cruft over a 10+ year period when it comes to a technology which 
> will necessarily include a complete history of every crufty decision 
> embodied in transaction histories.
>
> Peter
>
>
> On Tue, Apr 3, 2012 at 1:42 PM, Wladimir <laanwj@gmail•com 
> <mailto:laanwj@gmail•com>> wrote:
>
>
>     On Tue, Apr 3, 2012 at 8:55 PM, Luke-Jr <luke@dashjr•org
>     <mailto:luke@dashjr•org>> wrote:
>
>         On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
>         > We should avoid reinventing the wheel, if we can. I think we
>         should
>         > extend existing standards whenever possible.
>
>         I wonder if it's possible to make sigs compatible with PGP/EC ?
>
>
>     Or we could take a step back, further into "don't reinvent the
>     wheel" territory. Why not simply make use of PGP(/EC) to sign and
>     verify messages? It has many advantages, like an already existing
>     web-of-trust and keyserver infrastructure.
>
>     I still feel like this is sign message stuff is dragging the
>     kitchen sink into Bitcoin. It's fine for logging into a website,
>     what you use it for, but anything that approaches signing email
>     (such as S/MIME implementations and handling different character
>     encodings) is going too far IMO.
>
>     Wladimir
>
>
>     ------------------------------------------------------------------------------
>     Better than sec? Nothing is better than sec when it comes to
>     monitoring Big Data applications. Try Boundary one-second
>     resolution app monitoring today. Free.
>     http://p.sf.net/sfu/Boundary-dev2dev
>     _______________________________________________
>     Bitcoin-development mailing list
>     Bitcoin-development@lists•sourceforge.net
>     <mailto:Bitcoin-development@lists•sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
>
>
> -- 
>
> Peter J. Vessenes
> CEO, CoinLab
> M: 206.595.9839
>
>
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second
> resolution app monitoring today. Free.
> http://p.sf.net/sfu/Boundary-dev2dev
>
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development


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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 21:12         ` Alan Reiner
@ 2012-04-03 23:37           ` Mike Koss
  2012-04-04  0:01             ` Alan Reiner
  0 siblings, 1 reply; 12+ messages in thread
From: Mike Koss @ 2012-04-03 23:37 UTC (permalink / raw)
  To: Alan Reiner; +Cc: bitcoin-development

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

Alan, I'm coming in late to the conversation - do I understand that BIP 010
does not propose any changes to the protocol - but just an intermediate
data format that other clients might use to collect the need key material
to sign a multi-signature block?

If so - one might ask what the role of BIP's are if they actually do not
impact the protocol?

If there is any encapsulated data format that is expected to be interpreted
by clients - I'd call that a "protocol change"; but I take it in this
instance that you will transmit these signature block out of band from the
client ... yet they would have to be parsed and converted into a
Transaction Script once collected by SOME client?  Would we expect the
standard client do so?

Sorry if this has been discussed before - I'm trying to understand the
proposal.


On Tue, Apr 3, 2012 at 2:12 PM, Alan Reiner <etotheipi@gmail•com> wrote:

> **
> Just to clarify, I'm not proposing anything to the protocol itself.
> Simply that some applications might benefit from users being to sign
> messages with existing Bitcoin identities, and what can we do to
> accommodate that (out of band)?  It's not a high priority, but I think it's
> potentially useful, and most codebases already have everything they need in
> place to implement it.
>
>
>
> On 04/03/2012 04:04 PM, Peter Vessenes wrote:
>
> I don't think it's minimally invasive to layer PGP's web of trust on top
> of Bitcoin, in fact, the opposite.
>
>  From a certain angle, bitcoin exists as a sort of answer / alternate
> solution to the web of trust. Digital cash with an existing web of trust in
> place was a working concept in the mid-1990s, courtesy of David Chaum, I
> believe.
>
>  I totally agree on the kitchen sink concern; I would personally like to
> see something like a one-year required discussion period on all
> non-security changes proposed to the blockchain protocol. We know almost
> nothing about how bitcoin will be used over the next 20 years; I believe
> it's a mistake to bulk up the protocol too rapidly right now.
>
>  There's a famous phrase from the founder of Lotus about Lotus'
> engineering process: "add lightness." The equivalent for protocol design
> might be "add simplicity." I'd like to see us adding simplicity for now,
> getting a core set of tests together for alternate implementations like
> libbitcoin, and thinking hard about the dangers of cruft over a 10+ year
> period when it comes to a technology which will necessarily include a
> complete history of every crufty decision embodied in transaction histories.
>
>  Peter
>
>
> On Tue, Apr 3, 2012 at 1:42 PM, Wladimir <laanwj@gmail•com> wrote:
>
>>
>>  On Tue, Apr 3, 2012 at 8:55 PM, Luke-Jr <luke@dashjr•org> wrote:
>>
>>> On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
>>> > We should avoid reinventing the wheel, if we can. I think we should
>>> > extend existing standards whenever possible.
>>>
>>>  I wonder if it's possible to make sigs compatible with PGP/EC ?
>>>
>>
>> Or we could take a step back, further into "don't reinvent the wheel"
>> territory. Why not simply make use of PGP(/EC) to sign and verify messages?
>> It has many advantages, like an already existing web-of-trust and keyserver
>> infrastructure.
>>
>> I still feel like this is sign message stuff is dragging the kitchen sink
>> into Bitcoin. It's fine for logging into a website, what you use it for,
>> but anything that approaches signing email (such as S/MIME implementations
>> and handling different character encodings) is going too far IMO.
>>
>> Wladimir
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Better than sec? Nothing is better than sec when it comes to
>> monitoring Big Data applications. Try Boundary one-second
>> resolution app monitoring today. Free.
>> http://p.sf.net/sfu/Boundary-dev2dev
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists•sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>>
>
>
>  --
>
> Peter J. Vessenes
> CEO, CoinLab
> M: 206.595.9839
>
>
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second
> resolution app monitoring today. Free.http://p.sf.net/sfu/Boundary-dev2dev
>
>
> _______________________________________________
> Bitcoin-development mailing listBitcoin-development@lists•sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
>
>
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second
> resolution app monitoring today. Free.
> http://p.sf.net/sfu/Boundary-dev2dev
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>


-- 
Mike Koss
CTO, CoinLab
(425) 246-7701 (m)

A Bitcoin Primer <http://coinlab.com/a-bitcoin-primer.pdf> - What you need
to know about Bitcoins.

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-03 23:37           ` Mike Koss
@ 2012-04-04  0:01             ` Alan Reiner
  2012-04-04  6:23               ` Wladimir
  0 siblings, 1 reply; 12+ messages in thread
From: Alan Reiner @ 2012-04-04  0:01 UTC (permalink / raw)
  To: Mike Koss; +Cc: bitcoin-development

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

Mike,

You make an excellent point.  Neither of these proposals impact the 
protocol itself.  I hadn't considered that.  But I think it's a 
critically important problem to solve (signature blocks, not so much, 
but it could piggy back on the same solution).    So the mailing list is 
a good place to discuss this, but it maybe it shouldn't be labeled as a 
BIP.  I'll leave that up to the others (arguably, the URI scheme is not 
a protocol change, either, but was still a BIP).

There is all this fanfare around P2SH and how multi-sig is the solution 
to all these security problems, but how the hell do you use it?  I 
believe that BIP 10 (or successor) is *critical//*to the success of 
multi-sig, because the greatest barrier to using multi-sig will be the 
ability to actually execute them in less than 14 steps.  And if every 
client implements it differently, there's even less chance it will be 
used (assuming the userbase reaches any level of client diversity).

I think we need to supply a solution to this existing problem before 
everyone starts solving it on their own and fragmenting the market.  No 
one has to use the solution we come up with -- but I believe it's a 
problem for which most developers will take any solution that is easy to 
exchange, size-efficient and promised to be interoperable (if for no 
other reason than the Satoshi client uses it).

-Alan



On 04/03/2012 07:37 PM, Mike Koss wrote:
> Alan, I'm coming in late to the conversation - do I understand that 
> BIP 010 does not propose any changes to the protocol - but just an 
> intermediate data format that other clients might use to collect the 
> need key material to sign a multi-signature block?
>
> If so - one might ask what the role of BIP's are if they actually do 
> not impact the protocol?
>
> If there is any encapsulated data format that is expected to be 
> interpreted by clients - I'd call that a "protocol change"; but I take 
> it in this instance that you will transmit these signature block out 
> of band from the client ... yet they would have to be parsed and 
> converted into a Transaction Script once collected by SOME client? 
>  Would we expect the standard client do so?
>
> Sorry if this has been discussed before - I'm trying to understand the 
> proposal.
>
>
> On Tue, Apr 3, 2012 at 2:12 PM, Alan Reiner <etotheipi@gmail•com 
> <mailto:etotheipi@gmail•com>> wrote:
>
>     Just to clarify, I'm not proposing anything to the protocol
>     itself.  Simply that some applications might benefit from users
>     being to sign messages with existing Bitcoin identities, and what
>     can we do to accommodate that (out of band)?  It's not a high
>     priority, but I think it's potentially useful, and most codebases
>     already have everything they need in place to implement it.
>
>
>
>     On 04/03/2012 04:04 PM, Peter Vessenes wrote:
>>     I don't think it's minimally invasive to layer PGP's web of trust
>>     on top of Bitcoin, in fact, the opposite.
>>
>>     From a certain angle, bitcoin exists as a sort of answer /
>>     alternate solution to the web of trust. Digital cash with an
>>     existing web of trust in place was a working concept in the
>>     mid-1990s, courtesy of David Chaum, I believe.
>>
>>     I totally agree on the kitchen sink concern; I would personally
>>     like to see something like a one-year required discussion period
>>     on all non-security changes proposed to the blockchain protocol.
>>     We know almost nothing about how bitcoin will be used over the
>>     next 20 years; I believe it's a mistake to bulk up the protocol
>>     too rapidly right now.
>>
>>     There's a famous phrase from the founder of Lotus about Lotus'
>>     engineering process: "add lightness." The equivalent for protocol
>>     design might be "add simplicity." I'd like to see us adding
>>     simplicity for now, getting a core set of tests together for
>>     alternate implementations like libbitcoin, and thinking hard
>>     about the dangers of cruft over a 10+ year period when it comes
>>     to a technology which will necessarily include a complete history
>>     of every crufty decision embodied in transaction histories.
>>
>>     Peter
>>
>>
>>     On Tue, Apr 3, 2012 at 1:42 PM, Wladimir <laanwj@gmail•com
>>     <mailto:laanwj@gmail•com>> wrote:
>>
>>
>>         On Tue, Apr 3, 2012 at 8:55 PM, Luke-Jr <luke@dashjr•org
>>         <mailto:luke@dashjr•org>> wrote:
>>
>>             On Tuesday, April 03, 2012 2:46:17 PM Gavin Andresen wrote:
>>             > We should avoid reinventing the wheel, if we can. I
>>             think we should
>>             > extend existing standards whenever possible.
>>
>>             I wonder if it's possible to make sigs compatible with
>>             PGP/EC ?
>>
>>
>>         Or we could take a step back, further into "don't reinvent
>>         the wheel" territory. Why not simply make use of PGP(/EC) to
>>         sign and verify messages? It has many advantages, like an
>>         already existing web-of-trust and keyserver infrastructure.
>>
>>         I still feel like this is sign message stuff is dragging the
>>         kitchen sink into Bitcoin. It's fine for logging into a
>>         website, what you use it for, but anything that approaches
>>         signing email (such as S/MIME implementations and handling
>>         different character encodings) is going too far IMO.
>>
>>         Wladimir
>>
>>
>>         ------------------------------------------------------------------------------
>>         Better than sec? Nothing is better than sec when it comes to
>>         monitoring Big Data applications. Try Boundary one-second
>>         resolution app monitoring today. Free.
>>         http://p.sf.net/sfu/Boundary-dev2dev
>>         _______________________________________________
>>         Bitcoin-development mailing list
>>         Bitcoin-development@lists•sourceforge.net
>>         <mailto:Bitcoin-development@lists•sourceforge.net>
>>         https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>>
>>
>>
>>     -- 
>>
>>     Peter J. Vessenes
>>     CEO, CoinLab
>>     M: 206.595.9839 <tel:206.595.9839>
>>
>>
>>     ------------------------------------------------------------------------------
>>     Better than sec? Nothing is better than sec when it comes to
>>     monitoring Big Data applications. Try Boundary one-second
>>     resolution app monitoring today. Free.
>>     http://p.sf.net/sfu/Boundary-dev2dev
>>
>>
>>     _______________________________________________
>>     Bitcoin-development mailing list
>>     Bitcoin-development@lists•sourceforge.net  <mailto:Bitcoin-development@lists•sourceforge.net>
>>     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
>     ------------------------------------------------------------------------------
>     Better than sec? Nothing is better than sec when it comes to
>     monitoring Big Data applications. Try Boundary one-second
>     resolution app monitoring today. Free.
>     http://p.sf.net/sfu/Boundary-dev2dev
>     _______________________________________________
>     Bitcoin-development mailing list
>     Bitcoin-development@lists•sourceforge.net
>     <mailto:Bitcoin-development@lists•sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
>
>
> -- 
> Mike Koss
> CTO, CoinLab
> (425) 246-7701 (m)
>
> A Bitcoin Primer <http://coinlab.com/a-bitcoin-primer.pdf> - What you 
> need to know about Bitcoins.
>


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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-04  0:01             ` Alan Reiner
@ 2012-04-04  6:23               ` Wladimir
  2012-04-04  8:35                 ` Michael Grønager
  0 siblings, 1 reply; 12+ messages in thread
From: Wladimir @ 2012-04-04  6:23 UTC (permalink / raw)
  To: Alan Reiner; +Cc: bitcoin-development

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

Alan,

On Wed, Apr 4, 2012 at 2:01 AM, Alan Reiner <etotheipi@gmail•com> wrote:

> **
> There is all this fanfare around P2SH and how multi-sig is the solution to
> all these security problems, but how the hell do you use it?  I believe
> that BIP 10 (or successor) is *critical *to the success of multi-sig,
> because the greatest barrier to using multi-sig will be the ability to
> actually execute them in less than 14 steps.  And if every client
> implements it differently, there's even less chance it will be used
> (assuming the userbase reaches any level of client diversity).
>

That is a laudable goal.

So your proposal is about signing "Preformatted messages from sites" to
make financial transactions more secure, not arbitrary user-to-user
messages such as email. That really restricts the scope, which is good.

In this case there is no use for S/MIME, which deals with encoding/signing
multipart mail messages. And no need to deal with MIME headers, html, or
embedded images, and such. And we can simply require one character
encoding, no need to support hundreds.

The "request signing" bitcoin URL makes sense in my eyes. Less copy/pasting
is good. Do mind that there is usually a URL size limit (depending on the
browser) so this cannot be used for long messages/contracts. A possible
solution would be to make an option to pass the address where the message
can be retrieved (and maybe also where the signature must be sent, to save
a copy-paste back?).

Looking at existing solutions, the only other "sign request" that I know of
is the CSR (https://en.wikipedia.org/wiki/Certificate_signing_request) but
the functionality and goal is very different.

It'd be useful (and IMO most important) to write down some use-cases in
which this makes P2SH easier and less involved. How many steps can be
eliminated of the 14?

Wladimir
BTW: we also still need a BIP to define URL signing / authentication
itself.

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Bitcoin-development] Signature Blocks and URI Sign Requests
  2012-04-04  6:23               ` Wladimir
@ 2012-04-04  8:35                 ` Michael Grønager
  0 siblings, 0 replies; 12+ messages in thread
From: Michael Grønager @ 2012-04-04  8:35 UTC (permalink / raw)
  To: Alan Reiner; +Cc: Bitcoin Dev

Hi Alan,

I am using an approach similar to your proposal in a service I am developing. I have, however, chosen to sign using the following scheme:
1. take sha512 of document (=hash512)
2. take ripemd160 of hash512
3. create 512 bit data structure, where the first 352bits are '0', and the rest is the ripemd160 of our hash512
4. sign it with the key

This procedure prevents an evil site from fooling you to sign a transaction spending your own coins. So bottom like never sign a full sha512 with a key for any other purpose than a transaction. (The above could easily well have been implemented as just truncating the hash512 to 256 bits, feel free to propose the optimal scheme).

/M



On 04/04/2012, at 08:23, Wladimir wrote:

> Alan,
> 
> On Wed, Apr 4, 2012 at 2:01 AM, Alan Reiner <etotheipi@gmail•com> wrote:
> There is all this fanfare around P2SH and how multi-sig is the solution to all these security problems, but how the hell do you use it?  I believe that BIP 10 (or successor) is critical to the success of multi-sig, because the greatest barrier to using multi-sig will be the ability to actually execute them in less than 14 steps.  And if every client implements it differently, there's even less chance it will be used (assuming the userbase reaches any level of client diversity).   
> 
> That is a laudable goal. 
> 
> So your proposal is about signing "Preformatted messages from sites" to make financial transactions more secure, not arbitrary user-to-user messages such as email. That really restricts the scope, which is good.
> 
> In this case there is no use for S/MIME, which deals with encoding/signing multipart mail messages. And no need to deal with MIME headers, html, or embedded images, and such. And we can simply require one character encoding, no need to support hundreds.
> 
> The "request signing" bitcoin URL makes sense in my eyes. Less copy/pasting is good. Do mind that there is usually a URL size limit (depending on the browser) so this cannot be used for long messages/contracts. A possible solution would be to make an option to pass the address where the message can be retrieved (and maybe also where the signature must be sent, to save a copy-paste back?).
> 
> Looking at existing solutions, the only other "sign request" that I know of is the CSR (https://en.wikipedia.org/wiki/Certificate_signing_request) but the functionality and goal is very different.
> 
> It'd be useful (and IMO most important) to write down some use-cases in which this makes P2SH easier and less involved. How many steps can be eliminated of the 14?
> 
> Wladimir
> BTW: we also still need a BIP to define URL signing / authentication itself. 
> 
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second 
> resolution app monitoring today. Free.
> http://p.sf.net/sfu/Boundary-dev2dev_______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development





^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-04-04  8:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-02 20:55 [Bitcoin-development] Signature Blocks and URI Sign Requests Alan Reiner
2012-04-03  0:44 ` Luke-Jr
2012-04-03 18:46 ` Gavin Andresen
2012-04-03 18:55   ` Luke-Jr
2012-04-03 19:42     ` Wladimir
2012-04-03 20:04       ` Peter Vessenes
2012-04-03 21:12         ` Alan Reiner
2012-04-03 23:37           ` Mike Koss
2012-04-04  0:01             ` Alan Reiner
2012-04-04  6:23               ` Wladimir
2012-04-04  8:35                 ` Michael Grønager
2012-04-03 20:51   ` Alan Reiner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox