Nehmen wir an, Peer A sendet eine Transaktion an den Vertrag. Wie können Peer B und C dies sehen? Müssen sie verschlüsselt werden? Wenn ja, wie? Muss jeder einzelne Peer den öffentlichen Schlüssel jedes Kontos haben?
Die Daten der Transaktionen sind für alle Knoten sichtbar, dies wird benötigt, damit sie die Verträge ausführen können. Daher ist keine Verschlüsselung erforderlich, um eine Transaktion zu senden.
Siehe auch:
Du hast gefragt:
... wie der Signiervorgang abläuft. Kann ich eine kleine tiefgründige Erklärung dazu haben.
Wenn Sie eine ausführliche Erklärung wünschen, lesen Sie Anhang F des Yellow Paper , in dem der Transaktionssignierungs- und -verifizierungsprozess im Detail beschrieben wird.
Kurz gesagt, eine von Ihnen gesendete Transaktion ist mehr oder weniger im Klartext; es ist nicht verschlüsselt. Es wird jedoch von einer Signatur über die Transaktionsdaten begleitet. Diese Signatur wird aus den Transaktionsdaten und Ihrem privaten Schlüssel erstellt.
Wenn ein Knoten Ihre Transaktion empfängt, kann er die Signatur mit einer Technik namens verarbeiten ECDSARECOVER
. Die Ausgabe davon ist Ihr öffentlicher Schlüssel, und Ihre Kontoadresse wird direkt aus Ihrem öffentlichen Schlüssel generiert (es ist kein Geheimnis). Wenn die aus dem wiederhergestellten öffentlichen Schlüssel generierte Adresse mit der „Von“-Adresse in Ihrer Transaktion übereinstimmt, wissen wir, dass die gesamte Transaktion mit einem korrekten privaten Schlüssel für Ihr Konto signiert wurde.
Verträge haben keine privaten Schlüssel und können daher keine Transaktionen senden. Stattdessen gibt es andere Mechanismen für Verträge, um sich gegenseitig aufzurufen oder Werte intern innerhalb der EVM zu senden.
Budhaditya Dutta
atfornes