Aus meiner letzten Frage: Bitcoin Block Size – Was sind die Regeln?
Ich habe gelernt, dass die Blockgröße von einigen kB bis zu einem MB variieren kann. Das führt zu meiner nächsten Frage:
Beeinflusst die Blockgröße die Hashing-Geschwindigkeit eines Miners? (dh verringert ein sehr großer Block die Hash-Geschwindigkeit?) Wenn ja, was sind die Details dieser Beziehung?
Nur der Block-Header wird gehasht und hat eine feste Größe, sodass die Gesamtblockgröße keine Rolle spielt.
Aus Wiki:Block-Hashing-Algorithmus
Der Körper des Blocks enthält die Transaktionen. Diese werden nur indirekt über die Merkle-Wurzel gehasht. Da Transaktionen nicht direkt gehasht werden, erfordert das Hashing eines Blocks mit 1 Transaktion genau den gleichen Aufwand wie das Hashing eines Blocks mit 10.000 Transaktionen.
Während der Blockheader immer dieselbe Größe hat, ist ein Bestandteil des Blockheaders die Merkle Root, die sich mit jeder enthaltenen Transaktion ändert. Die Merkle Root ist ein Hash, der auf einem Merkle Tree aller Transaktionen des Blocks basiert. Das Erstellen des Merkle-Baums erfordert 2(n-1)+1 Hashes. Der Merkle-Baum muss regelmäßig aktualisiert werden, um neue Transaktionen aufzunehmen, wenn sie auftreten.
Um beim Pool-Mining Rechenleistung zu sparen, berechnet der Pool-Server den Merkle Root und stellt ihn dann allen Minern im Pool zur Verfügung. Beim Solo-Mining muss jeder Miner die Merkle Root berechnen und aktualisieren. Das aktuelle Transaktionsvolumen ist relativ gering, sodass die zur Aktualisierung des Merkle-Baums erforderliche Rechenleistung nicht erheblich ist. Sollte Bitcoin jedoch jemals ein Transaktionsvolumen auf VISA-Niveau (~4000 Transaktionen pro Sekunde) erreichen, würde die Berechnung des Merkle-Baums eine erhebliche Rechenleistung erfordern, möglicherweise sogar eine dedizierte CPU/GPU-Beschleunigung nur für die Berechnung des Merkle-Baums.
Informationen zu Skalierbarkeitsproblemen bei hohem Transaktionsvolumen:
Tod und Steuern
siemos