Что такое криптомайнинг?

3 января 2009 года была проведена первая операция по добыче биткоинов, и вознаграждение в размере 50 BTC было отправлено на адрес 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, принадлежащий, скорее всего, таинственному Сатоши Накамото, разработчику Bitcoin. Сгенерированный им генезис-блок содержал текст «The Times 03/Jan/2009 Chancellor on brink of second bailout for banks» («Канцлер на грани повторного вливания денег банкам», реальный заголовок с первой полосы британской газеты The Times от 3 января 2009 – перев.), что было намеком на финансовый кризис того времени и на основную мотивацию зарождения децентрализованной валюты.

По состоянию на май 2021 года, эти 50 биткоинов соответствуют 2,9 миллионам долларов. Однако то ли из-за особенностей системы, то ли по прихоти разработчика, эти первые 50 BTC невозможно пустить в оборот. Зато эта первая операция майнинга дала старт тому, что сделало идеи Сатоши Накамото о децентрализованной валюте всемирно признанной финансовой и технической силой, с которой нужно считаться.

На сегодня, уникальных майнеров одного только биткоина – не менее миллиона, не говоря уже о майнерах всех других существующих криптовалют. Из новостей мы слышим о них лишь то, что майнеры ежегодно тратят тераватт-часы электроэнергии (0,51% мирового производства электроэнергии) на цели майнинга, а также неистово скупают новейшие видеокарты в первый день их продаж и занимаются раскруткой новых, но несколько спорных, цифровых решений, таких как CryptoKitties и невзаимозаменяемые токены (NFT).

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

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

Кстати, мы уже писали о том, как начать майнить

Идеи Сатоши

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

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

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

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


Графика: techspot.com

Например, у Алисы есть 100 долларов. Утром она пообещала Бобу, что даст ему вечером эти 100 долларов. То же самое она пообещала Чарли и Дэвиду, независимо друг от друга. Всем показала свои 100 долларов, каждому пообещала их вечером, и все трое согласились на сделку с Алисой. Таким образом, если вечером публичный реестр (который, так сказать, высекается в камне) будет содержать 3 транзакции по 100 долларов, инициированные Алисой, то кому нужна такая система?

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

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


Графика: Елена Тарасова

В частности, биткоин-майнеры первоначально соревновались за вознаграждение в размере 50 BTC примерно каждые 10 минут. К сегодняшнему дню это вознаграждение прошло уже через три халвинга (halving), то есть было три раза уменьшено вдвое, и теперь оно составляет 6,25 BTC. Халвинг биткоина осуществляется каждые четыре года, и следующее такое «уполовинивание» гонорара произойдёт в 2024 году (3,125 BTC), и так будет до тех пор, пока майнеры не добудут последний из 21 миллиона биткоинов (ожидается, что это будет около 2040 года).

Как выразился Виталик Бутерин, сооснователь Ethereum, «халвинг помогает удержать инфляцию под контролем». После того, как будут добыты все биткоины (или любая другая криптовалюта), сеть продолжит работу за счет комиссии за транзакции.

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

Были ли эти идеи в полной мере реализованы, всё ещё остается предметом споров. Однако, если отвлечься от экономики, как такая система смогла появиться на свет из простого 9-страничного документа?

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

Как валюта стала «крипто»

В уайт-пейпере Сатоши слово GPU вообще не упоминалось, рассматривая в качестве майнинг-оборудования лишь мощности, основанные на CPU. А теперь и майнерские фермы на базе GPU-кластеров – это «прошлый век», поскольку добывать цифровое золото со временем становится всё сложнее и чтобы оставаться конкурентоспособными в борьбе за награду, майнеры выбирают FPGA или ASIC. В чем принципиальное отличие этих архитектур в контексте майнинга? В уровне параллелизма. Для майнинга важен максимально высокий уровень параллельных вычислений.

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


Графика: techspot.com

Хорошая новость для майнера заключается в том, что математически задача на самом деле несложная. Цель состоит в том, чтобы найти правильное число (традиционно называемое «nonce»), которое будучи зашифровано (криптографическим алгоритмом SHA-256, в случае биткоина) даст число, меньшее заданного значения. А плохая новость в том, что найти это число можно не иначе как только перебором. На то она и криптография.

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

В качестве примера взглянем на этот блок из блокчейна Bitcoin:

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

Для генерации данного блока 678411 было использовано nonce-значение 2,217,356,589 (или 0x842a2d2d в шестнадцатеричном формате). Этот одноразовый код (nonce = «number that can only be used once») используется в сочетании с несколькими другими значениями (такими как хэш предыдущего блока, корень Меркла, отметка времени и т.д.) таким образом, что суммарный хэш всех этих значений будет меньше определенного Target-числа для 00000000000000000006c9fad44b7f37429b239d99d50396df13f8c4f4fa9194.

Чтобы лучше понять уровень сложности этой криптографической задачи, воспользуйтесь этим удобным онлайн-кодировщиком SHA-256.

Теперь представьте, что в поле «Message» введена последовательность нескольких данных, включающая сводку по нескольким транзакциям (например, Алиса отправила Бобу 100 долларов), различные метаданные (хэш предыдущих блоков, корень Меркла, отметка времени и т.д.) и значение nonce. Задача состоит в том, чтобы подобрать такое значение nonce, которое при добавлении его в эту шифруемую последовательность, дало бы результат хэша с 19 нулями в начале.

Поиграв с этим онлайн-калькулятором, вы быстро убедитесь, что для того, чтобы получить на выходе значение хотя бы с двумя нулями в начале (не говоря уже о не менее 19), нужно перебрать огромное количество вариантов входящего значения. Фактически, чтобы повысить сложность майнинга блока, достаточно увеличить количество требуемых начальных нулей, удерживая, таким образом, под контролем правило «10 минут на блок», особенно по мере увеличения количества майнеров.

В приведенном выше блоке 678411 мы также видим, что вознаграждение за его добычу составило 6,25 BTC. На момент написания этой статьи 6,25 – это стандартное вознаграждение в биткоинах, которое будет ещё несколько раз уполовиниваться, пока не будут добыты все BTC. После того, как все BTC будут добыты, сеть будет работать исключительно за счет комиссии за транзакции, предоставляя майнерам часть транзакций в блоке за их работу.

Такой алгоритм работы майнинга обычно называется «Proof-of-Work» (PoW) – «доказательство выполненной работы». Идея фактически восходит к концепции доверия: только вместо того, чтобы доверять некоему централизованному объекту или субъекту выполнение всех транзакций и принимать его слова как «доказательство» того, что ничего злонамеренного не произошло, система PoW требует, чтобы майнер проделал правильный объем работы как показатель благонадежности. Поскольку криптографические задачи требуют огромных усилий для их решения путем определения подходящего значения nonce, майнер эффективно доказывает, что им добросовестно выполнена вся необходимая вычислительная работа.


Proof-of-Work (PoW) vs. Proof-of-Stake (PoS). Ссылка

Некоторые другие системы используют альтернативный алгоритм достижения консенсуса, называемый «Proof-of-Stake» (PoS) – «доказательство доли владения». На него, в частности, собирается перейти Ethereum как ETH2. Этот алгоритм кардинально меняет роль майнера, чей объём работы и соответствующие вознаграждения рассчитываются пропорционально его доле в системе.

Криптографический алгоритм лежит в основе любой криптовалюты. Для тех «математических задач», которые требуется решить майнеру, криптография подходит как нельзя лучше благодаря следующим её характерным свойствам:

  • Нет смысла пытаться применить обратно-направленное вычисление (подбирать nonce начиная с target-значения)
  • При прямо-направленном же вычислении предстоит обработать огромный объём вариантов подбора
  • Этот объём можно регулировать, что позволяет, в частности, увеличить при необходимости сложность майнинга, усиливая тем самым и безопасность сети
  • Блокчейн неизменен, и попытка внести ретроспективные изменения в любую из совершенных транзакций влечет за собой рассогласованность всей последующей цепи транзакций

SHA-256 – не единственный криптографический алгоритм, используемый для криптовалют. Как упоминалось ранее, одна из проблем майнинга биткоинов заключается в том, что большинство майнеров сейчас используют ASIC (application-specific integrated circuit, «интегральная схема специального назначения») – специализированное оборудование, которое предназначено только лишь для вычислений SHA-256. Ethereum, например, использует алгоритм Dagger-Hashimoto, который создавался с учетом устойчивости к ASIC. Monero, ByteCoin и Dashcoin используют алгоритм CryptoNight, который также считается устойчивым к ASIC и вдобавок использует обфускацию блокчейна для обеспечения лучшей конфиденциальности. И мир этот лишь растёт, являя всё новые криптовалюты, алгоритмы для их майнинга и массу других технических деталей.

Мир майнинга: аспекты технические и философские

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

За каждой новой монетой стоит её создатель (или группа), со своими личными идеями и планами. Например, многие криптовалюты появились вслед за тем, как сферу майнинга активно начали захватывать АСИКи, чтобы вернуть простым людям, массам, саму природу децентрализованного блокчейна, не допуская его монополизации несколькими толстосумами, накупившими себе ASIC-фермы.


Графика: techspot.com

Иные же, такие как Litecoin, принципиально мало чем отличались от предыдущих монет, но стремились решить более фундаментальную техническую проблему. В случае Litecoin, это форк Bitcoin с меньшим временем генерации блока – около 2,5 минут (вместо 10 у Биткоина) для повышения ликвидности транзакций. С этой целью, помимо других технических изменений, было увеличено и общее количество монет – до 84 миллионов (против 21 у Биткоина).

По мере развития криптосообщества, множились и дебаты о том, какой должна быть идеальная криптовалюта. Должен ли BTC по-прежнему основываться на оригинальных идеях и реализации Сатоши 2009 года? Или нужно адаптироваться ко времени? Как следствие таких дебатов – появление биткоин-форка Bitcoin Cash, в котором максимальный размер блока в блокчейне увеличен с 1 Мб до 32 Мб, что позволяет размещать больше транзакций на блок.

Когда 19-летний Виталик Бутерин не смог убедить разработчиков Bitcoin внедрить программируемую криптовалюту в блокчейн Биткоина, он приступил к созданию своей собственной. Теперь сеть Ethereum является второй криптовалютой по охвату рынка, имея также ценную функцию на блокчейн – смарт-контракт (умный контракт или программируемые деньги). Позже Фабиан Фогельстеллер (Fabian Vogelsteller), разработчик Ethereum, создал стандарт ERC-20, позволяющий практически любому создавать «токен» криптовалюты, работающий поверх блокчейна Ethereum.

Появление ERC-20 привело к притоку множества новых криптовалют в статусе ICO (initial coin offerings, «первичное размещение монет»). Многие из них на деле оказывались не совсем добросовестными или откровенно мошенническими продуктами. Тем не менее, с помощью ERC-20 зародилось не менее 800 серьёзных проектов на основе токенов в основной сети Ethereum, включая Tether, Binance Coin, Wrapped Bitcoin (WBTC) и USD Coin. По решению консорциума специалистов по финансам и технологиям альянса EEA (Enterprise Ethereum Alliance), Ethereum переходит в систему Proof-of-Stake (PoS).

Стоит ли заниматься майнингом?

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

Также, предстоит определиться с выбором криптовалюты. Биткоин, например, сегодня очень сложно индивидуально майнить из-за большого количества крупных майнеров с ASIC-фермами. Другие монеты, такие как Ethereum и Monero, имеет смысл майнить, используя майнерские пулы и делясь мощностью. В результате, коллективно достигаемая прибыль распределяется между всеми майнерами в соответствии с правилами того или иного пула.

Принимая решение, стоит учесть нижеследующие факторы:

  • Скорость хэширования вашего оборудования;
  • Вознаграждение за блок;
  • Текущая сложность майнинга;
  • Cтоимость электроэнергии;
  • Потребляемая вашим оборудованием мощность (Вт);
  • Комиссии майнерского пула;
  • Стоимость криптовалюты;
  • Прирост по сложности (производительность майнеров).

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

А если уже решились, то вот наша статья: "Как начать майнить?"

По материалам techspot.com