Was ist ein SPV-Client?

Ich habe gesehen, dass der SPV-Client an mehreren Stellen erwähnt wurde. Was genau ist ein SPV-Client? Wie unterscheidet es sich von einem Standard-Client?

Antworten (2)

Vereinfachte Zahlungsüberprüfung:

Eine Bitcoin-Implementierung, die nicht alles verifiziert, sondern sich entweder darauf verlässt, sich mit einem vertrauenswürdigen Knoten zu verbinden, oder auf hohe Schwierigkeiten als Proxy für den Gültigkeitsnachweis setzt. BitCoinJ ist eine Implementierung dieses Modus.

Lesen Sie auch:

MultiBit , Bitcoin Wallet for Android und Electrum sind Beispiele für SPV-Clients.

Also steht "SPV" im Gegensatz zum "vollständigen" Knoten? Oder gibt es eine dritte Klasse?
@Pacerier Ja. Der Vergleich erfolgt mit vollständigem Knoten.

SPV ist vereinfachte Zahlungsüberprüfung und wird normalerweise mit dem „Betreiben eines vollständigen Knotens“ verglichen. SPV gibt es seit der ursprünglichen Inkarnation von Bitcoin, es war von Anfang an dabei. Es ist eine vollkommen gute Art, eine Brieftasche zu betreiben.

Das Bitcoin-Netzwerk ist auf bestimmte „Konsensregeln“ angewiesen, um zu funktionieren. Eine dieser Regeln ist, dass Sie etwas, das Sie besitzen, nicht zweimal ausgeben können. Wenn Sie eine Transaktion in das Bitcoin-Netzwerk senden, wird sie schließlich in die Blockchain geschrieben. Full Nodes laden die komplette Blockchain herunter und prüfen jede Transaktion darin, ob sie den Regeln entspricht. Dies ist auch wichtig für Sie, wenn Sie Geld erhalten, da es sicherstellt, dass das, was jemand ausgegeben hat, indem er es an Sie gesendet hat, rechtmäßig ausgegeben wurde und daher Ihnen gehört.

Ein SPV-Wallet lädt nur einen bestimmten Teil der Blockchain herunter, die „Block Header“. Jeder Block in der Blockkette zeigt auf den vorherigen Block. Die zur Identifizierung eines Blocks verwendete Kennung ist ein „Hash“ seines Headers. Das Finden dieses Hashs wird oft als „kryptografisches Puzzle“ oder „Arbeitsnachweis“ bezeichnet, das ein Miner lösen muss, um einen Block an die Kette anzuhängen. Der Hash muss einer bestimmten Schwierigkeit entsprechen, die im Netzwerk dynamisch angepasst wird. Um sicherzustellen, dass Sie nicht getäuscht werden, müssen Sie den jüngsten Verlauf der Blockchain scannen, um zu verstehen, was die aktuelle Schwierigkeit ist und ob neue Blöcke, die Sie sehen, gemäß dieser Schwierigkeit tatsächlich gültig sind. Das sind viel weniger Daten als die gesamte Blockchain.

Eine andere Sache, die ein Full Node tut, ist das Weiterleiten von Transaktionen. Bitcoin ist ein P2P-Netzwerk, was bedeutet, dass jeder mit jedem spricht. In der Praxis sprechen nicht alle 10000 Notizen mit allen anderen Knoten (das würde 100000000 Verbindungen erfordern!), sondern mit einer Teilmenge von Knoten. Damit Ihre Transaktion einen Miner erreicht, der sie in einen Block legt, muss sie möglicherweise von einem Knoten weitergeleitet werden.

Eine SPV-Wallet ist für einen Endbenutzer nicht weniger sicher. Es wird Ihnen korrekt sagen, wie viel Bitcoin Sie ausgeben können und ob ein an Sie gesendeter Bitcoin-Betrag tatsächlich zuverlässig ausgegeben werden kann (dh ob Sie ihn besitzen). Meine Formulierung mag etwas seltsam erscheinen, das liegt daran, dass Sie technisch gesehen nie etwas besitzen, außer einigen kryptografischen Schlüsseln, mit denen Sie bestimmte Gelder ausgeben können, die Ihnen zugesandt wurden.

Sie haben vielleicht gelesen, dass es besser ist, einen vollständigen Knoten auszuführen. Diese Aussage gilt in Bezug auf das Netzwerk als Ganzes: Je mehr Knoten die Regeln des Systems durchsetzen, desto besser. Je mehr Knoten Transaktionen betreiben und weiterleiten, desto besser. Denken Sie an das Vier-Augen-Prinzip bei Steroiden. Aber es ist nicht machbar oder gar möglich, dass jeder Benutzer einen vollständigen Knoten betreibt. Zum Beispiel, wenn Sie eine Brieftasche auf Ihrem Mobilgerät haben, die möglicherweise nicht über genügend Ressourcen verfügt, um jede einzelne Transaktion im Netzwerk zu validieren, oder nicht über genügend Bandbreite, um daran teilzunehmen.

Zusammenfassend: Wenn es keine Full Nodes gäbe, gäbe es kein Bitcoin-Netzwerk. Aber um Bitcoin zum Senden/Empfangen von Geldern zu verwenden, ist es nicht erforderlich, einen vollständigen Knoten zu betreiben. Ihre eigene Sicherheit wird dadurch nicht beeinträchtigt. Meiner Meinung nach ist es besser, daran teilzunehmen und dadurch den Wert von Bitcoins als Nutzen zu steigern, als überhaupt nicht teilzunehmen. Es ist auch besser, ein eigenes Wallet zu verwenden als beispielsweise ein Web-Wallet an einer bestimmten Börse.

Weiterführende Literatur:

„Ich würde nicht empfehlen, Gelder in einem SPV-Wallet aufzubewahren“, – Jonas Schnelli en.bitnovosti.com/2018/07/06/…
@StephenGornick FYI, es ist offline und das Internetarchiv hat keine Kopie. (Deshalb wird von Nur-Link-Antworten (und damit von Kommentaren) abgeraten ...)