Bitcoin kann mehr als 7 TPS (Transaktinen pro Sekunden) (Onchain)

Warum sagen den immer alle das Bitcoin maximal 7 Transaktionen pro Sekunde bestätigen kann? (Das sind ca. angeblich maximal (7 * 60) * 10 = 4200 Transaktionen pro Block)

Wenn man schon von „Maximal“ spricht, sollte man meiner Meinung nach halt auch von dem bestmöglichen Szenario ausgehen.

Wenn man eine normale Native Segwit Transaktion mit einem Input und 2 Outputs nimmt, hat diese um die 140.25 vB.

Wenn man nun davon ausgeht, dass ein Bitcoin Block (ohne jetzt den Segwit Anhang vom Max 3 MB zu rechnen) 1 MB Daten aufnehmen kann. Müsste doch folgende Grundschulrechnung stimmen:

1 MB = 1.000.000 bytes

1.000.000 / 140.25 = 7.130,124777183601 Transaktionen

7.130 / die 10 Minuten eines Blockes = 713 / 60 Sekunden 11,88 Transaktionen pro Sekunde.

Man könnte jetzt sagen Ja das ist recht unwahrscheinlich, aber die angeblich MAXIMAL 7 TPS (4200 pro Block) werden doch ständig überschritten: in diesem Fall hochgerechnet auf den 10 Minuten Block sind das 10.20 TPS also deutlich höher als 7 TPS.

Sobald du mit virtual Bytes rechnest, machst du aber genau das! :smiley:

Gehst du von maximal 1 MB aus, dann wirst du auf die berühmt-berüchtigten 7 TPS kommen.

Korrekt wäre also entweder mit 1 vMB und 140,25 vB bzw. 4 MWU und 561 WU zu rechnen. Dann stimmt deine Rechnung natürlich – rechnet aber mit dem zusätzlichen Platz von Segwit.

(Und noch eine kleine Korrektur: Der Witness hat kein absolutes Limit von 3 MB, sondern rein theoretisch knapp 4 MB, nämlich wenn der restliche Block nahezu leer ist. Beispiel: mempool - Bitcoin Explorer)

Ähm leider nein: 1 MB = 1024 KB & 1 KB = 1024 Bytes
Also müsste 1 MB = 1024 x 1024 = 1048576 Bytes sein.

Eigentlich, also wenn man explizit von der Zweierpotenz ausgehen möchte, nutzt man entsprechend 1 MiB (Mebibyte), das sind dann 220 = 1048576 Byte. Das ist auch eigentlich die sinnvollere Größe, da in einem Computer nun mal Binär gerechnet wird.

1 MB wird wegen „Mega“ aber in der Regel als Zehnerpotenz, also 106 = 1000000 Byte verstanden. Es kann auch beides gemeint sein, das ist ein bisschen vom Kontext abhängig, aber für so eine Rechnung wie von oben ist das doch vernachlässigbar. :slight_smile:

Siehe:

Was ist den dan nun die Maximale anzahl an TPS wenn man alles Berücksichtigt?

Also zunächst kann man das allgemein nicht berechnen, da sich die Transaktionsgröße halt immer unterscheiden kann. Sinnvoller wäre es, mögliche Zahlungen pro Sekunde zu berechnen. Eine Transaktion mit 50 Outputs kann schließlich 50 verschiedene Zahlungen ausführen, und das effizienter als es 50 individuelle Transaktionen könnten.

Aber auch hier kommt man auf keine absolute Zahl, da es halt vom UTXO Management, Wechselgeld und den unterschiedlichen Output-Typen abhängt.

Schaut man auf die Daten, sieht man z.B. dass durchschnittlich ungefähr 2,5 Zahlungen pro Transaktion getätigt werden:

Allerdings muss man hier beachten, dass auch Wechselgeld als „Zahlung“ gewertet wird, obwohl damit keine „ökonomisch relevante“ Zahlung stattfindet. Ich hoffe es ist klar, was ich damit meine.


Deine Rechnung von oben ist aber wie gesagt richtig, ich hatte nur deine Annahme korrigiert, dass du Segwit nicht mitrechnen würdest – denn du hast Segwit mit einberechnet. :slight_smile:

Mit den korrekten Einheiten und einer 1-in-2-out P2WPKH Transaktion:

1 vMB / 140,25 vB = 7130,12 Transaktionen pro vMB

7130,12 / 10 min / 60 s = 11,88 TPS

Da virtuelle Byte einfach nur das Gewicht geteilt durch vier sind, macht es keinen Unterschied in welcher Einheit man rechnet (4 MWU / 561 WU sind auch = 7130,12).

Nehmen wir die 2,5 Zahlungen pro Transaktionen von oben kommt Bitcoin heute also ungefähr (und mit einigen Annahmen) auf 30 Zahlungen pro Sekunde.

Mit einer 1-in-2-out P2PKH Transaktion:

Wenn man Segwit nicht mitberechnen würde, wie du oben angekündigt hast, dann sieht es natürlich anders aus. Eine 1-in-2-out P2PKH Transaktion hat eine tatsächliche Größe von 226 Byte.

1 MB / 226 B = 4424,78 Transaktionen pro MB

4424,78 / 10 min / 60 s = 7,4 TPS

Und noch eine komplett utopische Rechnung:

Gehen wir von idealen Bedingungen aus, d.h. wir füllen einen Block (neben der Coinbase TX) nur mit einer einzigen Transaktion mit so vielen Outputs wie möglich, kommen wir auf ungefähr 32246 mögliche Zahlungen (Details zu dieser Zahl).

Dann sind wir bei etwa 50 Zahlungen pro Sekunde! :smiley:

6 „Gefällt mir“

Dan

Danke für dir Richtigstellung, wenn man es jedoch genau nimmt sagen Bitcoin Kritiker immer MAXIMAL 7 TPS. Dann könnte man halt auch gleich wie diese Cherry Picking betreiben und diese Zahl als Maximale TPS annehmen.

Ganze 50 Transaktionen pro Sekunde. Wer braucht denn da noch größere Blöcke? :joy:

Scherz bei Seite. Ob 7 TPS oder 12 TPS. Die Herausforderungen einer niedrigen TPS-Rate werden in Zukunft so oder so kommen. Bei 12 TPS halt etwas später als bei 7 TPS. Selbst 50 TPS würden höchstwahrscheinlich irgendwann zu vergleichbar teuren Gebühren führen.

2 „Gefällt mir“

So ist es. Man ist meilenweit von einem globalen electronic Cash entfernt. Es ist deshalb völlig Schnuppe, ob man 5 oder 50 TPS schafft. Für den Store of Value alleine wird es vielleicht reichen. Aber ich persönlich fände das sehr unbefriedigend. :slightly_smiling_face:

Man braucht einfach noch eine geniale Idee für die Skalierung, so dass jeder (non-custodial) zu jederzeit (permissionless mit geringen Gebühren) die volle Sicherheit der Main Chain in Anspruch nehmen kann. Es muss also zu jeder Zeit möglich sein, Transaktionen gemeinsam mit anderen in einer Sammeltransaktion für einen Bruchteil der Sammeltransaktionsgebühren durchzuführen.

Batch Transactions sind da ein Witz, Cross-Input Signature Aggregation geht in die richtige Richtung, aber reicht noch lange nicht. Ich baue auf eine neue kryptographische Methode, die durch Verwerfen von Details auch gleich die entsprechende Anonymität mitbringt. Aber ich schweife ab… :sweat_smile:

Dann macht man sich durch diese Methoden genauso lächerlich wie die anderen. Wenn du mit so einer hohen Zahl kommt, jemand findet aber anschließend heraus, dass das unrealistisch schön gerechnet ist, glauben sie dir nachher gar nichts mehr.

1 „Gefällt mir“

Da Bitcoin nicht wie das legacy Bankensystem funktioniert (ein Input + ein Output = Transaktion) halte ich dieses „Transaktionen pro Sekunde“ für vollkommen irreführend.

Wie schon dargelegt wurde, kann eine Transaktion viele Inputs und Outputs haben, was ein Vergleich zum Bankensystem oder Visa vollkommen absurd macht.

Hinzu kommt noch, das Bitcoin als Basisschicht für Geld dient. Wenn man diesen (für mich bescheuerten) Vergleich auf macht, dann müsste man Bitcoin mit Zentralbanken vergleichen die Tage oder zum Teil Wochen brauchen um Transaktionen untereinander abzuwickeln.

1 „Gefällt mir“

Stimmt, aber das Gleiche ist halt auch bei Bitcoin Kritikern. Die Rechen sich halt auch immer alle so wie es für sie am besten ist.

Dann such dir doch einfach den Block mit den meisten Transaktionen raus und nimm den als deine Diskussionsgrundlage. Ob 10.2 oder 7 ändert warscheinlich sowieso nix an der Diskussion.

1 „Gefällt mir“