Author

Topic: Me desaparecen bitcoins de mi cliente... (Read 1869 times)

legendary
Activity: 1974
Merit: 1030
May 19, 2013, 02:22:43 AM
#13
Ah, no sabía esto, pensé que al agotar las 100 direcciones se generaban otras 100, no que siempre se mantenían 100 de margen.

La putada es que hablo de oídas porque lo he leído en algún lado y ahora no puedo indicar la fuente. Tampoco lo he podido comprobar

Lo he comprobado yo antes de abrir la boca Wink. Esto es con un wallet sin cifrar:

Code:
2013-05-18 16:48:49 ThreadRPCServer method=getnewaddress
2013-05-18 16:48:50 keypool added key 103, size=101
2013-05-18 16:48:50 keypool reserve 3
2013-05-18 16:48:50 keypool keep 3
2013-05-18 16:48:50 ThreadRPCServer method=getnewaddress
2013-05-18 16:48:50 keypool added key 104, size=101
2013-05-18 16:48:50 keypool reserve 4
2013-05-18 16:48:50 keypool keep 4
2013-05-18 16:48:51 ThreadRPCServer method=getnewaddress
2013-05-18 16:48:51 keypool added key 105, size=101
2013-05-18 16:48:51 keypool reserve 5
2013-05-18 16:48:51 keypool keep 5
2013-05-18 16:48:51 ThreadRPCServer method=getnewaddress
2013-05-18 16:48:51 keypool added key 106, size=101
2013-05-18 16:48:51 keypool reserve 6
2013-05-18 16:48:51 keypool keep 6
2013-05-18 16:48:51 ThreadRPCServer method=getnewaddress
2013-05-18 16:48:51 keypool added key 107, size=101
2013-05-18 16:48:51 keypool reserve 7
2013-05-18 16:48:52 keypool keep 7


cuando le pides una nueva dirección al cliente de Satoshi te obliga a introducir la contraseña de cifrado del monedero, de modo que necesita modificar el archivo wallet.dat lo que es compatible con que esté agregando una nueva clave privada al conjunto anterior de claves de la cartera.

A mí con un wallet cifrado no me la pide, pero a lo mejor es porque yo uso bitcoind:

Code:
$ bitcoind getnewaddress
1Lj9Q...
$ bitcoind getnewaddress
1ESSt...
$ bitcoind getnewaddress
1PJGw...
$ bitcoind getnewaddress
1JVDC...

Code:
2013-05-19 07:13:51 ThreadRPCServer method=getnewaddress
2013-05-19 07:13:51 keypool reserve 21
2013-05-19 07:13:51 keypool keep 21
2013-05-19 07:13:52 ThreadRPCServer method=getnewaddress
2013-05-19 07:13:52 keypool reserve 22
2013-05-19 07:13:52 keypool keep 22
2013-05-19 07:13:53 ThreadRPCServer method=getnewaddress
2013-05-19 07:13:53 keypool reserve 23
2013-05-19 07:13:53 keypool keep 23
2013-05-19 07:13:54 ThreadRPCServer method=getnewaddress
2013-05-19 07:13:54 keypool reserve 24
2013-05-19 07:13:54 keypool keep 24

Cuando le pongo la contraseña a mano, el pool se rellena automáticamente:

Code:
2013-05-19 07:14:02 ThreadRPCServer method=walletpassphrase
2013-05-19 07:14:02 keypool added key 122, size=98
2013-05-19 07:14:02 keypool added key 123, size=99
2013-05-19 07:14:02 keypool added key 124, size=100
2013-05-19 07:14:02 keypool added key 125, size=101

Como es normal, si hago suficientes getnewaddress'es sin meter la contraseña, me va a petar. Ahora mismo no voy a hacerlo aquí, pero he tenido ocasión de verlo en los logs del FlipSide Smiley:

Code:
[Sun May  5 22:23:09 2013] [warn] create_game: Error: Keypool ran out, please call keypoolrefill first
hero member
Activity: 727
Merit: 500
Lo de las direcciones ocultas siempre me ha parecido una mongolada por parte de los desarrolladores. No sé a que clase de retrasado mental se le podría ocurrir semejante cosa, activada además por defecto. El cambio debería hacerse sobre la propia dirección de salida y, en todo caso, habilitar una opción para que los paranoicos pudieran usar direcciones ocultas. Para el resto de los mortales semejante estupidez solo sirve para darnos el susto, en el mejor caso, o perder dinero, en el peor (si haces un backup tiene que estar sincronizado, tienes que andarte con mil ojos si usas una paper wallet, etc. etc.).
legendary
Activity: 1820
Merit: 1017
Ah, no sabía esto, pensé que al agotar las 100 direcciones se generaban otras 100, no que siempre se mantenían 100 de margen.

La putada es que hablo de oídas porque lo he leído en algún lado y ahora no puedo indicar la fuente. Tampoco lo he podido comprobar porque aún no he sido capaz de listar todas las direcciones contenidas en un wallet.dat para verificarlo, pero estoy asumiendo que es un comportamiento lógico puesto que cuando le pides una nueva dirección al cliente de Satoshi te obliga a introducir la contraseña de cifrado del monedero, de modo que necesita modificar el archivo wallet.dat lo que es compatible con que esté agregando una nueva clave privada al conjunto anterior de claves de la cartera.
legendary
Activity: 1820
Merit: 1017
Todas las direcciones que han sido utilizadas en algún momento se pueden ver con su saldo actual si en el cliente Qt te vas a los menús > Ventana de depuración > Consola y en el recuadro inferior para texto introduces el comando

Code:
> listaddressgroupings

Por supuesto no escribas el símbolo >, lo utilizo para indicar dónde has de introducir el comando listaddressgroupings.

Si sumas todos los saldos que te devuelve verás que es el saldo total que te muestra tu cliente.
sr. member
Activity: 462
Merit: 250
Hola

Mi cliente es bitcoin-qt version 8.0 beta, la cantidad total de bitcoins estando totalmente sincronizado de ahora mismo es de 50.0021316 BTC

Pero acabo de importar mis direcciones a mi cuenta de blockchain (en modo view only) y....¡Sorpresa!...la cantidad total es de 30.00203961 BTC

Y lo peor es que me temo que lo que dice BlockChain va a ser verdad.

El problema está en 2 transacciones que realicé desde mi cliente, una de 0.28 BTC a otra cuenta de BTC-E, los 0.28 BTC sí que llegaron a esa cuenta, pero además fueron enviados 9.72 BTC a una cuenta totalmente desconocida para mi en la misma transacción:

https://blockchain.info/tx/acb050f03dbbb4a9c5e09723eff29f4362181067b22bf5d25ce63a6c08bda3c9


Por ahí se fueron 10 BTC, y otros 10 BTC se fueron también en otra transacción parecida.

Tengo el wallet.dat fuertemente protegido con contraseña, pero da la impresión de que la versión de mi cliente está hackeada.

No voy a realizar más transacciones de este cliente porque estoy acojonao, y voy a importar mis cuentas a otro cliente.


¿A alguien más le ha ocurrido esto?


Un saludo

Jose Luis



Te propongo un experimento sencillo: entra en alguna página que distrubuya bitcoins "gratis" (como la que tengo en la firma  Grin, aunque te vale cualquiera), y introduce esa dirección "desconocida", haz lo que te pidan para que te paguen un poco, y verás cómo aparece en la lista de transacciones a las pocas horas con el dinero que te haya llegado de la página donde hayas metido la dirección.

Esa dirección es tan tuya como las que ves en el cliente, no te preocupes. Incluso puedes usarla como las demás.

Yo también me llevé un buen susto en su momento, jajaja

jmontiel, si tu pago de 0.28 BTC se dividió desde 10 BTC, creo que es porque recibiste un ingreso de 10 BTC juntos,
Es decir, si hubieses recibido 2 ingresos de 5 BTC cada uno; entonces ese pago se hubiese dividido en 0.28 BTC y 4.72 BTC.

Ese susto nos lo pegamos todos, jejeje. Cheesy

Yo creo que sería una buena idea que el cliente NO usara direcciones ocultas, incluso que mostrara un mensaje donde ponga "parte del dinero se enviará a una dirección nueva de su propiedad". Así la gente no se asustaría. Smiley
legendary
Activity: 1974
Merit: 1030
Cuando el usuario solicita una nueva dirección de pago, el programa muestra la segunda dirección del wallet y genera otra nueva mediante un proceso aleatorio e irreproducible, la número 101, que queda conservada en el archivo wallet.dat

Ah, no sabía esto, pensé que al agotar las 100 direcciones se generaban otras 100, no que siempre se mantenían 100 de margen.
full member
Activity: 192
Merit: 100
Correcto, el sistema de cambio a direcciones ocultas del propio wallet en el cliente Qt hace que más de un novato se lleve un buen susto cuando ves que parte de tu dinero se ha ido a una dirección desconocida que crees que no controlas. Realmente deberían detallarse cuatro o cinco pautas iniciales en el uso de este software para evitar estos sobresaltos.

Mira, lee esto: https://bitcointalksearch.org/topic/m.2189841

Que sepas que a mí también me ocurrió en su momento. De aquella, creí que me habían robado unos mil euros, pero hice una nueva transacción con todo el saldo que contenía mi cartera del cliente Qt "afectado" a otra dirección que controlaba y vi que me enviaba todo mi saldo. Debido a esto me enteré de esta curiosa forma de proceder del cliente Qt.

Yo también me llevé un buen susto en su momento, jajaja

jmontiel, si tu pago de 0.28 BTC se dividió desde 10 BTC, creo que es porque recibiste un ingreso de 10 BTC juntos,
Es decir, si hubieses recibido 2 ingresos de 5 BTC cada uno; entonces ese pago se hubiese dividido en 0.28 BTC y 4.72 BTC.
legendary
Activity: 1820
Merit: 1017
Vamos a ver. El cambio no se pierde. Para que se diera una situación de pérdida de bitcoins con el cliente Qt sería necesario, al menos, el cumplimiento de los dos requisitos siguientes:

- Que se hayan usado más de 100 direcciones para recibir fondos (explícitamente o internamente con las direcciones de cambio).
- Que pierdas el wallet en uso.

Atención: Siempre se ha de realizar primero el cifrado del wallet.dat y posteriormente salvar una copia del mismo cifrado.

El wallet que crea inicialmente bitcoin-qt contiene un conjunto de 100 direcciones, de las cuales solamente muestra la primera, dejando ocultas el resto. Cuando el usuario solicita una nueva dirección de pago, el programa muestra la segunda dirección del wallet y genera otra nueva mediante un proceso aleatorio e irreproducible, la número 101, que queda conservada en el archivo wallet.dat en uso, ¡pero que no se podrá regenerar desde la copia de seguridad inicial del monedero! Cuando se realiza un pago desde el cliente Qt, una cantidad va a la dirección a la que nosotros queremos pagar, pero otra cantidad el programa se al envía a "él mismo", a otra de las direcciones que contiene el wallet, que permanece oculta y que, por supuesto, nosotros controlamos. El programa nos muestra el saldo suma contenido en todas las direcciones del wallet, sean visibles para nosotros o no.

Éste es el hecho que causa confusión, porque si buscamos en la cadena de bloques la suma de los saldos de las direcciones visibles, las que conocemos, probablemente será inferior al que nos muestra el cliente, llevándonos a la conclusión errónea de que nos han robado.

El peligro de pérdida de fondos aparece cuando, entre las direcciones que nosotros hemos usado (las visibles) y las direcciones de cambio ocultas que ha usado el programa se superan las cien. Si parte del saldo se va en forma de cambio a la dirección 101, o nosotros realizamos una transacción a dicha dirección, ese dinero no estará respaldado por la copia de seguridad inicial ya que el archivo copia inicial del wallet solamente contiene las 100 primeras direcciones y la 101 no será reproducible puesto que se genera mediante un proceso aleatorio.

La conclusión es que cada cierto tiempo es necesario realizar copias de seguridad actualizadas del wallet de modo que si hemos utilizado 20 direcciones (entre las visibles y las de cambio), la copia actual de seguridad contenga las 100 iniciales más las 20 vacías que ha pregenerado. De esta forma nos aseguramos que el wallet en uso tenga varias decenas de direcciones vacías "por delante", las cuales estarán protegidas en su mayoría por la última copia de seguridad del mismo, siempre que la actualicemos cada cierto tiempo.

En el caso de un uso con alto consumo de direcciones de pago nuevas recomiendo usar un cliente que genere carteras deterministas, que quiere decir que, salvando un "valor" semilla, a partir de él, podremos regenerar siempre todas las direcciones que pertenezcan a su cartera.
newbie
Activity: 16
Merit: 0
La verdad es que también había pensado en transferir todos los BTC a otra cuenta, pero estaba asustado por si esta vez se "perdian" 20 o más BTC.

Ahora ya está claro, pero la verdad es que sorprende, y todo por consultar las transacciones en blockchain, que lo único que reflejan es la realidad, y soy yo el que estoy hecho un pardillo.

Así pues a realizar copias de seguridad de mi billetera cada vez que transfiera bitcoins a otra cuenta, o se me perderá el cambio....

Un saludo.

Jose Luis

legendary
Activity: 1820
Merit: 1017
Correcto, el sistema de cambio a direcciones ocultas del propio wallet en el cliente Qt hace que más de un novato se lleve un buen susto cuando ves que parte de tu dinero se ha ido a una dirección desconocida que crees que no controlas. Realmente deberían detallarse cuatro o cinco pautas iniciales en el uso de este software para evitar estos sobresaltos.

Mira, lee esto: https://bitcointalksearch.org/topic/m.2189841

Que sepas que a mí también me ocurrió en su momento. De aquella, creí que me habían robado unos mil euros, pero hice una nueva transacción con todo el saldo que contenía mi cartera del cliente Qt "afectado" a otra dirección que controlaba y vi que me enviaba todo mi saldo. Debido a esto me enteré de esta curiosa forma de proceder del cliente Qt.
newbie
Activity: 16
Merit: 0
Entonces si la cuenta a donde han ido los 9.72 BTC es una cuenta oculta que reside en mi wallet.dat ya me dejas más tanquilo.

Yo creia que la wallet.dat sólo contenia las cuentas que puedes observar en el cliente, y me he guardado las claves publicas y privadas de todas esas cuentas en un lugar seguro. Pero resulta que sólo con recuperar esas claves no aparecerían todos los BTC que tengo en total.

La única forma de recuperar todos mis bitcoins sería con una copia actualizada de mi wallet.dat

Gracias por aclararlo.

hero member
Activity: 597
Merit: 500
Si tu cliente está completamente sincronizado y te dice que tienes 50BTC, es que tienes 50BTC. No te preocupes.

Me da la sensación que lo que te ha sucedido es que no conoces del todo bien el funcionamiento de Bitcoin. Cada vez que haces un pago, el cambio de la operación se dirige a una de tus direcciones ocultas en el wallet. Eso es lo que ocurrió cuando enviaste los 0,28 BTC a BTC-e. Los 9,72 de cambio restantes los tienes en otra de tus direcciones de la billetera.

A tu cliente no le pasa nada. Bitcoin está diseñado de esa manera. Piensa que es lo mismo que pagar 30€ con un billete de 100€. En la operación "gastas" todo tu billete de 100€ y el cambio restante serían dos nuevos billetes de 50€ y 20€ que volverían a tu billetera.
newbie
Activity: 16
Merit: 0
Hola

Mi cliente es bitcoin-qt version 8.0 beta, la cantidad total de bitcoins estando totalmente sincronizado de ahora mismo es de 50.0021316 BTC

Pero acabo de importar mis direcciones a mi cuenta de blockchain (en modo view only) y....¡Sorpresa!...la cantidad total es de 30.00203961 BTC

Y lo peor es que me temo que lo que dice BlockChain va a ser verdad.

El problema está en 2 transacciones que realicé desde mi cliente, una de 0.28 BTC a otra cuenta de BTC-E, los 0.28 BTC sí que llegaron a esa cuenta, pero además fueron enviados 9.72 BTC a una cuenta totalmente desconocida para mi en la misma transacción:

https://blockchain.info/tx/acb050f03dbbb4a9c5e09723eff29f4362181067b22bf5d25ce63a6c08bda3c9


Por ahí se fueron 10 BTC, y otros 10 BTC se fueron también en otra transacción parecida.

Tengo el wallet.dat fuertemente protegido con contraseña, pero da la impresión de que la versión de mi cliente está hackeada.

No voy a realizar más transacciones de este cliente porque estoy acojonao, y voy a importar mis cuentas a otro cliente.


¿A alguien más le ha ocurrido esto?


Un saludo

Jose Luis


Jump to: