Was passiert, wenn ein unehrlicher Knoten ein anderes Programm auf EVM ausführt?

Ich möchte ein Programm (auf der Ethereum Virtual Machine) erstellen, das unter bestimmten Bedingungen auf einige Daten zugreifen kann (nur wenn autorisiert). Das Programm prüft also die Berechtigung und greift dann (eventuell) auf die Daten zu.

Was ist, wenn ein unehrlicher Knoten ein anderes Programm ausführt, das auf die Daten zugreift, ohne die Autorisierungen zu prüfen? Bietet Ethereum einen gewissen Schutz gegen Nodes, die ein Programm "alleine" ausführen wollen? Oder sollte ich etwas implementieren, das den Zugriff auf diese Daten nur erlaubt, wenn ein großer Teil der Knoten einen Konsens erzielt?

Ich hoffe ich habe es verständlich erklärt. Vielen Dank

Was meinst du mit Zugriff auf Daten? Daten in Ihrem Vertrag lesen?

Antworten (2)

Um es klar zu sagen: Sie haben keine Privatsphäre in der Blockchain.

Sie können einige Daten in einem Smart Contract speichern und dann einige Zugriffsbedingungen bereitstellen. Aber das schränkt nur die Daten ein, die durch Aufrufen des Codes des Smart Contracts einsehbar sind.

So funktioniert die Blockchain, zumindest im Moment, so, dass jeder, der schürft, alle Informationen der Blockchain auf seiner Festplatte gespeichert hat. Niemand hindert sie also daran, einfach auf die Festplatte zu gehen und nach etwas zu suchen, das in der Blockchain gespeichert ist, ohne einen Funktionsaufruf zu verwenden oder mit Smart Contracts zu interagieren.

Es gibt einige Techniken, die verwendet werden könnten, um Informationen in der Blockchain zu verbergen, aber sie sind nicht wirklich Blockchain-bezogen. Standardmäßig bietet Blockchain keine Privatsphäre.

Um die andere Frage zu beantworten: Wenn ein Knoten einen anderen Code als den im Smart Contract gespeicherten ausführt, wird er vom Netzwerk erkannt und die Ausführung nicht validiert.

Wenn sich Ihre Daten im Vertrag befinden, können sie von jedem Knoten gelesen werden, ohne um Erlaubnis zu fragen. Was Ethereum garantiert, ist nur, dass die Zustandsänderung, die Ihr Vertrag beschreibt, korrekt ist. Korrekt bedeutet, dass es durch eine Transaktion mit genügend Gas initiiert wurde und dass das Ergebnis der Ausführung korrekt in der Blockchain veröffentlicht wird. Dies ist garantiert, da jeder Node den Vertrag ausführt, um einen Block korrekt zu schürfen. Andere Knoten würden also sehen, dass der vom Angreifer generierte Zustandsbaum nicht korrekt ist, und den Block als ungültig ablehnen.