Skip to content

Instantly share code, notes, and snippets.

@gavinandresen
Created August 23, 2011 14:44
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gavinandresen/39158239e36f6af69d6f to your computer and use it in GitHub Desktop.
Save gavinandresen/39158239e36f6af69d6f to your computer and use it in GitHub Desktop.
Multi-signature proposal
@casey-bowman
Copy link

Please consider including the 2-of-3 case. This would enable simple escrow - buyer, seller, arbiter.

@casey-bowman
Copy link

Oh, I just saw your comment just now after submitting my own. Great!

@maaku
Copy link

maaku commented Sep 30, 2011

Btw, @gavinandresen, I forgot to say thanks for all your hard work :)

EDIT: for some reason the reply I sent by my phone (prior to your last comment) didn't post to github. Here it is:

Like most things, this could have been avoided with better communication. The following would have done nicely:

"Support for this minimum feature set is needed for 0.5's improved security features. The security of the whole network is improved by adding these transactions immediately. Support for generalized m-of-n transactions will be added as soon as a consensus is reached, but we deemed it necessary to split the process into two stages so as to get these new security features out the door ASAP."

FYI, for the future.

@groffer
Copy link

groffer commented Oct 1, 2011

I can update my pull to implement the latest version of the generalized proposal within two weeks. I have not been motivated to do so because of the issues that @maaku raises. If such a pull will be seriously considered I can go ahead.

I don't see the problem with wallet security/backup on top of the generalized case. To get the a AND b OR c case, just use 2-of-2 OR 1-of-1.

@gavinandresen
Copy link
Author

Two weeks will be too late for the 0.5 release, and you'll need to split your PULL into two parts (just the IsStandard() changes and then another pull that adds RPC commands to generate the transactions; the IsStandard part has to be released first so users don't start generating might-take-days-to-confirm transactions).

I'm surprised you feel like all of this isn't being "seriously considered" given the amount of discussion and back-and-forth.

@groffer
Copy link

groffer commented Oct 1, 2011

@gavinandresen - I feel that there is a reluctance to accept substantial contributions from the community. As @maaku I am also concerned about community trust and I think the success of bitcoin project depends on that and good communication. A decision was made even though the balance of arguments seemed in favor of the generalized solution.

As to code complexity, the IsStandard part of pull #319 is very simple - https://github.com/bitcoin/bitcoin/pull/319/files - wallet.cpp line 1125 to 1179. The only other part is a refactoring of Solver in script.cpp that is generally useful. Extending this to multiple OR clauses will be only a few more lines of code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment