Was ist eine reine Block-Relay-Verbindung? Was wird es verwendet?

Moderne Versionen von Bitcoin Core stellen eine feste Anzahl von ausgehenden Verbindungen her: 8 ausgehende Full-Relay- Verbindungen und 2 reine Block-Relay- Verbindungen. Was ist der Zweck von Block-Relay-Only- Verbindungen und wie werden sie verwendet?

Hier sind zwei Beispielprotokolleinträge eines Knotens, der diese Verbindungen herstellt:

2022-03-10T14:50:36Z New outbound peer connected: version: 70015, blocks=726709, peer=1566 (outbound-full-relay)
2022-03-10T14:55:28Z New outbound peer connected: version: 70016, blocks=726710, peer=1576 (block-relay-only)

Hier ist eine Beispiel-CLI-Abfrage, die alle verbundenen Peers zeigt:

$ bitcoin-cli -netinfo
Bitcoin Core v22.0.0 - 70016/Satoshi:22.0.0/

            ipv4    ipv6   onion   total   block  manual
    in         0       0      24      24
    out        2       0       9      11       2       1
    total      2       0      33      35

Local addresses
REDACTED     port   8333    score      4

Hinweis: Dieser Knoten hat einen addnodeEintrag in seiner bitcoin.confDatei. Knoten, mit denen auf diese Weise verbunden wird, zählen nicht zu den Beschränkungen für ausgehende Verbindungen von 8 und 2, sodass ein zusätzlicher 11. ausgehender Peer hinzugefügt wird.

Antworten (1)

Block-Relay-Verbindungen wurden im November 2019 in v0.19.0.1 zum Bitcoin-Kern hinzugefügt. Ihr Zweck ist es, das Peer-to-Peer-Netzwerk gegen Partitionsangriffe zu schützen. Sie tun dies durch eine clevere Kombination von Faktoren:

Schutz vor Informationslecks in der Netzwerktopologie

Ein Bitcoin-Knoten gibt keine Adress- oder Transaktionsinformationen über eine Nur-Block-Relay- Verbindung weiter. Dadurch wird verhindert, dass der Knoten Informationen zur Netzwerktopologie preisgibt. Eine Netzwerktopologiekarte kann aus zwei Gründen gefährlich sein:

  • Es kann verwendet werden, um die Ursprungs-IP einer Bitcoin-Transaktion zu verfolgen.
  • Es kann verwendet werden, um einen Eclipse-Angriff durchzuführen.

Steigern Sie ausgehende Verbindungen, ohne den Netzwerkverkehr wesentlich zu erhöhen

Adress- und Transaktionsklatschnachrichten machen den Großteil der Netzwerkbandbreite eines Knotens aus. Das Hinzufügen zusätzlicher ausgehender Verbindungen, die diese Nachrichten nicht weitergeben, ermöglicht also einen enger integrierten Netzwerkgraphen mit sehr begrenzten Auswirkungen auf die Bandbreite, die zum Betreiben eines Knotens erforderlich ist.

Ankerknoten

Normalerweise verbindet sich ein Bitcoin-Knoten beim Start mit zufälligen Peers. Eine Ankerverbindung ist eine ausgehende Knotenverbindung, die über einen Neustart hinweg bestehen bleibt. Nur-Block-Relay- Verbindungen wurden in Version 0.21.0 , die im Januar 2021 veröffentlicht wurde , in Ankerverbindungen umgewandelt .

Ankerverbindungen schützen vor einem Remote-Restart-Angriff, der der wahrscheinlichste Vektor eines Eclipse-Angriffs ist. Der Angriff funktioniert so:

  • Überschwemmen Sie den Adressmanager des Zielknotens mit bösartigen Knotenadressen.
  • Verwenden Sie einen anderen Exploit, um den Zielknoten zum Neustart zu zwingen (oder auf ein Software-Upgrade zu warten). Dadurch wird der Zielknoten dazu verleitet, seine ausgehenden Verbindungen zu löschen und sich nur mit bösartigen Knoten zu verbinden.

Zu viele Ankerknoten können eine schlechte Sache sein, da sie eine bösartige Knotenverbindung verankern und es einem Knoten erschweren, einen Eclipse-Angriff zu verteidigen oder sich davon zu erholen. Sie können auch den Graphen der Netzwerktopologie statischer machen und somit einfacher zuzuordnen und einfacher zu partitionieren. Aber Sie möchten auf jeden Fall ein paar Ankerknoten haben, um sich vor Remote-Restart-Eclipse-Angriffen mit etwas Redundanz zu schützen. Die Verwendung von Nur-Block-Relais- Verbindungen als Ankerverbindungen bietet in dieser Hinsicht einen guten Ausgleich. Diese Konfiguration profitiert auch von der Tatsache, dass Block-Relay-Only- Verbindungen aufgrund fehlender ADDR- und TX-Nachrichten für einen Angreifer schwer zu erkennen sind.

Ankerverbindungen härten das Peer-to-Peer-Netzwerk nach dem „One Honour Peer“-Prinzip. Solange ein Bitcoin-Knoten mit einem ehrlichen Peer verbunden ist, kann er über die Kette gültiger Blöcke mit dem größten Gesamtarbeitsnachweis informiert bleiben. Der Knoten kann sich auf die fälschungssichere Kostspieligkeit des Arbeitsnachweises als ultimative Sicherheitsgarantie verlassen. Dies wiederum hängt davon ab, dass ein Angreifer nicht die Kontrolle über einen Großteil der Hashpower im Netzwerk erlangt. Kurz gesagt, Block-Only-Relay- Knoten binden das Peer-to-Peer-Sicherheitsmodell enger an das Proof-of-Work-Sicherheitsmodell.

Zusätzliche Ressourcen