Mайнинг в Ethereum Classic: временные метки и потеря блоков

miningpools

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

Подделка временных меток

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

Нет. Как бы майнер не пытался подделать временную метку, он останется в проигрыше.

Помимо кода операции TIMECODE в EVM, использовать который не рекомендуется, временная метка используется только для подсчёта сложности майнинга следующего блока. Сначала майнеры завершают вычисление блока, в результате чего и устанавливается временная метка, а затем запускают Proof-of-Work-алгоритм ethash. Если майнеру повезёт и алгоритм выполнится успешно, то блок транслируется в сеть.

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

Как насчёт сдвига временной отметки блока в будущее? Для майнера это будет не более чем азартной игрой, так как все полноценные узлы Ethereum придерживаются общего правила: если время блока превышает текущее системное время, то блок не принимается. Можете проверить это сами, переставив системное время на минуту назад и запустив клиент Geth или Parity. Ваш узел начнёт отвергать блоки, подтверждённые сетью, так как с его точки зрения они будут добыты «в будущем», а значит не отвечают правилу консенсуса.

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

Получается, что майнерам невыгодно сдвигать временную отметку ни в будущее, ни в прошлое — это приведёт только к убыткам.

Частота потери блоков (орфанов)

Я слышал, что можно снизить частоту потери блоков в моём пуле, если включать в них меньше транзакций или вообще создавать пустые блоки. Это правда?

Да, но вы также потеряете комиссии от транзакций, поэтому придётся искать компромисс.

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

Речь о предельных издержках транзакций. И важно, чтобы пулы выставляли лимит газа на блок как можно ближе к оптимальному. Как правило, лимит не равен нулю: не включая в блок никаких транзакций, майнер лишается потенциальных комиссий. Также редко устанавливается максимально возможный лимит газа на блок, поскольку предельные издержки транзакций оказались бы слишком высокими. Найти подходящий лимит газа на блок — задача не из лёгких. Гэвин Андерсон изучил предельные издержки транзакций в блокчейне Биткойна, но ещё никто не проводил таких исследований для блокчейнов формата Эфириум. Поэтому пока мы устанавливаем лимит методом проб и ошибок.

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

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

Источник



Рубрики:Майнинг, Новичкам, Теория, Ethereum, эфир

Метки: , , , , , , , ,

1 reply

  1. Что такое Ethereum Classic, откуда он взялся, чем отличается от Ethereum и почему многие представители криптосообщества выступают против него.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s