Wie viele Transaktionen pro Sekunde kann Ethereum derzeit verarbeiten? Welche Änderungen ermöglichen es dem Netzwerk, mehr zu bewältigen? [Duplikat]

Ich habe nach einer genaueren Antwort auf diese Frage gesucht, aber ich habe viele widersprüchliche Informationen gesehen, die besagen, dass Ethereum derzeit zwischen 12 und 45 Transaktionen pro Sekunde verarbeiten kann. Was ist die richtige aktuelle Nummer?

Dann auch laut diesem Artikel :

Nach den Worten des Schöpfers Vitalik Buterin besteht das langfristige Ziel darin, dass die Plattform in der Lage sein soll, Transaktionen auf „Visa-Transaktionsebene“ oder darüber hinaus zu verarbeiten.

„Visa-scale“ wird mit 45.000 Transaktionen pro Sekunde bezeichnet.

  • Was muss also auf technischer Ebene passieren, um dieses Ziel zu erreichen?
  • Mehr Miner?
  • Mehr Knoten?
  • Effizienterer Kerncode?

Oder wird eine völlig neue Entwicklung von Ethereum notwendig sein, um dieses Niveau an Transaktionskapazität zu erreichen?

Antworten (1)

Ich habe nachgerechnet, um die ungefähren tx / s anzuzeigen:

  • Das Blockgaslimit beträgt 7.999.992

  • Transaktionskosten 21.000 Gas (angenommen, es ist nichts anderes beigefügt)

  • Das sind ~380 Transaktionen pro Block

  • Mit einer Blockzeit von rund 15,03 Sekunden. Wie https://ethstats.net/ zeigt.

Das ergibt ungefähr: 25.346 tx/s.

Am Ende Ihrer Frage haben Sie einige Möglichkeiten erwähnt, diese Zahl zu erhöhen.

  • Je mehr Bergleute im Netzwerk, desto größer die Netzwerkschwierigkeit, da die Algorithmen zur Berechnung der Schwierigkeit immer versuchen, die Zeit des nächsten Blocks auf etwa 15 Sekunden zu bringen.
  • Mehr Knoten erhöhen die Blockzeit noch mehr, da mehr Verzögerungen zwischen ihnen auftreten und dann mehr Zeit benötigt wird, um sich miteinander zu synchronisieren.

Es besteht eine umgekehrt proportionale Beziehung zwischen dem Konsensvolumen und der tx/s-Rate . Je mehr Zeit die Knoten benötigen, um die Synchronisierung durchzuführen und einen Konsens zu erzielen, desto weniger tx/s haben Sie.

Um alle von Ihnen erwähnten Funktionen zu verbessern, gibt es jetzt einige Möglichkeiten, wie Ethereum einsteigt:

  • Sharding (Borns, während Sie erkennen, dass die gesamte Blockchain nicht mehr Transaktionen verarbeiten kann als ein einzelner Knoten):„Lösung“ -> Wir teilen den Zustand und die Historie in K = O(n / c) Partitionen auf, die wir „Shards“ nennen. Beispielsweise könnte ein Sharding-Schema auf Ethereum alle Adressen, die mit 0x00 beginnen, in einen Shard legen, alle Adressen, die mit 0x01 beginnen, in einen anderen Shard usw. In der einfachsten Form des Shardings hat jeder Shard auch seinen eigenen Transaktionsverlauf und die Auswirkungen Transaktionen in einem Shard k sind auf den Zustand von Shard k beschränkt. Ein einfaches Beispiel wäre eine Multi-Asset-Blockchain, bei der es K Shards gibt und jeder Shard die Salden speichert und die Transaktionen verarbeitet, die mit einem bestimmten Asset verbunden sind. In fortgeschritteneren Formen des Shardings ist auch eine Form der Cross-Shard-Kommunikationsfähigkeit enthalten, bei der Transaktionen auf einem Shard Ereignisse auf anderen Shards auslösen können.

Die Ethereum Fundation spendet viele $, um die Forschung zu Sharding und Plasma anzuregen.

Hier hinterlasse ich einige wirklich gute Github-Informationen über Sharding.

Eine weitere wichtige Verbesserung ist die nächste:

  • CasperFFG (Wie bereits erwähnt, ist der PoW-Konsensalgorithmus nicht skalierbar, aus diesem Grund werden neue Proof of Concepts von Konsensalgorithmen erforscht. Jetzt plant Ethereum den Wechsel zu PoS durch die Implementierung von CasperFFG, um die Transaktionsperiode zu starten, in der 1/100 tx will von PoS durchgeführt werden. Im Wesentlichen ist es ein gemischter PoW-, PoS-Algorithmus, dessen Zweck es ist, eines Tages zu einer vollständigen PoS-Implementierung zu gelangen.) Lösung -> Durch die Verwendung von PoS-Konsensalgorithmen eliminieren Sie das Mining-Konzept (wie unrentable Berechnungen ). einen Hash in einem bestimmten Bereich finden). Dann kann sich die Blockzeit verkürzen, bis sie sogar 5 - 7 Sekunden erreicht (gesagt von Vitalik Buterin).

Hier hinterlasse ich den Link des CasperFFG-Papiers.

Es gibt weitere Ideen, um die Geschwindigkeit des Netzwerks zu verbessern, ohne sein Hauptziel zu verlieren: den Konsens. Aber ich habe die wichtigsten gepostet.

Ich hoffe es hilft!

7.999.992 ist nicht "Pi Million". 3141592 ist, was früher die Blockgasgrenze war :-)
Schlagen Sie die Bearbeitung vor, ich akzeptiere sie!! :)
Ich schätze die unglaublich durchdachte Antwort. Ich und die Community werden davon sehr profitieren.
Ich bin mir nicht sicher, ob ich Ihren Punkt zur Reduzierung der Blockzeit verstehe. (Vielleicht lese ich es falsch.) Wenn Sie die Blockzeit auf unter 15 Sekunden reduzieren, erhöht sich die Onkelrate, was schlecht ist. Die Schwierigkeitsanpassungsalgorithmen sind so eingestellt, dass diese Blockzeit beibehalten wird – sie hängt nicht von der Anzahl der Mining-Knoten ab.
Ebenso glaube ich nicht, dass eine Erhöhung der Anzahl der Knoten die Blockzeit verlängern würde. Die Blockzeit bleibt gemäß der Schwierigkeitsanpassung gleich. Wenn ein Knoten eine propagierte Nachricht nicht rechtzeitig erhält oder einen Block nicht validieren kann (entweder weil er ihn zu spät erhalten hat oder weil seine Hardware nicht gut genug ist), wird er einfach zurückgelassen. Dem Rest des Netzwerks ist es egal, dass es langsam ist (und es nicht wissen kann).
PoS muss einen Block ähnlicher Größe verwenden, damit die Ausbreitung und Validierung mit einer ähnlichen Rate wie bei PoW erfolgen kann. Wenn dies der Fall ist, bedeutet dies, selbst wenn die Blockzeit 5 Sekunden erreicht, nur eine 3-fache Erhöhung der TPS, dh ~ 75 TPS, anstatt irgendetwas in der Nähe von 100.
Das stimmt, und für einen einzelnen Knoten gibt es kein Problem. Aber bei mehr als 20000 Knoten, die sich jetzt auf Ethereum befinden, ist die Ausbreitungszeit wichtig. Sie müssen sicherstellen, dass zumindest ein beträchtlicher Prozentsatz davon mit dem tatsächlichen Blockchain-Zustand synchronisiert ist. Und sie können das Netzwerk zwingen, auf mehr zu warten, um sicherzustellen, dass sich ein großer Prozentsatz der Knoten auf denselben Blockchain-Status geeinigt hat.
Wenn ich jetzt den Teil der mehr Bergleute überprüfe, sehe ich, dass ich mich nicht richtig erklärt habe, ich werde ihn bearbeiten. Und schließlich, ja, es werden ungefähr 75 tx/s sein, wenn wir optimistisch sind, aber mit all dem Geld, das jetzt in Ethereum investiert wird, müssen wir verstehen, dass die Lösungen nicht so schnell kommen können, wie wir wollen, es gibt viele Tests bevor Sie eine neue Verbesserung veröffentlichen. Wenn irgendetwas fehlschlägt, werden Millionen und Abermillionen einfach verschwinden. Und wenn ich mich nicht irre, habe ich nichts über 100 tx/s gesagt, warum hast du das gesagt? War nur für Infoschweine?
Die Blockzeit (~15 s) wurde gewählt, weil sie als ausreichend Zeit angesehen wurde, damit sich die Blöcke ausreichend im Netzwerk ausbreiten konnten. Wie würden sie das Netzwerk zwingen zu warten? Woher wissen sie, wie viele Knoten sich auf einen Konsens geeinigt haben, wenn sie die Größe des Netzwerks nicht kennen?
Okay, ich habe den 1/100-TXS-Teil falsch verstanden (ich dachte, Sie hätten gesagt, es könnte 100s TPS verwalten) - mein Fehler :-)
Weil die 15s-Berechnung vielleicht nicht gedacht wurde, damit sich die Blöcke in einem Netzwerk mit +20000 Knoten ausreichend ausbreiten können. Was ich sagen wollte, ist, dass diese Blockzeit von 15 Sekunden möglicherweise nicht ausreicht, um einen akzeptablen Konsens zu erzielen, wenn die Anzahl der Knoten dramatisch zunimmt. Und dann müssen wir warten, bis sich der Block mehr Zeit ausbreiten kann.
Okay, Sie sprechen also von einer Protokolländerung, um die Blockzeit zu verlängern, und nicht von etwas, das automatisch passiert, wenn mehr Knoten dem Netzwerk beitreten - danke für die Klarstellung.