Zum Inhalt springen

RPC-Knoten

Ein RPC-Knoten bietet Wallets und Anwendungen eine Anfrage-Antwort-Schnittstelle für Blockchain-Daten und die Übertragung von Transaktionen. Erfahren Sie, was ein Endpunktwechsel beheben kann, was nicht und wie Verfügbarkeits-, Datenschutz- und Sicherheitsrisiken sinken.

Aktualisiert

Nur zu Bildungszwecken; keine Anlageberatung. Ein falscher oder bösartiger RPC-Endpunkt kann Aktivitäten offenlegen, irreführende Daten liefern oder die Übermittlung von Transaktionen stören; Transaktionen mit digitalen Vermögenswerten können zu unwiederbringlichen Verlusten führen.

Direkte Antwort

Ein RPC-Knoten ist ein Blockchain-Knoten oder ein Dienst vor einem oder mehreren Knoten, der Remote-Procedure-Call-Anfragen von Wallets, Block-Explorern und Anwendungen annimmt. In Ethereum-kompatiblen Netzwerken ist JSON-RPC die übliche Schnittstelle. Software kann damit Knotendaten lesen, Aufrufe simulieren, Gas schätzen und signierte Transaktionsbytes zur Verbreitung einreichen, ohne einen eigenen Knoten zu betreiben.

Die in einer Wallet konfigurierte URL ist ein RPC-Endpunkt, nicht die Blockchain selbst. Ein Wechsel kann einen Anbieterausfall, einen veralteten Knoten, eine Ratenbegrenzung, eine nicht unterstützte Methode oder ein Verbindungsproblem umgehen. Er kann weder Vertragsregeln ändern noch eine zurückgesetzte Transaktion wiederherstellen, eine bestätigte Übertragung rückgängig machen oder einen netzweiten Stillstand beheben. Der neue Endpunkt muss das beabsichtigte Netzwerk und die richtige Chain-ID bedienen.

Funktionsweise

Der Client sendet eine Anfrage über einen unterstützten Transport wie HTTP oder WebSocket. Eine JSON-RPC-Anfrage nennt eine Methode, übergibt Parameter und enthält eine Kennung, die in der Antwort wiederholt wird. Der Knoten führt die Methode anhand seiner lokalen Sicht der Kette aus und liefert ein Ergebnis oder einen Fehler. WebSocket-Verbindungen können auch Abonnements unterstützen, wenn Client und Endpunkt sie anbieten.

Lesemethoden haben unterschiedliche Bedeutungen und Datenanforderungen. Beispielsweise meldet eth_blockNumber den neuesten dem Knoten bekannten Block, während eth_getBalance den Kontostand einer Adresse bei einem bestimmten Block-Tag oder einer Blocknummer liest. Ergebnisse gesunder Knoten können vorübergehend abweichen, weil sich Kettenspitze, Pool ausstehender Transaktionen, Pruning-Modus oder Erweiterungen unterscheiden. Ein gehosteter Anbieter kann zudem Authentifizierung, Kontingente, Größen- oder Methodenbeschränkungen auferlegen, die keine Konsensregeln sind.

Bei einer typischen Wallet-Transaktion erstellt und signiert die Wallet lokal und sendet die signierten Bytes mit eth_sendRawTransaction. Der RPC-Knoten prüft die Anfrage und versucht, die Transaktion an Peers weiterzugeben. Ein zurückgegebener Transaktions-Hash bedeutet, dass der Knoten die Bytes zur Einreichung angenommen hat; er beweist weder Aufnahme noch Erfolg oder Finalität. Aufnahme und Status sollten unabhängig auf der richtigen Kette geprüft werden.

Der Endpunkt ist somit eine Vertrauens- und Verfügbarkeitsabhängigkeit. Er kann abgefragte Adressen, IP-Informationen, Zeitpunkte und eingereichte Transaktionen beobachten, Daten auslassen oder verzögern und eine veraltete oder unvollständige Sicht darstellen. Kryptografische Signaturen verhindern die unbemerkte Änderung einer korrekt signierten Transaktion, machen Leseantworten aber nicht wahrheitsgemäß und schützen weder unsignierte Metadaten noch Privatsphäre.

Beispiel

Eine Wallet kann einen Ethereum-Ausführungsclient mit dieser Anfrage nach der Blocknummer fragen:

{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}

Eine gültige Antwort kann so aussehen:

{"jsonrpc":"2.0","id":1,"result":"0x12ab34"}

Das hexadezimale Ergebnis ist die neueste dem Endpunkt bekannte Blocknummer. Läuft der übliche Anbieter in ein Timeout, während ein zweiter seriöser Endpunkt einen neueren Block und die erwartete Chain-ID liefert, kann der Wechsel Kontostandsabfragen und Transaktionseinreichungen wiederherstellen. Zeigen beide denselben zurückgesetzten Transaktionsbeleg, ändert ein RPC-Wechsel dieses Onchain-Ergebnis nicht.

Risiken und Kontrollen

  • Falsches Netzwerk: Ein kopierter Endpunkt kann eine andere Kette oder Abspaltung bedienen. Prüfen Sie vor dem Signieren Chain-ID, Netzwerkname, nativen Vermögenswert und einen aktuellen Block über eine unabhängige Quelle.
  • Falsche oder veraltete Leseergebnisse: Ein fehlerhafter oder bösartiger Endpunkt kann alte Kontostände liefern, Protokolle auslassen oder Simulationen falsch darstellen. Vergleichen Sie wichtige Werte mit einem anderen Anbieter oder eigenen Knoten und fixieren Sie für Reproduzierbarkeit einen bestimmten Block.
  • Datenschutzverlust: Abfragen können Wallet-Aktivitäten mit Netzwerkmetadaten verbinden. Vermeiden Sie unnötige Adressen, prüfen Sie Aufbewahrungsrichtlinien und erwägen Sie einen vertrauenswürdigen eigenen Endpunkt, wenn der Datenschutz den Betriebsaufwand rechtfertigt.
  • Zensur oder Verzögerung: Ein Endpunkt kann die Übertragung verweigern oder verzögern. Speichern Sie den Hash, prüfen Sie unabhängige Explorer oder Knoten und nutzen Sie bei fehlender Transaktion einen zweiten seriösen Weg. Signieren Sie keinen Ersatz, bevor Sie Nonce und Gebührenfolgen geprüft haben.
  • Offengelegte Zugangsdaten: API-Schlüssel in öffentlichem Code können gestohlen und Kontingente aufgebraucht werden. Beschränken Sie Schlüssel nach Herkunft oder Dienst, halten Sie privilegierte Zugangsdaten vom Client fern und ersetzen Sie geleakte Schlüssel.
  • Gefährliche Knotenfreigabe: Eine administrative oder breit aktivierte RPC-Schnittstelle erhöht die Angriffsfläche. Binden Sie einen eigenen RPC standardmäßig lokal, geben Sie nur erforderliche Namensräume frei, ergänzen Sie Authentifizierung und Netzwerkkontrollen und legen Sie nie entsperrte Konten offen.
  • Wallet-Täuschung: Eine Endpunkt-URL benötigt weder Seed-Phrase noch privaten Schlüssel. Lehnen Sie Dienste ab, die danach fragen, prüfen Sie Transaktionsfelder in der Wallet und identifizieren Sie einen Zielvertrag nie allein anhand einer RPC-Antwort.

Häufige Missverständnisse

  • „RPC ist die Blockchain.“ RPC ist eine Schnittstelle zur Sicht eines Knotens auf die Blockchain.
  • „Ein Transaktions-Hash bedeutet Bestätigung.“ Er belegt meist nur, dass ein Endpunkt die signierten Bytes annahm; Ausführung und Finalität sind getrennte Phasen.
  • „Ein RPC-Wechsel ändert Gebühren oder Vertragsverhalten.“ Schätzungen oder Zugriffsqualität können sich ändern, die tatsächliche Ausführung bestimmen aber Transaktion und Protokollregeln.
  • „Alle Endpunkte liefern dieselben Daten.“ Synchronisierung, ausstehende Pools, gespeicherte Historie, Erweiterungen und Anbieterrichtlinien können abweichen.
  • „HTTPS macht jede Antwort vertrauenswürdig.“ HTTPS schützt die Verbindung zum benannten Server, beweist aber nicht Vollständigkeit oder Richtigkeit seiner Blockchain-Daten.

Verwandte Themen

Quellen

Navigation

Wiki durchsuchen...