Soweit ich das verstanden habe, hängt das mit den führenden 'Nullen' zusammen. sobald da eine 1 auftaucht
kann man dann den nächsten Versuch starten. Allerdings ist meine Vermutung das der Test zwar schneller durch ist, dafür aber mehr Anläufe nötig sind.
Was ich mich derzeit frage ist ob es 'was' bringt
a) statt dem Ansatz mit dem midstate einfach die zwei SHA256 hashes 'hintereinander' durchzurechnen und/oder
b) statt einem sequentiell abzuarbeitendem C-Programm eine Netzliste zu verwenden.
Die Frage mit der Anzahl der Anlaeufe waere beantwortbar wenn man verstehen wuerde wie das mit der Noncekodierung funktioniert.
Im Moment geht mir das noch nicht wirklich auf. So wie ich das oben beschrieben haben ist es nicht ganz richtig. Der Autor reserviert den Platz fuer 1000 Nonces in der Booleschen Formel (oder 10000 in einem anderen Beispiel) und dann beginnt der Solver diese zu fuellen. Zmdst verstehe ich jetzt warum der Solver auch UNSAT ausgeben kann (Fall (v)), naemlich wenn die 1000 Nonces nicht reichen.
Gruss,
cu
P.S.: kennst du ein Tutorial wo das Prinzip BTC-Mining relativ genau erklaert wird? Also "target" holen, zweimal Hashfunktion drauf ansetzen, Ergebniss pruefen, sowie wie die Difficulty bestimmt wird ... am besten erklaert an Code.