Cuando alguien simplemente envía ETH de una dirección a otra, y suponiendo que esa persona no incluye un mensaje personalizado en la transacción, ¿cuál es exactamente el mensaje que se envía en la red que se usa para firmar la transacción?
Al leer la base de cómo funciona la firma de mensajes, descubrí que se usa el siguiente método y fórmula:
sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
... pero si el firmante no incluye un mensaje y solo envía ETH, o tal vez solo usa MetaMask para enviar fondos, ¿en qué se convierte exactamente el mensaje?
(Nota al margen: hacer una decodificación de transacción muestra que el campo de "datos" es simplemente "0x", pero no estoy seguro de si este campo de datos también está correlacionado con el mensaje en sí o no).
Toda transacción de Ethereum contiene un data
campo. Este campo puede ser
Vacío
Una carga útil para llamar a una función de contrato inteligente
Cualquier mensaje dado por el usuario
La carga útil en el campo de datos está separada para firmar un mensaje. Un mensaje firmado se puede transferir fuera de la cadena, como correo electrónico y copiar y pegar, y no necesita ser parte de una transacción.
fulco prinssen
mikko ohtamaa