Bitcoin Forum
June 16, 2024, 05:18:33 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 [6] 7 8 9 »  All
  Print  
Author Topic: Lotería de Navidad.  (Read 14566 times)
foroplus (OP)
Legendary
*
Offline Offline

Activity: 1212
Merit: 1052



View Profile
November 07, 2014, 09:13:13 PM
 #101

So sorry, yo no sé de multisig.
El sistema del año pasado no fue tan malo, y hay usuarios con reputación suficiente para hacer de escrow.
No se va a juntar mucha pasta además.

Bueno, ya diréis.

Con la excusa de la innovación en el sorteo tendrías una buena razón para aprender Wink

"Nueva Loteria de Navidad (este año con sistema de multising)"

Dame una pista, un enlace rápido, please...

AbraxasCcs
Legendary
*
Offline Offline

Activity: 1568
Merit: 1032


Beyond the flavor!


View Profile
November 07, 2014, 10:20:46 PM
 #102

So sorry, yo no sé de multisig.
El sistema del año pasado no fue tan malo, y hay usuarios con reputación suficiente para hacer de escrow.
No se va a juntar mucha pasta además.

Bueno, ya diréis.

Con la excusa de la innovación en el sorteo tendrías una buena razón para aprender Wink

"Nueva Loteria de Navidad (este año con sistema de multising)"

Dame una pista, un enlace rápido, please...

Mira el split wallet en www.bitaddress.org

-----EDITO----

Habrá enlaces mejores. Pero yo también me tengo que actualizar.

Mine Chococoin, eat real chocolate!
Bitrated user: Abraxas.
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 12:08:40 AM
Last edit: November 08, 2014, 12:23:01 AM by alexr_96
 #103

Mira el split wallet en www.bitaddress.org

-----EDITO----

Habrá enlaces mejores. Pero yo también me tengo que actualizar.
Pero eso no es multisig, el que lo genere, va a tener todo el poder.
A ver si mañana hago un tutorial rápido con armory

y estoy de acuerdo con Abraxas
Con la excusa de la innovación en el sorteo tendrías una buena razón para aprender Wink
Que mejor excusa que tener que usarlo para aprender a usarlo, yo he tardado un día en aprender.
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
November 08, 2014, 01:10:31 AM
 #104

Con bitcoind se puede hacer, sin que se necesite Armory, con un comando se crea la dirección a partir de las llaves públicas de los escrows, cuando alguien gane el premio con otro comando alguien crea la transacción del premio, y con otro comando cada escrow la firma hasta completar las 3 firmas necesarias, y con otro comando alguien la envía a la red. En cuanto a los participantes no tienen que hacer nada raro, se deposita como en cualquier otra dirección Bitcoin, todo el trabajo "raro" lo hacen los 5 escrows.

Algo así (me corrigen si me equivoco en algo por favor):

Un escrow usa la dirección de cada escrow para crear la dirección multifirma (3 firmas de 5):

Code:
addmultisigaddress 3 '["1escrow1blablablablablablabla","1escrow2blablablablablablabla","1escrow3blablablablablablabla","1escrow4blablablablablablabla","1escrow5blablablablablablabla"]'
resultado: 3multifirmablablablablablablabla

Los demás escrows (o cualquier usuario) ejecutan también el comando para comprobar que ese es el resultado correcto.

Cuando el sorteo tenga un ganador, uno de los escrow (digamos "escrow1") recolecta las id de las transacciones de depósito y crea una transacción que transfiera el premio a la dirección del ganador:

Code:
createrawtransaction '[{"txid":"txiddeposito1blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito2blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito3blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito4blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito5blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito6blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito7blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito8blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito9blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito10blablablablablablablablablablablablablablablablablabl","vout":0}]' '{"1ganadorblablablablablablabla":0.9995}'
resultado: resultado1rawblablablablablablablablablablablablablablablablablablablablablabla blablablablablablablablablablablablablablablablablablablablablablablablablablab lablablablablablablablabla

escrow1 la firma:
Code:
signrawtransaction resultado1rawblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado1firmadoblablablablablablablablablablablablablablablablablablablablabl ablablablablablablablablablablablablablablablablablablablablablablablablablabla blablablablablablablablablablablablablablablablablablablablablablablablablablab lablabla

escrow1 publica el resultado en el foro.

Entonces escrow2 comprueba que la transacción esté bien:
Code:
decoderawtransaction resultado1firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
El resultado es el JSON de la transacción, escrow2 comprueba que todo esté bien (que la dirección de destino sea la del ganador, que las txid sean todos los depósitos, y que el valor sea la suma correcta de todos los depósitos menos la comisión para mineros), si todo está bien entonces la firma:
Code:
signrawtransaction resultado1firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado2firmadoblablablablablablablablablablablablablablablablablablablablabl ablablablablablablablablablablablablablablablablablablablablablablablablablabla blablablablablablablablablablablablablablablablablablablablablablablablablablab lablabla

escrow2 publica el resultado en el foro.
escrow3 comprueba que la transacción esté bien:
Code:
decoderawtransaction resultado2firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
Entonces la firma:
Code:
signrawtransaction resultado2firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado3firmadoblablablablablablablablablablablablablablablablablablablablabl ablablablablablablablablablablablablablablablablablablablablablablablablablabla blablablablablablablablablablablablablablablablablablablablablablablablablablab lablabla

escrow3 publica el resultado en el foro.
Con las tres firmas necesarias, alguien envía la transacción a la red:
Code:
sendrawtransaction resultado3firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla

Sería bueno hacer una prueba con algunos céntimos, o en testnet, para no pecar de novatos...
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 01:37:32 AM
 #105

Con lo intuitivo que es en armory Shocked
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
November 08, 2014, 01:45:00 AM
 #106

Con lo intuitivo que es en armory Shocked

Bueno nunca he usado Armory por eso no tengo ni idea, pero creo que los comandos no tienen mayor dificultad, lo único engorroso es recolectar las txid de los depósitos para crear la transacción del premio (pero eso es puro copy/paste del blockchain.info)... pero sí, supongo que en Armory podría ser más "sencillo" con interfaz... por ahí hay un request hace tiempo para agregar la interfaz de multifirmado a bitcoin-qt, pero nada...
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 02:09:19 AM
 #107

Aquí una conferencia de VEscudero sobre como se usa la multifirma, es 1:30h pero merece la pena verlo https://www.youtube.com/watch?v=tnbXUEstwrI
Pero si no quereis verla entera, la multifirma de armory esta entre el 15:18 al 29:30 mas o menos
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 08:54:40 AM
 #108

La explicación de multisig en bitcoin core es más complicada que el proceso en sí, la verdad. Básicamente:

- Los miembros del escrow publican la pubkey de una dirección suya.
- Uno cualquiera, o todos, crean la dirección multisig (addmultisigaddress).
- El sorteo tiene lugar.
- Uno cualquiera de los escrows crea una tx pagando los fondos a la dire del ganador, y le pone la firma (createrawtransaction, signrawtransaction).
- Todos comprueban que el pago va donde tiene que ir (decoderawtransaction).
- Otro de los escrows añade su firma a la tx (signrawtransaction).
- Y luego otro, y otro, hasta que el resultado de signrawtransaction dice que la tx ya está completa.
- Cualquier persona envía la tx a la red.

El problema es que haya el número suficiente de usuarios de armory/bitcoin core.
foroplus (OP)
Legendary
*
Offline Offline

Activity: 1212
Merit: 1052



View Profile
November 08, 2014, 09:13:11 AM
 #109

Me he mareado leyendo todos estos post.
No puede ser tan complicado.
En mi modesta opinión, o hay algo más simple, o deberíamos hacerlo como el año pasado. Con un escrow de carne y hueso....

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 10:04:38 AM
 #110

Me he mareado leyendo todos estos post.

Smiley

Desde tu punto de vista es muy sencillo:

- Al principio ejecutas un validateaddress sobre una dirección tuya y publicas el resultado.
- Después del sorteo alguien te pasará un churro hexadecimal y tú haces signrawtransaction y publicas el resultado.

Fin! Cheesy
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
November 08, 2014, 01:26:36 PM
 #111

Hagamos una prueba con el core, y así aprendemos y perdemos el miedo entre todos, veremos que no es para nada complicado... ¿alguien se anima?, se necesitan 5 direcciones, va la mía: 1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 01:57:15 PM
 #112

131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 02:25:30 PM
 #113

se necesitan 5 direcciones

Pensé que solo servían claves públicas, y estaba a punto de corregir esto, pero la ayuda dice que en efecto también sirven direcciones. TIL Smiley.

1M3PdugNuQJ7r8ygsvKxjvySQSaWGrrNVN
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 02:27:51 PM
 #114

Hmm, creo que al final sí que van a hacer falta claves públicas:

Code:
$ bitcoin-cli createmultisig 2 '["1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA","131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK","1M3PdugNuQJ7r8ygsvKxjvySQSaWGrrNVN"]'
error: {"code":-1,"message":"no full public key for address 1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA"}
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 02:46:04 PM
Last edit: November 08, 2014, 03:20:53 PM by alexr_96
 #115

043DF00F55AA3053D9F92382C3278F786DCBEFC217204DACF8A11331D633A412467C8180DE58DFF CED5158AF065AD8E0CBEDF441BDF8F1E34909624DC6FE579056

PD La dirección que he usado antes ya no es la correcta. Ahora estoy usando esta, que corresponde a la clave pública de este mensaje: 17dMvurSgqb5XdyawqGcKDagydA42U6dz5
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
November 08, 2014, 03:14:50 PM
Last edit: November 08, 2014, 03:27:48 PM by fernarios
 #116

Hmm, creo que al final sí que van a hacer falta claves públicas:

Code:
$ bitcoin-cli createmultisig 2 '["1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA","131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK","1M3PdugNuQJ7r8ygsvKxjvySQSaWGrrNVN"]'
error: {"code":-1,"message":"no full public key for address 1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA"}

Sí, esa duda también la tenía yo, es extraño que la ayuda diga que pueden ser direcciones, en la wiki también dice "Each key is a bitcoin address or hex-encoded public key.".... hummm ¿tal vez pueden ser direcciones sólo si son direcciones del que ejecuta el comando?, de pronto internamente con validateaddress obtiene la llave pública, pero sólo si "ismine" es verdadero.


Code:
validateaddress 131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK
{
"isvalid" : true,
"address" : "131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK",
"ismine" : false
}

validateaddress 1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA
{
"isvalid" : true,
"address" : "1A4Vy1MCSfU6hP6Qfpnetnd6m8AoEcoLjA",
"ismine" : true,
"isscript" : false,
"pubkey" : "02bd29db9743a8b586fafa27d218f1dbd14b67a5e065e955c3ef1aa88aea20aad7",
"iscompressed" : true,
"account" : "prueba multifirma"
}

Bueno, la mía entonces es: 02bd29db9743a8b586fafa27d218f1dbd14b67a5e065e955c3ef1aa88aea20aad7

fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
November 08, 2014, 03:28:08 PM
 #117

043DF00F55AA3053D9F92382C3278F786DCBEFC217204DACF8A11331D633A412467C8180DE58DFF CED5158AF065AD8E0CBEDF441BDF8F1E34909624DC6FE579056

PD La dirección que he usado antes ya no es la correcta. Ahora estoy usando esta, que corresponde a la clave pública de este mensaje: 17dMvurSgqb5XdyawqGcKDagydA42U6dz5

¿Por qué es tan grande?? creo que hay que hacerle un SHA-256 a la tuya para que sea válida... ¿me equivoco?, intenta con validateaddress, te lo da en el formato que se usa aquí.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 03:56:24 PM
 #118

043DF0[…]

¿Por qué es tan grande??

Porque no está comprimida, empieza por 04. La tuya sí lo está, empieza por 02 o 03.


es extraño que la ayuda diga que pueden ser direcciones, en la wiki también dice "Each key is a bitcoin address or hex-encoded public key.".... hummm ¿tal vez pueden ser direcciones sólo si son direcciones del que ejecuta el comando?, de pronto internamente con validateaddress obtiene la llave pública, pero sólo si "ismine" es verdadero.

Supongo que puedes poner direcciones en lugar de pubkeys si están en tu wallet, o sea, si tienes la privkey, o sea, si todas son ismine=true. Pero esto es una suposición, nada más.
alexr_96
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500

0x9CE937CD


View Profile WWW
November 08, 2014, 04:17:01 PM
Last edit: November 08, 2014, 04:44:55 PM by alexr_96
 #119

Supongo que puedes poner direcciones en lugar de pubkeys si están en tu wallet, o sea, si tienes la privkey, o sea, si todas son ismine=true. Pero esto es una suposición, nada más.
Es probable, con armory pasa lo mismo, porque la clave pública se saca de la clave privada

Code:


{
"isvalid" : true,
"address" : "17dMvurSgqb5XdyawqGcKDagydA42U6dz5",
"ismine" : true,
"isscript" : false,
"pubkey" : "043df00f55aa3053d9f92382c3278f786dcbefc217204dacf8a11331d633a412467c8180de58dffced5158af065ad8e0cbedf441bdf8f1e34909624dc6fe579056",
"iscompressed" : false,
"account" : ""
}
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 08, 2014, 05:08:28 PM
 #120

Recapitulando, tenemos estas pubkeys:

Code:
alexr_96   17dMvurSgqb5XdyawqGcKDagydA42U6dz5  043DF00F55AA3053D9F92382C3278F786DCBEFC217204DACF8A11331D633A412467C8180DE58DFFCED5158AF065AD8E0CBEDF441BDF8F1E34909624DC6FE579056
fernarios  131H98fGdABQG5CnyR4ADo7FfLLmxZWmSK  02bd29db9743a8b586fafa27d218f1dbd14b67a5e065e955c3ef1aa88aea20aad7
dserrano5  1M3PdugNuQJ7r8ygsvKxjvySQSaWGrrNVN  03f4de1a85a611b1aa2009d0423d6ec74754f3157024106cb4f2850c4864a5efc7

Venga, ¿quién más se apunta?
Pages: « 1 2 3 4 5 [6] 7 8 9 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!