Допустим, я занимаюсь майнингом биткойнов и только что получил новый блок, который добыл кто-то другой. Что побуждает меня отправить этот блок кому-нибудь еще.
Я могу понять, как первоначальный майнер хочет отправить блок по сети (чтобы его блок стал частью цепочки), но какой стимул у других узлов для его отправки? Не лучше ли было бы не распространять блок, а затем построить свой собственный блок поверх него, и в этом случае вы будете на два блока впереди и с большей вероятностью будете добавлены в цепочку?
Конечно, если бы все так поступали, результат был бы ужасным, но какой стимул побуждать людей (кроме первоначальных майнеров) распространять блоки, кроме альтруизма?
Пока вознаграждение за блок намного выше, чем комиссия за транзакцию, это совершенно не проблема: майнинг — это не инкрементальный процесс, а вероятностный процесс грубой силы.
Т.е. в один момент ваш шанс собрать блок не выше, если вы майните один и тот же блок какое-то время: шанс всегда одинаков.
Следовательно, как только блок передается вам, вы просто добавляете его в цепочку блоков и сразу же начинаете искать новый блок поверх этого.
Поскольку риск того, что ваш блок будет потерян (в настоящее время вы потеряете 25 BTC ~= 3750 €) на много порядков выше, чем стоимость его передачи (я бы оценил это в кучу сатоши), всегда удобнее передать это.
Основная проблема накопительства — это риск работы в бесхозной сети. Если вы создаете блок и начинаете работать над его преемником, вы рискуете, что сеть найдет другой законный блок и разветвит основную цепочку блоков. Если это так (если только у вас нет значительной вычислительной мощности), вы будете работать над веткой, которая будет потеряна в пользу более длинной цепочки блоков, что не даст вам ничего для ваших усилий по майнингу.
Нет необходимости в дополнительном стимуле. Достаточно того, что отправитель хочет отправить, а получатели хотят получить. Майнер, который нашел блок, хочет передать его как можно большему количеству людей, чтобы они получили вознаграждение. Другие майнеры хотят получить его, чтобы построить более длинную цепочку. Этого достаточно.
Если это когда-нибудь станет проблемой, чего я не могу себе представить, биткойн-клиенты могут разорвать соединения с узлами, которые не несут собственного веса. Таким образом, если вы откажетесь передавать блоки узлу, он откажется передавать блоки вам. Хотя более вероятно, что решение будет заключаться в том, чтобы больше майнинговых пулов позаботились о прямом соединении.
Был проведен частичный анализ в рамках академического заявления о том, что отказ от передачи блока в некоторых ситуациях выгоден для майнинг-пула. В настоящее время статья находится на стадии препринта , и ее выводы горячо обсуждаются, в том числе в блоге Bitcoin Foundation .
Проблема в том, что действительно нет прямого вознаграждения за ретрансляцию блоков . Согласно этому препринту, в некоторых обстоятельствах существует даже штраф за слишком быструю передачу добытых вами блоков, потому что это позволяет другим работать над наиболее прибыльной цепочкой. Существование этого негативного стимула зависит от предположения, что вы можете (по крайней мере, частично) монополизировать сеть, так что, когда кто-то другой добывает новый блок, вы можете быстрее (или широко) распространить свой собственный блок в самый последний момент. чем другой новый распространяется.
Догадка оригинального плаката абсолютно верна. У майнера есть все основания немедленно отправить свой вновь найденный блок пирам. Любая задержка только вредит его шансам на встраивание в постоянную цепочку.
Майнер также очень хочет получать новые блоки, добытые другими, поэтому он может строить на вершине.
Но передача нового блока, добытого в другом месте, только помогает другим майнерам строить на вершине и, следовательно, снижает шансы нашего майнера создать следующий лучший блок. Оптимальная стратегия для нашего майнера — передавать блок, добытый в другом месте, только тогда, когда он находит свой собственный блок поверх него.
По этой причине сеть полных узлов, не занимающихся майнингом, играет недооцененную роль посредника между майнерами. Полным узлам нечего терять, быстро ретранслируя блоки.
@TomHarding прав в том, что майнер не может аннулировать блок, добытый другим майнером, просто не передав его. Блок в любом случае распространяется через другие узлы.
Стоит отметить, что проблема, которую вы описываете, связана с проблемой эгоистичного майнинга , где, учитывая некоторые предположения, «эгоистичный» майнер имеет стимул избегать публикации блока, который он сам добыл, и начинать работу над следующим блоком сверху. этого «частного» блока, надеясь, что в то же время остальные майнеры делают бесполезную работу (не зная о частном блоке, который в конечном итоге превратится в блокчейн). Конечно, эгоистичный майнер рискует потерять вознаграждение за неопубликованный блок, если он в конце концов не попадет в блокчейн, но при некоторых предположениях это все еще может быть для него прибыльной стратегией.
Дэвид Огрен
Ник Оделл
о0'.
Ник Оделл
о0'.
Клинтон
о0'.
о0'.
Аренда бесплатно