Lösen eines Blocks und Verifizieren von Transaktionen [Duplikat]

Mein Verständnis von Mining ist, dass der Grund, warum eine Auszeichnung von Bitcoin mit der Lösung des aktuellen Blocks einhergeht, darin besteht, den Menschen einen Anreiz zu geben, tatsächlich zu versuchen, den Block zu lösen. Mein Verständnis ist auch, dass der Grund, warum es wünschenswert ist, dass Leute versuchen, Blöcke zu lösen, darin besteht, dass das Netzwerk so funktioniert, das heißt, je mehr Leute ihre Rechenleistung nutzen, um Bitcoin-Transaktionen zu verifizieren, desto besser.

Was ich nicht verstehe ist, was Hashing mit der eigentlichen Transaktionsverifizierung zu tun hat? Ich habe vage diese Idee in meinem Kopf, dass aufgrund der Schwierigkeit des SHA256-Hashing-Algorithmus, wenn jemand einen Hash findet, der einen Block löst, das bedeuten muss, dass er viel Zeit damit verbracht hat, den Hash zu finden. . . Aber was hat das damit zu tun, dass Sie viel Zeit damit verbringen, Transaktionen zu verifizieren? Was hält Leute davon ab, nur zu hashen, aber nicht zu verifizieren? Wenn ich mit der Annahme richtig liege, dass Hashing keinem anderen Zweck dient, als zu überprüfen, ob jemand tatsächlich eine angemessene Menge Arbeit für das Netzwerk geleistet hat, gibt es dann wirklich keine andere bessere Methode, um dies zu beweisen? Warum funktioniert etwas so Dummes wie nur zu verfolgen, wie viele Transaktionen eine Person verifiziert hat, nicht?

Antworten (1)

Das Verifizieren einer Transaktion ist kein schwieriger Prozess, es ist ein guter Block-Hash zu finden, der das Mining erschwert. Wenn ein Miner eine Transaktion verifiziert und in den Block aufnimmt, den er erstellt, erhält er außerdem die Transaktionsgebühr von dieser Transaktion. Dies macht es für Miner attraktiv, Transaktionen zu verifizieren, anstatt nur nach einem Block-Hash zu suchen.

Der Grund, warum das Mining schwierig ist und überprüft werden muss, ob ein Miner eine gewisse Menge an Arbeit in das Finden seines neuen Blocks gesteckt hat, liegt in der Sicherheit des Netzwerks. Wenn das Mining einfacher wäre, wäre es für Angreifer einfacher , die Kontrolle über die Blockchain zu übernehmen.

Außerdem versucht das Bitcoin-Protokoll alle 10 Minuten eine Blockerstellungsrate von 1 Block zu erreichen. Um dies zu erreichen, passt das Protokoll alle 2016 Blöcke automatisch die Schwierigkeit an, einen Block zu finden. Dies sollte ungefähr 2 Wochen dauern. Wenn diese 2016-Blöcke zu schnell gefunden wurden, steigt die Schwierigkeit. Andernfalls wird es fallen. Dadurch ist es möglich, das Angebot an Bitcoins über die Zeit vorherzusagen .

Da also nur alle 10 Minuten ein Block gefunden werden soll, muss die Schwierigkeit proportional zum Gesamtarbeitsaufwand des gesamten Netzwerks sein. Das bedeutet, je mehr Leute minen, desto mehr tragen sie dazu bei, die Schwierigkeit zu erhöhen und das Netzwerk sicherer gegen Angriffe zu machen.

Deine letzte Frage verstehe ich nicht ganz. Aber „zu verfolgen, wie viele Transaktionen eine Person verifiziert hat“, wäre aus mehreren Gründen keine geeignete Alternative. Erstens, wie ich oben erwähnt habe, ist die Transaktionsverifizierung kein schwieriger Prozess, daher wäre die Anzahl der verifizierten Transaktionen kein gutes Maß für den Arbeitsaufwand, den Sie geleistet haben. Auch im Bitcoin-Netzwerk gibt es so etwas wie eine „Person“ nicht. Es ist möglich, die IP-Adresse derjenigen zu verfolgen, die Transaktionen und Blockierungen einreichen, aber es ist keine gute Idee, Personen anhand ihrer IP-Adresse zu identifizieren (IPs sind nicht immer fest und mehrere Benutzer können sich eine IP teilen). Die einzige andere Identifizierungsmethode, die Bitcoin unterstützt, sind seine Adressen, aber echte Bitcoin-Anonymität erfordert, dass Sie die von Ihnen verwendete Adresse häufig ändern, Adressen sollten daher nicht als Identifikation verwendet werden. (Obwohl sie es manchmal sind. )

Ich habe versucht, alle Ihre Fragen zu beantworten, wenn ich etwas verpasst habe, fragen Sie mich einfach in einem Kommentar.

Ich denke, was ich nicht verstehe, ist der Punkt, um die zusätzliche Arbeit in Form der Suche nach einem Block-Hash hinzuzufügen. Offensichtlich hat dies nichts mit der Transaktionsverifizierung an sich zu tun, sondern ist nur ein Sicherheitsmittel, und ich verstehe, dass diese Sicherheit einfach entsteht, weil sie es für eine einzelne Einheit schwieriger macht, einen großen Prozentsatz des Netzwerks zu kontrollieren. Was ich nicht verstehe, ist, wie das Hashing schwierig wird. (Die Zeichen gehen aus; siehe folgenden Kommentar.)
Wenn Sie das Hashing einfacher machen, dann gewinnen Sie bei fester Rechenleistung in gewissem Sinne mehr Kontrolle über die Blockchain, aber gleichzeitig gewinnen nicht alle anderen genauso viel Kontrolle über die Blockchain (es ist nachher alle, die für alle einfacher werden, nicht nur für eine bestimmte Person), sodass sich am Anteil der Rechenleistung, die Sie über die Blockchain haben, nichts geändert hat, auch wenn Sie möglicherweise Blöcke schneller finden.
Es scheint dann, dass der einzige Zweck des Hashings darin besteht, die Zeit (ungefähr jedenfalls) zu kontrollieren, die benötigt wird, um Blöcke zu finden, um die Rate zu kontrollieren, mit der neue Coins in die Wirtschaft eingeführt werden. Ist das falsch?
Außerdem werden, wenn ich jetzt schürfe, alle Münzen, die ich schürfe, an einer bestimmten Adresse hinterlegt, so dass ich, obwohl ich persönlich mehr als eine Adresse verwenden könnte, was das Schürfen betrifft, immer nur eine zur Zeit habe. In Anbetracht dessen, wie wäre es „schlechter“ (im Sinne der Verwendung von Adressen zu Identifikationszwecken), die Überprüfung von Transaktionen anhand der Bitcoin-Adresse zu verfolgen, als die Art und Weise, wie das Mining jetzt funktioniert?
Es ist wahr, dass die Schwierigkeit auch verwendet wird, um die Rate vorherzusagen, mit der Blöcke erstellt werden, ich werde das der Antwort hinzufügen.
@StevenRoose Ich habe eine Frage. Nehmen wir an, nach dem vorherigen Block gibt es keine ausstehenden Transaktionen. Nun, 2 Miner A und B auf der Welt mit derselben Ausrüstung, sollten sie ein paar Minuten warten, bis neue Transaktionen kommen, und sie dann packen und auch den Hash des vorherigen Blocks einbeziehen, dann anfangen, dieses Hash-Puzzle zu lösen? Ich denke, dass die beste Strategie für jeden Miner in diesem Fall darin besteht, direkt einen leeren Block ohne Transaktionen, aber den Hash des vorherigen Blocks zu packen und sofort damit zu beginnen, dieses Hash-Puzzle zu lösen. Wenn das der Fall ist, dann beginnen Sie mit Block 0, es sollte alles ein leerer Block sein
@ftxx Entschuldigung für die Verzögerung. Wenn es keine Transaktionen gibt, wird ein Miner niemals warten. Sie beginnen mit der Arbeit an einem leeren Block. Wenn dann eine neue Transaktion eingeht, kann der Miner entscheiden, den Block, an dem er arbeitet, zu ändern. Es ist wichtig zu verstehen, dass der Beginn der Arbeit an einem neuen Block Ihnen keinen Nachteil bringt, da die Arbeit nicht inkrementell ist. Der Miner wird also wahrscheinlich einen neuen Block mit dieser Transaktion erstellen und dann seine Miner-Hardware wechseln, um diesen Block anstelle des leeren zu lösen.