Digamos que el par A envía una transacción al contrato. ¿Cómo podrán ver esto el par B y el par C?
Los datos de las transacciones son visibles para todos los nodos, esto es necesario para que puedan ejecutar los contratos. Por lo tanto, no se necesita encriptación para enviar una transacción.
Ver también:
Tu preguntaste:
... cómo ocurre el proceso de firma. ¿Puedo tener una pequeña explicación profunda al respecto?
Si desea una explicación detallada, consulte el Apéndice F del Libro amarillo , donde se describe en detalle el proceso de firma y verificación de transacciones.
En resumen, una transacción que envía es más o menos en texto sin formato; no está encriptado. Sin embargo, va acompañado de una firma sobre los datos de la transacción. Esta firma se crea a partir de los datos de la transacción y su clave privada .
Cuando un nodo recibe su transacción, puede procesar la firma usando una técnica llamada ECDSARECOVER
. El resultado de esto es su clave pública , y la dirección de su cuenta se genera directamente a partir de su clave pública (no es un secreto). Si la dirección generada a partir de la clave pública recuperada coincide con la dirección "de" en su transacción, entonces sabemos que toda la transacción se firmó con una clave privada correcta para su cuenta.
Los contratos no tienen claves privadas y, por lo tanto, no pueden enviar transacciones. En cambio, existen otros mecanismos para que los contratos se llamen entre sí o envíen valor internamente dentro de la EVM.
Budhaditya Dutta
atfornes