Это только высота блока или усилие, затраченное на вилки? Другими словами: объясняет ли это решение различные трудности?
Ответ Гэри не совсем правильный. При сравнении двух цепочек сравниваются их общие «баллы». Каждый блок считается как (2^256 / block_target); это ожидаемое/среднее количество попыток, необходимых для его создания.
Очевидно, что в рамках одной серии из 2016 блоков все трудности одинаковы, поэтому для большинства небольших реорганизаций счет покажет вам то же самое, что и просто подсчет количества блоков. Однако, поскольку злоумышленник вполне может попытаться перезаписать блоки, которые пересекают границу, кратную 2016, вам необходимо принять это во внимание. Фактическое правило всегда отдает предпочтение цепочкам, которые требуют наибольшей «работы».
Согласно статье Сатоши , применяется следующее:
Шаги для запуска сети следующие:
1) Новые транзакции рассылаются всем узлам.
2) Каждый узел собирает новые транзакции в блок.
3) Каждый узел работает над поиском сложного доказательства работы для своего блока.
4) Когда узел находит доказательство работы, он рассылает блок всем узлам.
5) Узлы принимают блок только в том случае, если все транзакции в нем действительны и еще не потрачены.
6) Узлы выражают свое принятие блока, работая над созданием следующего блока в цепочке, используя хэш принятого блока в качестве предыдущего хэша.
Узлы всегда считают самую длинную цепочку правильной и будут продолжать работать над ее расширением. Если два узла одновременно транслируют разные версии следующего блока, некоторые узлы могут получить сначала один или другой. В этом случае они работают с первой полученной веткой, но сохраняют другую ветку на случай, если она станет длиннее. Ничья будет разорвана, когда будет найдено следующее доказательство работы и одна ветвь станет длиннее; узлы, которые работали на другой ветке, затем переключатся на более длинную.
Это в значительной степени подводит итог. Если у вас есть больше действительных блоков, вы выигрываете, пока кто-то не придет с более действительными блоками.
Алекс Миллар
Питер Уилле
Дж.Бачук
Питер Уилле