Wenn jemand ETH einfach von einer Adresse zu einer anderen sendet und davon ausgeht, dass diese Person keine benutzerdefinierte Nachricht in die Transaktion einfügt, was genau ist dann die Nachricht, die im Netzwerk gesendet wird, um die Transaktion zu signieren?
Beim Lesen der Grundlagen zur Funktionsweise der Nachrichtensignatur habe ich festgestellt, dass die folgende Methode und Formel verwendet wird:
sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
... aber wenn der Unterzeichner keine Nachricht enthält und nur ETH sendet oder vielleicht nur MetaMask verwendet, um Geld zu senden, was genau wird die Nachricht?
(Nebenbemerkung: Eine Transaktionsdecodierung zeigt, dass das Feld „Daten“ einfach „0x“ ist, aber nicht sicher ist, ob dieses Datenfeld auch mit der Nachricht selbst korreliert ist oder nicht).
Alle Ethereum-Transaktionen enthalten ein data
Feld. Dieses Feld kann sein
Leer
Eine Nutzlast zum Aufrufen einer Smart-Contract-Funktion
Jede vom Benutzer gegebene Nachricht
Die Payload im Datenfeld ist separat zum Signieren einer Nachricht. Eine signierte Nachricht kann wie E-Mail und CopyPaste Offchain übertragen werden und muss nicht Teil einer Transaktion sein.
Fulco Prinzen
Mikko Ohtamaa