Authentifizierung des Ethereum-Knotens auf einer privaten Blockchain

Problem: Wie authentifiziert sich in einem privaten Blockchain-Netzwerk ein neuer Knoten im Netzwerk? Gibt es irgendetwas, das verhindert, dass ein Knoten in das Netzwerk gelangt und Daten von anderen Knoten herunterlädt?

Ich habe die JSON-Datei gesehen, die einen privaten und öffentlichen Schlüssel enthält, der eine Konfigurationsdatei für den Knoten ist. Ich glaube, dass dies zur Sicherung der Datenübertragung zwischen den Knoten verwendet wird. Dies scheint jedoch keine Korrelation zur Authentifizierung des Knotens gegenüber dem Netzwerk zu haben.

Ich bin ein Blockchain-Neuling, daher wäre jede Hilfe sehr willkommen. Ich arbeite daran, ein Startup rund um Blockchain zu entwickeln

Antworten (3)

Sie könnten einige Maßnahmen ergreifen, um unerwünschte Knoten zu verhindern:

1- Verwenden Sie die Option--nodiscover

Verwenden Sie diese Option, um sicherzustellen, dass Ihr Knoten nicht von Personen gefunden werden kann, die Sie nicht manuell hinzufügen.

2- Verwenden Sie die Option--maxpeers 0

Verwenden Sie maxpeers 0, wenn Sie nicht möchten, dass sich jemand anderes mit Ihrer Testkette verbindet. Alternativ können Sie diese Zahl anpassen, wenn Sie genau wissen, wie viele Peers Sie mit Ihrer privaten Kette verbinden möchten.

Hallo Badr, danke für die Antwort. github.com/ethereum/go-ethereum/wiki/Connecting-to-the-network Ich habe diesen Abschnitt auch gelesen. Soweit ich weiß, sind dies Kontrollmechanismen auf Netzwerkebene und kein sicherheitsorientierter Mechanismus. Grüße,
also hilft es dir?

In einer privaten Blockchain kann ein neuer Knoten nicht automatisch mit dem privaten Netzwerk verbunden werden. Deshalb ist das Netzwerk private.

In Bezug auf die Authentifizierung fungiert die Einzigartigkeit --networkidIhres Netzwerks und Ihrer genesisDatei als erste Ebene von Authentifizierungsfaktoren für Ihr privates Blockchain-Netzwerk. Mit anderen Worten, ein neuer Knoten kann dem Netzwerk nicht hinzugefügt werden, es sei denn, er hat eine Kopie der genesisDatei und kennt die networkid.

Selbst wenn ein Knoten diese beiden Attribute kennt, ist er kein Teil des privaten Netzwerks, es sei denn, er wird manuell (durch seine enodeURI) als Peer zu einem der Knoten (des privaten Netzwerks) durch die addPeer()Funktion hinzugefügt. In einem privaten Blockchain-Netzwerk gibt es keine automatische Peer-Erkennung .

Wenn Sie der Meinung sind, dass alle oben genannten Aufgaben möglicherweise von einem Angreifer ausgeführt werden könnten, können Sie die --nodiscoverOption aktivieren und die --maxpeersOption zum Einschränken der Nr. von Verbindungen.

Bei privater Bereitstellung können Sie Schutz auf Ebene 4 einrichten, z. B. Firewall auf IP-Ebene, oder auf Ebene 7 SSH-Tunnel zwischen Knoten für eingehende Verbindungen.

Dies ist wirklich ein Kommentar, keine Antwort. Vielleicht können Sie einige Details hinzufügen, wie ? Vielen Dank.