¿Las cuentas de propiedad externa envían mensajes/transacciones entre sí? ¿Por qué un contrato no firma su mensaje?

Pregunta 1: ¿Puede un titular de cuenta enviar Ether a otro sin usar un contrato inteligente?

Pregunta 2: ¿Hay alguna necesidad de que dos cuentas se envíen mensajes o transacciones directamente entre sí?


  • una transacción: mensaje firmado: enviado por una cuenta de propiedad externa.
  • El mensaje se envía por contrato a otro contrato.

Pero un contrato puede llamar a otras funciones de contrato y cambiar el estado del segundo contrato. Entonces, la pregunta es:

Pregunta 3: ¿Por qué un contrato no necesita firmar un mensaje que envía?

1. Sí, puede usar directamente sendTransaction2. No entiendo exactamente esto, pero 2 cuentas pueden enviar transacciones sin contrato. 3. Porque los contratos se rigen por EoA's. Entonces, los EOA regulan cómo funciona un contrato,

Respuestas (1)

Una cuenta externa envía ethera otra cuenta externa o a un contrato inteligente de manera idéntica, iniciando y firmando la transacción. El contrato inteligente solo recibirá el ethersi la función llamada está marcada payable.

En el caso de una cuenta externa enviando a otra cuenta externa, las ethertransferencias sencillas (siempre y cuando el remitente tenga el dinero), no hay problema.

Un contrato inteligente puede enviar ether, pero ese envío debe haberse iniciado desde una cuenta externa para empezar (en otras palabras, los contratos inteligentes no pueden iniciar transacciones). En el pasado, la gente llamaba a este tipo de envío un internal transaction, pero en estos días se llama message call, message, call, etc.

Sin embargo, tenga cuidado con la palabra "mensaje". Puedo iniciar una transacción externa a otra cuenta externa e insertar un messagerelleno de texto en el inputcampo. Entonces mi amigo puede leer ese "mensaje".

El otro tipo del que messageescuchará es el que messageproviene de un contrato inteligente.

En cuanto a "¿por qué no es necesario firmar un contrato...", piénselo de esta manera: el contrato inteligente es autonomous. No hay nadie allí para firmar nada. Además, el contrato inteligente no puede iniciar transacciones. Además, si un contrato inteligente pudiera iniciar transacciones y firmarlas, su clave privada necesariamente tendría que almacenarse en la cadena de bloques. Todos podrían verlo, cualquiera podría robarlo, y sería fácil hacerse pasar por el contrato inteligente, por lo que no funcionaría en ningún caso.