EVM - Wie ist es mit der Blockchain verbunden? [Duplikat]

Ich habe ein paar Probleme, die Softwarearchitektur der Blockchain zu verstehen. Für mich ist Blockchain die Datenbank, in der alle Transaktionen, Quittungen, Salden usw. gespeichert werden. Aber wie ist die Verbindung zum EVM? Ist die EVM für die Änderung der Blockchain-Datenbank verantwortlich? Wenn ein Full Node eine Transaktion oder einen neuen Block erhält. Es verarbeitet die Transaktionen mit der EVM. Ist der interne Speicher des EVM die Blockchain oder was ist der interne Speicher des EVM? Wenn es sich nicht um die Blockchain handelt, ist die EVM nur für die Verarbeitung der Transaktion und das Zurücksenden einer Quittung an die Blockchain verantwortlich, damit sie eine Aktualisierung vornehmen kann? Gibt es zwei Instanzen – die Blockchain (Datenbank) und die evm (Prozessor) – oder eine Instanz, die evm, die die Blockchain-Datenbank enthält? Ich hoffe, Sie wissen, was ich hier zu sagen versuche.

Antworten (3)

Eine Blockchain ist ein Beispiel für ein allgemeineres Konzept, das als verteilte Zustandsmaschine bezeichnet wird.

Eine Zustandsmaschine ist ein System mit einer Reihe von Zuständen und einer Funktion, die zwischen diesen Zuständen übergeht.

In einem Ethereum ist der Zustand der Baum der Kontozustände, und die Übergangsfunktion nimmt einen Block als Eingabe, führt alle Transaktionen im Block auf der EVM aus und wechselt in den neuen Zustand, der sich aus der EVM-Ausführung ergibt.

Sie können sich die EVM also als Teil der Übergangsfunktion zwischen Blöcken vorstellen.

Die Antwort von Thomas ist sehr hilfreich.

Falls es hilft, könnte es nützlich sein, sich die Blockchain ähnlich wie ein Datenbank-Wiedergabeprotokoll vorzustellen, auf das sich alle Knoten dank Konsens einigen. Das EVM ist das Protokoll, das die Interpretation der im Protokoll enthaltenen Transaktionen regelt.

Der Umfang des Protokolls reicht aus, um das Einbetten von Verträgen in speziell gestaltete Transaktionen zu ermöglichen. Die Verträge sind in einem einfachen Maschinencode (Bytecode) geschrieben und das Protokoll beschreibt, wie sie zu interpretieren sind. Der Transaktionsverlauf zeichnet also die Bereitstellung von ausführbarem Code auf.

Die Sprache der Verträge umfasst den internen Speicher, sodass einige Eingaben Funktionen auslösen können, die dauerhafte Werte ändern.

Bei einem ausreichend beschreibenden Protokoll und bei einer Reihe von Transaktionen, die für wahr gehalten werden (Konsens ist ein anderes Thema), kann jeder ordnungsgemäß funktionierende Knoten seine eigenen Schlussfolgerungen über den Zustand ziehen, der der Fall sein muss .

Ich denke, es ist vernünftig, zusammenzufassen, indem man sagt, dass die Daten in den Eingaben "leben". Die Blockchain selbst ist ein System, das alle Knoten davon überzeugt, dass sie die gültige, wahre Historie der Eingaben haben, und das ist alles, was sie wissen müssen.

Ich hoffe es hilft.

Ist die EVM für die Änderung der Blockchain-Datenbank verantwortlich?

Vor einer Transaktion repräsentiert die „Blockchain“ einen bestimmten Zustand. Während der Transaktion ändert sich der Status von vor der Transaktion zu nach der Transaktion (es sei denn, es gibt eine Umkehrung). Dieser „Wechsel von einem Zustand in einen anderen“ wird durch die EVM erreicht. Einige Änderungen senden Wei einfach von einem Konto zum anderen. Andere sind komplizierter und führen einen intelligenten Vertrag aus, um Speicherwerte zu ändern. (Obwohl einige darüber streiten, dass ein einfacher Versand keine EVM erfordert, ist der Effekt derselbe.)

Wenn ein Full Node eine Transaktion oder einen neuen Block empfängt, verarbeitet er die Transaktionen mit der EVM. Ist der interne Speicher des EVM die Blockchain oder was ist der interne Speicher des EVM?

Unterscheiden Sie zwischen der EVM (die die Zustandsänderung durchführt) und dem Zustand selbst, der der aktuelle Wert aller Daten in der Datenbank ist (oder wie die meisten Leute es nennen würden – die aktuellen Werte aller Daten in der Kette ).

Wenn es sich nicht um die Blockchain handelt, ist die EVM nur für die Verarbeitung der Transaktion und das Zurücksenden einer Quittung an die Blockchain verantwortlich, damit sie eine Aktualisierung vornehmen kann?

Ich glaube, du verlierst das Wort. blockchainSie können sich als eine Datenstruktur vorstellen, in der sie blockszusammen sind chained, indem Sie eine Referenz (den übergeordneten Hash) in den aktuellen Block einfügen. Ich denke an diese Datenstruktur als die Blockchain, aber ich denke auch (gleichzeitig) an das Ganze als die Blockchain. Es ist also ein vielschichtiges Wort. Vielleicht ist es am besten, sich das als Datenstruktur vorzustellen. Die EVM verarbeitet die Zustandsänderungen und speichert die Zustandsänderungen in einer verketteten Liste von Blöcken.

Gibt es zwei Instanzen – die Blockchain (Datenbank) und die evm (Prozessor) – oder eine Instanz, die evm, die die Blockchain-Datenbank enthält?

Siehe vorherige Antwort.