Warum kann eine Blockchain nicht mehr Transaktionen verarbeiten als ein einzelner Knoten?

Ich lese über die On-Chain-Skalierbarkeitslösungen. Im Moment beschäftige ich mich mit Sharding .

Derzeit speichert jeder Knoten in allen Blockchain-Protokollen alle Zustände (Kontostände, Vertragscode und Speicherung usw.) und verarbeitet alle Transaktionen. Dies bietet ein hohes Maß an Sicherheit, schränkt jedoch die Skalierbarkeit stark ein: Eine Blockchain kann nicht mehr Transaktionen verarbeiten als ein einzelner Knoten. Zum großen Teil aus diesem Grund ist Bitcoin auf ~3-7 Transaktionen pro Sekunde begrenzt , Ethereum auf 7-15 usw.

Ich kann das nicht nachvollziehen, könnte das jemand näher erläutern?

Also mit anderen Worten :

Die Anzahl der Transaktionen, die die Blockchain verarbeiten kann, kann niemals die eines einzelnen Knotens überschreiten, der am Netzwerk teilnimmt.

Außerdem:

In einem herkömmlichen Datenbanksystem besteht die Lösung für die Skalierbarkeit darin, mehr Server (dh Rechenleistung) hinzuzufügen, um die zusätzlichen Transaktionen zu verarbeiten. In der dezentralisierten Blockchain-Welt, in der jeder Knoten jede Transaktion verarbeiten und validieren muss, müssten wir jedem Knoten mehr Rechenleistung hinzufügen, damit das Netzwerk schneller wird. Da wir keine Kontrolle über jeden öffentlichen Knoten im Netzwerk haben, stehen wir vor einem Problem.

Wenn ich das also richtig verstehe, legt der schwächste Knoten (oder ist es ein vollständiger Knoten?) in der Blockchain das Limit für tx/s fest . Warum ist das so? Ist es dann möglich, einen wirklich sehr langsamen Knoten hinzuzufügen, der die gesamte Verarbeitung von Transaktionen verlangsamt?

Antworten (2)

Unterscheiden Sie zwischen Mining-Knoten und Nicht-Mining-Knoten. Letztere haben nichts mit der Geschwindigkeit der Kette zu tun. Non-Mining Nodes folgen den Minern einfach hinterher.

Denken Sie jetzt an die Miner – ein langsamer Miner verliert fast immer das Rennen um einen Block gegen einen schnellen Miner. Daher haben sie keine Fähigkeit, irgendetwas zu verlangsamen. Die Kette bewegt sich einfach vorwärts. Langsame Miner halten mit, wenn sie können.

Denken Sie daran, mitzuhalten. Ein großer Teil der Zeit, die zum Auffinden eines Blocks benötigt wird, wird mit der Suche nach dem Block-Hash auf einem bestimmten Schwierigkeitsgrad verbracht. (Aus diesem Grund gewinnen schnelle Miner normalerweise – sie können viel mehr Hashes scannen.) Die Überprüfung des Blocks, sobald er gefunden wurde, nimmt (von Natur aus) sehr wenig Zeit in Anspruch. Sobald ein Block gefunden wurde, verifizieren ihn alle Knoten (sowohl langsame als auch schnelle) sehr schnell, und alle suchen nach dem nächsten Block-Hash.

Die schnellsten Bergleute bewegen die Kette vorwärts. Der Schwierigkeitsgrad zwingt die Miner, pro Block (durchschnittlich) 14 Sekunden lang Strom zu verschwenden.

Nein, es gibt keine Begrenzung der Ethereum-Blockchain mit langsamen Nodes. Aber es würde nicht überleben, wenn die für den Betrieb eines Knotens erforderlichen technischen Spezifikationen so hoch wären, dass nur sehr leistungsfähige Computer die durchzuführenden Berechnungen einholen könnten. Deshalb begrenzt man die Leistung von Ethereum, damit mehr Leute am Netzwerk teilnehmen können, auch mit langsameren Computern oder sogar einem Raspberry Pi (aber harte Arbeit ;) ). Natürlich könnte sich das Netzwerk in den nächsten Jahren auf mehr Leistung einigen, wo die durchschnittliche Rechenleistung pro Knoten höher sein wird, aber wollen wir kleinere und langsamere Geräte zurücklassen?

Ethereum hat also eine „Mindestanforderung“ an Nodes? Reden wir von Nodes oder Full Nodes?
Im Moment sind in den meisten Fällen Knoten == vollständige Knoten. Obwohl ich keine min gesehen habe. Systemspezifikationen für Node-Clients (vielleicht gibt es einige offizielle Empfehlungen da draußen), es ist klar, dass sie nicht auf einem Taschenrechner laufen werden. Je niedriger Sie die Messlatte setzen, desto mehr „Geräte“ können teilnehmen.
Ich bin immer noch verwirrt. Warten alle Miner-Knoten auf den schwächsten Mining-Knoten?
Es ist umgekehrt: Die Knoten synchronisieren sich mit geschürften Blöcken aus dem Netzwerk und wenden die darin enthaltenen Berechnungen auf ihren Zustand an. Stellen Sie sich vor, letzteres würde mehr Zeit in Anspruch nehmen als das Mining von Blöcken, die Knoten könnten sich niemals synchronisieren. Dies ist bei langsameren IoT-Geräten leicht der Fall, wenn die Komplexität der Berechnungen beim Synchronisieren hoch ist.