[en desuso] ¡Reutilización de clave privada detectada! Cómo desbloquear tus fondos.

En ciertos casos, la billetera oficial de iota GUI mostrará la advertencia anterior y efectivamente le impedirá transferir sus fondos. Este artículo lo ayudará a obtener acceso a sus iotas nuevamente.

Editar: este artículo se centra en la billetera obsoleta Iota GUI. Para obtener consejos sobre cómo resolver el mismo problema en la billetera Trinity, cambie a este artículo:
Advertencia: ¡Fondos en direcciones gastadas! Cómo desbloquear tus fondos

Esta es la segunda parte de una historia de dos partes. La primera parte de esta historia se enfoca en lo que significa el error y cómo realmente se metió en esta situación.

Hay dos razones principales para que aparezca la advertencia de reutilización de clave. Transacciones y fondos pendientes en direcciones usadas. Las transacciones pendientes se verificarán primero porque si este es su problema, se puede resolver fácilmente sin agregar ningún riesgo adicional a sus fondos.

Sin embargo, si no se pueden encontrar transacciones pendientes, significa que tiene fondos en una dirección ya utilizada y utilizaremos la billetera oficial de línea de comandos de iota (billetera cli) para mover sus fondos. Tenga en cuenta que existe un cierto riesgo, que se explicará en detalle más adelante.

Contenido:

1. Transacciones pendientes
 1.1 Buscar transacciones pendientes
 1.2 Cómo confirmar una transacción pendiente

2. Mover fondos
 2.1 Mueva los fondos desbloqueados primero
 2.2 Use la billetera cli para mover fondos bloqueados
 2.3 Instalación de la billetera cli
 2.4 Envío de fondos bloqueados

1. Transacciones pendientes

Una transacción pendiente puede bloquear el envío de iotas en la billetera. Aunque las transacciones se confirman rápidamente en la mayoría de los casos, puede suceder que permanezcan pendientes durante un tiempo. De la forma en que funciona el enredo de iota, otra transacción tiene que elegir la suya como un consejo para confirmarlo. Debido a la naturaleza del algoritmo de selección de propinas, cuanto más antigua es una transacción, es menos probable que sea seleccionada para ser confirmada por otras transacciones. Si una transacción tiene días o incluso semanas de antigüedad, probablemente ya no se seleccionará y puede permanecer pendiente para siempre.

Es por eso que a veces tiene que empujar activamente su transacción para ser confirmada.

1.1 Buscar transacciones pendientes

Primero, necesita encontrar cualquier transacción pendiente con un valor. Las transacciones de valor cero no necesitan ser confirmadas y no pueden bloquear su billetera.

Abra la sección de historial de la billetera y mire la lista de transferencias. Los que están en la parte superior de la lista son las transacciones más recientes.

Encuentra los que dicen Pendiente. Desafortunadamente, el historial también puede parecer un poco confuso, ya que puede encontrar múltiples entradas como esta:

Verá tres transacciones, una confirmada y dos pendientes. De hecho, estas tres entradas en el historial son adjuntas o copias del mismo paquete. Si hace clic en Mostrar paquete en uno de los pendientes, obtendrá información más detallada.

En el cuadro de diálogo Detalles del paquete, puede ver una representación más precisa del estado que le indica que ya se confirmó una nueva conexión de esta transacción. Por lo tanto, esta transacción no cuenta como no confirmada con respecto al bloqueo de sus fondos y puede ignorarla.

Revise su historial completo y verifique otras transacciones pendientes.

1.2 Cómo confirmar una transacción pendiente

Si ha identificado una o más transacciones pendientes, haga clic en Mostrar paquete.

El primer botón Rebroadcast rara vez se usa y solo es útil en el caso extremo en el que el nodo al que envió la transacción no lo transmitió correctamente a sus vecinos. Use el botón Volver a conectar para crear una copia nueva del paquete completo en una ubicación diferente en la maraña. Esto es seguro y no publica ninguna parte adicional de la clave privada. La nueva transacción ahora tiene muchas más posibilidades de ser elegida para ser confirmada por otras transacciones.

Después de volver a adjuntar con éxito, el botón Volver a adjuntar cambiará su título a Promocionar.

Puede aumentar aún más la posibilidad de confirmación promocionando su transacción. Esto lo hará aún más popular para ser seleccionado como un consejo por otras transacciones.

Cada vez que presiona el botón Promocionar, la billetera promocionará su transacción 5 veces.
Como regla general, puede volver a adjuntar una transacción si tiene más de 30 minutos y promocionar tantas veces como desee en el medio.

Si confirmó la última transacción pendiente en su billetera, debería ser libre de enviar más transacciones sin ver la advertencia de reutilización de claves. Si no encontró transacciones pendientes o aún ve la advertencia, tendrá que mover sus fondos usando la billetera cli.

2. Mover fondos

Aunque pueda parecer así en este momento, su semilla actual no está rota. Si lo desea, aún puede usarlo más adelante. Sin embargo, para facilitar las cosas y tener un nuevo comienzo, transferiremos todos sus fondos a una nueva semilla.

Primero, asegúrese de tener una nueva semilla disponible. NO use ningún generador de semillas en línea. Si no está seguro de cómo generar una semilla, lea el artículo de Koen: El secreto de la seguridad: es secreto.

Use la nueva semilla para iniciar sesión en la billetera y generar una nueva dirección de recepción. Copie esa dirección en algún lugar para tenerla a mano. Esta será su dirección de destino a partir de ahora. Además, asegúrese de tener una copia de seguridad segura de su nueva semilla.

2.1 Mueva los fondos desbloqueados primero

La forma en que funciona la billetera GUI y también Trinity encontrará que no todos sus fondos están bloqueados. Solo la cantidad en la (s) dirección (es) afectada (s) realmente necesita ser transferida usando la billetera cli. Los fondos restantes se pueden mover utilizando la billetera GUI oficial o Trinity. Estos fondos nunca corren el riesgo de ser robados, pero en el caso de que algo salga mal durante la transferencia de la billetera cli, es posible terminar en una situación en la que estos fondos previamente no afectados también pueden bloquearse. Este es solo un caso marginal con una probabilidad muy baja pero que aún se recomienda, especialmente si tiene cantidades sustanciales de fondos en su semilla. Si desea omitir este paso, puede saltar directamente a Usar la billetera cli para mover fondos bloqueados.

Para transferir primero el saldo no afectado, necesita saber cuánto es realmente. Si ya identificó la dirección que está bloqueando sus fondos, simplemente puede restar los fondos de su saldo total y emitir una nueva transacción a la nueva dirección de destino con el monto resultante.

Si no sabe qué dirección lo está bloqueando y cuánto saldo está afectado, debe hacer un trabajo de detective. Usar la billetera Trinity es una tarea bastante simple, ya que hay una buena descripción general que muestra sus direcciones y sus saldos. Puede encontrar esta lista haciendo clic en Configuración → Administración de cuentas → Ver direcciones (Use el menú Cuenta cuando esté en el escritorio de Trinity). Desplácese por su lista y encuentre una dirección usada con fondos. Las direcciones utilizadas se resaltan en rojo con caracteres tachados.

En la captura de pantalla de arriba puedes ver la dirección 9GIYJ ... se usa pero todavía tiene 100i. Estos fondos están bloqueados, pero suponiendo que esta sea la única dirección afectada, los 115i restantes (cantidad total de 215i menos 100i bloqueados) se pueden mover sin problemas.

La billetera GUI carece de una buena lista de direcciones y sus saldos. En caso de que solo pueda usar esta billetera, identificar la dirección afectada es un poco más complicado. Puede borrar fondos no bloqueados una dirección a la vez utilizando el siguiente procedimiento. Puede llevar mucho tiempo ya que tiene que realizar dos transacciones para cada dirección que tiene que borrar, pero si tiene cantidades considerables de fondos, todavía se recomienda.

Use la billetera para enviar 1i (no 1Ki o Mi) a su dirección de destino. Si la billetera acepta la transferencia sin mostrar nuevamente la advertencia de reutilización de la clave, tiene al menos una dirección con fondos desbloqueados.

Luego encuentre la transacción saliente 1i en su historial y haga clic en Mostrar paquete.

Esto mostrará todas las transacciones en el paquete. Primero, está la transacción 1i, luego ves una transacción -1000i, lo que significa que se utilizó una dirección para enviar que tenía 1000i previamente. Finalmente, verá una transacción que envía el resto de 999i a otra dirección de su semilla. Ahora sabe que hay otro 999i disponible para enviar. Asegúrese de que la transacción 1i esté confirmada, luego emita una segunda con el monto del resto. La cantidad puede, por supuesto, ser diferente en su caso.

Repita esto hasta que incluso enviar una transacción 1i muestre la advertencia de reutilización de clave.

2.2 Use la billetera cli para mover fondos bloqueados

En este punto, solo los fondos bloqueados deben permanecer en su billetera. La billetera de línea de comando Iota (billetera cli) es un software de billetera simple sin una interfaz gráfica de usuario publicada por la Fundación Iota. Está completamente controlado a través de la línea de comando. Lo usaremos aquí porque, a diferencia de la mayoría de las otras billeteras (billetera GUI, Trinity), no evita que reutilice la clave privada de una dirección.
Es importante comprender que la advertencia de reutilización de claves en las otras billeteras está ahí por alguna razón. Cuando se usa una dirección para enviar varias veces, existe un cierto riesgo de que estos fondos sean robados. Cada transacción saliente de una dirección publica un 50% aleatorio de la clave privada de esta dirección específica. El riesgo de robo aumenta con cada transacción saliente adicional. Si la dirección solo se usó una vez anteriormente, el riesgo es bastante bajo. Pero si se usó 3 veces o incluso más de lo que resulta fácil para las partes maliciosas acceder a sus fondos. Hay que decir que solo los fondos en esta dirección específica están en riesgo y ninguna otra dirección ni parte de su semilla está nunca en peligro o publicada. Tenga en cuenta todo esto, ya que no puedo responsabilizarme por las pérdidas que puedan ocurrir. Si se siente inseguro o incómodo de alguna manera siguiendo este procedimiento, únase al iota Discord y explique los detalles de su caso en el canal #help para buscar otra solución.

2.3 Instalación de la billetera cli

Para instalar y ejecutar la billetera Iota cli, primero tendremos que instalar Node.js. Aunque el nombre es similar, esto no tiene nada que ver con ejecutar un nodo Iota. Node.js es un entorno de tiempo de ejecución de código abierto para ejecutar código javascript.

Vaya al sitio web oficial de Node.js (https://nodejs.org/) y descargue el instalador apropiado para su sistema operativo. Se recomienda elegir la versión de soporte a largo plazo (LTS). Descargue y ejecute el instalador. Una vez que haya terminado, es hora de abrir la interfaz de línea de comandos de su sistema operativo. Para Windows, vaya al menú de inicio, escriba cmd y presione Entrar. En Mac OS X, utilice la búsqueda de Spotlight para buscar el terminal e iniciarlo.

Una vez en la interfaz de línea de comandos, podemos usar npm, el instalador de paquetes que forma parte de Node.js para descargar e instalar directamente la billetera iota cli ingresando esta línea:

npm install -g iota-cli-app

Presiona Enter y espera hasta que finalice la instalación.

2.4 Envío de fondos bloqueados

Necesitará tener una dirección de destino de una semilla nueva y la billetera cli instalada para continuar. Inicie la billetera cli con este comando:

iota-cli

Después de comenzar se verá así:

Por defecto, la billetera intentará conectarse a un nodo que se ejecuta localmente en su computadora. Si no ejecuta un nodo local, puede ingresar un nodo público de confianza. Aquí usaremos uno de los nodos ejecutados por un miembro de la Fundación Iota (Ralf Rottmann): node.iota.fm:80.
Puede elegir el mismo nodo o elegir uno diferente en el que confíe. Por ejemplo, una lista de nodos está disponible aquí https://iota.dance/

Conecte la billetera al nodo escribiendo

nodo http://nodes.iota.fm:80

Después de unos segundos, la billetera se conectará, visible mediante la marca de verificación verde después del nombre del nodo.

Ahora ingrese su semilla:

SEMILLA

Reemplace YOURSEED con su propia semilla y presione Entrar. Si pega su semilla desde el portapapeles, puede usar el botón derecho del mouse y Pegar en Windows y Shift-Command-V en OS X.

Elija No cuando se le pida que guarde la semilla localmente para la finalización automática (escriba N y presione Entrar).

Después de ingresar su semilla, la billetera recuperará automáticamente los datos completos de la cuenta en segundo plano. Dependiendo de la cantidad de direcciones que ya haya utilizado, la billetera puede tardar unos minutos en verificar todas las direcciones. Una vez terminado, le notificará y también mostrará el saldo disponible (1.2Mi o 1200Ki en este caso).

Si no se muestra el saldo, puede solicitar específicamente recibirlo con el comando de saldo.

equilibrar

Se recomienda mover los fondos desbloqueados primero con la billetera de su elección, por lo que en este punto, debería ver el saldo que coincida con los fondos en las direcciones bloqueadas.

Al enviar fondos con la billetera cli, debe dar la cantidad como un número de iotas, no Ki, Mi o Gi. Esto significa que si ve una unidad como K, M o G detrás del saldo, necesita convertirla en la cantidad en iota. Los 1.2 Mi se muestran como 1200 Ki, lo que nuevamente equivale a 1200000 iotas. Use este cuadro como referencia si no está seguro acerca de las unidades.

Ahora tiene todo para emitir el comando de transferencia final. Recuerde que desde el momento en que se publica la transacción, sus fondos están en riesgo hasta que se confirme la transacción. Incluso si esto es solo un pequeño riesgo, desea que la nueva transacción se confirme lo más rápido posible.

Para finalmente enviar los fondos desde la (s) dirección (es) bloqueada (s) ingrese el comando de esta manera y verifíquelo dos veces antes de presionar Enter:

transferir la cantidad de DIRECCIÓN

Reemplace DIRECCIÓN con la dirección de destino a la que desea enviar sus fondos y reemplace la cantidad por la cantidad de iotas que desea transferir. No incluya ninguna unidad al definir la cantidad. Con mi billetera, el comando podría verse así:

transferir HBMYPAZXKHMGUVHZGEATCWCVUXLMSGZQFVLGJNYJMBWEFAUAHMHDXWKBANJDSDZHPVOOVFZVWSHAKFJODRJWNMPPXW 1200000

La billetera verifica la validez de la dirección, por lo que si incluye un error tipográfico en algún lugar, se detectará debido a la suma de verificación no válida. Vería este mensaje de error en ese caso:

Si ves este mensaje

significa que probablemente ingresó una unidad (i, Ki, etc.) después de la cantidad. Asegúrese de dar solo la cantidad de iotas para transferir.

Después de presionar Enter en el comando de transferencia correcto, la billetera comenzará a crear el paquete de transferencia y lo enviará al enredo. Esto puede demorar algunos minutos. Cuando termine se verá así:

Ahora es el momento de promover la nueva transacción para ayudar a que se confirme más rápido. Puede pasar un minuto hasta que la transacción aparezca en el historial de la billetera, pero luego puede usar su billetera para promocionarla.

Tan pronto como se confirme la transacción, sus fondos han llegado de manera segura a la nueva semilla.

¿Preguntas o comentarios? Búscame en el Iota Discord (HBMY289). Un agradecimiento especial a los usuarios de Discord, Olaz Preton y Berdiin, que ayudaron a corregir este artículo.