New BIP: protocol for multisignature payments

New BIP: protocol for multisignature payments
2015-01-31 17:19 ` Mike Hearn
  
From: Martin Habovštiak @ 2015-01-31  1:30 UTC (permalink / raw)
  To: bitcoin-development

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

Hello,

I've been thinking about how to solve security problems of the servers
holding huge amounts of bitcoins (exchanges, markets...) and came up
with this idea: https://gist.github.com/Kixunil/2ec79cf40a53fb899ac5

TL;DR: it's extension of BIP70 (but not fully compatible due to security
reasons) which supports making of multisig transactions dynamically.
(The most important thing is that the user provides his address.)

What do you think? Is it a good way to solve the problem or do you know
about something better? I would really like this or something similar
implemented by wallets.

Thank you for your feedback!

Martin

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

 permalink raw reply	[|nested]
From: Thomas Kerin @ 2015-01-31  2:10 UTC (permalink / raw)
  To: Martin Habovštiak;  Bitcoin Development

Ooh, I had a very similar proposal, except it involved sharing generic P2SH scripts. It also involved facilitating requesting of signatures.. We should talk.On 31 Jan 2015 01:30, Martin Habovštiak <martin.habovstiak@gmail•com> wrote:
>
> Hello, 
>
> I've been thinking about how to solve security problems of the servers 
> holding huge amounts of bitcoins (exchanges, markets...) and came up 
> with this idea: https://gist.github.com/Kixunil/2ec79cf40a53fb899ac5 
>
> TL;DR: it's extension of BIP70 (but not fully compatible due to security 
> reasons) which supports making of multisig transactions dynamically. 
> (The most important thing is that the user provides his address.) 
>
> What do you think? Is it a good way to solve the problem or do you know 
> about something better? I would really like this or something similar 
> implemented by wallets. 
>
> Thank you for your feedback! 
>
> Martin
>
> ------------------------------------------------------------------------------ 
> Dive into the World of Parallel Programming. The Go Parallel Website, 
> sponsored by Intel and developed in partnership with Slashdot Media, is your 
> hub for all things parallel software development, from weekly thought 
> leadership blogs to news, videos, case studies, tutorials and more. Take a 
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________ 
> Bitcoin-development mailing list 
> Bitcoin-development@lists•sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development 

 permalink raw reply	[|nested]
2015-01-31  1:30 [Bitcoin-development] New BIP: protocol for multisignature payments Martin Habovštiak

  2015-01-31 17:47   ` Martin Habovštiak
  
From: Mike Hearn @ 2015-01-31 17:19 UTC (permalink / raw)
  To: Martin Habovštiak;  Bitcoin Dev

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

Hi Martin,

You're on the right lines. Your writeup is pretty similar to the high level
overview given here though:

https://en.bitcoin.it/wiki/Contracts#Example_2:_Escrow_and_dispute_mediation

To make 2-of-3 dispute mediation works requires implementing a wallet that
supports it, and the tools mediators need to manage incoming tickets, etc.
The BIP70 extension is probably the smallest part of the project.


On Sat, Jan 31, 2015 at 2:30 AM, Martin Habovštiak <
martin.habovstiak@gmail•com> wrote:

> Hello,
>
> I've been thinking about how to solve security problems of the servers
> holding huge amounts of bitcoins (exchanges, markets...) and came up
> with this idea: https://gist.github.com/Kixunil/2ec79cf40a53fb899ac5
>
> TL;DR: it's extension of BIP70 (but not fully compatible due to security
> reasons) which supports making of multisig transactions dynamically.
> (The most important thing is that the user provides his address.)
>
> What do you think? Is it a good way to solve the problem or do you know
> about something better? I would really like this or something similar
> implemented by wallets.
>
> Thank you for your feedback!
>
> Martin
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is
> your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

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

 permalink raw reply	[|nested]
2015-01-31 17:19 ` Mike Hearn

  2015-01-31 18:07     ` Mike Hearn
  
From: Martin Habovštiak @ 2015-01-31 17:47 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

I know about that wiki page. I just wanted to design protocol which
would make it easier in practice. (now it would be done manually)

I could look at implementing it someday, but now I'd like to receive
feedback from community.

2015-01-31 19:19 GMT+02:00 Mike Hearn <mike@plan99•net>:
> Hi Martin,
>
> You're on the right lines. Your writeup is pretty similar to the high level
> overview given here though:
>
> https://en.bitcoin.it/wiki/Contracts#Example_2:_Escrow_and_dispute_mediation
>
> To make 2-of-3 dispute mediation works requires implementing a wallet that
> supports it, and the tools mediators need to manage incoming tickets, etc.
> The BIP70 extension is probably the smallest part of the project.
>
>
> On Sat, Jan 31, 2015 at 2:30 AM, Martin Habovštiak
> <martin.habovstiak@gmail•com> wrote:
>>
>> Hello,
>>
>> I've been thinking about how to solve security problems of the servers
>> holding huge amounts of bitcoins (exchanges, markets...) and came up
>> with this idea: https://gist.github.com/Kixunil/2ec79cf40a53fb899ac5
>>
>> TL;DR: it's extension of BIP70 (but not fully compatible due to security
>> reasons) which supports making of multisig transactions dynamically.
>> (The most important thing is that the user provides his address.)
>>
>> What do you think? Is it a good way to solve the problem or do you know
>> about something better? I would really like this or something similar
>> implemented by wallets.
>>
>> Thank you for your feedback!
>>
>> Martin
>>
>>
>> ------------------------------------------------------------------------------
>> Dive into the World of Parallel Programming. The Go Parallel Website,
>> sponsored by Intel and developed in partnership with Slashdot Media, is
>> your
>> hub for all things parallel software development, from weekly thought
>> leadership blogs to news, videos, case studies, tutorials and more. Take a
>> look and join the conversation now. http://goparallel.sourceforge.net/
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists•sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>



 permalink raw reply	[|nested]
2015-01-31 17:47   ` Martin Habovštiak

  2015-01-31 21:50       ` Gavin Andresen
  
From: Mike Hearn @ 2015-01-31 18:07 UTC (permalink / raw)
  To: Martin Habovštiak;  Bitcoin Dev

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

>
> I could look at implementing it someday, but now I'd like to receive
> feedback from community.
>

IMO it's better to pair a protocol spec with an implementation. For one, it
can show up issues in the design you didn't think of. For another,
implementation is a lot more work than speccing out a few protocol buffers
and high level procedures, so people who are going to write an
implementation probably won't follow your design unless they have a great
degree of confidence in it and some compelling reason to use it (e.g.
interop with other users).

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

 permalink raw reply	[|nested]
2015-01-31 18:07     ` Mike Hearn

  2015-01-31 23:02         ` Martin Habovštiak
  
From: Gavin Andresen @ 2015-01-31 21:50 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

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

I agree- standards should be descriptive ("here is how this thing I did
works") and NOT proscriptive ("here's what I think will work, lets all try
to do it this way.").


On Sat, Jan 31, 2015 at 2:07 PM, Mike Hearn <mike@plan99•net> wrote:

> I could look at implementing it someday, but now I'd like to receive
>> feedback from community.
>>
>
> IMO it's better to pair a protocol spec with an implementation.
>

-- 
--
Gavin Andresen

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

 permalink raw reply	[|nested]
2015-01-31 21:50       ` Gavin Andresen

  2015-02-01 13:43           ` Mike Hearn
  
From: Martin Habovštiak @ 2015-01-31 23:02 UTC (permalink / raw)
  To: Gavin Andresen;  Bitcoin Dev

I didn't consider that, thank you for feedback! I will try to find
some time for implementing it. I'll write again then.

2015-01-31 23:50 GMT+02:00 Gavin Andresen <gavinandresen@gmail•com>:
> I agree- standards should be descriptive ("here is how this thing I did
> works") and NOT proscriptive ("here's what I think will work, lets all try
> to do it this way.").
>
>
> On Sat, Jan 31, 2015 at 2:07 PM, Mike Hearn <mike@plan99•net> wrote:
>>>
>>> I could look at implementing it someday, but now I'd like to receive
>>> feedback from community.
>>
>>
>> IMO it's better to pair a protocol spec with an implementation.
>
>
> --
> --
> Gavin Andresen



 permalink raw reply	[|nested]
2015-01-31 23:02         ` Martin Habovštiak

  2015-02-01 14:14             ` Martin Habovštiak
  
From: Mike Hearn @ 2015-02-01 13:43 UTC (permalink / raw)
  To: Martin Habovštiak;  Bitcoin Dev

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

If you decide to implement this in an existing or new bitcoinj based
wallet, then I'm happy to give you pointers on how to do it. Making
one-off, cross platform app specific wallets is pretty easy these days. For
2-of-3 dispute mediation transactions they'd start out being kind of
specialist so asking people to move money from their general spending
wallet into dispute mediation app isn't unthinkable. Eventually general
purpose wallets would integrate protocol, UI ideas and maybe code.

At least, that's how I'd do it.

On Sun, Feb 1, 2015 at 12:02 AM, Martin Habovštiak <
martin.habovstiak@gmail•com> wrote:

> I didn't consider that, thank you for feedback! I will try to find
> some time for implementing it. I'll write again then.
>
> 2015-01-31 23:50 GMT+02:00 Gavin Andresen <gavinandresen@gmail•com>:
> > I agree- standards should be descriptive ("here is how this thing I did
> > works") and NOT proscriptive ("here's what I think will work, lets all
> try
> > to do it this way.").
> >
> >
> > On Sat, Jan 31, 2015 at 2:07 PM, Mike Hearn <mike@plan99•net> wrote:
> >>>
> >>> I could look at implementing it someday, but now I'd like to receive
> >>> feedback from community.
> >>
> >>
> >> IMO it's better to pair a protocol spec with an implementation.
> >
> >
> > --
> > --
> > Gavin Andresen
>

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

 permalink raw reply	[|nested]
2015-02-01 13:43           ` Mike Hearn

  
From: Martin Habovštiak @ 2015-02-01 14:14 UTC ( / )
  To: Mike Hearn;  Bitcoin Dev

Both wallet and server side implementations will be based on existing
code in me-friendly language (C++>Python>anything else). I don't have
a time for it right now but Crypto hackathon in Parallel Polis
(http://cryptohack.org/) seems like good opportunity for it. I will
let you know then.

2015-02-01 14:43 GMT+01:00 Mike Hearn <mike@plan99•net>:
> If you decide to implement this in an existing or new bitcoinj based wallet,
> then I'm happy to give you pointers on how to do it. Making one-off, cross
> platform app specific wallets is pretty easy these days. For 2-of-3 dispute
> mediation transactions they'd start out being kind of specialist so asking
> people to move money from their general spending wallet into dispute
> mediation app isn't unthinkable. Eventually general purpose wallets would
> integrate protocol, UI ideas and maybe code.
>
> At least, that's how I'd do it.
>
> On Sun, Feb 1, 2015 at 12:02 AM, Martin Habovštiak
> <martin.habovstiak@gmail•com> wrote:
>>
>> I didn't consider that, thank you for feedback! I will try to find
>> some time for implementing it. I'll write again then.
>>
>> 2015-01-31 23:50 GMT+02:00 Gavin Andresen <gavinandresen@gmail•com>:
>> > I agree- standards should be descriptive ("here is how this thing I did
>> > works") and NOT proscriptive ("here's what I think will work, lets all
>> > try
>> > to do it this way.").
>> >
>> >
>> > On Sat, Jan 31, 2015 at 2:07 PM, Mike Hearn <mike@plan99•net> wrote:
>> >>>
>> >>> I could look at implementing it someday, but now I'd like to receive
>> >>> feedback from community.
>> >>
>> >>
>> >> IMO it's better to pair a protocol spec with an implementation.
>> >
>> >
>> > --
>> > --
>> > Gavin Andresen
>
>