Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > XMR > Info

​Un artículo para conocer nuevos tipos de transacciones en Ethereum

Author:

Time:

Hay diferentes tipos de transacciones en Ethereum, por ejemplo, enviar ETH a una dirección, implementar un contrato, etc. Antes de la actualización de la red de Berlín, había cuatro tipos de transacciones diferentes en Ethereum:

Transacciones regulares con direcciones de recepción, campos de datos, etc.;

Para transacciones de implementación de contrato sin direcciones de destino, el campo de datos se utiliza para códigos de contrato;

Una transacción con una firma de valor v, pero sin incluir el ID de la cadena (pre-EIP-155);

Una transacción con una firma de valor v, pero que incluye el ID de la cadena.

Diferentes clientes, bibliotecas y otras herramientas de Ethereum analizan cada transacción y comprenden cada tipo de transacción. Si bien solo hay cuatro tipos de transacciones, hay muchas complejidades y situaciones con las que lidiar. Los técnicos deben verificar todos los campos de la transacción para determinar qué tipo de transacción es. Esto es clave para los nuevos tipos de transacciones, como los tipos de transacciones anteriores a EIP-2718, como las meta transacciones y las transacciones multisig.

Ethereum ahora tiene un nuevo estándar de transacción, definido y creado por el desarrollador Micah Zoltu en EIP-2718. Los sobres de transacciones mecanografiados forman la base de algunas y otras características sin explotar en Ethereum.

En este artículo detallaremos algunos de los estándares incluidos en la actualización de Berlín, así como otros que pueden incluirse en el futuro.

Ethereum tiene un formato de transacción. Cada transacción incluye un nonce, precio de gas, límite de gas, dirección de destino, valor, datos, v, r y s. Estos campos están codificados en RLP de la siguiente manera:

RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])

EIP-2718 define un nuevo sobre amplio para transacciones mecanografiadas. En el nuevo estándar, las transacciones se ven así:

TransactionType || TransactionPayload

donde los campos se definen como:

Tipo de transacción: un número entre 0 y 0x7f, hay 128 tipos de transacciones posibles en total.

Carga útil de la transacción: una matriz de bytes arbitraria definida por el tipo de transacción.

Estos campos se concatenan y combinan para formar una transacción escrita. El estándar no describe el formato de la carga útil de la transacción; puede ser cualquier serie arbitraria de bytes, codificados por los codificadores definidos por los nuevos tipos de transacciones (por ejemplo, RLP, SSZ, etc.). Se eligió la concatenación de bytes simple porque leer el primer byte de una matriz de bytes no requiere bibliotecas ni herramientas: no necesita un analizador RLP o SSZ para verificar el tipo de transacción.

Punto de vista: BTC es el único ETH no está calificado para figurar como el primer escalón con BTC: el 27 de diciembre, el usuario de Weibo "BCH lover Bruce Lee" dijo a través de Weibo que había un dicho anterior que decía que ETH no debería ser considerado como la corriente principal En cambio, debería incluirse en el primer escalón como BTC. Sin embargo, al observar el desempeño reciente de ETH, cuando XRP se desplomó, ETH cayó como otras monedas; cuando XRP se recuperó, ETH aumentó como otras monedas; cuando BTC aumentó, ETH tembló como otras monedas. Además, Grayscale aumenta sus tenencias de BTC todos los días, pero no ha aumentado sus tenencias de ETH durante más de diez días consecutivos. Entonces, siento que ETH todavía no está calificado para figurar como el primer escalón con BTC, y BTC sigue siendo el único. La probabilidad de que el valor de mercado de ETH supere a BTC en esta ronda del mercado alcista debería ser muy baja. A juzgar por el desempeño de Grayscale F4, el gran pastel es especial. No importa cuál sea la situación, aumentará de manera constante y Grayscale continuará aumentando sus participaciones. Sin embargo, ETH se desempeñó relativamente bien hace algún tiempo y básicamente ha estado de lado recientemente. Y LTC ha subido muy bien durante este tiempo. Las instituciones parecen venir por turnos, después de tirar de ETH y luego de tirar de LTC, se estima que pronto será el turno de BCH. [2020/12/27 16:39:05]

Este nuevo enfoque permite que los nuevos EIP introduzcan tipos de transacciones sin introducir una complejidad innecesaria en los formatos de transacciones existentes, y se vuelve más fácil diferenciar entre diferentes transacciones utilizando diferentes herramientas de Ethereum (clientes, bibliotecas).

Un buen ejemplo de complejidad añadida es EIP-155, que introduce la protección de respuesta mediante el uso de ID de cadena en las transacciones. Agregar un nuevo campo a los parámetros de la transacción rompería la compatibilidad con versiones anteriores, por lo que el ID de la cadena se codifica en el parámetro de recuperación (v) de la firma de la transacción (v). Con EIP-2718, simplemente podemos crear un nuevo tipo de transacción para mantener la compatibilidad con versiones anteriores.

Un gran tema de EIP-2718 es la compatibilidad con versiones anteriores. EIP-2718 está en modo de compatibilidad con versiones anteriores completas, lo que significa que cualquier herramienta, biblioteca, billetera (hardware) y transacciones existentes pueden usarlo, pero no podrán usar las nuevas "características" proporcionadas por EIP-2718 y el estándar. . El antiguo formato de transacción (ahora llamado transacciones sin procesar) sigue siendo válido para nuevas transacciones en la red Ethereum.

Se eligió el número máximo de nuevos tipos de transacciones, 0x7f, para mantener la compatibilidad con versiones anteriores de estas transacciones antiguas. Las transacciones codificadas con RLP siempre comienzan con un byte que es l, y el parámetro es mayor o igual a 0xc0, por lo que las transacciones escritas nunca colisionarán con las transacciones antiguas, y las transacciones escritas se pueden distinguir simplemente comprobando el primer byte y las transacciones antiguas.

EIP-2718 en sí mismo no define ningún tipo de transacción, pero hay algunas propuestas para el nuevo estándar:

EIP-1559: Cambios en la tarifa del mercado de la cadena ETH1.0;

EIP-2711: Patrocinio, vencimiento y transacciones por lotes, también creado por el desarrollador Micah Zoltu, razón por la cual se creó EIP-2718;

EIP-2930: Listas de acceso opcionales.

Algunos de estos criterios se detallan más adelante.

Los nuevos tipos de transacciones pueden admitir la integración de funciones que, de lo contrario, se manejarían a través de contratos de Solidity o soluciones de terceros. Tomemos, por ejemplo, una oferta que está a punto de caducar. En las soluciones existentes, puede enviar fondos a un contrato de Solidity, firmar una transacción y enviar esa transacción a un nodo dedicado para que la transacción tenga parámetros adicionales, como una fecha de vencimiento. Luego, los nodos procesan el envío de la transacción y se aseguran de que se ejecute antes de la fecha de vencimiento establecida; de lo contrario, la transacción no se transmitirá. Algunas dApps y contratos (por ejemplo, Uniswap) tienen esto incorporado, pero para la mayoría de las transacciones, no es fácil de lograr.

EIP-2711 agrega esta funcionalidad de forma nativa a la red Ethereum, al tiempo que mantiene la compatibilidad con versiones anteriores con transacciones de tipo primitivo (como se describe en la sección anterior). No requiere contratos inteligentes o nodos dedicados para ejecutarse. Sin embargo, actualmente EIP-2711 todavía es un borrador y no está claro si este EIP se unirá a la red Ethereum en el corto plazo. También se puede dividir en varios EIP más pequeños (como EIP-3074).

En EIP-1559, la forma en que funciona el gas ha cambiado significativamente. En lugar de pagar el gas completo a los mineros, se quema una parte del gas. No detallamos todos los cambios en EIP-1559, pero especifica un nuevo formato de transacción:

0x02 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])

Los cambios más notables son:

El precio del gas ha sido reemplazado por "tarifa de prioridad más alta por gas" y "tarifa máxima por gas".

El ID de la cadena se codifica por separado en lugar de incluirse en el valor v de la firma. Básicamente, esto reemplaza a EIP-155 con una implementación más simple.

El valor de la firma v ahora es un bit de paridad simple ("paridad de la firma Y") que es 0 o 1, según el punto de la curva elíptica que se deba usar.

EIP-1559 también proporciona una forma de especificar listas de acceso basadas en EIP-2930. Esto puede reducir el costo del gas de las transacciones.

Dado que EIP-1559 realiza cambios significativos en el funcionamiento de las tarifas de gas, no es directamente compatible con las transacciones sin procesar. Para mantener la compatibilidad con versiones anteriores, EIP-1559 describe un método para actualizar transacciones sin procesar a transacciones compatibles con EIP-1559. Lo hace utilizando el precio del gas crudo como la tarifa de prioridad más alta y la tarifa de gas más alta por gas.

Las metatransacciones han existido durante algunos años, pero hasta ahora todavía requerían contratos inteligentes. Al igual que con las transacciones que vencen, esto requiere enviar ETH a un contrato inteligente, que debe admitir específicamente las metatransacciones.

EIP-2711 permite meta transacciones nativas (llamadas transacciones patrocinadas) y transacciones por lotes sin necesidad de contratos inteligentes. Se define un nuevo formato de transacción con el tipo de transacción 0x02 (aunque esto está sujeto a cambios ya que EIP-1559 usa el mismo tipo de transacción). La transacción es la siguiente:

0x02 || RLP([...SenderPayload, ...SenderSignature, ...GasPayerPayload, ...GasPayerSignature])

Básicamente, EIP-2711 incluye una carga útil (opcional) y la firma del pagador de gas. Esta cuenta se utilizará para pagar la tarifa de gas en la transacción. Por ejemplo, los tokens ERC-20 se pueden enviar desde una dirección sin que la dirección contenga ETH. La carga útil del remitente, la firma, etc. se definen en función del subtipo de transacción. Por ejemplo, para una transacción con el tipo de transacción 1, la carga útil del remitente se define como:

[1, ChildTransaction[], nonce, ChainId, ValidUntil, gasLimit, gasPrice]

La transacción secundaria se define como: dirección de envío, valor, datos. Esto hace posible especificar múltiples direcciones, valores y datos en una sola transacción. Por ejemplo, esto se puede usar para invocar aprobaciones y transferencias ERC-20 en una sola transacción.

Para obtener una descripción detallada de todos los subtipos de transacciones disponibles en EIP-2711, se recomienda a los lectores leer la documentación oficial.

Las transacciones mecanografiadas brindan muchas posibilidades a la red Ethereum. Se pueden crear sin agregar mucha complejidad a los clientes, bibliotecas y otras herramientas disponibles de Ethereum.

Actualmente, los nuevos tipos de transacciones no se usan mucho, ya que los EIP se incluyeron recientemente en la red, pero hay algunos EIP emocionantes en desarrollo, como EIP-2711, que agrega transacciones vencidas, transacciones por lotes y transacciones patrocinadas (también conocidas como metatransacciones). y otras características. Ahora se pueden definir nuevos tipos de transacciones en Ethereum, por lo que se pueden crear fácilmente otros EIP.

Este artículo es de Mycrypto, el autor original: Maarten Zuidhoorn.

Tags:

XMR
Primer lanzamiento | Oficina de inteligencia de Ouyi OKEx: La subasta de Kusama Parachain llegará pronto, interpretación detallada de la estrategia de licitación de cada parachain

Este artículo fue creado originalmente por Ouyi OKEX y autorizado por Jinse Finance para su publicación. Hemos estado esperando la subasta de parachain de Kusama durante más de medio año.

Prueba de Honestidad POH: Solución Probabilística Realizable para Computación Verificable

Con el rápido desarrollo de Internet y la tecnología de cadena de bloques, la prosperidad de la cadena industrial y el rápido desarrollo de la economía de plataforma.

Cuando la criptomoneda se desplomó, la plataforma comercial Coinbase aún mantuvo un fuerte impulso de crecimiento

A pesar de la reciente caída colectiva de las criptomonedas, Coinbase, una plataforma de comercio de criptomonedas que se incluyó en la lista a mediados de abril.

​Un artículo para conocer nuevos tipos de transacciones en Ethereum

Hay diferentes tipos de transacciones en Ethereum, por ejemplo, enviar ETH a una dirección, implementar un contrato, etc. Antes de la actualización de la red de Berlín.

Jiang Zhuoer: La estabilidad lo supera todo

Aprender el sentido común ZZ más básico es de gran beneficio para la inversión1. El más alto nivel de supervisión, el propósito más fundamental es mantener la estabilidad social, es decir.

El mercado monetario de China: la moneda digital del banco central y el futuro de la política monetaria

El artículo analiza las funciones clave de la moneda digital del banco central (CBDC), centrándose en si los pagos de CBDC deben basarse en cuentas o tokens del banco central.

ads