¿Se puede modificar o cancelar una transacción de Ethereum?
- Si los registros en una blockchain como Ethereum son inmutables, ¿cómo es posible modificar o cancelar una transacción en la blockchain de Ethereum?
- Las transacciones en Ethereum transitan por una serie de etapas y es específicamente en una de ellas donde es posible cancelarla o modificarla.
- Cuando las transacciones se encuentran en el proceso de “estado pendiente” o Mempool que es el lugar donde todas las transacciones válidas esperan ser confirmadas están en un momento en el que pueden ser modificadas.
Cuando entras al mundo cripto hay una regla que casi casi hacen que te la tatues: “cuando realizas una transacción de criptos no hay pasó atrás”. Es por esta razón se recalca mucho a los usuarios que tengan cuidado con colocar su dirección cripto correctamente y verificar que su billetera acepte ese activo, ya que de lo contrario pueden perder todo su dinero.
En el peor de los casos, si son víctimas de una estafa, será casi imposible que obtengan un reembolso de sus activos, pero…¿si te dijéramos que hay una manera de poder modificar o cancelar una transacción?
Hay muchas razones por la cual una persona podría tener razones para querer modificar o anular una transacción. No obstante, para hacerlo, es necesario comprender cómo funciona una blockchain ya que es un paso importante a tomar antes de comenzar a operar en el mundo de las criptomonedas.
¿Cómo funciona una blockchain?
Blockchain es un libro mayor abierto y distribuido, siendo estas sus características fundamentales. Pero, adicionalmente, este utiliza una estructura de datos tal que solo es posible agregar datos; es decir, no es posible borrar los datos anteriores.
Es precisamente por esta razón que la blockchain representa un registro verificable e inmutable de datos.
Ahora, cuando se realiza una transacción entre dos o más partes, se debe registrar en la blockchain y, para ello, es necesario un mecanismo de consenso y un sistema de recompensas. Gracias a ello las transacciones que se ejecuten podrán ser verificadas y aceptadas como verdadera por toda la red.
De esta manera, una vez que se ha registrado una transacción en la blockchain, esta no puede ser modificada. Entonces, ¿cómo va a ser posible modificar o cancelar una transacción en la blockchain de Ethereum? La razón es la existencia del Mempool y, para comprenderlo, es necesario explorar cómo funcionan las transacciones en la blockchain de Ethereum.
¿Cómo se ejecuta una transacción en la blockchain de Ethereum?
En cualquier blockchain, una transacción son una serie de instrucciones que han sido firmadas criptográficamente desde las partes involucradas. Las transacciones regulares, es decir, aquellas en dónde hay un receptor, en Ethereum contienen la siguiente información:
- Identificador del remitente
- Dirección de recepción
- La cantidad de ETH involucrada en la transacción.
- Información sobre la tarifa de transacción
- Un campo opcional de información.
Un concepto particularmente relevante tiene que ver con la tarifa de gas, siendo aquella tarifa que se debe pagar para que la transacciones sea validada, y, ¿por qué hay que pagar una tarifa? Pues porque, como se mencionó arriba, para que una transacción se ejecute y registre en la red es necesaria la presencia de validadores y, para ello, se requiere de un sistema de recompensas por su labor. Es decir, los validadores verifican la transacción y, a cambio, reciben las tarifas.
Pero, ¿por qué es necesario este sistema de recompensas? Básicamente la obligación de los usuarios de pagar una tarifa protege a la red de tareas computacionales descuidadas o maliciosas, por ejemplo, enviar spam y congestionar la red sin necesidad.
En el caso de Ethereum, al utilizar un mecanismo de consenso de Proof of Work (PoW), al menos hasta este momento, requiere de los mineros quiénes le darán prioridad a las transacciones que paguen una tarifa de gas más elevada. Por ende, las transacciones con baja tarifa de gas quedan en la parte inferior de la cola.
Es precisamente por esta razón que las tarifas de gas en la red de Ethereum se han elevado durante los últimos años. Una mayor actividad en la red se traduce en una mayor cantidad de transacciones por verificar, conllevando a mayores tiempos de espera que las personas buscan reducir al ofrecerle a los mineros una mayor tarifa.
Proceso de verificación
Las transacciones en Ethereum transitan por una serie de etapas y es específicamente en una de ellas donde es posible cancelarla o modificarla.
- Estado desconocido: En este momento la transacción no se ha visto ni procesado
- Estado pendiente: Aquí es donde ingresa el concepto de Mempool que es el lugar donde todas las transacciones válidas esperan ser confirmadas por la red. Cuando las transacciones se envían a la blockchain de Ethereum, estas ingresan al Mempool, es decir, a un conjunto de transacciones pendientes. La transacción permanecerá allí hasta que un minero proceda a verificarla. Aquellas transacciones con bajas tarifas de gas permanecerán más tiempo en este estado.
- Estado verificada y registrada: Una transacción alcanza este estado una vez que un minero la ha seleccionado del mempool, la verifica y la extrae dentro de un bloque.
Por ende, la única fase en la cual una persona podrá modificar o cancelar una transacción en la red de Ethereum será cuando esta se encuentre pendiente, es decir, en el mempool.
¿Cómo cancelar una transacción?
Una persona podría querer cancelar una transacción por diversas razones que pueden ser por haber cometido un error y haber enviado ETH a una dirección errónea o porque la transacción lleva demasiado tiempo en espera.
Pero, en cualquier caso, será necesario que la transacción continúe en el estado pendiente y , para verificar si es así, será necesario:
- Dirigirse a un explorador de bloques de Ethereum.
- Pegar en el buscador el hash de la transacción, o ID.
- Si el explorador indica que la transacción está “pendiente”, entonces los usuarios podrán cancelarla.
Entonces las personas podrán cancelar una transacción pendiente a través de dos formas: Cancelación en la aplicación y configuración de un nonce.
- Cancelación en la aplicación: Consiste en cerrar la aplicación de la wallet de Ethereum desde donde se ha enviado la transacción y volver a iniciar sesión. Incluso, hay wallets como Metamask que incluyen botón de cancelación automático de la transacción.
- Configuración de un nonce personalizado: En caso de que la primera opción no funcione, esta sería la siguiente a probar. Se parte por comprender que un “Nonce” hace referencia a “Número que solo se usa una vez” y son el número total de transacciones confirmadas enviadas desde la dirección de Ethereum dada. Configurar un nonce personalizado, implica seguir los siguientes pasos:
- Crear una nueva transacción de Ethereum para enviar 0 ETH a ustedes mismos.
- Para esta nueva transacción, se debe aumentar la tarifa de gas en al menos un 10% respecto a la tarifa utilizada previamente.
- Cambie el nonce de la transacción con el nonce de la transacción pendiente original.
- Al tener una tarifa de gas superior a la anterior, la transacción de 0 ETH se ejecutará primero. Mientras que la transacción pendiente anterior se cancelará porque la Blockchain la rechazará dado que el nonce es único para cada transacción.
- ¡Cuidado! Las tarifas se cobrarán incluso cuando la transacción se cancele.
¿Cómo desatascar una transacción en la red de Ethereum?
Dado que la razón fundamental por la que una transacción se mantiene como pendiente es la baja tarifa de gas, la solución es precisamente aumentarla para que los mineros de Ethereum la tomen.
De hecho, un dato interesante es que la red no confirmará ninguna transacción nueva desde la misma dirección de wallet hasta que se confirme la primera que se envió.
Algunas wallets tienen la opción automatizada para acelerar la transacción. En caso contrario, puede seguir los siguientes pasos:
- Cree una nueva transacción con exactamente las mismas especificaciones de la transacción atascada.
- Vaya a las opciones avanzadas y aumente la tarifa de gas.
- Cambie el nonce de la transacción nueva por el nonce de la transacción pendiente.
Pensamientos finales
No siempre es necesario ejecutar una acción para que una transacción avance de la fase de pendiente. A veces, las transacciones que han quedado atascadas en esta fase se verificarán cuando las tarifas de red bajen. No obstante, esto puede llevar tiempo.
Por ende, en ese caso las personas pueden acelerar la transacción al aumentar las tarifas de gas a pagar o, incluso, puede cancelarla.
Sí, una vez que una persona origina una transacción tendrá una brecha determinada donde podrá simplemente cancelar y evitar que esta suceda. Esto es particularmente importante para aquellos que se equivocan en el monto de criptomonedas a enviar o la dirección a la que se enviarán.
No obstante, la brecha de tiempo es fundamental porque, una vez verificada, no hay nadie en el mundo que pueda revertirla y por supuesto, la brecha dependerá de la actividad en la red y las tarifas de gas que se ingresaron.
Te podría interesar: