Al llamar a una función de contrato inteligente, ¿a quién se le paga y cuánto paga la persona que llama?

Esta es una pregunta extendida a ¿Qué es el "gasolina" y la tarifa de transacción en Ethereum? .

¿A quién se le paga y cuánto paga la persona que llama?

Hagamos algunas suposiciones:

  • Hay una función Fque cuesta 1,000 gas;
  • Hay 2 mineros, M1y M2;
    • Sus precios del gas son 1 GWei/gasy 2 GWei/gasrespectivamente;
  • Hay una dirección externa A.

Las preguntas son:

  • Cuando una persona Aque llama invoca F, ¿cuánto Adebe pagar (sin tener en cuenta las tarifas de transferencia de datos)?
  • ¿Es el total ( 3 kGWei) o lo determina quien lo extrae primero ( 1 kGWeio 2 kGWei)?
  • Si M1lo extrae primero, ¿ M2solo confiará en el resultado o lo hará todo de nuevo para verificar que sea correcto?
    • Entonces M2también debería cobrar, ¿no?
  • ¿Se almacenará el resultado en todos los nodos completos, o solo en los nodos mineros, o solo en los nodos mineros que estén "dispuestos" a almacenarlo (con el mismo precio de la gasolina)?
    • Entonces, ¿también deberían pagarse otros nodos?

Respuestas (1)

Aespecifica un precio de gas.

M1y M2decidir si minar Ala transacción si el precio del gas es lo suficientemente alto. Si Ael precio del gas de fuera de 1,5 GWei/gas, entonces solo M1elegiría minar Ala transacción de (ya que M2quiere 2 GWei/gas).

Asiempre paga 1000 (dado que Fcuesta 1000 el gas) multiplicado por el precio del gas que especificó; los mineros no pueden cambiar la tarifa de transacción Aque paga y solo pueden elegir si incluir Ala transacción en un bloque.

Solo el minero ganador recibe la tarifa de transacción pagada por A. Otros mineros y todos los demás nodos (completos) tienen que verificar la transacción y almacenar sus resultados: sí, es injusto para ellos y parte del problema relacionado con los incentivos y la escalabilidad.

Más información, https://blog.ethereum.org/2014/02/01/on-transaction-fees-and-the-falacy-of-market-based-solutions

Para cada transacción individual que incluye un minero, los costos no solo corren a cargo de ese minero, sino de cada nodo en toda la red.

Aunque, solo para aclarar, no es tan injusto como parece, ya que otros mineros necesitan esos bloques para verificar las nuevas transacciones por las que cobran tarifas, por lo que realmente les conviene validar y almacenar los bloques de los otros mineros también. El principal problema es que el costo sigue creciendo con el tiempo, mientras que los incentivos siguen siendo aproximadamente los mismos.