Какую проблему решает майнинг?

Конечно, функция майнинга заключается в защите блокчейна, но я ищу более абстрактное изложение того, какую именно проблему пытается решить майнинг? Я полагаю, что это называется проблемой византийских генералов , но можно ли описать ее в паре предложений?

Сеть должна выбрать одного случайного незнакомца из большой группы по фиксированному расписанию и использует «хэш-лотерею» как достаточно честный метод для этого. Это хорошее определение причины, по которой военнопленные необходимы?

Другими словами: предположим, я разработал альтернативный метод выбора случайного p2p-узла каждые несколько минут, который будет публиковать следующий блок, может ли он заменить доказательство работы на основе процессора?

@David Заголовок может повторяться, но вопрос совершенно другой. Я знаю все о коллизиях хэшей и технических особенностях майнинга, я просто хочу знать, какими свойствами должна обладать альтернатива, чтобы заменить майнинг.
@David: вопрос (очевидно) совершенно другой. И интересно!

Ответы (4)

На мой взгляд, это одно из самых больших заблуждений о Биткойне, что майнеры решают «сложную задачу». Многие новостные источники объясняют это так, но на самом деле это не так.

Все, что делает майнер, это гадает, пока не получит что-то правильное. Майнер берет свой блок транзакций (включая транзакцию coinbase, которая отправляет комиссии и вознаграждение за блок себе) и вычисляет его хэш. Вычисление хэша — очень распространенная процедура и совсем не «сложная». Хэш, который он получает, должен соответствовать определенному условию. Это условие усложняется по мере того, как все больше майнеров пробуют его (см . «Сложность» ). Когда майнер получил хэш, соответствующий условию, он может опубликовать его для всех других клиентов Биткойн, и блок будет добавлен в цепочку блоков.

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

Потребность в доказательстве работы существует, потому что протокол Биткойн требует, чтобы блок находился только один раз каждые 10 минут примерно. Таким образом, чем больше майнеров входит в игру, тем сложнее это делать. Военнопленный следит за тем, чтобы поиск блока был непростым и занимал некоторое время. Это также причина того, что сложность возрастает по мере того, как все больше людей добывают шахты. Каждые 2 недели алгоритмы регулируют сложность так, чтобы снова один блок находился каждые 10 минут при средней мощности хэширования за предыдущие две недели.

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

Справедливости ради, я называю математику майнинга «сложной» не потому, что это объективно сложная задача, а потому, что вряд ли вам или мне будет легко выполнить 2 раунда sha256 с карандашом и бумагой.
Его часто называют «сложной математической головоломкой», решение которой нужно найти. Это не так. Но на самом деле, хотя каждый компьютер, продаваемый сегодня, может выполнять sha256, не многие люди могут сделать это вручную :)

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


Вот проблема, которая требует решения:

Если у меня есть 10 биткойнов, и я одновременно ввожу в две удаленные части сети транзакцию, которая дает 10 биткойнов Алисе, и транзакцию, которая дает 10 биткойнов Бобу.

Разные узлы (кошельки и т. д.) будут получать две транзакции в разном порядке, некоторые сначала получат транзакцию Алисы, а транзакцию Боба отклонят как попытку двойного расхода. Другие наоборот.

Как весь мир в конце концов соглашается, у кого из Боба и Алисы есть 10 биткойнов?


Майнинг предоставляет механизм для периодического выбора узла, который определяет порядок (и, следовательно, выбирает, какая транзакция будет отклонена). Он также обеспечивает основу для разрешения конфликтующих представлений о порядке транзакций между частями сети.

Майнинг обеспечивает неизменную и поддающуюся проверке непрерывную запись этого порядка.

Я думаю, проблема заключалась в том, что узел p2p легче подделать, чем решение, требующее больших усилий.

С майнингом, который требует времени, синхронизация становится проще. В блокчейне случаются форки, и эти форки должны быть разрешены, когда узлы выбирают самую длинную цепочку.

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

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

Вот так я понимаю необходимость майнинга.