Inhaltsverzeichnis
- Ethereum-basiertes Blockchain-Netzwerk
- Client
- Konfiguration
- Konsensus
- Konsensus-Algorithmus
- Konsortium Netzwerk
- ÐApp (Dezentrale Anwendung oder manchmal verteilte Anwendung)
- DEVp2p
- Enterprise Ethereum
- Enterprise Ethereum Client
- Enterprise Ethereum Erweiterung
- Enterprise-Teilnehmer
- Ethereum
- Ethereum MainNet
- Ethereum Name Service
- Ethereum Virtual Machine (EVM)
- Endgültigkeit
- Formale Verifikation
- Gruppe
- Hardware Security Module (HSM)
- Integrationsbibliothek
- JSON-RPC-API
- Metadaten
- Off-Chain (Compute) Skalierungsmechanismus
- On-Chain (Layer 2) Skalierungsmechanismus
- On-Chain Privacy Mechanism
- Oracle
- Teilnehmer
- Nutzdaten
- Leistung (Performance)
- Berechtigung
- Vorkompilierter Vertrag
- Privatsphäre
- Private State
- Private Transaktion
- Private Transaction Manager
- Public Ethereum
- Rolle
- Skalierung
- Sidechain
- Intelligenter Vertrag (Smart Contract)
- Smart Contract Language
- Transaktion
- Trusted Execution Environment
- Unbeabsichtigte Transaktionsausgabe
- Wallet
- Zero-Knowledge-Proof (Beweis)
- Enterprise Ethereum Konzept
- Netzwerk
- Core Blockchain-Schicht
- Datenschutz- und Skalierungsschicht
- Tooling-Ebene
- Anwendungsschicht
Diese Spezifikation definiert Enterprise Ethereum, als ein System, das Transaktionen auf Unternehmensebene ermöglicht.
Ethereum-basiertes Blockchain-Netzwerk
Die Enterprise Ethereum-Implementierungen machen Blockchain-Operationen in Enterprise-Produktionsumgebungen überhaupt möglich. Enterprise Ethereum erweitert und adaptiert verschiedene Technologien und Konzepte des öffentlichen Ethereums für Unternehmensbereitstellungen.
Die Enterprise Ethereum bietet eine Reihe von Erweiterungen für das öffentliche Ethereum Blockchain-Netzwerk, um die Leistung beispielsweise zu verbessern. Darunter fallen „Berechtigungen und Datenschutzanforderungen von Unternehmensbereitstellungen“.
Diese Prinzipien sind informell auch als die „drei Ps“ von Enterprise Ethereum bekannt.
Diese Spezifikation definiert die Schnittstellen zu den externen Komponenten von Enterprise Ethereum (die öffentliche Ethereum-Blockchain Schnittstellen sind ausgenommen) und wie sie verwendet werden sollen.
Daher kombiniert dieser Artikel die repräsentative Informationsarchitektur und API-Informationen.
Die folgende Liste Begriffe und Definitionen, die im Zusammenhang mit dieser Spezifikation verwendet werden.
Client
Die Enterprise Ethereum-Client-Software, die auf einem Knoten in einem Blockchain-Netzwerk ausgeführt wird. Ein Client implementiert Enterprise Ethereum-Erweiterungen.
Konfiguration
Die Einstellungen, die von einem Systemoperator vorgenommen werden, z. B. welcher Konsensusalgorithmus verwendet werden soll oder welcher Blockchain beizutreten ist.
Konsensus
Nodes über die Blockchain erreichen eine Einigung über den aktuellen Stand der Blockchain.
Konsensus-Algorithmus
Ein Algorithmus, mit dem eine bestimmte Blockchain eine Übereinstimmung erzielt, bevor eine Aktion ausgeführt wird (z. B. Hinzufügen eines Blocks). Verschiedene Blockchains können unterschiedliche Konsensusalgorithmen verwenden, aber alle Knoten einer bestimmten Blockchain müssen zustimmen, denselben Konsensusalgorithmus zu verwenden. Verschiedene Konsensus-Algorithmen sind sowohl für öffentliche Ethereum- als auch für Enterprise Ethereum-Netzwerke verfügbar.
Konsortium Netzwerk
Ein Ethereum-Netzwerk, Unternehmen oder öffentlich, nicht Teil des Ethereum MainNet.
ÐApp (Dezentrale Anwendung oder manchmal verteilte Anwendung)
Eine Softwareanwendung, die auf einem dezentralisierten Peer-to-Peer-Netzwerk läuft, oft eine Blockchain. Eine Anwendung kann eine Benutzeroberfläche umfassen, die auf einem anderen (zentralisierten oder dezentralen) System ausgeführt wird.
DEVp2p
Das DEV-Peer-to-Peer-Protokoll (DEVp2p) definiert das Messaging zwischen Ethereum-Clients, um einen Kommunikationskanal für die Verwendung von Protokollen höherer Ebenen einzurichten und zu pflegen.
Enterprise Ethereum
Unternehmensspezifische Ergänzungen für das öffentliche Ethereum-Blockchain Netzwerk, das dieser Spezifikation entspricht.
Enterprise Ethereum Client
Siehe Client.
Enterprise Ethereum Erweiterung
Die Teile eines Enterprise Ethereum-Systems, das die Business-Logik-Anforderungen und -Schnittstellen dieser Spezifikation über die Funktionalität des öffentlichen Ethereums hinaus implementiert.
Enterprise-Teilnehmer
Ein Unternehmensteilnehmer ist eine Organisation auf Organisationsebene (z. B. eine Bank), die Mitglied eines Netzwerks ist und wahrscheinlich einer rechtlichen Vereinbarung oder einer Reihe von Regeln für dieses Netzwerk unterliegt. Es handelt sich um eine verwaltete Gruppe einzelner Akteure mit unterschiedlichen Rollen statt einer Gruppe von Mitarbeitern.
Ethereum
Eine Open-Source-basierte, öffentliche Blockchain-basierte, verteilte Computing-Plattform mit intelligenter Vertrags- (Programmier-) Funktionalität.
Ethereum MainNet
Das öffentliche Ethereum Blockchain Netzwerk mit der Netzwerkkennung 1.
Ethereum Name Service
Ein sicherer Namensdienst für das öffentliche Ethereum, um die Ethereum-Knoten nach Namen statt nach Adresse zu identifizieren. Es ist konzeptionell ähnlich dem Domain Name Service (DNS) für mit dem Internet verbundene Maschinen.
Ethereum Virtual Machine (EVM)
Eine Laufzeitumgebung für die Ausführung von Smart Contracts auf Ethereum. Jeder Knoten betreibt einen EVM.
Endgültigkeit
Eine Garantie dafür, dass eine Transaktion, sobald sie in einem Block enthalten ist, zu keinem Zeitpunkt in der Zukunft automatisch storniert wird.
Formale Verifikation
Mathematische Verifikation der logischen Korrektheit eines Smart Contracts im Kontext des EVM.
Gruppe
Eine Sammlung einzelner Benutzer mit gemeinsamen Berechtigungen, über die sie auf bestimmte Dienste und Funktionen zugreifen können.
Hardware Security Module (HSM)
Ein physisches Gerät, das eine starke, sichere Schlüsselgenerierung, Schlüsselspeicherung und kryptografische Verarbeitung ermöglicht.
Integrationsbibliothek
Eine Softwarebibliothek zum Implementieren von APIs mit unterschiedlichen Sprachbindungen für die Interaktion mit Ethereum-Knoten, z. B. der JSON-RPC-API. Zum Beispiel web3j, web3.js und Netherum.
JSON-RPC-API
Die Anwendungsprogrammierschnittstelle (API), die von der öffentlichen Ethereum implementiert wird, um es Apps und Wallets zu ermöglichen, mit der Plattform zu interagieren. Das JSON-RPC-Protokoll und -Format für den Remoteprozeduraufruf wird für seine Implementierung verwendet.
Metadaten
Die Datenmenge, die Informationen zu den Nutzdaten in einer Transaktion beschreibt und angibt.
Knoten
Ein Peer in einem Peer-to-Peer-verteilten System von Rechenressourcen, die zusammen ein Blockchain-System bilden, von denen jedes einen Client ausführt.
Off-Chain (Compute) Skalierungsmechanismus
Verarbeitung, die extern zu einer Ethereum-Blockchain ausgeführt wird, um erhöhte Transaktionsgeschwindigkeiten zu ermöglichen. Zum Beispiel Beweise für ZK-SNARKS, bei denen es sich um verifizierte oder rechenintensive Aufgaben handelt, die auf eine oder mehrere Trusted Execution Environments (TEEs) ausgelagert wurden.
On-Chain (Layer 2) Skalierungsmechanismus
Erweiterungen für das öffentliche Ethereum, wie „Plasma“, staatliche Kanäle und „sharding“, um höhere Transaktionsgeschwindigkeiten zu ermöglichen.
On-Chain Privacy Mechanism
Erweiterungen für das öffentliche Ethereum, wie ZK-SNARKS, oder eine datenschutzerhaltende TEE-Berechnung, die private Transaktionen ermöglicht.
Oracle
Ein Dienst außerhalb des öffentlichen Ethereums oder einer Enterprise Ethereum-Implementierung, der die Entwickler intelligenter Verträge vertrauen und zur Bereitstellung von Informationen aufgerufen werden. Zum Beispiel Dienstleistungen, um einen aktuellen Wechselkurs oder das Ergebnis einer mathematischen Berechnung zurückzugeben.
Teilnehmer
Ein Teilnehmer ist ein Benutzer des Systems, der über die JSON-RPC-API interagiert. Ein Teilnehmer kann ein Mensch, ein automatisierter Prozess oder ein Unternehmensteilnehmer sein.
Nutzdaten
Der Inhalt des Datenfeldes einer Transaktion, der in privaten Transaktionen normalerweise verschleiert wird. Nutzdaten sind von den Metadaten in der Transaktion getrennt.
Leistung (Performance)
Die Gesamtwirksamkeit des Systems, einschließlich Gesamtdurchsatz, individuelle Transaktionszeit und Verfügbarkeit.
Berechtigung
Die Eigenschaft eines Systems, sicherzustellen, dass Vorgänge von bestimmten Parteien ausgeführt und für sie zugänglich sind.
Vorkompilierter Vertrag
Ein intelligenter Vertrag, der aus seiner Ausgangssprache in den EVM-Bytecode kompiliert und von einem Ethereum-Knoten zur späteren Ausführung gespeichert wird.
Privatsphäre
Ist der Datenschutz „Das Recht des Einzelnen zu kontrollieren oder zu beeinflussen, welche Informationen über sie gesammelt und gespeichert werden und von wem und an wen diese Informationen weitergegeben werden dürfen.“ Für die Zwecke dieser Spezifikation können die Rechte von Einzelpersonen auf die Rechte von Organisationen ausgeweitet werden.
Private State
Der Datenspeicher von Enterprise Ethereum-Erweiterungen, in dem Informationen zu privaten Transaktionen gespeichert werden.
Private Transaktion
Eine Transaktion, bei der die Metadaten, Nutzdaten oder der Transaktionszustand nur von autorisierten Parteien gelesen werden können.
Private Transaction Manager
Ein Subsystem eines Enterprise Ethereum-Systems zur Implementierung von Datenschutz und Berechtigungen.
Public Ethereum
Die von der „Ethereum Foundation“ entwickelte und veröffentlichte Ethereum-Software.
Rolle
Eine Gruppe von Verwaltungsaufgaben mit jeweils einem zugeordneten Satz von Berechtigungen, die für Benutzer oder Administratoren eines Systems gelten.
Skalierung
Erhöhung der Fähigkeit eines Systems, Netzwerks oder Prozesses, mehr Arbeit zu bewältigen. In Bezug auf Ethereum geht es hier um die Erhöhung der Transaktionsgeschwindigkeit unter Verwendung von Verkettungs- oder Offchain-Skalierungsmechanismen oder beides.
Sidechain
Eine separate Ethereum-Blockchain, die auf dem Ethereum-Netzwerk arbeitet. Eine Sidechain kann öffentlich oder privat sein und kann auch in einem Konsortiumnetzwerk betrieben werden.
Intelligenter Vertrag (Smart Contract)
Ein Computerprogramm, das in einem Ethereum-Kontext auf der Ethereum Virtual Machine (EVM) ausgeführt werden kann. Smart Contracts können in mehreren übergeordneten Programmiersprachen geschrieben werden, müssen jedoch zu EVM-Bytecode kompilieren. Smart-Verträge werden am häufigsten verwendet, um einen Vertrag zwischen Parteien zu implementieren, bei denen die Ausführung garantiert und auditierbar ist, auf das von Ethereum selbst bereitgestellte Sicherheitsniveau.
Smart Contract Language
Eine Programmiersprache und zugehörige Werkzeuge zum Erstellen von Smart Contracts. Zum Beispiel „Solidity“ und „LLL“.
Transaktion
Eine Anforderung zum Ausführen von Operationen, die den Status in einem Blockchain-Netzwerk ändern. Transaktionen können einen oder mehrere Teilnehmer umfassen.
Trusted Execution Environment
Eine Hardware-basierte Sicherheitsfunktion, die eine starke Grundlage für die Sicherheit erst ermöglichen.
Unbeabsichtigte Transaktionsausgabe
Ausgabe von einer Transaktion, die als Eingabe für eine neue Transaktion verwendet werden kann.
Wallet
Eine Softwareanwendung zum Speichern der Anmeldeinformationen eines Benutzers (private kryptografische Schlüssel), die mit dem Status des Kontos dieses Benutzers in einer Blockchain verknüpft sind.
Zero-Knowledge-Proof (Beweis)
In der Kryptographie eine Methode, bei der eine Partei (der Prüfer) einer anderen Partei (dem Verifizierer) beweisen kann, dass der Prüfer einen Wert x kennt, ohne irgendeine Information zu übermitteln, abgesehen von der Tatsache, dass der Prüfer den Wert x kennt.
Enterprise Ethereum Konzept
Enterprise Ethereum-Implementierungen sind Erweiterungen für das öffentliche Ethereum, das auf Unternehmen ausgerichtet ist. Zusätze, einschließlich der Möglichkeit, private Transaktionen durchzuführen, erzwingen die Mitgliedschaft (Permissioning) und Bereitstellung der Transaktionsdurchsatzskalierung. Private Transaktionen sind Transaktionen, bei denen die Metadaten oder Nutzlastdaten nur von Parteien gelesen werden können, die an diesen Transaktionen auch beteiligt sind.
Die folgenden zwei Diagramme zeigen die Beziehung zwischen Enterprise Ethereum-Komponenten, die Teil einer EWR-konformen Kundenimplementierung sein können.
Die erste ist eine Stapeldarstellung der Architektur und zeigt eine Bibliothek von Schnittstellen, während die zweite eine traditionellere Architektur mit einer repräsentativen Architektur darstellt.

enterprise ethereum architektur stack Quelle: https://entethalliance.org/wp-content/uploads/2018/04/architecture_stack_thumbnail.jpg

enterprise ethereum high-level architecture Quelle: https://www.google.at/url?sa=i&source=images&cd=&ved=2ahUKEwjihP7x3NvcAhWGJJoKHR8fDH0QjRx6BAgBEAQ&url=https%3A%2F%2Fentethalliance.org%2Fwp-content%2Fuploads%2F2018%2F05%2FEEA-TS-0001-0-v1.00-EEA-Enterprise-Ethereum-Specification-R1.pdf&psig=AOvVaw2Iuj__j7_nF9WHx6tAMyJ7&ust=1533758252495977
Der Architekturstapel für Enterprise Ethereum besteht aus den folgenden fünf Schichten:
• Netzwerk
• Core Blockchain-Schicht
• Datenschutz und Skalierung
• Tooling
• Anwendung
Diese Ebenen werden in den folgenden Abschnitten beschrieben.
Netzwerk
Die Netzwerkebene besteht aus einer Implementierung des DEVp2p-Netzwerkprotokolls. Dies ermöglicht das Ethereum-Knoten miteinander unter Verwendung verschiedener Protokolle und die über DEVp2p laufen kommunizieren und so die Verbindungen zwischen den Knoten herstellen. Enterprise-P2P-Protokolle können zur Unterstützung der Kommunikation mit anderen höheren Schichtfunktionen verwendet werden, wie bspw. Konsens.
Core Blockchain-Schicht
Die Core Blockchain-Schicht besteht aus einem Mechanismus, um einen Konsens zwischen den Ethereum-Knoten für die Akzeptanz neuer Blöcke herzustellen. Öffentliche Konsensalgorithmen bieten eine Methode, um dies mit öffentlichen Ethereum-Blockchains zu tun. Ein Beispiel für einen öffentlichen Konsensalgorithmus ist der Proof of Work (PoW) -Algorithmus, der im Ethereum Yellow Paper beschrieben wird. Im Laufe der Zeit wird PoW wahrscheinlich aus dem Verkehr gezogen und durch neue Methoden wie Proof of Stake (PoS) ersetzt.
Enterprise Ethereum-Implementierungen bieten private Konsensalgorithmen für Operationen innerhalb ihres privaten Konsortiums.
Der Unterlayer „Execution (Ausführung)“ implementiert eine virtuelle Maschine, die in einem Ethereum-Knoten verwendet wird, z. B. die Ethereum Virtual Machine (EVM) oder „Ethereum aromatisierte WebAssembly“ (eWASM), ihren Befehlssatz und andere Berechnungsfunktionen nach Bedarf.
Schließlich wird innerhalb des Core-Blockchain-Layers der Storage- und Ledger-Sublayer bereitgestellt, um den Blockchain-Status zu speichern, z. B. Smart Contracts für die spätere Ausführung. Diese Teilschicht folgt Blockchain-Sicherheitsparadigmen, z. B. kryptografisch gehashte Versuche, ein Unspent Transaction Output-Modell (UTXO) oder at-rest-verschlüsselte Schlüsselwertspeicher.
Datenschutz- und Skalierungsschicht
Die Datenschutz- und Skalierungsschicht implementiert die erforderlichen Datenschutz- und Skalierungserweiterungen, die in Enterprise Ethereum zur Unterstützung von Unternehmensbereitstellungen erforderlich sind.
Diese Spezifikation versucht nicht, Experimente einzuschränken, um die Skalierbarkeit zukünftiger Implementierungen des öffentlichen Ethereums oder Enterprise Ethereums zu verbessern. Stattdessen wird erkannt, dass im Laufe der Zeit verschiedene Arten von Skalierungsverbesserungen an Ethereum-Knoten vorgenommen werden, deren genaue Form zu diesem Zeitpunkt nicht bekannt sein kann. Verschiedene On-Chain (Layer 2) Skalierungsmechanismen können implementiert werden, wie „Plasma“, „Sharting“ und einfache Parallelisierbarkeit „EIP-648„, sowie andere Off-Chain (Compute) Skalierungsmechanismen.
In ähnlicher Weise werden verschiedene Datenschutzmechanismen auf der Blockchain untersucht, wie z. B. die Unterstützung von Zero-Knowledge-Proofs im öffentlichen Ethereum-Netzwerk.
Enterprise Ethereum-Implementierungen müssen Unterstützung für private Transaktionen bieten, wie in späteren Zeilen beschrieben. Enterprise Ethereum-Implementierungen bieten möglicherweise auch Unterstützung für Trusted Execution Environments (TEEs), die den Datenschutz bei der Codeausführung ermöglichen.
Tooling-Ebene
Die Tooling-Ebene enthält die APIs, die für die Kommunikation mit Ethereum-Knoten verwendet werden. Die primäre API ist eine JSON-RPC-API, die zum Übermitteln von Transaktionen zur Ausführung oder zum Bereitstellen von intelligenten Verträgen zum Beibehalten eines beliebigen Status verwendet wird. Andere API-Schnittstellen sind zulässig, einschließlich derer, die für Interblockchain-Operationen vorgesehen sind, und um externe Dienste, wie beispielsweise vertrauenswürdige Orakel, aufzurufen.
Öffentliche Ethereum-Knoten werden häufig mithilfe von allgemeinen Integrationsbibliotheken wie „web3j“, „web3.js“ oder „Nethereum“ implementiert. In ähnlicher Weise wird von Enterprise Ethereum-Implementierungen erwartet, dass sie in Unternehmensmanagementsysteme integriert werden, indem gängige APIs, Bibliotheken und Techniken verwendet werden.
Öffentliche Ethereum-Knoten können die lokale Verarbeitung von Benutzeranmeldeinformationen wie Schlüsselverwaltungssysteme und Wallets anbieten. Solche Einrichtungen könnten auch außerhalb des Geltungsbereichs eines Ethereum-Knotens implementiert werden. Enterprise Ethereum-Implementierungen ermöglichen eingeschränkte Operationen basierend auf Benutzerberechtigungen und Authentifizierungsschemas.
Die Tooling-Schicht bietet auch Unterstützung für die Kompilierung und möglicherweise formale Verifizierung von Smart Contracts durch die Verwendung von Parsern und Compilern für eine oder mehrere Smart Contract-Sprachen. Sprachen wie „Solidity“ und „LLL“ werden häufig implementiert, aber die Unterstützung für andere Sprachen kann ohne Einschränkung bereitgestellt werden.
Anwendungsschicht
Schließlich existiert die Anwendungsschicht oft ganz oder teilweise außerhalb eines Ethereum-Knotens, wodurch übergeordnete Dienste bereitgestellt werden. Zum Beispiel Ethereum Name Service (ENS), Knotenmonitore, Blockchain-Statusvisualisierungen und Explorer, selbstherrliche und andere Identitätsschemata, Brieftaschen und andere Anwendungen des Ökosystems.
Wallets können mit Enterprise Extereum-Erweiterungen über die erweiterte RPC-API verbunden werden, wie in Abbildung 2 gezeigt. Eine Brieftasche kann auch direkt mit der Enklave eines privaten Transaktionsmanagers oder einer Schnittstelle mit einem öffentlichen Ethereum-Client verbunden werden.