В официальном документе биткойнов ( стр. 3) говорится
Решение большинства представлено самой длинной цепочкой, в которую вложены наибольшие усилия по доказательству работы.
Я не смог найти, как именно рассчитывается эта сложность.
Это сумма нулей префиксов одноразовых номеров каждого блока?
Работа рассчитывается как work = 2^256 / block_target
, как указано в связанном ответе, что является минимальным значением хеш-функции, которое считается действительным доказательством работы (обратите внимание, что это меняется только каждые 2016 блоков). Исходный код для этого src/chain.cpp L#121 . Общая работа цепочки — это сумма работы всех блоков в цепочке, которая рассчитывается здесь: src/validation.cpp L#3713 . Таким образом, чтобы визуализировать, чем ниже цель блока, тем больше работы было проделано.
Цель блока 0: 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Цель блока 1:00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Блок 0 : Блок 1 :work = (2^256) / <block 0 hash> = 4.295 × 10^9
work = (2^256) / <block 1 hash> = 4.295 × 10^9
Вы можете видеть, что они оба проделали одинаковую работу. В случае ничьей применяются следующие правила, см. https://bitcoin.stackexchange.com/a/37275/60443 .
Проблемный офицер - НФ Моника
Проблемный офицер - НФ Моника
Дж.Бачук
block_target
Дж.Бачук