Ich habe einige Bücher und Artikel über Bitcoin gelesen und habe das Gefühl, viele seiner Konzepte verstanden zu haben, aber ich kann keine Antwort auf eine Frage finden, die ich seit langem habe:
Ich weiß, dass das Netzwerk versucht, die kryptografische Schwierigkeit ständig so anzupassen, dass neue Blöcke im Durchschnitt in 10-Minuten-Intervallen geschürft werden. Wenn die Blockgröße begrenzt ist, kann jeder Block nur eine maximale Anzahl von Transaktionen enthalten.
Das bedeutet, dass Miner einige Transaktionen gegenüber anderen priorisieren müssen (höchstwahrscheinlich diejenigen, die die höheren Gebühren zahlen), wenn die Anzahl der eingehenden Transaktionen pro 10-Minuten-Intervall dieses Maximum überschreitet. Wenn die Anzahl der eingehenden Transaktionen im Laufe der Zeit unter dieses Maximum sinkt, werden diese nicht verarbeiteten Transaktionen (die mit den niedrigeren Gebühren) in die nächsten Blöcke aufgenommen.
Aber was passiert, wenn über einen längeren Zeitraum die Anzahl der eingehenden Transaktionen pro 10-Minuten-Intervall nie abnimmt?
Konsequenterweise würde dies bedeuten, dass alle Transaktionen mit einer zu geringen Gebühr nie (oder zumindest nicht sehr lange) in die Blockchain gelangen.
(Mit zunehmender Akzeptanz wird es sicherlich alle 10 Minuten mehr als ein paar hundert oder tausend Transaktionen geben?)
Unabhängig von der Anzahl der an das Netzwerk gesendeten Transaktionen gibt es eine implizite maximale Anzahl von Transaktionen, die in einen Block aufgenommen werden können (siehe Antwort von @JamesC), und die Anzahl der gefundenen Blöcke wird durch den Schwierigkeitsanpassungsalgorithmus des Netzwerks geregelt, der darauf abzielt durchschnittlich alle zehn Minuten einen Block. Dadurch wird die Anzahl der Transaktionen pro Sekunde, die das Netzwerk im Blockchain-Datensatz bestätigen kann, effektiv begrenzt.
Sie könnten daher glauben, dass das Hinzufügen eines Anpassungsmechanismus für die Größe oder Häufigkeit von Blöcken für das Netzwerk von Vorteil wäre, aber weitere Untersuchungen zeigen, dass dies der Gesundheit des Netzwerks tatsächlich abträglich ist . Der Grund dafür, dass die Anzahl der in einem Block enthaltenen Transaktionen (d. h. eine einstellbare Blockgröße) nicht angepasst wird, besteht darin, dass ein solcher Mechanismus unerwünschte Auswirkungen auf die Fähigkeit der Benutzer, Knoten auszuführen, und auf die Spieltheorie des Bitcoin-Mining hätte :
Für vollständige Knoten: Im Allgemeinen gilt: Je größer ein Block ist, desto mehr Rechenressourcen (Bandbreite, Speicher, Berechnung) benötigt ein Knoten, um ihn zu validieren. Eine größere Blockgröße übt also Druck auf die am wenigsten leistungsfähigen Knoten im Netzwerk aus, und es sollte damit gerechnet werden, dass jede Erhöhung der Ressourcenanforderungen dazu führt, dass einige Knoten aus dem Netzwerk fallen. Daher können wir sehen, dass eine wachsende Blockgröße als DOS-Angriff gegen ressourcenbeschränkte Knoten im Netzwerk verwendet werden kann, und dies ist offensichtlich unerwünscht.
Für Miner: Unabhängig von der Hardware dauert das Herunterladen und Validieren eines größeren Blocks länger. Als Miner bedeutet dies, dass Sie, wenn Sie von einem neuen Block im Netzwerk hören, einen kurzen Zeitraum haben, in dem Sie den neuen Block herunterladen, aber nicht mit dem Mining beginnen können, bevor Sie sicherstellen, dass er gültig ist . Dies führt zu einer Erhöhung der Orphan-Block-Rate, was kleinere Miner stärker betreffen wird als größere Miner . Wir können also sehen, dass ein größerer Miner einen Anreiz hätte, größere Blöcke zu erstellen, da die mit großen Blöcken verbundenen Latenzprobleme ihre Konkurrenten (kleinere Miner) stärker betreffen als sie selbst. Letztendlich würden wir erwarten, dass dies die Mining-Macht auf einige wenige Großbetriebe konzentriert, was offensichtlich unerwünscht ist.
Das alles klingt also ziemlich düster in Bezug auf die Skalierung des Bitcoin-Netzwerks, um mit einem globalen Transaktionsvolumen fertig zu werden. ABER! Die gute Nachricht ist, dass die Skalierung der Blockgröße vielleicht der naheliegendste Ansatz ist, aber sicherlich nicht der einzige.
Beispielsweise verschiebt das Lightning Network (LN) Transaktionen Off-Chain, wodurch ein nahezu unbegrenztes Transaktionsvolumen Off-Band zwischen LN-Teilnehmern stattfinden kann. Darüber hinaus könnten LN-Channel-Factorys den Teilnehmern Transaktionen mit unglaublichen Kosteneinsparungen ermöglichen. Beachten Sie, dass es bei der Verwendung des LN Kompromisse gibt und dass das Vertrauens- und Sicherheitsmodell etwas anders ist als bei Transaktionen in der Kette.
Sidechains kommen auch online, ein solches Beispiel ist das von Blockstream erstellte Liquid Network . Beachten Sie, dass Sidechains die Skalierbarkeit nicht erhöhen, aber die Skalierung erhöhen können , allerdings wiederum mit einer anderen Sicherheits- und Vertrauensannahme als der der zugrunde liegenden Bitcoin-Blockchain.
Schnorr-Signaturen bieten eine Reihe von Vorteilen gegenüber ECDSA. In Bezug auf die Skalierbarkeit können wir sehen, dass Signaturen kleiner sein können (was weniger Bytes pro Transaktion bedeutet) und eine flexiblere Signaturaggregation (viele Teilnehmer werden durch eine einzige aggregierte Signatur repräsentiert, wodurch die Anzahl effektiv reduziert wird Bytes pro Benutzer' in einer Transaktion). Beachten Sie, dass Schnorr-Signaturen derzeit nicht im Bitcoin-Netzwerk verwendet werden, aber viele Entwickler würden ihre Implementierung gerne in der Zukunft sehen.
Um all dies zusammenzufassen, möchte ich Sie ermutigen, sich zu dem Verständnis zu bewegen, dass ein Benutzer, der mit dem Bitcoin-Netzwerk interagiert, um einen Wert auszutauschen, nicht unbedingt 1:1 einer On-Chain-Transaktion zuordnen muss . Eine On-Chain-Transaktion kann tatsächlich eine große Anzahl einzelner Benutzertransaktionen darstellen (z. B. eine Transaktion, die einen LN-Kanal öffnet, oder eine Transaktion, die eine aggregierte Signatur enthält, die eine große Anzahl von Personen darstellt, die an einer einzelnen Transaktion teilnehmen), oder als Nic Carter hat es so formuliert :
[Bitcoin-Transaktionen] sind nichts wie Visa-Transaktionen, mit denen sie üblicherweise verglichen werden. Ich bezeichne sie gerne als Containerschiffe, nicht als Pakete.
Das heißt, dass eine einzige On-Chain-Transaktion die wirtschaftliche Aktivität einer großen Anzahl einzelner Benutzer darstellen kann, nicht nur die Transaktion eines einzelnen Benutzers.
Wir können also sehen, dass die „Anzahl der Transaktionen pro Sekunde“ kein perfektes Maß für die soziale Skalierbarkeit von Bitcoin ist, stattdessen ist der „ökonomische Durchsatz pro Sekunde“ vielleicht interessanter. Wenn wir die wirtschaftlichen Handlungen von mehr Benutzern pro Transaktion einbeziehen können, finden wir möglicherweise einen praktikableren Weg, um das Bitcoin-Netzwerk auf eine globale Ebene zu skalieren.
Die Menge gültiger Sendedaten, die alle 10 Minuten bestätigt werden können, ist gebunden:
Das Gewicht einer einzelnen Transaktion ist1 * TX-bytes(incl. witness) + 3 * TX-bytes(without witness)
Daher gibt es keinen Mechanismus, um mehr Transaktionen zu berücksichtigen, als ihre individuelle Bytegröße und Gewichtung zu reduzieren.
sanket1729