Hat Satoshi beabsichtigt, Midstate-Berechnungen zuzulassen, um das Hashing zu beschleunigen?

Das Design von Bitcoin ermöglicht es Computern, einen Hash mit 2 Iterationen der SHA256-Komprimierungsfunktion anstelle von 3 bei allen außer 1 von 2^32 Versuchen zu berechnen.

Als Satoshi SHA256d für Bitcoin auswählte, beabsichtigte er, dies zuzulassen?

Antworten (1)

Ich denke, Satoshi war sich nicht bewusst, dass die Hashing-Routine durch die Verwendung eines Mittelzustands optimiert werden kann, als er Bitcoin zum ersten Mal erstellte.

Wenn Sie hier nachsehen , können Sie sehen, dass die erste Version von Bitcoin, in die die Midstate-Optimierung in den Miner integriert war, Version 0.3.5 war (in der Post steht 0.3.6, aber Sie können sehen, wo ihn jemand zitiert hat, dass die Post zuerst lesen Sie 0.3.5). Er sagt auch, dass es von jemandem namens tcatm implementiert wurde.

Auch in 0.3.6, schnelleres Hashing:

- Midstate-Cache-Optimierung dank tcatm

Satoshi erwähnt tcatm hier erneut, wenn er versucht, die Leute zu einem Upgrade auf 0.3.8 zu ermutigen, indem er ihnen sagt, dass sie eine bessere Hash-Rate erhalten werden.

Es ist möglich, dass er wusste, dass es möglich ist, und einfach keine Zeit hatte, es umzusetzen, ich denke, wir werden es wahrscheinlich nie mit Sicherheit wissen. Aber Gavin Andresen hielt einen Vortrag darüber, was Satoshi nicht wusste, und er spekulierte, dass Satoshi kein sehr fortgeschrittener Kryptograph war, basierend auf einigen Entscheidungen, die in Bitcoin getroffen wurden. Daher kannte er möglicherweise nicht das Innenleben der von ihm ausgewählten Hash-Funktion, sondern nur, dass SHA256d als sichere Hash-Funktion angesehen wurde.


BEARBEITEN: Dies könnte der ursprüngliche Beitrag sein, in dem tcatm die Midstate-Hashing-Optimierung vorgeschlagen hat: https://bitcointalk.org/index.php?topic=648.0 .

In diesem Commit bezeichnet Satoshi es als "tcatm's [...] idea", also denke ich, dass Sie Recht haben. Ich kann jedoch nichts finden, was er geschrieben hat, das so explizit sagt.