Difficulty Adjustment меняет границу хеша, не число транзакций или субсидию. Меньшая цель усложняет поиск; консенсус использует nBits, а сложность выражает отношение.
Mainnet пересчитывает цель на высотах, кратных 2 016, между ними сохраняет nBits. Две недели — целевые 1 209 600 секунд, не календарный срок. Резкое падение hashrate не запускает немедленную аварийную коррекцию. [Bitcoin Core v29.0: retarget] [Bitcoin Core v29.0: network parameters]
Bitcoin Core вычитает время заголовка первого блока из последнего завершённого периода. Между 2 016 блоками 2 015 промежутков; историческая особенность сохраняется. Это выбранные майнерами допустимые времена, не точные измерения находки и не Median Time Past. [Bitcoin Core v29.0: retarget] [Bitcoin Core v29.0: network parameters]
Наблюдаемое время ограничивается четвертью–четырёхкратной целевой длительностью. Старая цель умножается на это время и делится на целевую длительность; новая ограничивается powLimit и компактно кодируется. Быстрый период снижает цель и повышает сложность, медленный наоборот. [Bitcoin Core v29.0: retarget] [Bitcoin Core v29.0: network parameters]
Цель — средние десять минут при данном hashrate, не расписание блоков. Это не стабилизирует цену BTC, прибыль или суточные транзакции. Последующие изменения мощности и случайность меняют время; выплаты и halving работают отдельно. [Bitcoin Core v29.0: retarget] [Bitcoin Core v29.0: network parameters]
Получите с узла времена границ и bits последнего старого и первого нового блока. Восстановите цели, временные пределы и компактное округление. Веб-процента недостаточно: до конца периода он меняется, а тестовые сети могут иметь другие правила. [Bitcoin Core v29.0: retarget] [Bitcoin Core v29.0: network parameters]
Для полной картины прочитайте эту статью вместе с Proof of Work, Майнинг, Timechain / Blockchain, Эмиссионная награда за блок. На эту статью также ссылаются Timechain / Blockchain, Proof of Work, Майнинг, Halving.