2 ms·
Ah, so “you have to look at the code” is a feature, not a bug. That makes some sense, I suppose. > finding a block means that the hash256() operation (sha256(s
by wizzwizz4 5y ago
Ah, so “you have to look at the code” is a feature, not a bug. That makes some sense, I suppose.
> finding a block means that the hash256() operation (sha256(sha256(block))) returns an hash with at least D (either left or right most, can't recall right now) bits set to 0, where D is the current difficult, which is adjusted by the network to make the 10min/block average time
This is a lies-to-children explanation. Bitcoin actually uses less-than a certain value (source: [0]). The tricky part is that a SHA-256 digest is a 256-bit number, and the SHA-256 function's input is a sequence of bits; the SHA-256 specification explicitly declines to specify a canonical representation of that 256-bit number, so it can't be used as the input to SHA-256 without explaining how it's being used. I can't find anywhere what this intermediate function (the one I called f) actually is. There are only half a dozen obvious possibilities (bits from most→least, or least→most, and the four normal ways of doing ASCII hex digests) so it's not that hard to guess, given an example… but still. It's the principle of the matter; it's all under-documented.
(Thanks for the rest of the info by the way. You've given me leads I wouldn't otherwise have been able to easily find.)
[0]: https://en.bitcoin.it/wiki/Difficulty https://en.bitcoin.it/wiki/Difficulty