Майнинг и как он работает: матчасть
Привет, %username%!
Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.
Сначала упрощенный ликбез, куда без него.
Кошельки
Каждый кошелек — это случайно сгенерированная пара ключей. Собственно, адрес кошелька — это хэш от публичного ключа. Так его можно однозначно идентифицировать.
Транзакция
Это запись о том, с какого кошелька на какой какая сумма переводятся. А так же, время и дата операции. Эта запись (её хэш) подписывается закрытым ключом отправителя и рассылается всем в округе в ожидании подтверждения.
Подтверждение
Чтобы о транзакции узнали и все себе её записали, необходимо её подтверждение, которое получается в результате создания нового блока.
Это служебные данные + список транзакций + номер кошелька майнящего + волшебное число.
Цепочка блоков
Последовательность, в которой каждый следующий блок включает в себя Id предыдущего.
Начало
Итак, есть некоторое количество народа, можно один. Назовём его Хаброша. Он решает запустить свою систему криптовалюты HabraCoin.
Поскольку выделенных серверов у этой валюты нет, то все её участники равноправны и должны как-то договариваться о валидности транзакций. То есть, нужен механизм, который обеспечит:
Для этого он формирует блок из существующих на данный момент неподтвержденных транзакций, номера предыдущего блока, номера своего кошелька и т.д. Для самого первого блока транзакций у нас нет, номера предыдущего блока у нас нет, ничего толком нет. Только адрес кошелька Хаброши да дата со временем.
Так же, в алгоритме HabraCoin указаны следующие вещи.
Ограничение скорости
Как мы видим, сам факт создания блока говорит о том, что его создатель получает за это вознаграждение. И чтобы это вообще имело смысл, скорость и сложность создания блоков следует ограничить. Иначе сами понимаете, тонны блоков из ничего и никакого толку.
Как этого добиться?
Если помните, все блоки состоят из нескольких полей. Мы берем эти поля, конкатенируем, получаем из них массив байт. Это массив байт отдаем хэш функции, получаем результат и смотрим: меньше то, что получилось с учетом текущей сложности, или нет?
Если нет, то изменяем этот массив байт до тех пор, пока не получим нужное значение. А именно:
В каждом блоке есть поле, называемое nonce. Это число размером несколько байт, которое нужно увеличивать на единицу, дописывать к блоку и опять считать от него хэш. Поскольку хорошие хэш функции выдают более-менее равновероятностные значения, то мы не знаем заранее, сколько раз придется повторять процесс. Может 1-2 раза, а может миллиарды.
Тот, кому удалось получить хэш, удовлетворяющий условиям сложности, рассылает всем блок с включенными в него транзакциями. На случай, если несколько человек сделали это одновременно, вводится условие, что несколько цепочек блоков существовать вместе не могут, а побеждает самая длинная. Таким образом, если у нас есть две цепочки:
то победит та, для которой 4й блок найдут раньше времени. А меньшая цепочка выкидывается и её транзакции снова попадают в очередь на подтверждение.
Комиссия
Все у себя в кошельках видели поле «комиссия» при совершении транзакции. Эта комиссия идет людям, занимающимся генерацией блоков. То есть, они в первую очередь будут выбирать из всех транзакций, ожидающих подтверждения, те, которые содержат в себе комиссию. После формирования блока считается, что вся комиссия, содержащаяся в транзакциях, отходит к его (блока) создателю.
То есть, когда кончится вознаграждение за генерацию блока (если это прописано в алгоритме валюты), то майнерам останется лишь комиссия, а халявные транзакции могут быть никогда не обработаны.
Давайте смоделируем ситуацию и поможем Хаброше скрафтить какой нибудь блок.
Под спойлером программа (в виде Junit теста), которая ради приличия генерирует 2 случайных пары ключей, формирует какое то подобие транзакции (даже подписывает её, все по честному!), а потом ищет такую к ней добавку, чтобы первые 2 байта хэша были нулевыми. Типа сложность такая. Работает пару минут, а потом действительно выдает хэш, который можно быстро проверить, сконкатенировав байты транзакции и счетчика.
Пример получившегося блока:
1824B9ADF09908222CF65069FDE226D32F165B3CF71B7AA0039FDFEF75EAA61610909EBFFBAC023480FC87FCF640C4A
009B82C4A6D25A0F4B8A732AE54EF733E792681137BA378577DFDC2732D192DAF323966EAD4ADC9635D7A12EDD50E34
9F660622D186AF3C03BF7D265F2AA7EB125056F4BF45BE519E8B22B845B28065110000006400000142E5D667CB01CEE
EDD0AC15EC4C491819A99030BD5FEF7CD2B469F2B90BA13D7981EDCD0708353D13390B8564F496C44FAC2777B0AF79D
C94CBF36D0CC0F047E807889F34C4DC5FEB724699C257391F84F3DDD70B84F841D115F4EFEAF4E58779042F35257E5C
035046037DE740718D199A8F06AD7A58E37CCCD4CC5E95295DCC2C5F3C70847BD59FA57BCC5FF4B208F93948FCFD763
EC1E5C85B61C43EB64B77A9F53B28785D7DE2335333003260A0839D53927976751A8D8967B2BB325909D86E82BC4125
2A28ECF6F0E7476BB99B29585EB0E75410000
Вот мы и заработали пару хабракоинов для Хаброши. Статья конечно поверхностная, так что готов к вашим вопросам.
Блокчейн: Тайна сложности майнинга и времени (нахождения) блока
Сложность майнинга заключается в степени, определяющей насколько трудно майнерам с позиции расходования мощности хэширования (а, следовательно, и времени) найти подходящую хэш-сумму, или, другими словами, подпись для своего блока (каждому блоку транзакций для его проверки и последующего добавления в блокчейн необходим отвечающий установленным критериям хэш). В блокчейне Биткойна майнеры пытаются найти требуемую хэш-сумму путём хэширования случайных чисел. Давайте вкратце рассмотрим этот процесс.
Что такое майнинг (он же хэширование) — освежим в памяти материал
Давайте быстренько снова пробежимся по этой теме. Если вы читали мою статью «Как работает майнинг и как обрабатываются транзакции», то уже знаете, что блок транзакций будет принят остальной частью сети только при условии, что у него имеется подпись (хэш), которая соответствует установленным требованиям (например, в блокчейне Биткойна подпись блока должна начинаться с определённого количества нулей). Для того, чтобы найти такую подпись, майнеры расходуют свои вычислительные мощности (мощности хэширования) на выполнение множества предопределённых операций над случайными числами до тех пор, пока они не найдут то необходимое число, которое и приведёт в итоге к некому числу на выходе, которое и будет подходить под заданные критерии. Поиск выходных данных в виде числа, которое начинается только с одного нуля, выполнить гораздо проще (и, как правило, чаще), чем поиск числового значения на выходе, которое бы начиналось с пяти последовательных нулей (это довольно редкое явление, таким образом, потребуется значительно большее количество времени, чтобы найти искомое число, которое и приведёт к таким данным на выходе).
Подпись блока (хэш), удовлетворяющая критериям — или сложность майнинга
Итак, именно количество нулей, с которого должна начинаться подпись согласно требованиям блокчейна, определяет насколько сложным для майнеров будет её нахождение (сколько в среднем требуется мощности хэширования или времени). В этом и заключается сложность майнинга. Чем больше требуется нулей, тем сложнее найти подходящую подпись (= более высокая сложность). Но что же определяет сложность майнинга?
Что определяет сложность майнинга?
Сложность майнинга в сети автоматически корректируется каждые две недели в зависимости от скорости нахождения новых блоков. Совокупная мощность хэширования сети увеличивается, когда всё большее количество майнеров присоединяется к ней для майнинга биткойнов. Следовательно, можно предположить, что в этом случае сеть в целом будет находить подходящие подписи быстрее, а это означает, что блоки в блокчейн будут добавляться также быстрее.
В блокчейне Биткойна каждые две недели производится корректировка сложности майнинга, таким образом, чтобы суммарная мощность хэширования сети в среднем производила 1 блок каждые 10 минут. Если к блокчейну биткойна присоединится много майнеров и суммарная мощность хэширования возрастёт, то скорость нахождения блока может увеличиться с 1 блока за 10 минут до 9 минут на 1 блок. Спустя некоторое время это также вызовет рост сложности майнинга, так что даже с этой дополнительной мощностью хэширования скорость производства блоков будет сохранять устойчивый темп в 1 блок за 10 минут. То же самое относится и к противоположному сценарию, когда майнеры прекращают майнинг на блокчейне и совокупная скорость хэширования понижается, сложность майнинга также уменьшается. Главный вопрос состоит в том – почему же 1 блок каждые 10 минут?
Но почему всего лишь один блок в десять минут?!
Может вы сейчас и не осознаёте этого, но это действительно очень хороший вопрос. Лично мне потребовалось много времени, чтобы разобраться в этом, и, по всей видимости, я был не единственным.
Но почему вообще должна увеличиваться сложность майнинга? Ведь для обработки того же количества транзакций потребуется больше электроэнергии. Почему бы просто не снизить сложность майнинга и не ускорить тем самым темпы нахождения новых блоков? Это также привело бы к тому, что Биткойн-транзакции обрабатывались бы намного быстрее.
В течение длительного времени этот вопрос никак давал покоя моей голове, пока однажды кто-то на Reddit, наконец-то, не предложил ответ. Оказалось, что это было единоличным решением Сатоши Накамото (изобретатель Биткойна), чтобы скорость производства блоков поддерживалась на стабильном уровне и составляла в среднем 1 блок раз в 10 минут, по той причине, что блокчейну понадобится приблизительно 10 минут для распространения последнего блока (блоков) по всем узлам сети во всём мире, чтобы блокчейн оставался должным образом синхронизированным. Если блоки создаются более быстрыми темпами, то некоторые узлы на другой стороне земного шара, возможно, не смогут достаточно быстро и своевременно включить данные последних транзакций в свои копии блокчейна. Это, в свою очередь, может привести к тому, что узлы больше не будут корректно синхронизированы. Последствием такой рассинхронизации узлов сети может стать появление так называемых «orphan» блоков (или разветвлений цепочки), которые представляют из себя «сиротские» блоки или блоки, исключённые из основной цепочки блокчейна. Возникновения таких блоков блокчейн должен по возможности избегать, чтобы оставаться безопасным. Несомненно, такой ответ кажется довольно простым, но он имеет смысл.
Итак — сложность нахождения блока
Давайте подведём итог — сложность нахождения блока основана на общей мощности хэширования сети и корректируется каждые две недели, чтобы поддерживать стабильный темп создания новых блоков, составляющий 1 блок в 10 минут. Это даёт сети время для синхронизации и обновления реестра блокчейна в глобальном масштабе и имеет решающее значение для обеспечения безопасности реестра («блоки-сироты» снижают уровень безопасности сети, поскольку они могут стать недействительными, даже после того, как их достоверность была подтверждена).
Чем больше майнеров присоединится к сети, тем больше совокупной вычислительной мощности будет расходоваться на нахождение удовлетворяющих критериям подписей, и тем быстрее блоки будут добавляться в блокчейн, если сложность решения блоков не будет изменена. Следовательно, сложность повышается, когда увеличивается суммарная мощность хэширования, и наоборот, при уменьшении сложности, мощность хэширования также снижается. Как можно видеть ниже, совокупная мощность хэширования (хэшрейт) на данный момент составляет 51 миллиард GH/s. Чем выше хэшрейт, тем выше сложность блока.
Как проиллюстрировано ниже, блок 100 (ещё в 2009 году) требовал подписи, которая начиналась только с восьми последовательных нулей, в то время как последний блок на момент написания этой статьи (блок 542865) нуждался в подписи, которая начиналась как минимум с 18 нулей, следующих друг за другом. Количество нулей — это то, что отражает уровень сложности. Поиск выходных данных с таким количеством последовательных нулей требует либо гораздо большего времени, либо гораздо большей мощности хэширования. И на сегодняшний день сложность нахождения блока намного выше, по той простой причине, что в блокчейне Биткойна расходуется значительно большая мощность хэширования (из-за возросшего числа майнеров).
Как вы можете видеть, совокупная мощность хэширования на блокчейне Биткойна в 2018 году во много-много раз больше, чем в 2009 году. Небольшое примечание: график ниже показывает только постоянно увеличивающуюся сложность добычи биткойнов до марта 2018 года, но она снижается с октября 2018 года, когда майнеры были вынуждены прекратить добычу, потому что их операционные расходы начали превышать прибыль от майнинга, поскольку цены на биткойны быстро падали.
Хорошо, а что если увеличить размер блока?
Да, это довольно широко обсуждаемая тема. Если увеличивается размер блока, независимо от сложности, то в блок будет помещаться больше транзакций, следовательно, больше транзакций будет обрабатываться в заданный период времени. Хотя это и может выглядеть, как решение, но на самом деле таковым не является. Есть несколько аргументов против увеличения размера блока, один из которых заключается в том, что более длительное время распространения блоков между узлами приведёт к более высокой скорости появления «сиротских» блоков. По существу, это компромисс между масштабируемостью и безопасностью, однако, это только временное решение, ценой которого будет целостность сети.
Где найти отчёты в реальном времени по добавлению новых блоков в блокчены Биткойна и Эфириума?
Вы можете найти сканнеры, предоставляющие информацию в реальном времени по следующим параметрам – времени нахождения блока, сложности блока, хэшрейту и т.д., здесь для блокчейна Биткойна, а здесь для Эфириума.
Про удачу в майнинге
Большой процент майнеров как начинающих, так и уже опытных не понимают, что такое удача в майнинге. В этот раз я попытаюсь простыми словами вам рассказать о таком важном аспекте при майнинге криптовалюты.
Что такое майнинг?
реклама
У тех людей, кто не знаком с этим процессом, зарождаются конспирологические теории, якобы майнинг – это спланированная акция, а вся крипта придумана некими людьми, дабы использовать ваше оборудование как «бесплатный суперкомпьютер» для просчета возможных ущербов при ядерной атаке и т.д.
На самом деле все куда проще. Если говорить простыми словами, то майнинг – это процесс создания криптовалюты с помощью специального алгоритма. На ПК генерируются уникальные наборы данных (блоки), подтверждающие достоверность платежных транзакций. Эти блоки состоят из хеша заголовков предыдущих блоков, хеша транзакций и случайных чисел. Блокчейн – это цепь. В ней содержатся все транзакции. За нахождение блока начисляется награда.
Так, ферме, занимающейся майнингом Эфириума, каждые 13,2 секунды дается новая задачка. Эта самая ферма пробует выиграть в «угадайку», для создания нового блока.
реклама
Разные алгоритмы майнинга являются разными уравнениями. Допустим, первый алгоритм M+N=R, второй M*N=R. Каждым блокам дается постоянное значение M, а ответ – число R с 2 нулями в конце. В случайном порядке перебирается число N, пока не найдется ответ. Сетью подбирается такое число нолей, чтобы блок находился в среднем за то самое значение (10 минут Биткоин или 13,2 секунд Эфириум).
Приведу простой пример.
Допустим, есть сеть крипты G. Вы там один занимаетесь майнингом. Время блока – 5 минут. Сетью дается задача, в конце ответа которой (R) два ноля.
реклама
Вычисление примера идет путем подбора чисел. Специальных методик, патчей и т.д, с помощью которых примеры решаются быстрее, нет. Есть лишь разница в скорости подстановки этих чисел. Все дело в мощности карты: чем мощнее, тем быстрее.
Затем приходят еще друзья. Сеть опять же усложняет задачку так, чтобы время появления блока было все те же 5 минут
Если количество майнеров уменьшается, то сеть опять реагирует на это, но теперь уже упрощает задачку так, чтобы блок создавался раз в 5 минут.
Удача в майнинге.
Итак, что же из себя представляет эта удача?
реклама
Приведу излюбленный многими пример с бросанием кубика. Допустим, вы бросаете кубик, и вам нужно, чтобы выпало число 6. В идеале шанс выпадения цифры 6 равен 16,6%, то есть каждый 6 раз, так как у куба 6 граней. На практике это число может выпасть как несколько раз подряд, так и не выпасть с 10 бросков.
Поиск решений блоков точно такой же. Допустим, вы обладаете одной видеокартой, а у знакомого их десять. Это равносильно тому, что у вашего знакомого десять кубиков, а в ваших руках только один.
Шанс того, что у вашего знакомого выпадет нужная цифра намного больше. Однако, это не означает, что шансов выиграть у него у вас совсем нет. Представим, что наградой за блок будет 110 долларов. Вам доступны следующие варианты:
Выбрав второй вариант, в идеальных условиях вам нужно в 11 раз больше времени, чем в пуле с знакомым, но у нас не идеальные условия.
Иначе говоря, майнеры играют в «угадайку». Чем выше мощность, которой располагает майнер (МХ/с), тем его оборудование быстрее перебирает эти цифры с целью нахождения решения блока. Чем большей мощностью вы обладаете (больше видеокарт и их мощность), тем вами быстрее проходится эта игра.
В вашем распоряжении, к примеру, оборудование на 100 МХ/с, а у знакомого – 600 МХ/с. Разумно было бы предположить, что знакомый вас обыграет. Причем это будет выглядеть так: на 1 вашу победу приходится 6 его побед. Это в идеальных условиях.
Однако в реальной жизни работает та же логика, что и в ситуации с кубиками: может повезти, а может и нет.
Главное знать, что везти вам будет максимум день-два. Затем вычислительные мощности вашего знакомого возьмут верх. В среднем, соотношение ваших побед к победам вашего знакомого будет равно 1/6.
Удача в майнинг-пуле.
Это такое значение в %, указывающее значение удачи в момент поиска пулом блока. В идеале пулом всякий раз находился бы блок при значении в 100 процентов. Если пул испытывает везение, то блок будет найден до отметки 100%, если же нет – то может быть 100 процентов и больше.
Приведу пример.
Период нахождения блока равняется 10 минутам. Ежедневно это равняется 144 блокам. Допустим, хешрейт сети – 40 MS/s. Если хешрейт пула равен 10 MS/s, то им находится примерно каждый 4 блок, следовательно, это 36 блоков за сутки. Если им найдено «сверх нормы», для примера, 43 блока – значит в этот раз он был более удачлив, а если 23 блока –повезло меньше. В среднем, значение параметра удача всякий раз стремится к 100%.
Давайте посмотрим все это на примере нескольких валют: Aeternity, Эфириум, Эфириум Классик.
Как мы видим, значение удачи всегда почти равно 100%. Здесь главное терпение. Сперва значение удачи могло равняться 10 процентам или 500 процентам, но она все время приближается к значению в 100 процентов. Поэтому не нужно постоянно метаться с одного пула к другому.
Удача в соло-майнинге
Все, что написано выше, распространяется и на соло-майнинг. Будете ли вы владельцем одной видеокарты или целой майнинг-фермы размером с комнату – вы столкнетесь с параметром «удача».
Возможно ли падение удачи?
Рост удачи в майнинге продолжается до того момента, пока не найдется решение блока, затем она сбросится до нуля. Бывает и такое, что значение удачи падает, например, с 95 до 85 процентов. Такое возможно, когда падает или поднимается сложность сети. Но это не означает, что вам резко повезет.
Майнинговый ликбез
Посвящается всем, у кого украли блок, у кого не падают блоки, кто сидит в соло и переживает, что падающие блоки забирает кто-то другой.
Материал родился под впечатлением от ужаса, пережитого при прочтении темы о работе пула 2Miners на форуме майнингклаба. Основан на многодневном бдении в канале 2Miners. Бдении чаще безмолвном, потому что просто невозможно одно и то же писать, как в первом классе — с начала каждой страницы.
Извечные вопросы: «Где блок?», «Где награда за блок?», «Доколе нам ещё копать блок?» повторяются каждый день.
Особенно они пугают, когда их начинают задавать владельцы мощности 2+ GH/s. Я понимаю, что в момент «привета» найсхеша многочисленные последователи секты «Протона» пошли в народ, то есть в пулы. Но не заставляйте меня полностью потерять веру в человечество! Как?! Как, имея оборудования на сумму больше миллиона рублей, можно не иметь хотя бы среднего образования?
Поэтому я решил развеять пару устоявшихся мифов и ещё раз попробовать на пальцах рассказать про майнинг, блоки и так далее.
Начнём с самого начала. Прежде чем переходить к майнингу, давайте быстро пробежимся по основным понятиям.
Что такое блокчейн
Возьмём абстрактную криптомонету. У монеты есть блокчейн или сеть, которая обеспечивает всю работу. Блокчейн монеты содержит данные обо всех транзакциях. Абсолютно все операции, вся история жизни монеты сохраняется в элементах блокчейна – блоках.
В сети постоянно выполняются транзакции между кошельками, изменяются балансы, добавляются новые кошельки. Всю эту информацию надо сохранить. Для этого в блокчейн добавляют очередной блок, который и содержит информацию о транзакциях за текущий период. Из-за этого блокчейн постоянно прирастает блоками с новыми данными. Причем мы можем добавить информацию в блокчейн исключительно путем дописывания её в новый блок. Линейность и наследуемость — одни из самых важных свойств блокчейна. Никто не может отредактировать информацию, которая уже хранится внутри прошлых блоков. Мы в любой момент можем проследить все транзакции, хоть до самой первой. Переписать историю в случае с блокчейном нельзя.
Вся новая информация добавляется только в новые блоки. Для попадания нового блока в основную цепочку его необходимо завизировать, то есть подписать. Каждый новый блок наследует предыдущий, а подпись предыдущего блока включается в заголовок следующего.
Таким образом мы защищаем сеть от взлома и манипуляции данными, а также контролируем подлинность и целостность данных в блокчейне.
Что такое Proof of Work и Proof of Stake
В зависимости от используемого протокола формирования подписи нового блока практически все криптомонеты делятся на два типа: PoW (Proof of Work) и PoS (Proof of Stake). Есть и третий тип — смешанный, но мы оставим его за скобками.
У монет на протоколе PoS подписание блоков происходит одним из «кошельков» в сети. Вероятность подписать блок и получить за него награду растёт от количества монет в кошельке. При прирастании сети новым блоком награда за него делится между всеми держателями монет в зависимости от их доли.
Нам же интересен именно «аппаратный майнинг». У монет с протоколом PoW блоки подписывают майнеры. Для подтверждения блока майнер проводит вычисления и решает функцию. Нахождение ответа происходит простым «тупым» перебором одного из параметров уравнения. Кто первый угадывает ответ, тот и подписывает очередной блок в сети и получает за это награду.
Тут появляется награда. Как мы уже знаем, для функционирования криптосети нужно постоянное добавление в блокчейн новых блоков. Чтобы майнеры PoW монет или держатели монет с PoS протоколом поддерживали сеть своим участием, им платят деньги. Это случается при добавлении каждого нового блока в блокчейн. Награда состоит из постоянной части и суммы комиссии за транзакцию.
Перед обсуждением награды за блок знакомимся с процессом майнинга.
Как работают майнинг пулы
Обычно взаимодействие между криптосетью и майнерами ведется через посредников — майнинг пулами. Для нормальной работы сеть должна пополняться новыми блоками. Как только майнер находит решение очередного блока, сеть рассылает всем пулам новое задание для следующего блока. Все пулы получают одинаковую задачу, то есть в каждом новом блоке все соревнуются со всеми.
После получения новой задачи пул транслирует её майнерам. Чаще всего пул заметно её упрощает. С одной стороны это позволяет участвовать в поиске решения всем майнерам, с другой — оценивает работу майнера на заданном временном отрезке. Майнеры отправляют пулу возможные решения блока — шары. Чем больше решений или шар отправили на пул видеокарты, тем больше вклад в решение блока и больше награда.
После каждой шары пул проверяет, нет ли среди них решения блока. Если решение подходит, он отправляет его в сеть.
Часто несколько пулов одновременно находят решение блока и отправляют его практически одновременно. Сети всё равно — она принимает только одно решение, а в блокчейн включает только один блок. Остальные будут отвергнуты и не получат награды. В сети Ethereum такие блоки называют uncle. За них майнер получает вознаграждение, хоть и в меньшей степени.
Одни из самых частых вопросов в канале поддержки пула 2Miners: «Как часто падают блоки?». Ответ – блоки не падают вообще.
Как выбрать монету для майнинга
У каждой монеты разное время блока. Например, у ETC это примерно 15 секунд. «Примерно», потому что среднее время блока — не абсолютная величина. Это время, к которому стремится сеть. Она определяет сложность задач, чтобы они решались в среднем за 15 секунд. Новый блок добавляется за то же время.
Сам код POW-криптовалюты пишется так, чтобы среднее время появления блока стремилось к расчётному. За это отвечает формула сложности сети. Время решения задачи зависит от двух параметров: сложности задачи и вычислительной мощности — количества майнеров. На количество майнеров сеть не влияет, а вот на сложность — да. Поэтому сложность сети растёт по мере увеличения числа майнеров. И наоборот.
Чтобы было проще, представим процесс майнинга абстрактно. Допустим, есть ящик с песком, в котором закопана монетка – блок. Глубина неизвестна, то есть может быть любой. Для нахождения блока надо последовательно черпать из ящика песок.
Размеры ящика определяет сложность сети, а размеры лопатки – мощность наших ригов. Чем выше сложность сети, тем больше будет ящик. Но и чем больше лопаток, то есть мощность рига, тем быстрее мы должны выкопать монетку.
Параметры ящика и лопаты не дадут рассчитать время нахождения монеты. Можно копнуть маленьким совком один раз и сразу выкопать монету. А можно большой лопатой вычерпать ящик до дна. Тут всё зависит от удачи.
Что такое удача пула
Появились первые понятия, с которыми мы сталкиваемся на пуле:
Вроде всё просто. Нам нужен блок, мы идём к ящику и майним его.
Существует два типа ящиков. Первый — общие ящики, в которых вместе копает много искателей, а клад делится между всеми. Делят по-простому: чем больше лопата, тем больше вклад в общее дело, и тем большую часть награды получают.
Например, мы с друзьями втроём копаем в одном ящике. Мой совок вмещает 5 см3, Лёшин — 10 см3, а у Миши мини-экскаватор с ковшом на 85 см3. При нахождении монеты делим её пропорционально: мне 5 частей, 10 частей Лёше и 85 частей экскаваторщику. Всё вроде как честно. У Миши больше производительность, так что и награда больше.
Но почему же тогда в жизни на пулах при дележе награды за блок всегда возникают споры? Ответ в предыдущем абзаце.
Или другая обсуждаемая ситуация. Мы с парнями в этом ящике три дня совками орудовали, и всё впустую. А тут приехал Миша-экскаваторщик и за десять минут выкопал сразу 15 монет. Забрал себе 12, а нам дал только 3 монеты. Ну и где справедливость? А она в 3 монетах, которые из ковша выпали.
Надо просто понять, что у экскаватора шансов выкопать монету в десятки раз больше, чем у лопатки. А он ещё и делится с вами. А ведь мог пойти копать к ящику другого типа – соло.
В соло-майнинге у каждого свой ящик. Никто никому не мешает и не помогает. Запомните: у каждого свой ящик и своя лопата. В соло-майнинге каждый сам за себя.
Вроде бы просто, но на форумах частенько муссируется тема влияния игроков с большим хешрейтом на результаты остальных майнеров. Нет никакого влияния. Просто на одном пуле все соло ящики поставили в одной комнате. И пока одни совочком разбрасывают песок, Миша своим ковшом достаёт кучу монет. Это причина праведной злости. Связи нет, это простая психология.
Идём дальше. Вспоминаем о времени генерации блоков и добавляем его в уравнение. Теперь надо понять, что ящик с монетами это не жена, которая один раз и на всю жизнь. В зависимости от монеты ящики будут меняться с определённой частотой.
Если копаем ETC, то каждые 15 секунд сеть будет давать новый ящик. Независимо от того, успели в старом найти монету или нет. Всё, раунд окончен, будьте добры пройти к следующему ящику.
И снова вспоминаем расхожее мнение, что чем дольше я копаю, тем выше мои шансы найти блок. Если ящики меняются каждые 15 секунд, то вообще не важно, сколько вы уже машете лопатой. Каждые 15 секунд это происходит в очередном новом ящике.
Помните — физический труд сделал из обезьяны человека. Умственный труд сделал из человека умного человека.
Удачного майнинга и «лёгких» блоков.
Для безопасной продажи и покупки намайненной криптовалюты рекомендуем Телеграм-бот. Обзор и детали работы читайте в этой статье.
Спасибо Максиму Шмелеву за такой подробный и интересный разбор полётов!



