¿Alguien puede ayudarme con una lista paso a paso de cómo crear una transacción de firma múltiple 2 de 3?
En realidad, ya se admiten tanto la recepción como el gasto de fondos desde una dirección multifirma.
Puede encontrar el código para hacerlo, además de comentarios, por Gavin:
Parece que existe alguna implementación parcial. Citando a Gavin :
Reúna (o genere) 3 direcciones de bitcoin, en cualquier máquina que participará, usando los comandos RPC getnewaddress o getaccountaddress (o copie y pegue desde la GUI).
Obtenga sus claves públicas usando el validateaddress
comando RPC 3 veces.
Luego cree una dirección multisig 2 de 3 usando addmultisigaddress
; p.ej
bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'
addmultisigaddress
devuelve la dirección multifirma. Tenga un poco de cuidado, las claves públicas son hexadecimales sin procesar y no contienen sumas de verificación como las direcciones de bitcoin. A continuación, puede enviar fondos a esa transacción 2 de 3 utilizando los comandos normales de RPC sendtoaddress/sendmany, o la GUI (o cualquier cosa que se haya actualizado para reconocer direcciones multisig).
Esto aún no está implementado (mecanismo de llamadas RPC). Podría reunir todas las direcciones en una billetera y luego podría gastar los fondos.
Actualización de marzo de 2014
Multisig sigue siendo difícil. Creo que la biblioteca SX es una herramienta fácil (de personas como Vitalik Buterin y Amir Taaki) para trabajar con multisig, pero no lo he probado yo mismo.
Una dirección multisig m-of-n se crea de la siguiente manera:
n
las claves públicas. por 3-of-3
03730a151f545f5dcdb1c6d99fb1251f5c70f216f39ba2681bcf10db16bd582e67
,03a9bb9d28dfcd2e58ca7b3fa39f4051a6496fc7928f993f1758aeff7c0fee0f03
03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd
OP_m <bytes-in-Pubkey1> <pubKey1> ... OP_n OP_CHECKMULTISIG
532103730a151f545f5dcdb1c6d99fb1251f5c70f216f39ba2681bcf10db16bd582e672103a9bb9d28dfcd2e58ca7b3fa39f4051a6496fc7928f993f1758aeff7c0fee0f032103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd53ae
HASH160(<script>)
8b58c2f47cd3000e42c82138f7678dc978bc109a
0x05
para P2SH
la dirección en la red principal: 05<scriptHash>
058b58c2f47cd3000e42c82138f7678dc978bc109a
BASE58CHECK(05<scriptHash>)
3EPpBU7fXq1PfG6JkLnJNUUmEGcSr9rdmh
Puede enviar bitcoins a esta dirección, pero para gastar desde allí, debe proporcionar el scriptSig: 0 <sigM> ... <script>
donde <sigM>
se firma desde cada una de las m
claves privadas.
Consulte Bitcoin Wiki - Script para códigos de operación, Bitcoin Wiki - Prefijos de dirección y Bitcoin Wiki - TransacciónP2SH
para el formato de script multisig .
La forma más fácil de crear una transacción de firma múltiple 2 de 3 es con Coinb.in.
Si es necesario, cree 3 pares de claves utilizando el comando desplegable "Nueva dirección".
Use la "Nueva dirección multisig" junto con las 3 claves públicas para crear una dirección 2 de 3.
Financie la dirección con bitcoin.
Cree una nueva transacción pegando el "script de canje" del paso 3, definiendo las direcciones de recepción y los montos. (Todas las entradas no gastadas que no estén asignadas a una dirección de recepción se utilizarán como tarifas de transacción. Si se desea un cambio, inclúyalo en una nueva dirección de salida haciendo clic en "+").
Firme la transacción con una de las claves privadas, luego firme esa transacción con otra de las claves privadas.
Difundir la transacción a la red.
Altamente Irregular
Daniel H.
destripador234
destripador234
Matthieu