Saturday, September 10, 2016

Ethereum Fork: Guía para separar seguramente tus ETH/ETC


by in ethereum
Este artículo es básicamente una traducción del mismo en inglés por @pauls más información del blog oficial de Ethereum.

Introducción

El pasado 20 de Julio se completó existosamente el hard fork de Ethereum en el bloque 1.920.000 que contenía la ejecución de un cambio irregular de estado que transfirió aproximadamente 12 millones de ETH de los contratos de la "Dark DAO" y la "Whitehat DAO" al contrato de recupero WithdrawDAO.
()
El contrato de recupero está actualmente devolviendo los tokens de la DAO a los inversores, alrededor de 4.5 millones de ETH han sido enviados a los mismos, 463.000 ETH están bajo control del curador; un contrato para facilitar el pago del balance extra está actualmente bajo revisión.
Aquí puedes ver en vivo el estado actual de ambas cadenas.
Aunque hubo muchísimo debate y desacuerdo, finalmente la mayoría de la red de Ethereum se pasó al hard fork. De todos modos aquellos fuertemente opuestos al hard fork decidieron mantener la cadena pre-fork y rechazar la nueva cadena. Así fue que nació el proyecto de Ethereum Classic (ETC).
Actualmente exchanges grandes como Poloniex, Kraken y Bitfinex agregaron soporte para comprar y vender Ethereum Classic. Lo que esto significa es que si tenías ETH antes del hard fork, tus tokens ahora existen simultáneamente en dos realidades separadas: ETH y ETC. Existen mercados para ambos y eres libre de apostar cual de las dos cadenas será la más exitosa. Puedes esencialmente vender todos tus ETC mientras conserves tus ETH, o viceversa.
El problema es que separar tus tokens en cada cadena conlleva un riesgo. Específicamente algo llamado replay attack. Este método a sido probado varias veces e incluye el contrato inteligente recomendado por Vitalik en el blog oficial de Ethereum.

Prerequisitos

  • Wallet Mist 0.8.1 con la opción del hard fork activada (cuando te pregunta al iniciarlo por primera vez, selecciona 'Yes'.
  • Cuentas de Mist cargadas con los ETH que quieres dividir entre ambas cadenas.
  • Dos cuentas diferentes para cada cadena. Puedes crear dos nuevas cuentas en Mist, or usar algún otro wallet o exchange. Recomiendo altamente usar Mist para una cadena, y algún otro proveedor u otra computadora para la otra cuenta. De otro modo tendrás que cambiar de una cadena a otra y resincronizar el Mist cada vez. Yo usé el Mist para ETH y Poloniex para ETC.

Step 1: Agregando el contrato de split

Con el fin de separar (split) los ETH en ETH/ETC en dos cuentas separadas, usaremos un contrato diseñado para ello previamente al hard fork. Este se encuentra ahora en un estado diferente en cada cadena y enviará a diferentes direcciones en cada versión. Los detalles del contrato se pueden ver aquí. Dicho contrato fue posteado por Vitalik Buterin en el blog oficial de Ethereum y ha sido usado ampliamente. De todos modos, si entienden, pueden revisar el código del mismo.
  • En Mist, navega hasta la pestaña de 'CONTRACTS'.
  • Bajo 'CUSTOM CONTRACTS', selecciona 'WATCH CONTRACT'
  • Completa estos detalles:
    • CONTRACT NAME: ReplaySafeSplit
    • CONTRACT ADDRESS: 0xaa1a6e3e6ef20068f7f8d8c835d2d22fd5116444
    • JSON INTERFACE:
[{"constant":false,"inputs":[{"name":"targetFork","type":"address"},{"name":"targetNoFork","type":"address"}],"name":"split","outputs":[{"name":"","type":"bool"}],"type":"function"}]
  • Presiona OK
    ()
    Ahora deberías tener un nuevo contrato que aparezca bajo CUSTOM CONTRACTS llamado 'ReplaySafeSplit'.
    ()

Step 2: Llamando a la función split en el contrato

Ahora que agregamos el contracto cliquearemos en él. Debería verse como algo así:
()
Bajo 'WRITE TO CONTRACT' hay una ventana desplegable con una sola opción llamada 'Split'. Seleccionémosla.
()
ESTA ES LA PARTE IMPORTANTE
  • El campo 'Target fork' es la dirección de la cuenta de ETH que usarás.
  • El campo 'Target no fork' es la dirección de la cuenta de ETC que usarás.
¡No te los confundas!
Completa estos campos con tus dos cuentas diferentes. Verifica que sean correctas. Envía la cantidad de ETH que desees para separar entre ambas cadenas.

Step 3: Manténlos separados

Ahora tienes ETH/ETC en dos cuentas separadas en cada cadena. De manera de evitar confusiones y errores manténlos separadas de ahora en adelante. No envíes ETC a tu cuenta ETH ni viceversa.
¡Espero que esto haya sido útil para ustedes!

No comments: