Tag-Beschreibung rank
- Warum tun wir nicht akzeptieren, ein hash, das endet mit all den Nullen? Ist es, weil es einfacher ist ein Programm zu berechnen
, wenn die hash < expected_hash
?
Zählen der Anzahl von führende oder nachgestellte Nullen nicht viel geben, der Granularität. Wenn eine Darstellung als hexadezimale Zahl, dann gibt es nur 64 mögliche Ziel-Werte, wenn Sie zählen nur die Anzahl der Nullen. Wenn Binär, 256 mögliche Werte. Darüber hinaus zählen die Anzahl der Nullen bedeutet, dass können Sie nur ändern, die Schwierigkeit von einigen macht der 2 (in Binär, der Schwierigkeiten hat, werden verdoppelt oder halbiert). Es gibt also nicht viele Werte für das Ziel-und dieser Verlust an Auflösung ist schlecht.
Umgekehrt, vergleichen des Werts bedeutet, dass es (in der Theorie) 2^256 mögliche Werte für die Schwierigkeit. Dies ist sehr viel präziser, und diese Werte sind Ganzzahlen. Anstatt zu ändern, die Schwierigkeit durch die Multiplikation, die Schwierigkeit kann verändert werden mit addition und Subtraktion. Durch mehr Werte, die Schwierigkeit wird sein, weniger wahrscheinlich zu schwer oder zu leicht.
- Aber in diesem Fall, ich verstehe nicht, warum machen wir nicht einfach akzeptieren, eine hash
sha256(sha256(header).digest()).digest().encode('hex')
, die niedriger ist als die erwarteten hash? Die Wahrscheinlichkeit zu bekommen, dass sollte so hoch sein, wie die verkehrten ein.
Es ist eigentlich gerade wie Sie sagte. Die Umkehrung der hash ist nur, wie die bytes, die tatsächlich vertreten werden. Sie sind gespeichert als bytes interpretiert und als little-endian-256-bit-integer. Der Vergleich ist immer noch ein integer-Vergleich und die Darstellung der Daten ist irrelevant (Sie könnten genauso leicht gespeichert und dargestellt als big-endian-Integer). Aber wenn Sie angezeigt werden, Sie werden angezeigt als big-endian-Werte im hexadezimal -, weil die Menschen daran gewöhnt, big-endian. Der Grund für little endian ist wahrscheinlich, weil die x86-Architektur verwendet little endian für die Speicherung von Ganzzahlen.