Нет, это не верно, вот ответьте плз:
1. Представьте что сеть случайно на некоторое время разделилась (оборвался канал связи между Европой и Америкой). В обоеих частях сети образовалось по 20 блоков. После того как каналы связи подсоединились чьи блоки примут участники сети? А третьи лица - новые пользователи, которые только что загрузили клиент: у них две версии блокчейна... Еще хуже ситуация - атака из глубины, я практически с нулевого блока переписываю цепочку и отправляю в сеть, чем моя цепочка хуже?
2.Что мне мешает на пункте 2 такой создавать блок, чтобы хэш был всегда мне выгоден? Просто добавляя ту или иную транзакцию с суммой около нуля, пока хэши от пунктов 2-4 не станут похожи на наш адрес, чтобы опять победить в гонке за майнинг. Такая операция подбора будет выполняться очень быстро - порядка миллиона в секунду и при наличии даже миллиона адресов кошельков можно за 1 секунду подобрать нужный...
Так может быть задача майнинга в другом?
Хорошее возражение, но пожалуй начну со 2 пункта. Вот хеш блока #503,469 у биткоина
000000000000000000482bc0f9553e5128c3cb69f2dff1803f544c0a7b09dcad
У биткоина сейчас наверное максимальная сложность из всех криптовалют, обратите внимание на нули, их не будет. там тоже будут значения.
Суть в том, что даже сейчас имея огромные вычислительные мощности майнеры ищут хеш меньше определенного числа, у меня же должно происходить максимальное совпадение по числу. На это Вам дается максимум минута или меньше. Хотя соглашусь на начальном этапе, когда участников мало, такое вполне может произойти. Тем не менее уверен, что после определенного количества участников, такое уже практически случаться не будет. Тут именно устойчивость сети и зависит от количества участников, именно это и есть проявление децентрализации, когда людей мало, то плохо, а чем больше тем лучше.
Теперь по пункту 1.
При разделении и создание ситуации, когда у одной стороны 20 блоков, а у другой тоже 20 блоков.
Давайте попробуем представить ситуацию. На каком-то блоке был выбран следующий майнер и тут произошел континентальный разрыв связи. Сеть разделилась на 2 части. Поэтому в одной части сети этот майнер создал блок со своей подписью, а в другой этот блок от него не увидели и оштрафовали. Начиная с этого момента сеть начинает развиваться каждая по своему пути. Встает вопрос как это согласовать при восстановлении связи.
В данном случае нам понадобиться механизм согласования. Он будет действовать только в определенном временном окне возможностей (наиболее вероятно это сутки), а именно во всех случаях, когда происходил штраф не по причине двойных трат или других, а по истечении времени, то он будет опрашивать сеть на предмет нахождения потерянного блока от того конкретного майнера, как только он его находит, то заменяет в блокчейне спецблок штрафа на этот потерянный блок от майнера, далее вычисляется хеш и находиться новый адрес майнера и ищется уже его блок, таким образом есть временное окно которое позволяет восстановить сети потерянные блоки и объединиться, вполне возможна такая ситуация, что восстановление всей сети произойдет от потерянного блока на 5 блоков вперед, а остальные нагенеренные блоки будут ликвидированы из за не синхронизации сети. Все транзакции в этих потерянных блоках должны перейти в общий тразакционный пул, чтобы при перестроении блокчейна не было потери информации.
В случае же отражения глубинной атаке, то достаточно вставить в сам код один или несколько начальных генезис блоков и тогда уже никакая подмена блокчейна страшна не будет.