La página oficial de Ethereum define una transacción de la siguiente manera:
“Las transacciones son instrucciones firmadas criptográficamente que se emiten desde cuentas. Una cuenta iniciará una transacción para actualizar el estado de la red Ethereum. La transacción más sencilla es transferir ETH de una cuenta a otra.”
Excelente. Cortito y al pie. Instrucción es de esas palabras abstractas que se usan para muchas cosas. Pero imaginátelo como cuando le decís a tu horda de Paladines que ataquen el castillo enemigo en el Age of Empires. Es una instrucción. Acá es lo mismo, solo que en vez de caballitos y espaditas lo que haces es mover balances.
La instrucción debe contener información acerca de qué hacer. En el Age tenés que seleccionar a tus paladines y luego clickear el castillo para que vayan como desaforados. Básicamente le dijiste al juego: con ESTOS locos, ataca ESTE castillo. En Ethereum, esa información está dada por los campos de la transacción.
Campos de una transacción en Ethereum
Una transacción enviada debe obtener la siguiente información:
firma
: la firma demuestra que quien manda la transacción es la cuenta dueña de los fondos. Como una autorización. Se genera de la clave privada. Ya vamos a entrar en detalle más adelante, atenti porque es importante.to
: La cuenta destino. Puede ser una EOA, en cuyo caso se transfiere el valor indicado o un contrato. Si la cuenta destino es un contrato, la transacción va a ejecutar su código. Por eso cuando firmas una transacción para hacer un swap o algo así pagás más gas que para mandar ETH, porque estás ejecutando el código del contrato del swap.value
: esta es fácil, je.data
: campo opcional. El famoso “comentarios”. Vamos a entrar en detalle más adelante.gasLimit
: el límite de unidades de gas que estás dispuesto a pagar por la transacción. Siguiendo la típica metáfora de la nafta, son los litros de nafta que le ponés a la transacción. Lo interesante es que cada unidad de gas representa pasos computacionales. Es decir, cada paso computacional posible tiene un precio. Imaginalo como que arrancar el motor cueste 1litro de nafta, frenar cueste 0.5 litros, hacer 1 km a 60km cueste 2 litros y hacer 1 km a 240 es ilegal no lo hagas por favor.maxFeePerGas
: el precio máximo que vas a pagar por cada unidad de gas. Como si fuese el precio máximo de cada litro de nafta.maxPriorityFeePerGas
: cuánto vas a dar como recompensa al minero. Como cuando en Rappi podés setear una propina. Acordate de esta metáfora porque quizá la reciclemos. Ojo, acá seteas un fee per gas, es decir; no le pagas XXX unidades de gas como propina, sino que le pagas XXX por cada unidad de gas que ejecuta.nonce
: quiere decir “number used once”; es una especie de contador. Tu primer transacción va tener nonce en 0, después en 1, después en 2 y así.
Se va a ver algo así:
Excelente, ahora, cómo se crea esta transacción? ¿De dónde salen todos estos datos?¿Cómo se hace para que a partir de estos numeritos Pepito se pueda comprar una shitcoin con la plata que el abuelo tenía ahorrada?
Ciclo de una transacción de Ethereum
Llegamos a la parte jugosa. Pero también estamos casi al final, así que no nos podemos extender mucho. La buena noticia es que tenemos tiempo. Ahora vamos a introducir brevemente el ciclo de una transacción de Ethereum y en las próximas semanas vamos a ir viendo cada paso en detalle.
- Una EOA crea la transacción, con todos los campos e info que acabamos de ver.
- Se firma la transacción y se crea un transaction hash.
- Se envía la transacción a la red (Santi, que carajo significa la red? Bueno paciencia che que lo vamos a ver de a poco).
- Se agrega la transacción a un bloque y se envía el bloque a….. la red.
Sí si, ya sé. Las mismas definiciones abstractas de siempre. Se crea la transacción, se firma y se manda a la red. Pero no te preocupes. En los próximos artículos vamos a estar entrando en detalle en cada una de estas partes del ciclo para que quede super claro.
Por ahora es importante haber dejado sentadas las bases. No te olvides que Roma no se construyó en un día. Ninguna ciudad de hecho. Salvo que todo esto sea una simulación. Quizá miles de millones de años en este universo que te contiene a vos, a mí, a los libros que escribió Cortazar y a otras ciudades tan increíbles como Roma solamente representen un par de segundos en el tiempo real.
Quizá todo sea una gran simulación que una computadora super inteligente ejecuta en instantes demasiado efímeros para que nuestro limitado sistema encefálico pueda comprenderlos. Habría que preguntarle a Vitalik, o a Mick Jagger. Alguno de ellos dos tiene que saber. Son personas muy sabias. La última vez que charlamos me recomendaron que te recomiende que sigas aprendiendo en nuestro canal de Youtube, o que hagas alguno de nuestros cursos.