http://cryptonite.info/wiki/index.php?title=Multi-signature_transactions&feed=atom&action=history
Multi-signature transactions - Revision history
2024-03-29T08:03:25Z
Revision history for this page on the wiki
MediaWiki 1.23.1
http://cryptonite.info/wiki/index.php?title=Multi-signature_transactions&diff=54&oldid=prev
Admin: changed coin values to 10 dec places
2014-07-25T03:37:07Z
<p>changed coin values to 10 dec places</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 03:37, 25 July 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Cryptonite]] has full native support for multi-signature addresses and transactions, which require multiple parties to sign a transaction before it is considered valid. Multi-sig transactions are useful in many real world situations, especially for consumer protection and escrow schemes. <del class="diffchange diffchange-inline">Unfortuntely </del>there isn't yet a user friendly GUI for creating multi-sig addresses and using them, but it will get easier.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Cryptonite]] has full native support for multi-signature addresses and transactions, which require multiple parties to sign a transaction before it is considered valid. Multi-sig transactions are useful in many real world situations, especially for consumer protection and escrow schemes. <ins class="diffchange diffchange-inline">Unfortunately </ins>there isn't yet a user friendly GUI for creating multi-sig addresses and using them, but it will get easier.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">here</del>'s how to try it on the testnet (remove -testnet flags to do it for real):</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Here</ins>'s how to try it on the testnet (remove -testnet flags to do it for real):</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createmultisig 2 [\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createmultisig 2 [\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 15:</td>
<td colspan="2" class="diff-lineno">Line 15:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createrawtransaction "{ \"c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm\":</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createrawtransaction "{ \"c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm\":</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>\"25.<del class="diffchange diffchange-inline">00100000ep</del>\" }", "{ \"cLTTCchBofchto7mSCcpMnyW18v59LgVwH\":\"10.<del class="diffchange diffchange-inline">00000000ep</del>\" ,  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"25.<ins class="diffchange diffchange-inline">0010000000ep</ins>\" }", "{ \"cLTTCchBofchto7mSCcpMnyW18v59LgVwH\":\"10.<ins class="diffchange diffchange-inline">0000000000ep</ins>\" ,  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>\"cQcTLJyTKQ7wJJHVNyZNJCtPdzF1VscvDg\":\"15.<del class="diffchange diffchange-inline">00000000ep</del>\" }"</pre></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"cQcTLJyTKQ7wJJHVNyZNJCtPdzF1VscvDg\":\"15.<ins class="diffchange diffchange-inline">0000000000ep</ins>\" }"</pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This returns a really nice hex string of the transaction. Like:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This returns a really nice hex string of the transaction. Like:</div></td></tr>
</table>
Admin
http://cryptonite.info/wiki/index.php?title=Multi-signature_transactions&diff=25&oldid=prev
Admin: Added page to wiki
2014-07-16T08:30:20Z
<p>Added page to wiki</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 08:30, 16 July 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>here's how to try it on the testnet (remove -testnet flags to do it for real):</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>here's how to try it on the testnet (remove -testnet flags to do it for real):</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createmultisig 2 [\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]</pre></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createmultisig 2 [\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]</pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Where the 2 is how many signatures are required to spend from the address. Can be any number > 0. Then there is an array of addresses corresponding to "authorized" senders. This command produces a mult-sig address as shown below. Anybody can send to this immediately.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Where the 2 is how many signatures are required to spend from the address. Can be any number > 0. Then there is an array of addresses corresponding to "authorized" senders. This command produces a mult-sig address as shown below. Anybody can send to this immediately.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 13:</td>
<td colspan="2" class="diff-lineno">Line 14:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Spending the multisig is more difficult. First you must create a raw unsigned transaction where the input is the the multisig address. Outputs can go anywhere, different multisig addresses, whatever.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Spending the multisig is more difficult. First you must create a raw unsigned transaction where the input is the the multisig address. Outputs can go anywhere, different multisig addresses, whatever.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createrawtransaction "{ \"c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm\":\"25.00100000ep\" }", "{ \"cLTTCchBofchto7mSCcpMnyW18v59LgVwH\":\"10.00000000ep\" , \"cQcTLJyTKQ7wJJHVNyZNJCtPdzF1VscvDg\":\"15.00000000ep\" }"</pre></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet createrawtransaction "{ \"c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm\":</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"25.00100000ep\" }", "{ \"cLTTCchBofchto7mSCcpMnyW18v59LgVwH\":\"10.00000000ep\" ,  </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"cQcTLJyTKQ7wJJHVNyZNJCtPdzF1VscvDg\":\"15.00000000ep\" }"</pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This returns a really nice hex string of the transaction. Like:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This returns a really nice hex string of the transaction. Like:</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 23:</td>
<td colspan="2" class="diff-lineno">Line 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Then to prepare the transaction for signing you would run:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Then to prepare the transaction for signing you would run:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet setuprawtransaction "<del class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f049500000000000200ca9a3b00</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet setuprawtransaction "<ins class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">000000d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">d0df18568c5fe8ba948a07f049500000000000200ca9a3b00000000d0fa6ab67c8da4b8c33c3d7ae</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">ce88de8616cddca19ae7000e42b000000000000</del>" "{\"0\":[2,[\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]]}"</pre></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000e42b000</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">000000000</ins>" "{\"0\":[2,[\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]]}"</pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This command also requires a description of the multisig address. All authorized addresses and the number 2 again signifies the number required to send. Then it will generate:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This command also requires a description of the multisig address. All authorized addresses and the number 2 again signifies the number required to send. Then it will generate:</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 37:</td>
<td colspan="2" class="diff-lineno">Line 42:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Life is easier from now on. Signers don't need to know the multisig construction anymore because it has been encoded in the transaction. So you pass the hex around to people with the keys to actually sign the thing by running:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Life is easier from now on. Signers don't need to know the multisig construction anymore because it has been encoded in the transaction. So you pass the hex around to people with the keys to actually sign the thing by running:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet signrawtransaction <del class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f0495000000003d0035c2829b1b6</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet signrawtransaction <ins class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69d0d</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">4802610277894a22830b4d9abfd476b6f4e8bb50c6c12ff0b28f97a7dde4960143058cbaffa68c577</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">f18568c5fe8ba948a07f0495000000003d0035c2829b1b64802610277894a22830b4d9abfd476b6f4</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">a5c5e098e3f247e8c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c33c3d7ae6756bef02e</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">e8bb50c6c12ff0b28f97a7dde4960143058cbaffa68c577a5c5e098e3f247e8c9d423c304860200ca</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">a304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000e42b000000000000 </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">9a3b00000000d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f60</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">8f5f23ce88de8616cddca19ae7000e42b000000000000 </ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>"{\"0\":\"2\"}"</pre></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>"{\"0\":\"2\"}"</pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 59:</td>
<td colspan="2" class="diff-lineno">Line 65:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>If complete is false, this hex must be given to the next user for further signing. If complete is true, then the multisig transactions have been sufficiently signed for submission and your ready to send it out to the network as follows:  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>If complete is false, this hex must be given to the next user for further signing. If complete is true, then the multisig transactions have been sufficiently signed for submission and your ready to send it out to the network as follows:  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet sendrawtransaction <del class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f049500000000970204b57ae0c44</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><pre>./cryptonited -testnet sendrawtransaction <ins class="diffchange diffchange-inline">01000000012835a1a195f6c84a38f69d0d</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">6cca8e16b52251dbe87ff18c6755b21c4b99cdbb7f7aa7641e00aa58751e30f5762d10598c99fe005</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">f18568c5fe8ba948a07f049500000000970204b57ae0c446cca8e16b52251dbe87ff18c6755b21c4b</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">4a73627a36948e8ce578bd9ac0bde79a3c1d35045b2ec50645b5d1c0de41b77e7001562bd234c98d1</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">99cdbb7f7aa7641e00aa58751e30f5762d10598c99fe0054a73627a36948e8ce578bd9ac0bde79a3c</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">68f22cabe8f65ebf25c21cc529b060a920100bde39322614d5056689e6daba4db65d0fa2827e74628</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">1d35045b2ec50645b5d1c0de41b77e7001562bd234c98d168f22cabe8f65ebf25c21cc529b060a920</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">c9e95acbaffa68c577a5c5e098e3f247e8c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">100bde39322614d5056689e6daba4db65d0fa2827e74628c9e95acbaffa68c577a5c5e098e3f247e8</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f6859000</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">e42b000000000000</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">00000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000e42b000000000000</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Admin
http://cryptonite.info/wiki/index.php?title=Multi-signature_transactions&diff=24&oldid=prev
Admin: Added page to wiki
2014-07-16T08:25:01Z
<p>Added page to wiki</p>
<p><b>New page</b></p><div>[[Cryptonite]] has full native support for multi-signature addresses and transactions, which require multiple parties to sign a transaction before it is considered valid. Multi-sig transactions are useful in many real world situations, especially for consumer protection and escrow schemes. Unfortuntely there isn't yet a user friendly GUI for creating multi-sig addresses and using them, but it will get easier.<br />
<br />
here's how to try it on the testnet (remove -testnet flags to do it for real):<br />
<br />
<pre>./cryptonited -testnet createmultisig 2 [\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]</pre><br />
<br />
Where the 2 is how many signatures are required to spend from the address. Can be any number > 0. Then there is an array of addresses corresponding to "authorized" senders. This command produces a mult-sig address as shown below. Anybody can send to this immediately.<br />
<br />
<pre>{<br />
"address" : "c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm"<br />
}</pre><br />
<br />
Spending the multisig is more difficult. First you must create a raw unsigned transaction where the input is the the multisig address. Outputs can go anywhere, different multisig addresses, whatever.<br />
<br />
<pre>./cryptonited -testnet createrawtransaction "{ \"c555wVcgpmQ6f5BGJfzBspFJgXuXSnMKAm\":\"25.00100000ep\" }", "{ \"cLTTCchBofchto7mSCcpMnyW18v59LgVwH\":\"10.00000000ep\" , \"cQcTLJyTKQ7wJJHVNyZNJCtPdzF1VscvDg\":\"15.00000000ep\" }"</pre><br />
<br />
This returns a really nice hex string of the transaction. Like:<br />
<br />
<pre>01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f049500000000000200ca<br />
9a3b00000000d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f6<br />
08f5f23ce88de8616cddca19ae7000e42b000000000000</pre><br />
<br />
Then to prepare the transaction for signing you would run:<br />
<br />
<pre>./cryptonited -testnet setuprawtransaction "01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f049500000000000200ca9a3b00<br />
000000d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23<br />
ce88de8616cddca19ae7000e42b000000000000" "{\"0\":[2,[\"cBCYJhy9Mxg85ujVpLsrvUiXQs9xh2aRmP\",\"cKyUeZowQg8jPBJg1oEcVnMkcqNxK6GWw9\",\"c6JjVRGAtLkheEHSr5ddx2Ev81cLL2h4CK\"]]}"</pre><br />
<br />
This command also requires a description of the multisig address. All authorized addresses and the number 2 again signifies the number required to send. Then it will generate:<br />
<br />
<pre>01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f0495000000003d0035c<br />
2829b1b64802610277894a22830b4d9abfd476b6f4e8bb50c6c12ff0b28f97a7dde4960143058cb<br />
affa68c577a5c5e098e3f247e8c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c33c3d7<br />
ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000e42b<br />
000000000000</pre><br />
<br />
Life is easier from now on. Signers don't need to know the multisig construction anymore because it has been encoded in the transaction. So you pass the hex around to people with the keys to actually sign the thing by running:<br />
<br />
<pre>./cryptonited -testnet signrawtransaction 01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f0495000000003d0035c2829b1b6<br />
4802610277894a22830b4d9abfd476b6f4e8bb50c6c12ff0b28f97a7dde4960143058cbaffa68c577<br />
a5c5e098e3f247e8c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c33c3d7ae6756bef02e<br />
a304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000e42b000000000000 <br />
"{\"0\":\"2\"}"</pre><br />
<br />
Here the last JSON object simply describes that the first input of the transaction is a 2 required multisig. It will then spit out something like:<br />
<br />
<pre>{<br />
"hex" : "01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f0495000000009<br />
70204b57ae0c446cca8e16b52251dbe87ff18c6755b21c4b99cdbb7f7aa7641e00aa58751e30f576<br />
2d10598c99fe0054a73627a36948e8ce578bd9ac0bde79a3c1d35045b2ec50645b5d1c0de41b77e7<br />
001562bd234c98d168f22cabe8f65ebf25c21cc529b060a920100bde39322614d5056689e6daba4d<br />
b65d0fa2827e74628c9e95acbaffa68c577a5c5e098e3f247e8c9d423c304860200ca9a3b0000000<br />
0d0fa6ab67c8da4b8c33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23ce88<br />
de8616cddca19ae7000e42b000000000000",<br />
"complete" : true<br />
}</pre><br />
<br />
<br />
If complete is false, this hex must be given to the next user for further signing. If complete is true, then the multisig transactions have been sufficiently signed for submission and your ready to send it out to the network as follows: <br />
<br />
<pre>./cryptonited -testnet sendrawtransaction 01000000012835a1a195f6c84a38f69d0df18568c5fe8ba948a07f049500000000970204b57ae0c44<br />
6cca8e16b52251dbe87ff18c6755b21c4b99cdbb7f7aa7641e00aa58751e30f5762d10598c99fe005<br />
4a73627a36948e8ce578bd9ac0bde79a3c1d35045b2ec50645b5d1c0de41b77e7001562bd234c98d1<br />
68f22cabe8f65ebf25c21cc529b060a920100bde39322614d5056689e6daba4db65d0fa2827e74628<br />
c9e95acbaffa68c577a5c5e098e3f247e8c9d423c304860200ca9a3b00000000d0fa6ab67c8da4b8c<br />
33c3d7ae6756bef02ea304a002f685900000000fe8ec63dc8f608f5f23ce88de8616cddca19ae7000<br />
e42b000000000000<br />
</pre><br />
<br />
And it will spit out a txid like this if successful:<br />
<br />
<pre>8ca0108bf935f2705976f56d7fa52fc32f68fab5f20e9f7400e3ccc55b27cd81</pre></div>
Admin