/ 9a / 483cb5ee1312b72fd25093fc78c2761df601db
483cb5ee1312b72fd25093fc78c2761df601db
  1  Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
  2  	helo=mx.sourceforge.net)
  3  	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
  4  	(envelope-from <me@thomaskerin.io>) id 1YM1Wx-0007rJ-FJ
  5  	for bitcoin-development@lists.sourceforge.net;
  6  	Thu, 12 Feb 2015 21:42:39 +0000
  7  X-ACL-Warn: 
  8  Received: from static.204.212.9.5.clients.your-server.de ([5.9.212.204]
  9  	helo=thelaboratory.tk)
 10  	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
 11  	(Exim 4.76) id 1YM1Ws-00045C-NX
 12  	for bitcoin-development@lists.sourceforge.net;
 13  	Thu, 12 Feb 2015 21:42:39 +0000
 14  Received: from [192.168.0.222] (unknown [89.100.72.228])
 15  	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 16  	(No client certificate requested)
 17  	(Authenticated sender: me@thomaskerin.io)
 18  	by thelaboratory.tk (Postfix) with ESMTPSA id 489829BA084E;
 19  	Thu, 12 Feb 2015 21:42:25 +0000 (UTC)
 20  Message-ID: <54DD1E3F.60006@thomaskerin.io>
 21  Date: Thu, 12 Feb 2015 21:42:23 +0000
 22  From: Thomas Kerin <me@thomaskerin.io>
 23  User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 24  	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
 25  MIME-Version: 1.0
 26  To: bitcoin-development@lists.sourceforge.net, root@haskoin.com, 
 27  	ruben@blocktrail.com
 28  OpenPGP: url=http://pgp.mit.edu/pks/lookup?op=get&search=0x3F0D2F83A2966155
 29  Content-Type: multipart/mixed; boundary="------------080200060808050806080104"
 30  X-Spam-Score: 1.0 (+)
 31  X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
 32  	See http://spamassassin.org/tag/ for more details.
 33  	1.0 HTML_MESSAGE           BODY: HTML included in message
 34  	0.0 T_FILL_THIS_FORM_SHORT Fill in a short form with personal
 35  	information
 36  X-Headers-End: 1YM1Ws-00045C-NX
 37  Subject: [Bitcoin-development] BIP for deterministic pay-to-script-hash
 38  	multi-signature addresses
 39  X-BeenThere: bitcoin-development@lists.sourceforge.net
 40  X-Mailman-Version: 2.1.9
 41  Precedence: list
 42  List-Id: <bitcoin-development.lists.sourceforge.net>
 43  List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
 44  	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
 45  List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
 46  List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
 47  List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
 48  List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
 49  	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
 50  X-List-Received-Date: Thu, 12 Feb 2015 21:42:39 -0000
 51  
 52  This is a multi-part message in MIME format.
 53  --------------080200060808050806080104
 54  Content-Type: multipart/alternative;
 55  	boundary="------------030101090601090800080704"
 56  
 57  
 58  --------------030101090601090800080704
 59  Content-Type: text/plain; charset=utf-8
 60  Content-Transfer-Encoding: quoted-printable
 61  
 62  
 63  -----BEGIN PGP SIGNED MESSAGE-----
 64  Hash: SHA512
 65  
 66  Hi all,
 67  
 68  I have drafted a BIP with Jean Pierre and Ruben after the last
 69  discussion, related to a standard for deriving a canonical
 70  pay-to-script-hash address given a set of public keys and the number of
 71  signatures required. There have been two or three discussions about it
 72  on the mailing list to date, and various services already carry out this
 73  process. I hope a BIP to describe this process will allow services to
 74  declare themselves as BIPXX compliant, working towards interoperability
 75  of services and simplifying the derivation of scripts and their
 76  addresses by all parties.
 77  
 78  
 79    BIP: XX
 80    Title: Deterministic Pay-to-script-hash multi-signature addresses
 81  through public key sorting
 82    Author: Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries
 83    Status: Draft
 84    Type: Standards Track
 85    Created: 8 February 2015
 86  
 87  =3D=3DAbstract=3D=3D
 88  
 89  This BIP describes a method to deterministically generate
 90  multi-signature transaction scripts.  It focuses on defining how the
 91  public keys must be encoded and sorted so that the redeem script and
 92  corresponding P2SH address are always the same for a given set of keys
 93  and number of required signatures.
 94  
 95  =3D=3DMotivation=3D=3D
 96  
 97  Most multi-signature transactions are addressed to P2SH
 98  (pay-to-script-hash) addresses, as defined in BIP-0016.
 99  
100  Multi-signature redeem scripts do not require a particular ordering or
101  encoding for public keys.  This means that for a given set of keys and
102  number of required signatures, there are as many as 2(n!) possible
103  standard redeem scripts, each with its separate P2SH address.  Adhering
104  to a an ordering scheme and key encoding would ensure that a
105  multi-signature =E2=80=9Caccount=E2=80=9D (set of public keys and require=
106  d signature
107  count) has a canonical P2SH address.
108  
109  By adopting a sorting and encoding standard, compliant wallets will
110  always produce the same P2SH address for the same given set of keys and
111  required signature count, making it easier to recognize transactions
112  involving that multi-signature account.  This is particularly attractive
113  for multisignature hierarchical-deterministic wallets, as less state is
114  required to setup multi-signature accounts:  only the number of required
115  signatures and master public keys of participants need to be shared, and
116  all wallets will generate the same addresses.
117  
118  While most web wallets do not presently facilitate the setup of
119  multisignature accounts with users of a different service, conventions
120  which ensure cross-compatibility should make it easier to achieve this.
121  
122  Many wallet as a service providers use a 2of3 multi-signature schema
123  where the user stores 1 of the keys (offline) as backup while using the
124  other key for daily use and letting the service cosign his transactions.
125  This standard will help in enabling a party other than the service
126  provider to recover the wallet without any help from the service provider=
127  =2E
128  
129  =3D=3DImplementation=3D=3D
130  
131  For a set of public keys, ensure that they have been received in
132  compressed form, sort them lexicographically according to their binary
133  representation before using the resulting list of keys in a standard
134  multisig redeem script.  Hash the redeem script according to BIP-0016 to
135  get the P2SH address.
136  
137  =3D=3DCompatibility=3D=3D
138  
139  * Uncompressed keys are incompatible with this specificiation. A
140  compatible implementation should not automatically compress keys.=20
141  Receiving an uncompressed key from a multisig participant should be
142  interpreted as a sign that the user has an incompatible implementation.
143  * P2SH addressses do not reveal information about the script that is
144  receiving the funds. For this reason it is not technically possible to
145  enforce this BIP as a rule on the network.  Also, it would cause a hard
146  fork.
147  * Implementations that do not conform with this BIP will have
148  compatibility issues with strictly-compliant wallets.
149  * Implementations which do adopt this standard will be cross-compatible
150  when choosing multisig addressses.
151  * If a group of users were not entirely compliant, there is the
152  possibility that a participant will derive an address that the others
153  will not recognize as part of the common multisig account.
154  
155  =3D=3DTest vectors=3D=3D
156  The required number of signatures in each case is 2.
157  
158  Vector 1
159  * List
160  ** 02ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f8
161  ** 02fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f
162  * Sorted
163  ** 02fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f
164  ** 02ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f8
165  * Script
166  **
167  522102fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f210=
168  2ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f852ae
169  * Address
170  ** 39bgKC7RFbpoCRbtD5KEdkYKtNyhpsNa3Z
171  
172  Vector 2 (Already sorted, no action required)
173  * List:
174  ** 02632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0
175  ** 027735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e77
176  ** 02e2cc6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b404
177  * Sorted:
178  ** 02632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0
179  ** 027735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e77
180  ** 02e2cc6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b404
181  * Script
182  **
183  522102632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0210=
184  27735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e772102e2cc=
185  6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b40453ae
186  * Address
187  ** 3CKHTjBKxCARLzwABMu9yD85kvtm7WnMfH
188  
189  Vector 3:
190  * List:  =20
191  ** 030000000000000000000000000000000000004141414141414141414141414141
192  ** 020000000000000000000000000000000000004141414141414141414141414141
193  ** 020000000000000000000000000000000000004141414141414141414141414140
194  ** 030000000000000000000000000000000000004141414141414141414141414140
195  * Sorted:
196  ** 020000000000000000000000000000000000004141414141414141414141414140
197  ** 020000000000000000000000000000000000004141414141414141414141414141
198  ** 030000000000000000000000000000000000004141414141414141414141414140
199  ** 030000000000000000000000000000000000004141414141414141414141414141
200  * Script
201  **
202  5221020000000000000000000000000000000000004141414141414141414141414140210=
203  2000000000000000000000000000000000000414141414141414141414141414121030000=
204  0000000000000000000000000000000041414141414141414141414141402103000000000=
205  000000000000000000000000000414141414141414141414141414154ae
206  * Address
207  ** 32V85igBri9zcfBRVupVvwK18NFtS37FuD
208  
209  Vector 4: (from bitcore)
210  * List:
211  ** 022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da
212  ** 03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9
213  ** 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18
214  * Sorted:
215  ** 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18
216  ** 022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da
217  ** 03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9
218  * Script
219  **
220  5221021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18210=
221  22df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da2103e381=
222  8b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e953ae
223  * Address
224  ** 3Q4sF6tv9wsdqu2NtARzNCpQgwifm2rAba
225  
226  =3D=3DUsage & Implementations=3D=3D
227  * BIP45 - Structure for Deterministic P2SH Multisignature Wallets -
228  https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki#address-ge=
229  neration-procedure
230  * Bitcore -
231  https://github.com/bitpay/bitcore/blob/50a868cb8cdf2be04bb1c5bf4bcc064cc0=
232  6f5888/lib/script/script.js#L541
233  * Haskoin -
234  https://github.com/haskoin/haskoin/blob/master/Network/Haskoin/Script/Par=
235  ser.hs#L112-122
236  * Armory -
237  https://github.com/etotheipi/BitcoinArmory/blob/268db0f3fa20c989057bd4334=
238  3a43b2edbe89aeb/armoryengine/ArmoryUtils.py#L1441
239  * Multisignature Brainwallet - http://ms-brainwallet.org/
240    =20
241  For now, the BIP will live here:
242  https://github.com/afk11/bips/blob/bip0090/bip-0090.mediawiki/
243  
244  Looking forward to any feedback and discussions that arise!
245  
246  
247  - --=20
248  Thomas Kerin
249  - -------------------------
250  
251  My PGP key can be found here
252  <http://pgp.mit.edu/pks/lookup?op=3Dget&search=3D0x3F0D2F83A2966155>
253  -----BEGIN PGP SIGNATURE-----
254  Version: GnuPG v1
255  
256  iQJ8BAEBCgBmBQJU3R43XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
257  ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2MzI1MzM4QjJGOTU5OEUzREMzQzc0MzAz
258  RjBEMkY4M0EyOTY2MTU1AAoJED8NL4OilmFVKwUP/3MS++5D+YJAPZG/a7PhY3hf
259  8UvBkaAp7YqCVvZkHhpQ3+7AF+c6nAfu9JRFSdGP5hNvApagbZoC2oeLQ5rHBfXC
260  MbkbqOSp0z7C4MvEqmncTSgqNykxanVfiypV2S7hU2fbiylVi2jIaGrjqQt32jT7
261  kdFw5wqAS3zVHJVZhnUufLj/VYC94vdfrgpL22WI9oNH/nOvO6uG3YwZ9rc63ZH/
262  cwTmUnjOqDUlJWtYsfcoDL41RkmeBtGqD+6gTe3BtVHJQqlsEWpB1hsucOv5XdEk
263  V0teRUQ8+hFnU86+S4VJ8+qy/QjYflHnfy7vcA3M6LhAkle3scCs7ZCpDb9EGFM+
264  yAZivS4vrcVaYgY+oBdSnMEyvudwDKHwdy/rNjTskCLsHzcZX5jAoIxT2XskAXMD
265  UcWRelpN7Wth5jnSXeB89Wg1DqBwyl0LF7ZXepglopfHbAIsZ1oms252f5G7cfFq
266  +11HR3JswvVN4otqNAZzYaN7wEBEZwlcD+a/VKoNE0uPVuBS08phhNGjHmidXCOZ
267  wC11biStwjt1tv1lUNcK0HkkNReuUrUDK1dNKxGGfUHk+Qcka+cQ1ap47lLx06+U
268  LskPwJKR1tvoHkVMLy4UutX8bIRtXE3WbSOQlV9Q/4/os3tTpVlH5AX47W+2CikV
269  t3pTmdJy0FubCrHSJ63C
270  =3D5H5A
271  -----END PGP SIGNATURE-----
272  
273  
274  --------------030101090601090800080704
275  Content-Type: text/html; charset=utf-8
276  Content-Transfer-Encoding: quoted-printable
277  
278  <html>
279    <head>
280  
281      <meta http-equiv=3D"content-type" content=3D"text/html; charset=3Dutf=
282  -8">
283    </head>
284    <body bgcolor=3D"#FFFFFF" text=3D"#000000">
285      <br>
286      -----BEGIN PGP SIGNED MESSAGE-----<br>
287      Hash: SHA512<br>
288      <br>
289      Hi all,<br>
290      <br>
291      I have drafted a BIP with Jean Pierre and Ruben after the last
292      discussion, related to a standard for deriving a canonical
293      pay-to-script-hash address given a set of public keys and the number
294      of signatures required. There have been two or three discussions
295      about it on the mailing list to date, and various services already
296      carry out this process. I hope a BIP to describe this process will
297      allow services to declare themselves as BIPXX compliant, working
298      towards interoperability of services and simplifying the derivation
299      of scripts and their addresses by all parties.<br>
300      <br>
301      <br>
302      =C2=A0 BIP: XX<br>
303      =C2=A0 Title: Deterministic Pay-to-script-hash multi-signature addres=
304  ses
305      through public key sorting<br>
306      =C2=A0 Author: Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries<br>
307      =C2=A0 Status: Draft<br>
308      =C2=A0 Type: Standards Track<br>
309      =C2=A0 Created: 8 February 2015<br>
310      <br>
311      =3D=3DAbstract=3D=3D<br>
312      <br>
313      This BIP describes a method to deterministically generate
314      multi-signature transaction scripts.=C2=A0 It focuses on defining how=
315   the
316      public keys must be encoded and sorted so that the redeem script and
317      corresponding P2SH address are always the same for a given set of
318      keys and number of required signatures.<br>
319      <br>
320      =3D=3DMotivation=3D=3D<br>
321      <br>
322      Most multi-signature transactions are addressed to P2SH
323      (pay-to-script-hash) addresses, as defined in BIP-0016.<br>
324      <br>
325      Multi-signature redeem scripts do not require a particular ordering
326      or encoding for public keys.=C2=A0 This means that for a given set of
327      keys and number of required signatures, there are as many as 2(n!)
328      possible standard redeem scripts, each with its separate P2SH
329      address.=C2=A0 Adhering to a an ordering scheme and key encoding woul=
330  d
331      ensure that a multi-signature =E2=80=9Caccount=E2=80=9D (set of publi=
332  c keys and
333      required signature count) has a canonical P2SH address.<br>
334      <br>
335      By adopting a sorting and encoding standard, compliant wallets will
336      always produce the same P2SH address for the same given set of keys
337      and required signature count, making it easier to recognize
338      transactions involving that multi-signature account.=C2=A0 This is
339      particularly attractive for multisignature
340      hierarchical-deterministic wallets, as less state is required to
341      setup multi-signature accounts:=C2=A0 only the number of required
342      signatures and master public keys of participants need to be shared,
343      and all wallets will generate the same addresses.<br>
344      <br>
345      While most web wallets do not presently facilitate the setup of
346      multisignature accounts with users of a different service,
347      conventions which ensure cross-compatibility should make it easier
348      to achieve this.<br>
349      <br>
350      Many wallet as a service providers use a 2of3 multi-signature schema
351      where the user stores 1 of the keys (offline) as backup while using
352      the other key for daily use and letting the service cosign his
353      transactions.<br>
354      This standard will help in enabling a party other than the service
355      provider to recover the wallet without any help from the service
356      provider.<br>
357      <br>
358      =3D=3DImplementation=3D=3D<br>
359      <br>
360      For a set of public keys, ensure that they have been received in
361      compressed form, sort them lexicographically according to their
362      binary representation before using the resulting list of keys in a
363      standard multisig redeem script.=C2=A0 Hash the redeem script accordi=
364  ng
365      to BIP-0016 to get the P2SH address.<br>
366      <br>
367      =3D=3DCompatibility=3D=3D<br>
368      <br>
369      * Uncompressed keys are incompatible with this specificiation. A
370      compatible implementation should not automatically compress keys.=C2=A0
371      Receiving an uncompressed key from a multisig participant should be
372      interpreted as a sign that the user has an incompatible
373      implementation.<br>
374      * P2SH addressses do not reveal information about the script that is
375      receiving the funds. For this reason it is not technically possible
376      to enforce this BIP as a rule on the network.=C2=A0 Also, it would ca=
377  use
378      a hard fork.<br>
379      * Implementations that do not conform with this BIP will have
380      compatibility issues with strictly-compliant wallets.<br>
381      * Implementations which do adopt this standard will be
382      cross-compatible when choosing multisig addressses.<br>
383      * If a group of users were not entirely compliant, there is the
384      possibility that a participant will derive an address that the
385      others will not recognize as part of the common multisig account.<br>
386      <br>
387      =3D=3DTest vectors=3D=3D<br>
388      The required number of signatures in each case is 2.<br>
389      <br>
390      Vector 1<br>
391      * List<br>
392      **
393      02ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f8<br=
394  >
395      **
396      02fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f<br=
397  >
398      * Sorted<br>
399      **
400      02fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f<br=
401  >
402      **
403      02ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f8<br=
404  >
405      * Script<br>
406      **
407  522102fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f210=
408  2ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f852ae<br>
409      * Address<br>
410      ** 39bgKC7RFbpoCRbtD5KEdkYKtNyhpsNa3Z<br>
411      <br>
412      Vector 2 (Already sorted, no action required)<br>
413      * List:<br>
414      **
415      02632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0<br=
416  >
417      **
418      027735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e77<br=
419  >
420      **
421      02e2cc6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b404<br=
422  >
423      * Sorted:<br>
424      **
425      02632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0<br=
426  >
427      **
428      027735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e77<br=
429  >
430      **
431      02e2cc6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b404<br=
432  >
433      * Script<br>
434      **
435  522102632b12f4ac5b1d1b72b2a3b508c19172de44f6f46bcee50ba33f3f9291e47ed0210=
436  27735a29bae7780a9755fae7a1c4374c656ac6a69ea9f3697fda61bb99a4f3e772102e2cc=
437  6bd5f45edd43bebe7cb9b675f0ce9ed3efe613b177588290ad188d11b40453ae<br>
438      * Address<br>
439      ** 3CKHTjBKxCARLzwABMu9yD85kvtm7WnMfH<br>
440      <br>
441      Vector 3:<br>
442      * List:=C2=A0 =C2=A0<br>
443      **
444      030000000000000000000000000000000000004141414141414141414141414141<br=
445  >
446      **
447      020000000000000000000000000000000000004141414141414141414141414141<br=
448  >
449      **
450      020000000000000000000000000000000000004141414141414141414141414140<br=
451  >
452      **
453      030000000000000000000000000000000000004141414141414141414141414140<br=
454  >
455      * Sorted:<br>
456      **
457      020000000000000000000000000000000000004141414141414141414141414140<br=
458  >
459      **
460      020000000000000000000000000000000000004141414141414141414141414141<br=
461  >
462      **
463      030000000000000000000000000000000000004141414141414141414141414140<br=
464  >
465      **
466      030000000000000000000000000000000000004141414141414141414141414141<br=
467  >
468      * Script<br>
469      **
470  5221020000000000000000000000000000000000004141414141414141414141414140210=
471  2000000000000000000000000000000000000414141414141414141414141414121030000=
472  0000000000000000000000000000000041414141414141414141414141402103000000000=
473  000000000000000000000000000414141414141414141414141414154ae<br>
474      * Address<br>
475      ** 32V85igBri9zcfBRVupVvwK18NFtS37FuD<br>
476      <br>
477      Vector 4: (from bitcore)<br>
478      * List:<br>
479      **
480      022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da<br=
481  >
482      **
483      03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9<br=
484  >
485      **
486      021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18<br=
487  >
488      * Sorted:<br>
489      **
490      021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18<br=
491  >
492      **
493      022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da<br=
494  >
495      **
496      03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9<br=
497  >
498      * Script<br>
499      **
500  5221021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18210=
501  22df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da2103e381=
502  8b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e953ae<br>
503      * Address<br>
504      ** 3Q4sF6tv9wsdqu2NtARzNCpQgwifm2rAba<br>
505      <br>
506      =3D=3DUsage &amp; Implementations=3D=3D<br>
507      * BIP45 - Structure for Deterministic P2SH Multisignature Wallets -
508  <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/bitcoin/bip=
509  s/blob/master/bip-0045.mediawiki#address-generation-procedure">https://gi=
510  thub.com/bitcoin/bips/blob/master/bip-0045.mediawiki#address-generation-p=
511  rocedure</a><br>
512      * Bitcore -
513  <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/bitpay/bitc=
514  ore/blob/50a868cb8cdf2be04bb1c5bf4bcc064cc06f5888/lib/script/script.js#L5=
515  41">https://github.com/bitpay/bitcore/blob/50a868cb8cdf2be04bb1c5bf4bcc06=
516  4cc06f5888/lib/script/script.js#L541</a><br>
517      * Haskoin -
518  <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/haskoin/has=
519  koin/blob/master/Network/Haskoin/Script/Parser.hs#L112-122">https://githu=
520  b.com/haskoin/haskoin/blob/master/Network/Haskoin/Script/Parser.hs#L112-1=
521  22</a><br>
522      * Armory -
523  <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/etotheipi/B=
524  itcoinArmory/blob/268db0f3fa20c989057bd43343a43b2edbe89aeb/armoryengine/A=
525  rmoryUtils.py#L1441">https://github.com/etotheipi/BitcoinArmory/blob/268d=
526  b0f3fa20c989057bd43343a43b2edbe89aeb/armoryengine/ArmoryUtils.py#L1441</a=
527  ><br>
528      * Multisignature Brainwallet - <a class=3D"moz-txt-link-freetext" hre=
529  f=3D"http://ms-brainwallet.org/">http://ms-brainwallet.org/</a><br>
530      =C2=A0 =C2=A0<br>
531      For now, the BIP will live here:
532      <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/afk11/b=
533  ips/blob/bip0090/bip-0090.mediawiki/">https://github.com/afk11/bips/blob/=
534  bip0090/bip-0090.mediawiki/</a><br>
535      <br>
536      Looking forward to any feedback and discussions that arise!<br>
537      <br>
538      <br>
539      - -- <br>
540      Thomas Kerin<br>
541      - -------------------------<br>
542      <br>
543      My PGP key can be found here
544  <a class=3D"moz-txt-link-rfc2396E" href=3D"http://pgp.mit.edu/pks/lookup?=
545  op=3Dget&amp;search=3D0x3F0D2F83A2966155">&lt;http://pgp.mit.edu/pks/look=
546  up?op=3Dget&amp;search=3D0x3F0D2F83A2966155&gt;</a><br>
547      -----BEGIN PGP SIGNATURE-----<br>
548      Version: GnuPG v1<br>
549      <br>
550      iQJ8BAEBCgBmBQJU3R43XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w<br>
551      ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2MzI1MzM4QjJGOTU5OEUzREMzQzc0MzAz<br>
552      RjBEMkY4M0EyOTY2MTU1AAoJED8NL4OilmFVKwUP/3MS++5D+YJAPZG/a7PhY3hf<br>
553      8UvBkaAp7YqCVvZkHhpQ3+7AF+c6nAfu9JRFSdGP5hNvApagbZoC2oeLQ5rHBfXC<br>
554      MbkbqOSp0z7C4MvEqmncTSgqNykxanVfiypV2S7hU2fbiylVi2jIaGrjqQt32jT7<br>
555      kdFw5wqAS3zVHJVZhnUufLj/VYC94vdfrgpL22WI9oNH/nOvO6uG3YwZ9rc63ZH/<br>
556      cwTmUnjOqDUlJWtYsfcoDL41RkmeBtGqD+6gTe3BtVHJQqlsEWpB1hsucOv5XdEk<br>
557      V0teRUQ8+hFnU86+S4VJ8+qy/QjYflHnfy7vcA3M6LhAkle3scCs7ZCpDb9EGFM+<br>
558      yAZivS4vrcVaYgY+oBdSnMEyvudwDKHwdy/rNjTskCLsHzcZX5jAoIxT2XskAXMD<br>
559      UcWRelpN7Wth5jnSXeB89Wg1DqBwyl0LF7ZXepglopfHbAIsZ1oms252f5G7cfFq<br>
560      +11HR3JswvVN4otqNAZzYaN7wEBEZwlcD+a/VKoNE0uPVuBS08phhNGjHmidXCOZ<br>
561      wC11biStwjt1tv1lUNcK0HkkNReuUrUDK1dNKxGGfUHk+Qcka+cQ1ap47lLx06+U<br>
562      LskPwJKR1tvoHkVMLy4UutX8bIRtXE3WbSOQlV9Q/4/os3tTpVlH5AX47W+2CikV<br>
563      t3pTmdJy0FubCrHSJ63C<br>
564      =3D5H5A<br>
565      -----END PGP SIGNATURE-----<br>
566      <br>
567    </body>
568  </html>
569  
570  --------------030101090601090800080704--
571  
572  --------------080200060808050806080104
573  Content-Type: application/pgp-keys;
574   name="0xA2966155.asc"
575  Content-Transfer-Encoding: quoted-printable
576  Content-Disposition: attachment;
577   filename="0xA2966155.asc"
578  
579  -----BEGIN PGP PUBLIC KEY BLOCK-----
580  Version: GnuPG v1
581  
582  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
668  JDB0hVaFYV98nLJ9V9LtEA9P
669  =3DntkV
670  -----END PGP PUBLIC KEY BLOCK-----
671  
672  --------------080200060808050806080104
673  Content-Type: application/pgp-signature;
674   name="0xA2966155.asc.sig"
675  Content-Transfer-Encoding: base64
676  Content-Disposition: attachment;
677   filename="0xA2966155.asc.sig"
678  
679  iQJ8BAABCgBmBQJU3R4+XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9wZW5wZ3Au
680  ZmlmdGhob3JzZW1hbi5uZXQ2MzI1MzM4QjJGOTU5OEUzREMzQzc0MzAzRjBEMkY4M0EyOTY2
681  MTU1AAoJED8NL4OilmFVyzwP+QExYi/C7FhTr6zhSMYs+QMi37SNCxCadapZm3CTY4S8+i6e
682  /5hMCgGMr81GqchshD6rDojth7qJYiDqT16MW20/a+kPvIBchfMOBZHumWMAVUx3sk+ENVpm
683  v0uYAMgGs0YjijtUThkXOolY/yswDDQSKV0XgR0okxwBrKPARYp2B+aA/jL84rqIah1zsJG6
684  yoWwj8Md3UNO09szDayWDtRNy4G5GQOeSGq+5VNvT0yYfg6aI7WwNEfz/wC24UIkMhILeU8/
685  hxPe6tuJDhkf+XDKhKLQ2hazqYVbTeYqP+INa21DUvFaszPbz3VN97g0bdBr1CKKZ+vKwOxc
686  4HkQp7XfYEI0GT9Yu0Ky3w4K20JsXkNkYVaLoC+VBWtAc1tpPKtvXtUMqPgIKvpZ5Juzeqfe
687  heYYSzxBRuQycj1GDZl7ucL4Wpiy+audLyfBiURXTl/m6SfKvLV9WZX7kPV1vFVVx5RHnUZy
688  LPsuV2aeSx57N2wQ8BP2CpsI4p4sgU/sCF7DlwkFdIoBSEPVT17lmHRZnuNDDnJ/BoxgsSfz
689  C3eV0uzxGiUP80r3io0Nw8tFgvDBJL5N8JPQWBImeooJvlVQL7z256T944qJ4YviJD93nK0e
690  u4kEicMuMAYXBoBXRkbkJRFCbha6VcOcYacPr5GXHKg/gx9I5apLPrzziwCm
691  --------------080200060808050806080104--
692  
693