Cómo modificar o cancelar una transacción pendiente de Ethereum
Ethereum es una plataforma de software de código abierto basada en blockchain con miles de aplicaciones descentralizadas (DApps) que alimenta su criptomoneda nativa, Ether (ETH), que se puede enviar y recibir a nivel mundial sin la interferencia de terceros.
Ethereum, conceptualizado por primera vez en 2013 por el programador ruso-canadiense Vitalik Buterin, fue diseñado como una plataforma para DApps autoejecutables, permanentes e inmutables con casos de uso que varían desde finanzas hasta juegos y arte.
Las DApps a menudo se denominan contratos inteligentes, que son protocolos de transacción de Ethereum que realizan automáticamente ciertas funciones y acciones como el procesamiento de transacciones con condiciones y acuerdos predeterminados. Enviar una transacción, cancelarla o resolver una transacción pendiente de Ethereum son acciones relacionadas con el funcionamiento de los contratos inteligentes.
¿Qué es una transacción de Ethereum?
Las transacciones son instrucciones enviadas desde las cuentas firmadas criptográficamente.
La red de Ethereum admite dos tipos principales de transacciones: transacciones de implementación de contrato, el tipo de transacción sin un receptor y transacciones regulares, el tipo de transacción más simple que se usa para transferir ETH de una billetera a otra.
Una transacción de Ethereum regular enviada incluye el identificador del remitente o la firma generada cuando la clave privada del remitente firma la transacción y confirma que el remitente ha autorizado la transacción de Ethereum en particular. La dirección de recepción, una cantidad de ETH para transferir del remitente al destinatario, la información sobre la tarifa de transacción de Ethereum y un campo opcional para incluir datos arbitrarios son parte de una transacción de Ethereum regular enviada.
Las transacciones de Ethereum deben minarse para que sean válidas y requieren una tarifa del remitente.
Los mineros de Ethereum verifican las transacciones legítimas para recibir una recompensa por su trabajo en la creación de un nuevo ETH. Cuando un minero resuelve un acertijo criptográfico (matemático), una transacción se considera validada. Ethereum, como Bitcoin (BTC), tiene un sistema de prueba de trabajo (PoW) para prevenir ciberataques de un solo individuo o grupo.
La obligación de los usuarios de pagar una tarifa de transacción cuando usan la cadena de bloques protege la red Ethereum de tareas computacionales descuidadas o maliciosas, como que los usuarios envíen spam a la cadena de bloques con una sobrecarga de transacciones sin propósito.
Ciclo de vida de las transacciones de Ethereum
Una transacción de Ethereum pasa por una serie de estados, comenzando con el estado desconocido hasta que se confirma en un bloque.
Unknown: el estado desconocido se refiere a una transacción que la red no ha visto ni procesado.
Pending: cuando una transacción está en estado pendiente, está esperando que los mineros la recojan y la procesen, lo que se denomina transacción agrupada, también llamada “mempool”. Debido a que los mineros dan prioridad a mayores precios del gas, las transacciones con valores de gas más bajos pueden languidecer en la etapa pendiente durante un período prolongado. Es posible que las transacciones con los precios de gas más bajos nunca se recuperen, dejándolas “atascadas” en el estado pendiente eternamente.
In block: cuando un minero selecciona con éxito una transacción y la mina dentro de un bloque, avanza al estado en bloque. Las transacciones en bloque se denominan transacciones minadas. Si el bloque está bifurcado, una transacción en el bloque puede volver al estado pendiente. Cuando una transacción minada (es decir, una en el estado de bloque) es revertida por la red, se conoce como una transacción bifurcada.
Replaced: cuando ocurre cualquiera de las siguientes circunstancias, una transacción se puede mover del estado pending a replaced:
- Una nueva transacción con el mismo nonce del mismo remitente ingresa al estado en bloque, u
- Otra transacción con el mismo nonce y un precio del gas un 12% más alto entra en etapa pendiente, esta vez del mismo remitente.
Confirmaciones de transacciones de Ethereum
Las confirmaciones de transacciones de Ethereum son la cantidad de bloques creados desde el primer bloque que incluyó esta transacción.
Una transacción pendiente de Ethereum necesita recibir una cierta cantidad de confirmaciones. Cuanto más alta sea la tarifa del gas, mayor será la certeza de que la red Ethereum procesó y reconoció la transacción.
Los bloques recientes se pueden reorganizar, dando la impresión de que el procesamiento de la transacción ha fallado. Aun así, la transacción puede incluirse en otro bloque y sigue siendo válida. La probabilidad de reorganización disminuye con cada bloque minado posteriormente, es decir, cuanto más confirmaciones, más inmutable se vuelve la transacción.
Tarifas de transacción de Ethereum
Una tarifa de transacción es un incentivo que pagan los usuarios a los mineros de bloques. Se utiliza para enviar una transacción en particular en la cadena de bloques de Ethereum.
Las tarifas de transacción de la cadena de bloques de Ethereum también se denominan tarifas de gas, ya que están relacionadas con el gas, un mecanismo de precios utilizado en la red de Ethereum que se refiere al cálculo requerido para procesar la transacción por parte de un minero. Las tareas computacionales de una transacción se miden en términos de costo de gas.
Por otro lado, cada unidad de gas tiene un precio del gas expresado en ETH. Aunque la complejidad de una transacción en particular determina el costo del gas, los usuarios pueden establecer su propio precio y límite de gas, o la cantidad máxima de unidades de gas consumidas por la transacción.
¿Qué es un nonce?
Un nonce es una abreviatura de “número solo usado una vez”, que se refiere al número total de transacciones confirmadas enviadas desde la dirección de Ethereum dada.
Las billeteras de Ethereum pueden transmitir múltiples transacciones desde una cuenta sin mucha demora entre sí, lo que significa que un cálculo de nonce se considera un mecanismo necesario que determina qué transacción se procesa primero. Por lo general, las aplicaciones de billetera de Ethereum se encargan de la administración de nonce para los usuarios.
¿Cómo cancelar una transacción de Ethereum?
Hay dos métodos principales para cancelar una transacción pendiente de Ethereum: cancelación en la aplicación y configuración de un nonce personalizado.
Por lo general, las transacciones de Ethereum están pendientes durante horas o se atascan cuando los usuarios se envían con un precio de gas bajo. Por lo tanto, los usuarios a menudo encuentran necesario cambiar las transacciones de Ethereum.
Al resolver este problema, los usuarios deben recordar que la cancelación solo se puede intentar si la transacción aún está pendiente en la red. El primer paso que deben dar es verificar en un explorador de bloques si la transacción aún está pendiente. Principalmente, para pegar el hash de la transacción, también conocido como ID de transacción de Ethereum, y si un explorador de bloques dice “pendiente”, los usuarios aún pueden intentar cancelarlo.
La forma más fácil de cancelar una transacción de Ethereum atascada es la cancelación en la aplicación, que requiere que los usuarios salgan de la aplicación de billetera Ethereum y cierren su navegador, lo vuelvan a abrir y vuelvan a iniciar sesión en la aplicación.
Si estos pasos no resuelven el problema, la segunda forma vendrá al rescate.
Cancelar una transacción pendiente de Ethereum mediante el establecimiento de un nonce personalizado significa generar una transacción de 0 ETH con un alto precio de gas a la propia dirección del usuario para evitar que se bloquee una transacción anterior. Antes de enviar esta segunda transacción, los usuarios deben anotar el nonce que está utilizando la transacción pendiente original y luego reutilizar el mismo nonce que anotaron.
Si los usuarios tienen varias transacciones de Ethereum pendientes, preferiblemente comienzan con la más antigua o con el valor de nonce más bajo.
¿Cómo acelerar una transacción de Ethereum?
Los usuarios pueden acelerar una transacción lenta de Ethereum agregando gas. Este paso puede incentivar a los mineros de Ethereum a priorizarlo.
Si un usuario de Ethereum establece un precio de gas demasiado bajo, otros usuarios tienen la oportunidad de superar esta oferta inicial y la transacción permanecerá pendiente. Cuando la transacción se bloquea, la red no confirma ninguna transacción nueva desde la misma dirección de billetera hasta que el minero confirma la primera transacción.
En esta situación, los usuarios pueden optar por esperar hasta que la red esté dispuesta a procesar una transacción al precio establecido o volver a enviar la transacción original, pero con una tarifa de gas más alta. Hacer clic en el botón “acelerar” en tu billetera Ethreum debería permitir que la transacción se procese más rápido.
Si el paso anterior no funcionó, los usuarios pueden ir a la pestaña avanzada para establecer el precio del gas manualmente.
Después de todo, se recomienda a los usuarios que busquen la transacción en el explorador de blockchain publicando su hash para ver si se procesó correctamente. Si la transacción no aparece de inmediato, deberán esperar unos minutos y actualizar una página.
¿Se pueden revertir las transacciones de Ethereum?
Las billeteras Ethereum no pueden revertir transacciones Ethereum ya completadas.
Cuando los usuarios de Ethereum envían fondos accidentalmente a la dirección incorrecta o envían la cantidad incorrecta de ETH, pueden cancelar la transacción mientras aún está pendiente. Cuando la transacción se confirma y se muestra como “Exitosa”, lo que significa que se ha agregado al siguiente bloque, no se puede revertir. La cadena de bloques de Ethereum está diseñada como inmutable, por lo que los bloques de datos ingresados son irreversibles. Sabiendo esto, es esencial asegurarse de que los detalles de la transacción sean correctos antes de hacer clic en el botón enviar.
Finalmente, vale la pena señalar que muchas startups de blockchain ya han desarrollado mecanismos que permitirían a los usuarios revertir las transacciones de Ethereum.