Einige Fragen zu Besonderheiten beim Bitcoin-Mining

Die meisten Menschen schürfen Bitcoin, indem sie eine Software auf ihrem PC starten oder einen speziellen Miner kaufen, die beide das Wesentliche der Funktionsweise des Mining-Prozesses abstrahieren. Ich bin jedoch neugierig auf einige potenzielle Probleme mit dem Kernstück des Mining-Prozesses. Fühlen Sie sich frei, zu meiner Frage zu springen, wenn Sie bereits wissen, wie es funktioniert:

Soweit ich weiß, funktioniert das so:

Nehmen wir an, eine Zeichenfolge mit Hex-Werten hat 1024 Bit (oder 256 Hex-Werte oder 128 Bytes).

0x000000020597ba1f0cd423b2a3abb0259a54ee5f783077a4ad45fb6200000218000000008348d1339e6797e2b15e9a3f2fb7da08768e99f02727e4227e02903e43a42b31511553101a051f3c00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

Und ein 256-Bit-Wert (oder 64 Hexadezimalwerte oder 32 Bytes), der als Ziel bekannt ist

0x00000000FFFF0000000000000000000000000000000000000000000000000000

Wir tauschen zuerst jeden 32-Bit-Chunk byteweise aus, also landen wir bei

0x020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad180200000000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e312ba443105315513c1f051a00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280

Wir lesen die letzten 64 Bits (oder 16 Hex-Werte oder 8 Bytes)

0x0000000000000280

Das entspricht 640 Bit oder 80 Byte.

Also greifen wir die ersten 640 Bits (oder 160 Hex-Werte oder 80 Bytes) der Byte-ausgetauschten Zeichenfolge von Hex-Werten

0x020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad180200000000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e312ba443105315513c1f051a00000000

Wir ändern die ersten 608 Bits nicht, aber wir ändern weiterhin die letzten 32 Bits (auch als Nonce-Wert bekannt) und fügen die neue Zeichenfolge von Hex-Werten in die SHA256-Funktion ein

#scroll to right to see the last 8 bits incrementing
    new_hash = SHA256('0x020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad180200000000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e312ba443105315513c1f051a00000000')
    
    new_hash = SHA256('0x020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad180200000000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e312ba443105315513c1f051a00000001')
    
    new_hash = SHA256('0x020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad180200000000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e312ba443105315513c1f051a00000002')
    
#    .. so on

Wenn wir einen new_hash finden, der kleiner oder gleich dem Ziel ist,

# one of the new_hash is 
new_hash = 0x00000000fffe0000000000000000000000000000000000000000000000000000
# which is is lower than target

dann haben wir erfolgreich einen Nonce-Wert (die 32 Bits, die wir ändern) gefunden, der die Anforderung erfüllt, sodass wir ihn einreichen und einen Anteil verdienen können, was meiner Meinung nach ein kleiner Teil der Belohnung für den Miner ist, wenn die tatsächlichen vollständigen Anforderungen erfüllt sind befriedigt.

Wo ich das gelesen habe: https://en.bitcoin.it/wiki/Getwork

Springen Sie hierher, wenn Sie bereits wissen, wie Bitcoin-Mining unter der Haube funktioniert. Wenn ich davon erfahre, habe ich jedoch 3 Fragen dazu:

Um zufällig einen niedrigeren Wert als dieses Ziel zu erhalten, besteht eine Erfolgswahrscheinlichkeit von 1 zu 4295032833 (4,3 Milliarden).

Der Nonce-Wert, den wir ändern können, ist 32 Bit oder 4294967296.

Der erwartete Wert, um es nach dem Ausprobieren jedes Nonce-Werts richtig zu machen, ist also (4294967296/4295032833) oder im Grunde 1.

Aber das ist der erwartete Wert, es wird Fälle geben, wo jeder Nonce-Wert ausprobiert wird und wir immer noch nicht ans Ziel kommen.

Frage 1 . Wie geht Software wie NiceHash Miner oder andere Mining-Tools unter der Haube mit solchen Situationen um?

Hier ist ein weiteres Problem: Es wird einige Zeit dauern, bis Computer jeden Nonce-Wert ausprobiert haben, da es 4 Milliarden davon gibt. Frage 2 : Gibt es eine zeitliche Begrenzung, wie lange ein Miner zum Raten und Prüfen brauchen kann, bevor die gegebene Arbeit nicht mehr "akzeptiert" wird?

Und hier ist mein 3., das vorgegebene Ziel reicht nicht gerade aus, um einen ganzen Block abzubauen, es zu erreichen wird den Bergleuten stattdessen einen Anteil einbringen. Das System ist so implementiert, dass Miner ihre Belohnung proportional zu der von ihnen durchgeführten Berechnungsmenge teilen können.

Frage 3 : Wie hoch ist normalerweise jede Aktie in US-Dollar? Ich vermute, es ist von Pool zu Pool unterschiedlich, aber wie hoch wäre der finanzielle Wert normalerweise?

Auch wenn mit meiner eigenen Neuformulierung der Funktionsweise des Bitcoin-Mining etwas nicht stimmt, lassen Sie es mich bitte auch wissen.

Keine wirkliche Antwort, aber nur zur Info, NiceHash baut keine BTC ab. Es schürft verschiedene Altcoins (die ohne spezielle Hardware abgebaut werden können; der Prozess ist für jeden anders) für den Pool, schreibt sie Ihrem Konto nach der Umwandlung in BTC gut und lässt Sie dann die BTC abheben. Bitcoin selbst kann seit etwa 2013 realistischerweise nicht mehr mit generischer Hardware abgebaut werden. Es sind jetzt alles spezialisierte ASICs.

Antworten (1)

Frage 1. Wie geht Software wie NiceHash Miner oder andere Mining-Tools unter der Haube mit solchen Situationen um?

In diesem Fall gibt es buchstäblich nichts zu tun. Wenn Sie keine funktionierende Nonce finden, müssen Sie einen neuen Block ausprobieren.

Hier ist ein weiteres Problem: Es wird einige Zeit dauern, bis Computer jeden Nonce-Wert ausprobiert haben, da es 4 Milliarden davon gibt. Frage 2: Gibt es eine zeitliche Begrenzung, wie lange ein Miner zum Raten und Prüfen brauchen kann, bevor die gegebene Arbeit nicht mehr "akzeptiert" wird?

Realistische Bergleute brauchen nur einen winzigen Bruchteil einer Sekunde, um jede mögliche Nonce auszuprobieren. Es ist so schnell, dass es völlig unrealistisch ist, an einem einzelnen Block gleichzeitig zu arbeiten, und echte Miner werden mehrere mögliche Blöcke gleichzeitig ausprobieren.

Typische Mining-Pools akzeptieren einen Anteil, solange er in den Pool umgewandelt wird, bevor ein neuer Block abgebaut wird. Das bedeutet, dass Sie im Durchschnitt ein Zeitfenster von zehn Minuten haben. Eine Aktie, die zurückgegeben wird, nachdem ein Block abgebaut wurde, wird als „veraltete Aktie“ bezeichnet. Unter realistischen Bedingungen sollten sie selten sein. Alle zehn Minuten, direkt nachdem ein Block gefunden wurde, gibt es ein Fenster von ein oder zwei Sekunden, in dem eine veraltete Aktie zurückgegeben werden kann, selbst wenn nichts schief geht.

Frage 3: Wie hoch ist normalerweise jede Aktienprämie in US-Dollar? Ich vermute, es ist von Pool zu Pool unterschiedlich, aber wie hoch wäre der finanzielle Wert normalerweise?

Eine Schwierigkeits-Aktie ist im Wesentlichen wertlos. Es sind nur etwa 4 Milliarden Hashes erforderlich, um eine schwierige Aktie zu generieren, und realistische Miner würden so viele davon generieren, dass sie auf keinen Fall mithalten könnten und viel niedrigere Ziele verwenden müssten, um eine realistische Anzahl von Aktien zu generieren. Ein einzelner Bitmain S19 Pro Miner produziert 110 Billionen Hashes pro Sekunde – das sind Tausende von Schwierigkeiten, die man pro Sekunde teilt.

Das Bitcoin-Netzwerk erhält derzeit rund 100 Trillionen Hashes pro Sekunde. Die Gesamteinnahmen aus dem Bergbau belaufen sich auf etwa 56 Millionen US-Dollar pro Tag. Das macht den Wert von 4 Milliarden Hashes ungefähr 0,0000025 Cent.