51% уточнение атаки

Я только что прочитал книгу по основам блокчейна и столкнулся с путаницей в отношении атаки 51%. Если я прав, там говорится, что злоумышленник, владеющий 51% или более вычислительной мощности сети, может переписать блокчейн в свою пользу.

Что меня смущает, так это следующее: блоки в основной цепочке могут добавляться только последовательно, поэтому скорость роста блокчейна не превышает скорость самого быстрого майнера в сети. Таким образом, если злоумышленник работает быстрее, чем самый быстрый майнер в остальной части сети, он может начать с какого-то более низкого блока (может быть, даже блока генезиса) и добавлять свои собственные блоки в новую ветку один за другим. Поскольку он быстрее, чем официальная основная цепь, его ветвь в конечном итоге будет длиннее последней и, следовательно, станет новой основной цепью.

Так что злоумышленнику не нужен 51% всей вычислительной мощности, только больше, чем любому другому узлу, который обычно намного меньше 51%. Что здесь не так?

Ответы (1)

Да, злоумышленник должен быть быстрее, чем остальная сеть вместе взятые. Быть быстрее второго по скорости майнера недостаточно.

Я думаю, здесь вы ошибаетесь:

Блоки в основной цепочке могут добавляться только последовательно, поэтому скорость роста цепочки не превышает скорости самого быстрого майнера в сети.

Да, блоки добавляются последовательно, но я не могу понять вашу логику, почему это означает, что рост блоков происходит только со скоростью самого быстрого майнера. Если вы самый быстрый майнер в сети, это никоим образом не означает, что вы производите 100% блоков. Это означает, что вы производите наибольшую долю от общего объема, которая все еще, вероятно, составляет меньшинство. Рост блоков по-прежнему происходит со скоростью всей сети в целом , независимо от того, кто быстрее.

Имея это в виду, вы можете понять, почему злоумышленнику необходимо создавать блоки быстрее, чем остальная часть сети вместе взятые.

Источником путаницы, вероятно, является то, что постер считает майнинг блока детерминированным процессом, который требует определенного количества последовательной работы, которую нельзя распараллелить. Хотя на самом деле майнинг — это процесс угадывания, похожий на лотерею, где человек со 100 билетами все равно вряд ли выиграет в лотерею по сравнению с 100 000 билетов, купленных остальными.
О да, кажется, я вижу свое непонимание. Здесь важно, чтобы время, необходимое для майнинга блока, имело распределение вероятностей с ненулевым отклонением. Спасибо, Джестин и Крораф.
@Jestin [1/2] Я до сих пор не совсем понимаю ответ, возможно, потому, что не понимаю часть «Рост блоков по-прежнему происходит со скоростью всей сети в совокупности». Как рост зависит от всей сети в целом? Узлы работают отдельно, чтобы решить головоломку. Не похоже, что они объединяют свои силы, чтобы решить головоломку.
@Jestin 2/2 «Если вы самый быстрый майнер в сети, это никоим образом не означает, что вы производите 100% блоков». Если бы я тайно майнил на сайдчейне, разве это не было бы правдой? И если бы у меня была самая высокая мощность майнинга в сети, я бы в конечном итоге добыл больше блоков (в своей боковой цепи), чем остальная часть сети, работающая в исходной цепочке?
@ShariqHasanKhan «Не похоже, чтобы они объединяли свои силы, чтобы решить головоломку». Они абсолютно правы. Поскольку каждый узел в сети угадывает, количество сделанных догадок умножается. Поскольку это случайно, кто получит его, чем больше коллективных случайных угадываний, тем быстрее будет решена проблема.