Ich habe gelesen, dass es Kosten gibt, die bezahlt werden sollten, wenn ein intelligenter Kontakt zum Etherum bereitgestellt wird. Entstehen für einen Endbenutzer Kosten für die Interaktion mit einem bestimmten intelligenten Kontakt? Zum Beispiel: Wenn ich einen Vertrag für ein Vermietungsunternehmen aufbaue, müssen Endbenutzer, die nach bestimmten Mietangeboten suchen und mit diesem Kontakt interagieren müssen, Ether bezahlen?
Und wenn ja, macht das keinen Sinn, Benutzer, die Smart Contact verwenden müssen, Gebühren zahlen zu lassen. Wie kann es vermieden werden ??
Alle Interaktionen zwischen Benutzern und Smart Contracts erfolgen über Transaktionen.
Jede Transaktion hat Kosten, die in zwei Teilen gemessen werden:
So können Sie sehen, dass alle Transaktionen eine gewisse Menge an Ether benötigen, um abgeschlossen zu werden. Dieses System dient dazu, Denial-of-Service-Angriffe, Endlosschleifen und andere ressourcenintensive Berechnungen zu verhindern.
Im Allgemeinen führt kein Weg daran vorbei, diese Gebühren pro Transaktion zu zahlen. Es gibt Systeme, die Sie einrichten können, wenn Sie möchten, dass Ihre Kunden keine Gebühren zahlen, können Sie die Gebühren im Namen des Benutzers bezahlen. Aber diese Systeme umgehen die zugrunde liegenden Authentifizierungsprozesse für Ethereum und erfordern, dass Sie einen Dienst besitzen, der ein hohes Vertrauen mit einem intelligenten Vertrag hat.
Hier erfahren Sie mehr: Transaktionen
Ethereum verwendet die „Ethereum Virtual Machine (EVM)“, um den Code von Smart Contracts auszuführen. Diese EVM ist quasi-turing abgeschlossen. Eine Maschine ist vollständig, wenn sie bei genügend Raum und Zeit jedes kalkulierbare Problem lösen kann. Aber warum ist es nur "quasi" vollständig? Denn neben ausreichend Platz und Zeit benötigt das EVM genügend GAS (Ether). Jede Anweisung, außer den Anweisungen STOP, RETURN und REVERT, erfordert die Ausführung von GAS in der EVM. Beispiel: Wenn Sie zwei Werte aus dem Gedächtnis addieren möchten, müssen Sie 3 GAS für die Addition bezahlen. Über die Kosten pro Instruktion können Sie sich im Yellowpaper, Anhang G und H ( https://ethereum.github.io/yellowpaper/paper.pdf ) informieren). Wenn ein Benutzer einen Smart Contract ausführen möchte und eine Transaktion an das Ethereum-Netzwerk sendet, die den Auftrag dazu enthält, muss der Benutzer Gas bezahlen. Um Ihre erste Frage zu beantworten, muss jeder Benutzer Benzin bezahlen, wenn er einen Auftrag zur Ausführung eines Smart Contracts über eine Transaktion sendet. Dennoch gibt es einen Sonderfall. Wenn Sie nur Daten mit einem Smart Contract lesen möchten, damit Sie den Zustand des Speichers nicht ändern, können Sie dies tun, ohne Benzin zu bezahlen. Dies wird erreicht, indem die EVM ausgeführt und der Smart Contract nur lokal auf Ihrem Computer (oder einem anderen Computer, der diesen Dienst anbietet) ausgeführt wird.
Wie können Sie dies vermeiden? Wenn Sie die Nutzer Ihres Smart Contracts davor schützen wollen, diese Kosten zu bezahlen, müssen Sie das Gas aus einer anderen Quelle beziehen. Dies bedeutet, dass Sie oder jemand anderes das Gas für den Benutzer bezahlen müssen, bevor er den Smart Contract nutzt. Sie könnten zum Beispiel 1 Ether in Ihren Smart Contract stecken, um diese Kosten zu decken. Dies ist jedoch riskant, da Sie Ihren Smart Contract vor einem „Ddos“-Angriff schützen müssen, der den gesamten Ether verbraucht, den Sie für Gas reserviert haben. Außerdem müssen Sie darauf achten, dass Ihrem Smart Contract für Ihre Benutzer nicht das Benzin ausgeht, da Ihre Dienste sonst für die Benutzer nicht verfügbar sind und sie ihr Geld verlieren, das sie bezahlen müssen, um Ihren Smart Contract anzurufen (jede Transaktion kostet 21000 GAS mindestens).
Mohammed
meer212
Mohammed