¿Tendré que hacer un seguimiento de mis antiguas claves privadas para siempre?

Digamos que alguien (persona A) comienza a usar Bitcoin y en un período de tiempo publica con entusiasmo algunas de sus direcciones de Bitcoin generadas aleatoriamente (por ejemplo, por el cliente Satoshi) que reciben direcciones de Bitcoin en formus, envía algunas otras direcciones a algunas personas, etc.

Las claves antiguas ahora están asociadas con la persona A, y en un par de años, algunas personas podrían querer enviarle algunos fondos a la persona A; pueden encontrar una de estas direcciones antiguas (en una publicación antigua del foro o en una libreta de direcciones privada de Bitcoin antigua) y usarlas.

Pero ahora, A ha pasado a usar otra billetera en lugar del cliente Satoshi original, y movió todos sus fondos allí.

¿No significa esto que A siempre tendrá que realizar un seguimiento de todas las claves privadas originales (generadas de forma no determinista) de todas las direcciones que podría haber enviado o puesto a disposición de otras personas, y seguir importándolas en nuevas billeteras? cada vez que se cambia a un nuevo sistema de billetera y sigue haciendo copias de seguridad (de forma segura), etc.? Esto parece muy tedioso y propenso a errores.

Sé que se recomienda usar una nueva dirección para cada nueva transacción, pero eso no se aplica de ninguna manera y, lo que es más importante, está fuera del control de la persona A: son todas las demás personas las que podrían querer enviarles dinero.

Este problema será menos importante en el futuro (p. ej., con la generación de claves deterministas que solo requiere que se realice una copia de seguridad de la semilla), pero es posible que alguien que haya usado el cliente Satoshi de forma extensa y libre en el pasado nunca pueda hacer un corte limpio.

Entonces, ¿es esto un problema real o entiendo las cosas incorrectamente? Tal vez haya una solución simple (y segura), o tal vez esto no sea tan engorroso después de todo.

Respuestas (3)

Creo que el núcleo del problema es que llamamos "direcciones" a los hash de clave pública codificados en base58, sin importar si las personas están dispuestas a aceptar pagos.

En mi opinión, son solo identificadores de una clave pública, algo interno en la tecnología de Bitcoin. Los humanos nunca deberían verlos, a menos que estén depurando.

Satoshi originalmente no tenía la intención de usar las direcciones base58 actuales como "destino de pago"; pensó que pagar a IP (donde la clave pública se negoció en el acto) sería la forma común de realizar transacciones. El pay-to-pubkeyhash-via-P2P solo se agregó más tarde para los casos en que el receptor estaba fuera de línea. Pay-to-IP tuvo varios problemas y se volvió obsoleto, pero tenía muchas ventajas en comparación con lo que tenemos ahora. Creo que la solución es volver a algo así, como un pago por URI donde nuevamente las claves se negocian en el momento de la transacción. Significa que siempre está seguro de que la clave utilizada todavía está activa, las claves privadas no necesitan conservarse para siempre, nunca se reutiliza ninguna clave (mejor para el modelo de privacidad de Bitcoin) y obtiene soporte al instante para adjuntar mensajes o reembolsar información a las transacciones. .

Por supuesto, las personas probablemente mantendrán las claves privadas de todos modos, por ejemplo, en una billetera de archivo como se menciona en otras respuestas a estas preguntas. Pero en mi opinión, no debería ser un desastre cuando la gente no lo hace.

Sí, la API de bitcoin actual es un desastre. Las claves (si se van a utilizar como destinos de pago) siempre deben tener una fecha de caducidad (preferiblemente corta).
Bien, así que puedo esperar que esto mejore en el futuro. La verdadera solución es hacer que las personas vean y traten las direcciones como datos descartables, a diferencia de las direcciones de correo electrónico o los números de teléfono. El hecho de que la mayoría (¿todas?) de las carteras de Bitcoin cuentan con libretas de direcciones no ayuda aquí...
Los "casos en los que el receptor estaba desconectado" no son una característica "agradable de tener". La capacidad de disparar y olvidar a un destino determinado sin tener que preocuparse de si el destinatario está en línea es una necesidad absoluta, no puedo imaginar que Bitcoin funcione de otra manera.
@MeniRosenfeld Pero ni siquiera tenemos eso ahora. No hay garantía de que la red recuerde su transacción enviada hasta que se incluya. Dicho esto, ciertamente no estoy defendiendo la eliminación de send-to-pubkeyhash-via-P2P (por ejemplo, para donaciones anónimas, no veo una mejor manera), solo argumentando que en muchos casos negociar un pago tiene ventajas.

Mt. Gox es el primero en ofrecerlo, pero un servicio de barrido de billetera es lo que resolverá esto.

Si desea (o necesita) abandonar una billetera, puede transferir las claves siguiendo un montón de pasos técnicos, o puede cargar el archivo wallet.dat en un servicio que lo vigilará y, si se reciben fondos, barrer esos fondos a una cuenta o dirección de Bitcoin bajo su control.

Hasta que Mt. Gox cree una interfaz de usuario para acomodarlo, esta función de carga de wallet.dat solo es posible mediante la API. Ya puede importar claves privadas individualmente usando la API o el navegador/UI.

No creo que dar mis claves privadas a ningún servicio externo (como MtGox) resuelva el problema que describí, ya que no puedo saber cuánto tiempo estará disponible el servicio en el futuro. Además, agrega el requisito de que confío en el servicio (al tener las claves puede, técnicamente, si no legalmente, gastar mis fondos). En otras palabras, importar las claves a una billetera en línea no es más fácil ni más a largo plazo que en mi billetera de escritorio y requiere confianza adicional.

En teoría, debe conservar todas las claves que crea que alguien podría usar para enviarle dinero. Puede ser importándolos a una nueva billetera, o simplemente manteniendo la billetera anterior y revisándola ocasionalmente. Si solo usa algunas de las direcciones, es posible que se sienta inclinado a importarlas a su nueva billetera.

Como este problema aún no es tan importante, hay algunas otras soluciones que puede usar. Es posible que en el futuro los clientes tengan una opción de "billetera de archivo", en la que desechará todas sus billeteras antiguas y realizará un seguimiento si obtiene monedas nuevas allí sin saturar su billetera principal, o algunas en línea. funcionamiento del servicio similar a una billetera electrónica.

Importarlos al nuevo cliente es mucho mejor que conservar el antiguo cliente, ya que podría olvidar fácilmente la contraseña de su billetera, o el programa podría dejar de funcionar, etc.