Las transacciones internas se utilizan a menudo para compensar o liquidar saldos en la plataforma Ethereum . Se pueden contrastar con las transacciones típicas, que tienen como objetivo mover tokens de una cuenta a otra. Este artículo se enfoca en discutir los siguientes temas para las transacciones internas de ETH:
- ¿Qué son las transacciones internas de ETH?
- Características de las Transacciones Internas.
- ¿Por qué las transacciones internas no son visibles en Wallet?
- El costo del gas de transacción interna.
- ¿Cómo afectan las transacciones internas al saldo de Wallet?
- Transacciones Internas vs Transacciones Externas.
- Conclusión.
Comencemos discutiendo cada uno de estos temas en detalle.
¿Qué son las transacciones internas de ETH?
Las transacciones internas tienen varios usos, tales como:
- Creación de un saldo de tokens para nuevas cuentas creadas en string
- Compensar o liquidar saldos en la plataforma Ethereum
- Creación automática de tokens locales para contratos implementados cuando se solicitan por primera vez
- Publicar contratos aprobados en la string de bloques y transferir la propiedad de los mismos, sin realmente «implementarlos» localmente copiando el código en su máquina. Esto se denomina modo de «aprobación» y se usa con mayor frecuencia junto con configuraciones de prueba automatizadas.
Sin embargo, todos estos usos tienen en común el hecho de que, en última instancia, cambian el saldo de tokens en algunas cuentas. No envían tokens de una cuenta a otra. Le permiten cambiar un saldo simplemente creando una transacción interna contra el código de contrato de esa cuenta.
Características de las transacciones internas
- Las transacciones internas no se transmiten a la string de bloques de la misma manera que lo hacen las transacciones normales.
- En su lugar, se reflejan inmediatamente en el estado y el saldo de la cuenta correspondiente en el Node Ethereum, mientras que las transacciones normales deben esperar a que se extraiga un bloque y se propague a través de la red antes de poder verse.
- Los saldos de transacciones internas no se compensan con cada bloque. Permanecen en su lugar mientras una transacción aún esté activa o hasta que se borre explícitamente mediante otra transacción interna.
- Esto es necesario porque las transacciones internas tienen efectos secundarios en el estado local que no serían deseables si se eliminaran automáticamente después de cada bloque.
- Las transacciones internas no siempre son seguras de intentar.
- Sin embargo, las transacciones internas son completamente atómicas: pueden comprometerse en cualquier momento y revertirse en cualquier momento. Esto significa que las transacciones internas no se pueden sobrescribir con transacciones futuras; no se ven afectados por bifurcaciones blandas u otros tipos de cambios en las reglas de consenso de la string de bloques.
¿Por qué las transacciones internas no son visibles en Wallet?
Las transacciones internas no son visibles en la billetera porque no se envían a la red descentralizada. Para usar bitcoin no es necesario ser parte de una red peer-to-peer descentralizada, pero proporciona algunos beneficios:
- Uno puede ver cuánto dinero tienen los demás.
- También se puede elegir quién puede enviar bitcoins a su dirección. Pero hay una compensación: si el usuario no es parte de esa red, nadie puede verificar que el usuario tenga permiso para usar este dinero y nadie sabrá nunca cuánto dinero tiene la dirección del usuario.
Todas las transacciones internas deben tener un testigo:
- Todas las transacciones internas deben tener un testigo, de lo contrario, la transacción no puede comprometerse con la string de bloques y puede fallar cuando se intenta en el proceso de consenso de la red.
- El testigo es simplemente una función que devuelve verdadero para el éxito o falso para el rechazo. Se especifica en Ethereum usando la palabra clave ‘_W’ para indicar una función privada.
- El testigo debe devolver verdadero para realizar una transacción interna; de lo contrario, fallará cuando se intente en el proceso de consenso. La razón de esto es que las transacciones internas tienen efectos colaterales en el estado local, que podrían ser considerados inválidos por una transacción derivada de ella.
El costo del gas de la transacción interna
Las transacciones internas son procesadas por la red de Nodes de Ethereum de la misma manera que las transacciones normales, almacenando sus encabezados de transacción y luego ejecutando su código para finalizar los cambios de estado relevantes.
- Esto significa que las transacciones internas tienen un costo de gas al igual que las transacciones normales, pero, dado que el gas se paga solo cuando la transacción se extrae con éxito en la string principal, las transacciones internas tienen un costo de gas más bajo de lo normal.
- Como ocurre con la mayoría de las cosas en Ethereum, este bajo riesgo tiene un precio: las transacciones internas pueden fallar porque no pagaron suficiente gasolina.
- Si esto sucede, revierten sus cambios de estado y devuelven sus tokens a sus valores originales.
¿Cómo afectan las transacciones internas al saldo de Wallet?
- Siempre es seguro probar las transacciones internas porque siempre revertirán sus cambios de estado si no se confirman.
- Las transacciones internas eliminan automáticamente todos los efectos secundarios existentes cuando intenta compensarlos o liquidarlos, por lo que solo necesita pagar una transacción una vez para que tenga éxito. Esto no es cierto para las transacciones normales, que pueden repetirse varias veces contra su cuenta.
- Es importante que las transacciones internas nunca se consideren «confirmadas» (es decir, su estado está bloqueado en la string principal) mientras tengan efectos secundarios. En un entorno de string única, esto podría llevar a que las transacciones internas se consideren confirmadas cuando no han eliminado los efectos secundarios que luego hacen que se reviertan. Este riesgo es aún mayor en un entorno multistring, donde es difícil o imposible que los Nodes sepan si un estado despejado está presente en cualquier bifurcación que no sea la principal.
Transacciones Internas vs Transacciones Externas
A continuación se presentan algunas de las diferencias entre las transacciones internas y las transacciones externas.
Transacciones Internas |
Transacciones Externas |
---|---|
Las transacciones internas tienen lugar dentro de un libro mayor. | Las transacciones externas tienen lugar entre diferentes libros mayores. |
Las transacciones internas son transacciones realizadas dentro de la EVM y tienen como objetivo el procesamiento de datos. | Las transacciones externas, por otro lado, se ocupan del envío de valor de un usuario a otro. |
Las transacciones internas de Ethereum le permiten enviar contratos inteligentes de una billetera a otra sin tener que usar un intercambio. | Las transacciones externas deben tenerse en cuenta, ya que le permiten enviar dinero desde su billetera a la billetera de otra persona. El contrato del remitente y el destinatario debe almacenarse en la EVM. |
La diferencia entre las transacciones internas y las transacciones externas es que las transacciones internas se realizan dentro de un libro mayor y las transacciones externas se realizan entre diferentes libros mayores.
- Si una criptomoneda se considera una transacción Interna sería una transacción privada o interna, mientras que si se considera una transacción Externa sería una transacción externa.
- Por ejemplo, si Alice quiere vender a Bob en Amazon, Bob puede estar buscando un mercado basado en Blockchain como Amazon, donde puede comprarle el producto a Alice de forma más económica y sencilla.
Conclusión
Las transacciones internas son una herramienta desaprovechada para interactuar con la string de bloques. Pueden hacer que sus interacciones con los contratos implementados sean mucho más fáciles (especialmente junto con los canales estatales) y le permiten compensar o liquidar saldos en la plataforma sin correr los riesgos asociados con las transacciones normales en string. Las transacciones internas también son necesarias para usar varias funciones avanzadas de bajo nivel, como la aprobación automática de contratos y la codificación ABI.
Publicación traducida automáticamente
Artículo escrito por pittamand3tx y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA