Oyente de transacción de contrato inteligente

Tengo algunas dudas con respecto a los Smart Contracts . En primer lugar, sé que cuando implemente un contrato inteligente, este tendrá una dirección. Podemos suponer que implementé el contrato inteligente en blockchain. Entonces mis preguntas son:

  1. ¿Es cierto que solo se puede invocar un contrato inteligente si un usuario realiza una transacción hacia la dirección del contrato inteligente?

  2. Si un usuario A realiza una transacción hacia el usuario B, o C , y así sucesivamente, ¿puede ejecutarse automáticamente el contrato inteligente? (Tenga cuidado, la transacción no es hacia el contrato inteligente en sí).

  3. ¿Puede un contrato inteligente funcionar como un oyente en todas las transacciones de blockchain y ejecutarse solo si existen todas las condiciones necesarias para activarlo?

Respuestas (1)

  1. Correcto. Hay 2 tipos de cuentas en la cadena de bloques. Uno es EOA (cuentas de propiedad externa) y el otro son contratos. Los contratos pueden ser creados por contratos o por EOA, pero todas las transacciones deben originarse en EOA. Sin embargo, los EOA pueden llamar a contratos que llamen a otros contratos.

  2. Un contrato inteligente no puede ejecutarse a menos que un usuario o contrato inteligente haga una llamada directamente a él. Una forma de hacer lo original sería que el contrato fuera un contrato proxy que, además de hacer lo que el usuario original quería hacer, también hiciera otra cosa. El usuario entonces llamaría a la función en el contrato.

  3. Nuevamente, un contrato inteligente solo puede ser activado por transacciones externas o por otro contrato inteligente (que debe ser, alguien en la línea superior, llamado por una transacción externa). Lo que podría hacer en este caso es tener una secuencia de comandos que observe la cadena de bloques para que se cumplan estas condiciones, después de lo cual su secuencia de comandos crearía una transacción para el contrato inteligente.

¿Podría ser la transacción validada por los validadores utilizando un protocolo de consenso como PoS, PoW, PoA? ¿O el contrato inteligente es en sí mismo un mecanismo de consenso?
Las transacciones son validadas por los mineros/validadores. Los contratos no son el mecanismo de consenso.
Ok, entonces, ¿podría usar los mecanismos de consenso antes mencionados, verdad?
¿Qué quieres decir? Cuando envía una transacción a la red Ethereum, los nodos la validan y un minero la extrae. No tiene que validar la transacción usted mismo, a menos que necesite validar los datos enviados con una función cal.
Sí, estoy de acuerdo contigo, pero quiero decir que básicamente una transacción se extrae mediante un mecanismo de consenso como PoS, PoW o PoA, por lo que es importante especificar cuál es el mecanismo de consenso adoptado.
Todavía no estoy seguro de cuál es la pregunta. Si usa la red principal de ethereum en este momento, es un consenso de PoW. En un año más o menos, probablemente será PoS.