Dauert die Berechnung, wie viele Bitcoins ich habe, mit der Zeit länger?

Ich habe gelesen, dass die Blockchain eine Reihe von Transaktionen ist, die aufzeichnen, wie eine Person einer anderen Bitcoin gibt. Bitte korrigieren Sie mich, wenn diese Annahme falsch ist, da sie die Grundlage für meine Frage ist. Wird es also mit der Zeit nicht immer länger dauern, herauszufinden, ob Sie Bitcoin von jemandem annehmen können, weil Sie jede Transaktion in der Geschichte der Blockchain durchgehen müssen, um zu bestätigen, dass die Person, die Ihnen Bitcoin gibt, tatsächlich Bitcoin hat dass Bitcoin überhaupt?

Sie meinen, wenn es eine Milliarde Blöcke in der Kette gibt, wird es lange dauern, die Beträge zu überprüfen?
Sicher, oder sogar, was ist der inkrementelle Unterschied von einem Jahr zum nächsten.

Antworten (2)

Bei einer naiven Implementierung ja, aber in der Praxis nein, ist das kein Problem.

Das liegt daran, dass jeder Entwickler, der weiß, was er tut, schlau genug ist, eine Datenbank zu erstellen, die zumindest jede Transaktion (oder ihre Position auf der Festplatte) und ihren Überprüfungsstatus aufzeichnet. Wenn Sie also eine neue Transaktion erhalten, müssen Sie nicht durch den Verlauf zurückgehen, sondern nur auf die vorherige Transaktion zurückblicken, auf die verwiesen wird. Im Rahmen der Validierung einer Transaktion prüfen Sie, ob die vorherige Transaktion gültig war. Wenn also eine Transaktion in Ihrer Datenbank als gültig gekennzeichnet ist, können Sie sicher sein, dass die vorangegangenen Transaktionen auch gültig sind. Daher besteht keine Notwendigkeit, den Verlauf tatsächlich zu durchsuchen und diese Transaktionen erneut zu validieren.

Da es letztendlich nur auf eine einfache Datenbanksuche hinausläuft, wird es nicht schwieriger, neue Transaktionen zu validieren.

Die Berechnungszeit wird sehr langsam degenerieren, je länger die Zeit vergeht, da die verwendeten Mechanismen sehr effizient sind. Stellen Sie sich einen vereinfachten Zahlungsverifizierungsknoten (SPV) vor, der an eingehenden Zahlungen an eine Adresse in seiner Brieftasche interessiert ist. Der SPV-Knoten wird einen Bloom-Filter für seine Verbindungen zu Peers einrichten, um die empfangenen Transaktionen auf diejenigen zu beschränken, die Adressen von Interesse enthalten. Wenn ein Peer eine Transaktion sieht, die dem Bloom-Filter entspricht, sendet er den Block mithilfe einer Merkleblock-Nachricht. Die Merkleblock-Nachricht enthält den Block-Header sowie einen Merkle-Pfad, der die interessierende Transaktion mit der Merkle-Root im Block verknüpft. Der SPV-Knoten kann diesen Merkle-Pfad verwenden, um die Transaktion im Block zu verbinden und zu überprüfen, ob die Transaktion im Block enthalten ist. Der SPV-Knoten verwendet auch den Block-Header, um den Block mit dem Rest der Blockchain zu verknüpfen. Die Kombination dieser beiden Verbindungen, zwischen Transaktion und Block und zwischen Block und Blockchain, beweist, dass die Transaktion in der Blockchain aufgezeichnet wird. Alles in allem wird der SPV-Knoten weniger als ein Kilobyte an Daten für den Block-Header und den Merkle-Pfad erhalten haben, was sehr effizient ist und die Berechnungszeit sehr langsam degeneriert, wenn mehr Blöcke hinzugefügt werden.

Wenn ich Sie richtig verstehe, sagen Sie, dass Sie sich nur bestimmte Transaktionen ansehen können, um herauszufinden, wie viel Bitcoin sich in einer Brieftasche befindet. Aber ich verstehe nicht, wie das wahr sein kann. Müssen Sie zum Beispiel nicht für jede Transaktion, die an die Brieftasche geht, überprüfen, ob diese Personen das erforderliche Geld in ihrer Brieftasche haben, was einen Scan all dieser Brieftaschen und so weiter verursachen würde? Scannen Sie also nicht jedes Mal alle Transaktionen in der Blockchain?
Der grundlegende Baustein einer Bitcoin-Transaktion ist eine Transaktionsausgabe. Transaktionsausgaben sind unteilbare Teile der Bitcoin-Währung, die in der Blockchain aufgezeichnet und vom gesamten Netzwerk als gültig anerkannt werden. Bitcoin Full Nodes verfolgen alle verfügbaren und auszugebenden Ausgaben, die als nicht ausgegebene Transaktionen oder UTXO bekannt sind. Wenn die Brieftasche eines Benutzers Bitcoin empfängt, bedeutet dies, dass die Brieftasche UTXO erkannt hat, das mit einem der von der Brieftasche kontrollierten Schlüssel ausgegeben werden kann.
Das Bitcoin-Guthaben eines Benutzers ist die Summe aller UTXO, die eine Benutzer-Brieftasche ausgeben kann, die auf Hunderte von Transaktionen und Blöcken verstreut sein kann. Die Transaktionsausgabe besteht aus dem Betrag in Satoshis und einem kryptografischen Puzzle, das die Bedingungen bestimmt, die für die Ausgabe der Ausgabe erforderlich sind. Dieses Rätsel wird auch als Sperrskript bezeichnet. Das bedeutet, dass alle Bedingungen, die zum Nachweis des Eigentums erforderlich sind, im Transaktionsskript enthalten sind und das Wallet nicht die Blockchain scannen muss, um zu überprüfen, ob die Person, die den Bitcoin gesendet hat, tatsächlich über das Geld verfügt.