Frage 1: Kann ein Kontoinhaber Ether an einen anderen senden, ohne einen Smart Contract zu verwenden?
Frage 2: Gibt es eine Notwendigkeit, dass zwei Konten Nachrichten/Transaktionen direkt aneinander senden?
Ein Vertrag kann jedoch andere Vertragsfunktionen aufrufen und den Status des 2. Vertrags ändern. Die Frage ist also:
Frage 3: Warum muss ein Vertrag eine gesendete Nachricht nicht signieren?
Ein externes Konto sendet ether
auf identische Weise entweder an ein anderes externes Konto oder einen Smart Contract – indem es eine Unterzeichnung der Transaktion einleitet. Der Smart Contract erhält die nur ether
, wenn die aufgerufene Funktion markiert ist payable
.
Bei einem externen Konto, das auf ein anderes externes Konto sendet, ist das ether
einfach zu überweisen (solange der Absender das Geld hat), kein Problem.
Ein Smart Contract kann senden ether
, aber dieser Versand muss zunächst von einem externen Konto initiiert worden sein (mit anderen Worten, Smart Contracts können keine Transaktionen initiieren). In der Vergangenheit nannten die Leute diese Art des Sendens ein internal transaction
, aber heutzutage heißt es a message call
, message
, call
, usw.
Seien Sie jedoch vorsichtig mit dem Wort „Nachricht“. Ich kann eine externe Transaktion auf ein anderes externes Konto initiieren und eine einfügen, message
indem ich Text in das input
Feld einfüge. Mein Freund kann dann diese "Nachricht" lesen.
Der andere Typ von message
Ihnen, von dem Sie hören werden, ist message
ein Smart Contract.
Was "warum muss ein Vertrag nicht unterschrieben werden ..." angeht, stellen Sie sich das so vor: Der Smart Contract ist autonomous
. Es ist niemand da, der irgendetwas unterschreiben könnte. Außerdem kann der Smart Contract keine Transaktionen initiieren. Wenn ein Smart Contract Transaktionen initiieren und signieren könnte, müsste sein privater Schlüssel außerdem zwangsläufig in der Blockchain gespeichert werden. Jeder könnte es sehen, jeder könnte es stehlen, und es wäre einfach, den Smart Contract zu imitieren, also würde es auf keinen Fall funktionieren.
Prashant Prabhakar Singh
sendTransaction
2 verwenden. Ich verstehe das nicht genau, aber 2 Konten können Transaktionen ohne Vertrag senden. 3. Weil Verträge von EoA's geregelt werden. EOAs regeln also, wie ein Vertrag funktioniert,