Smart-Contract-Transaktionssignatur

Ich habe mir Gedanken über den Smart Contract gemacht. Ich würde gerne wissen, wann der Smart Contract eine Transaktion sendet (Ether an jemanden senden), hat er die Transaktion signiert, wenn ja, wie es geht? hat es einen privaten Schlüssel?

Antworten (2)

Jede Transaktion beginnt mit einem externen Konto und wird von jemandem signiert.

Als Teil dieser Transaktion kann ein Vertrag einen anderen Vertrag aufrufen, und manche Leute nennen dies eine „interne Transaktion“, aber eine „interne Transaktion“ ist nicht wirklich eine Transaktion; Es ist Teil der Transaktion, die von einem externen Konto gestartet wird. Es ist genauer, es als Anruf zu bezeichnen . Eine einzelne Transaktion mit einer einzigen Signatur kann mehrere Aufrufe von Vertrag zu Vertrag umfassen.

Ein Aufruf muss nicht signiert werden. Der aufgerufene Vertrag hat automatisch Zugriff auf die Identität des aufrufenden Vertrags in einer Variablen namens msg.sender. Wenn also Authentifizierungsprüfungen durchgeführt werden müssen, sieht er normalerweise danach aus.

Smart Contracts müssen die Transaktion nicht unterschreiben. Sie unterschreiben Ihre Transaktion und dann wird der Vertrag ausgeführt. Andere Knoten, die diese Transaktion erhalten, können die Aktion des Smart Contracts validieren, indem sie einfach den Code ausführen.

Der Smart Contract ist nur ein Regelwerk. Beim Schreiben des Smart Contracts müssen Sie sicherstellen, dass diese Regeln korrekt geschrieben sind, damit der Vertrag Ether nur dann an jemanden sendet, wenn Sie dies wünschen.

In der Blockchain gibt es keine unsignierten Transaktionen, daher besteht Bedarf. Wenn wir im Vertrag send(X ether) haben, also wer hat diesen tx unterschrieben?
@SigTouri Das überträgt Wert und ruft möglicherweise Code auf, erstellt jedoch keine Transaktion - alle Interaktionen finden innerhalb der aktuellen Transaktion statt.