Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы технологии блокчейн и криптовалют для менеджеров. Учебное пособие

.pdf
Скачиваний:
6
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
71
и специфическое для биткоина оборудование станет бесполезным, если биткоин исчезнет. Однако, если биткоин будет процветать, появится желание обойти других конкурентов в сфере майнинга. Однако FPGA использовались недолго, потому что примерно в 2014 году на рынке быстро появилось гораздо более мощное оборудование.
ASIC (application-specific integrated circuit – интегральная схема специального назначения) – специализированные интегральные схемы, которые упоминаются во всей экосистеме биткоин. Это полностью спе­циализированные устройства, которые могут делать только одно: бит­коин-ASIC способны выполнять только один тип вычислений – май­нинг. Эти устройства ничего не делают, кроме решения хеш-голово­ломки биткоин, но они делают это лучше, чем что-либо еще. Когда дело доходит до ASIC, существует множество возможностей настройки. Они варьируются от выбора более низкой базовой стоимости в обмен на бо­лее высокое потребление электроэнергии или выбора устройства мень­шего размера.
В зависимости от ваших конкретных потребностей, вероятно, су­ществует соответствующий ASIC. Однако одна проблема с ASIC – это их начальная стоимость. Мало того что для производства ASIC требу­ется много первоначального капитала, их также необходимо покупать огромными партиями, чтобы получить разумную прибыль.
Кроме того, существует несколько типов алгоритмов, применяе­мых в разных криптовалютах. Например, биткоин использует SHA-256, а litecoin – Scrypt, что не позволяет использовать одни и те же ASIC для майнинга любой криптовалюты. Примерно с 2012–2013 гг. майнинг распространенных криптовалют на чем-либо, кроме специализирован­ных чипов, стал невыгодным – стоимость потребляемой электроэнер­гии превышает средний результат.
Теперь, когда обсудили фиксированные затраты или затраты на оборудование, рассмотрим переменные затраты в майнинге. Итак, как известно, существует несколько разных стоимостей энергии, потребля­емой в процессе майнинга, и все они учитываются при оценке стоимо­сти биткоинов для окружающей среды. Эти затраты на энергию бывают разных форм, но основные следующие: энергия, потребляемая при про­изводстве оборудования, электричество, необходимое для питания обо­рудования, а также энергия для охлаждения, которое поддерживает ра­боту оборудования по мере его нагрева. Все эти виды энергии являются важными, но электричество и охлаждение – это переменные затраты на энергию, которые имеют большее значение при рассмотрении
72
долгосрочных прогнозов прибыли. Кроме того, необходимо поддержи­вать инфраструктуру и оплачивать накладные расходы.
В зависимости от масштаба деятельности может потребоваться покупка целых складов и нескольких специалистов по обслуживанию или ремонту оборудования. Возможно, в долгосрочной перспективе бо­лее качественное обслуживание будет означать снижение необходимо­сти замены оборудования. В любом случае цель работы майнеров – максимизировать свою прибыль. Вот почему холодные места, обеспе­чивающие естественное охлаждение, или места с дешевым электриче­ством более выгодны для организации долгосрочной добычи полезных ископаемых.
Но, конечно, даже с самой впечатляющей технологией поиск блока все равно занимает слишком много времени. Есть ли способ со­кратить время, необходимое для получения прибыли от нашего обору­дования? Конечно, если использовать майнинговые пулы. Пулы для майнинга позволяют отдельным майнерам объединять свои хеш-мощ­ности. Таким образом, они будут коллективно находить блоки и чаще получать награды, даже если они получают меньшую сумму с каждым блоком, который находит пул.
Пулы для майнинга управляются менеджером пула или операто­ром пула, который заботится о запуске полного узла биткоин и распре­делении заданий среди других майнеров. Операторы пула также берут часть вознаграждения в качестве компенсации. Таким образом, майне­рам даже не нужно хранить блокчейн самостоятельно: аналогично об­лачным вычислениям они предоставляют пулам доступ к своему обо­рудованию в обмен на долю прибыли от пула.
Вы можете спросить: «Биткоин децентрализован! Как я могу дока­зать группе, что трачу вычислительные мощности, чтобы помочь им?» На самом деле эта проблема – уменьшенная версия проблемы, которую ре­шил сам биткоин! Мы можем заставить майнеров доказать, что они рабо­тают для пула с помощью акций. Акции определяются как почти правиль­ные или действительно правильные блоки. Вот как это работает.
Рассмотрим работу майнера в гипотетическом объединении май­неров (майнинг-пул). Майнер только что нашел хеш-блок с половиной начальных нулей, чем у действительного блока. Это маловероятное со­бытие, вызванное затратами значительного количества вычислительных ресурсов. Пулы для майнинга могут использовать эту информацию, чтобы оценить, какую мощность майнинга вы вкладываете, и могут воз­наградить вас за действительные акции. Таким образом, майнер может получить деньги от майнинг-пула, даже если он никогда не найдет
73
действующий блок, потому что эти почти правильные блоки являются индикаторами того, что майнер по крайней мере пытается найти дей­ствительно правильный блок. Кроме того, мы знаем, что ни один майнер в майнинг-пуле не может просто забрать вознаграждение себе. Имейте в виду, что вознаграждения выдаются через транзакцию coinbase.
В пулах для майнинга задача, которую майнер пытается решить, содержит транзакцию с базой монет, из которой выплачивается мене­джеру пула вознаграждение за блок, которое он затем перераспределяет среди майнеров. Майнеры решают проблему на основе корня Меркла, поскольку они хешируют все, что есть в заголовке блока. И корень Меркла блока основан на транзакции coinbase. Если майнер хочет по­лучить вознаграждение для себя, ему придется изменить транзакцию базы монет, чтобы перенаправить вознаграждение за блок себе. Однако он не получит никаких акций из майнинг-пула, поскольку менеджер майнингового пула увидит, что транзакция майнеров с базой монет не оплачивается на адрес менеджера.
Существуют различные схемы выплат, которые использует май­нинг-пул. Однако основных схемы две – это оплата за акцию и пропор­циональная. По схемам с оплатой за акцию вам будет выплачиваться фиксированная сумма денег за каждую акцию. Этот платеж гарантиро­ван и постоянен на акцию, независимо от того, какое вознаграждение приносит пул.
Большинство пулов используют эту схему, поскольку ее легко реализовать и понять. Это более выгодно для майнера, так как разброс их выплат уменьшается. Это означает, что пулы берут на себя больший риск, потому что они будут нести расходы, если пул не найдет блоки. Кроме того, у майнера нет стимула отправлять действительно правиль­ные блоки в пул. Увидим, почему это является проблемой, когда рас­смотрим теорию.
Другая категория – пропорциональные схемы, которые выплачи­ваются только при обнаружении блока. Вознаграждение каждого май­нера пропорционально количеству акций, отправленных до обнаруже­ния блока, что более выгодно для пула, поскольку пул никогда не будет выплачивать больше денег, чем у него есть. Но это приводит к большей дисперсии и риску для майнеров. Из-за сложности пропорциональные схемы нечасто встречаются в мире майнинга. Дело в том, что суще­ствует много других способов платить майнерам, и каждый из них имеет свой набор стимулов. Все зависит от размера и предположений майнинг-пула.
74
Итак, теперь, когда мы знакомы со схемами майнинговых пулов, можем поговорить о плюсах и минусах майнинговых пулов.
Плюсы майнинговых пулов в том, что они дают отдельным май­нерам возможность получать прибыль, не дожидаясь десятилетий, чтобы получить оплату. Кроме того, легко вносить изменения в про­граммное обеспечение. Только один человек управляет полным узлом для пула майнинга, и этот человек может обновиться от имени пула.
Минусы связаны со степенью доверия к менеджеру пула. Вы должны доверять менеджеру, что он не злоупотребляет, и не должны отказываться от выплаты вознаграждений. Это следствие централиза­ции. Сообщество обычно не любит большие пулы для майнинга, по­скольку пулы для майнинга позволяют выполнять множество атак. Например, пул GHash.io однажды приблизился к 50 % мощности май­нинга сети. Майнеры внутри GHash добровольно вышли из майнинг­пула, потому что знали об опасности приближения к 51 % сети.
Кроме того, еще одна проблема заключается в том, что отдельная организация может скрывать свою общую мощность майнинга. Что ме­шает крупному пулу передавать хеш-мощность другим пулам? Это называется отмыванием хешей, поскольку такая процедура скрывает источник майнинга. Это позволяет использовать большую мощность майнинга, скрывая это от сообщества майнеров и получать большую прибыль. Мы не знаем истинной концентрации контроля над оборудо­ванием для майнинга и, возможно, никогда не узнаем.
Конечно, существуют разные типы майнеров. Некоторые из них известны как «эталонные клиенты» – они управляют кошельком для хранения закрытых ключей, узлом маршрутизации для связи с другими, цепочкой блоков для проверки транзакций и программным обеспече­нием для майнинга для передачи мощности хеширования в сеть. Это код, выпущенный Bitcoin Core для майнеров.
С другой стороны, соло-майнеры не имеют функции кошелька, но, вероятно, имеют какое-то другое отдельное программное обеспече­ние кошелька. Помимо кошелька, они идентичны эталонному клиенту.
Узлы майнинга – это обычные узлы, которые имеют некоторое оборудование для майнинга и протокол, по которому узлы майнинга подключаются к пулу майнинга. Существует протокол майнинга Stratum – неофициальный стандарт для передачи хеш-мощности в пул, но это не единственная возможность. Эти узлы не обязаны хранить ка­кую-либо информацию. Им нужно только хранить код и управлять обо­рудованием для взаимодействия с пулами майнинга.
75
Теперь поговорим о проблемах централизации майнинга, предла­гаемых изменениях в хеш-головоломке майнинга биткоина и внесении согласованных обновлений в биткоин.
Одной из важных особенностей биткоин, как и других криптова­лют, является тот факт, что ее теоретически можно добывать децентра­лизованно. Есть причина, по которой мы говорим «теоретически», и это потому, что майнинг имеет тенденцию становиться более централизо­ванным с развитием ASIC, майнинговых пулов и майнинговых ферм. Майнинговыми пулами и фермами обычно управляет одно лицо.
С другой стороны, ASIC также централизованы, но в том смысле, что они могут стоить больших денег. Это означает, что их могут при­обрести только люди с достаточным капиталом, централизовав процесс майнинга.
Попытаемся решить проблему централизации майнинга, рас­смотрев структуру лежащей в основе хеш-головоломки, и посмотрим, есть ли способ ее изменить. Вот быстрое напоминание о том, какими свойствами должна обладать криптографическая головоломка.
Задачу должно быть сложно решить, но легко проверить. В бит­коин найти одноразовый номер невероятно сложно, но проверить пра­вильность конкретного одноразового номера намного проще. Сложность должна регулироваться с учетом изменений в технологии майнинга (например, ASIC). В биткоинах сложность корректируется каждые две недели. Нам нужна скорость решения, пропорциональная вычислитель­ной мощности, а это означает, что сложность отражает количество хеш­мощности в сети. Задача должна быть «свободной от прогресса», а зна­чит, поиск хеша не облегчает поиск следующего хеша. Каждое решение не зависит от предыдущих. Наконец, нам нужна псевдослучайно сгенери­рованная головоломка. Задача биткоина описывается как задача с частич­ным хеш-прообразом. Нет необходимости искать точный прообраз хеша, если у вас есть необходимое количество ведущих нулей.
ASIC работают, потому что легко создать оборудование для ре­шения определенной головоломки. Они привязаны к вычислениям. Способ обойти проблему доминирования ASIC – это составлять голо­воломки, которые полагаются не только на скорость вычислений, но и на память, что порождает понятия проблем, связанных с памятью и ограничениями памяти. Проблема с памятью – это проблема, для ре­шения которой требуется большой объем необходимой памяти, а про­блема с ограничением памяти – это проблема, которая масштабируется в зависимости от объема памяти, который у вас есть. Эти проблемы
76
сдерживают ASIC, поскольку оптимизация вычислений бесполезна, если ограничивающим фактором является память.
Dogecoin и Litecoin реализуют хеш-функцию с привязкой к па­мяти, называемую Scrypt (произносится как ess-crypt). Dogecoin и Litecoin по-прежнему используют головоломку с частичным хеш­прообразом, как в биткоин, только с другой хеш-функцией. Это озна­чает, что ASIC, созданные для биткоин, не работают для Dogecoin или Litecoin. Scrypt изначально был разработан для защиты паролей и за­труднения их перебора, поэтому проблема, связанная с памятью, имеет смысл. Scrypt состоит из двух основных шагов: сначала заполняют бу­фер взаимозависимыми данными, а затем получают доступ к этим дан­ным псевдослучайным образом.
Чтобы понять, почему это связано с памятью, посмотрим, что происходит, когда вы заполняете буфер независимыми данными. Поис­кать что-либо несложно, так как следует просто найти индекс нужных данных. Однако, если данные взаимозависимы от других фрагментов данных, придется искать и их. Если они не хранятся в буфере, придется потратить время на их вычисление на лету. В зависимости от объема данных это может быстро стать невозможным, а это означает, что хра­нение как можно большего количества взаимозависимых данных в па­мяти является единственным эффективным вариантом. Это то, что де­лает Scrypt привязанным к памяти.
Однако у Scrypt есть и недостатки. Для проверки требуется рав­ный объем памяти, поскольку верификаторы должны заполнять экви­валентный буфер и обращаться к нему с теми же параметрами. Кроме того, несмотря на то что Scrpyt был разработан для устойчивости к ASIC, на самом деле ASIC был разработан для него, поэтому он больше не считается устойчивым к ASIC.
Еще одна идея добиться устойчивости к ASIC, которую пытались использовать люди, заключалась в объединении нескольких хеш-функ­ций. Идея заключалась в том, что гораздо сложнее создать ASIC, кото­рый может обрабатывать столько хеш-функций, а не только один раз. И это была идея x11 и x13, которые связывают вместе 11 и 13 различ­ных хеш-функций. Криптовалюта Dash основана на алгоритме хеширо­вания x11 и использует цепочку вариантов SHA3. Dash x11 был разра­ботан таким образом, чтобы для него было сложно создать ASIC, но, возможно, поэтому он никогда не предназначался для защиты от ASIC. Разработчики хотели получить хорошее распределение монет на ран­них этапах жизненного цикла Dash. Позже, если бы кто-то разработал
77
ASIC для x11, монеты уже были бы распределены справедливым обра­зом. Так и произошло.
Другая идея заключалась в разработке монет, которые периодиче­ски меняли головоломки (задачи) для майнинга, что затрудняло оптими­зацию. Например, майнер может переключаться с SHA-1 на SHA-3 и Scrypt каждые 6 месяцев. Однако накладные расходы, необходимые для создания такого алгоритма, исторически удерживали людей от его реализации.
В заключение хотелось бы отметить, когда есть деньги, которые можно заработать, кто-то будет работать, чтобы получить максималь­ную прибыль. В криптовалютах это может принимать форму работы по созданию ASIC для новых алгоритмов хеширования. Майк Хирн, раз­работчик Bitcoin Core, сказал: «На самом деле не существует такого по­нятия, как алгоритм, устойчивый к ASIC».
Как оказалось, сопротивление ASIC на самом деле может быть не такой уж и хорошей идеей. В системе, не устойчивой к ASIC, как пра­вило, ASIC доминируют в сети.
Одним из распространенных лозунгов на заре биткоин был «1про­цессор=1голос». Идея заключалась в том, что майнинг был действи­тельно децентрализованным и все узлы в сети имели равное право голоса при проверке блоков. С тех пор распространение ASIC уменьшило это, фактически дав одним людям больше голосов, чем другим. Устойчивость к ASIC возвращает идею демократии и снижает централизацию майнинга в сети. С другой стороны, распространенный контраргумент заключается в том, что, поскольку ASIC предназначены исключительно для решения криптографической головоломки, ASIC ни на что другое не способен. Та­ким образом, майнеры, владеющие ASIC, привязаны к сети. Их оборудо­вание имеет ценность только в сети, для которой предназначены их ASIC. Если система с большим количеством майнеров, полагающихся на ASIC, переключится на алгоритм, устойчивый к ASIC, а затем произойдет сбой обменного курса криптовалюты, у многих майнеров внезапно останется бесполезное оборудование, поглощающее электричество, поскольку у них пропадет стимул майнить.
Майнеры ASIC уже присоединились к сети, купив свои ASIC, по­этому они не хотят делать ничего, что могло бы нарушить работу сети. Исторически пулы для майнинга расформировывались, когда они ста­новились слишком большими, так как новости о пуле для майнинга с большим объемом хеш-мощности снижали доверие к сети.
Поскольку на решение криптографических головоломок, кото­рые по своей сути рассчитывают случайные числа, тратится так много
78
вычислительной мощности, почему бы не сделать эти головоломки чем-то, что может быть полезно остальному миру? Например, майнеры могут искать большие простые числа, инопланетян и планеты, модели­ровать белки на атомарном уровне или создавать прогнозные климати­ческие модели. Если мы сможем использовать всю вычислительную мощность сети биткоин для работы над этими проблемами, мы сможем решить их намного быстрее! Было бы хорошо, если бы можно было предсказать погоду. Вроде отличная идея, но есть проблемы.
Эти задачи распределенных вычислений обычно не подходят для доказательства работы и не работают как криптографические голово­ломки. В системе есть фиксированный объем данных, а это означает, что существует конечное число решений проблемы. Что происходит, как только кто-то нашел решение конкретной проблемы? Или что, если данных недостаточно для поиска решения? Проблема больше не может использоваться для подтверждения работы.
В биткоин, поскольку головоломка основана на предыдущем блоке, проблемное пространство неисчерпаемо. Всегда можно создать больше проблем с большим количеством решений. Например, можно использовать данные SETI@Home (научный эксперимент, в котором компьютеры по всему миру, подключенные к интернету, используются для поиска внеземного разума) для нашей головоломки, но могут закон­читься необработанные данные радиотелескопа, не оставляя никаких вариантов для решения нашей задачи. Кроме того, возможные решения не равновероятны. Например, если вы ищете планеты в небе, одна часть неба может быть более населена, чем другие. Маловероятно, что вы найдете планету во всех частях неба.
В хеш-функциях биткоин в среднем одинаково сложно найти ре­шение. Единое пространство решений означает, что единственный спо­соб найти решение – это вычисление методом грубой силы (путем пе­ребора), которое невозможно избежать.
Идея консенсусного обновления заключается в том, что, по­скольку биткоин децентрализован, никто не может сказать: «Это изме­нение, которое мы собираемся внести в протокол». Все должны согла­ситься и прийти к консенсусу, чтобы обновление прошло. Над этими изменениями протокола работает централизованная команда – команда Bitcoin Core, а также несколько других людей, которые работают над определенными частями программного обеспечения, которое использу­ется на полных узлах. Это подводит нас к двум способам обновления блокчейн: хард-форк и софт-форк. Хард-форки и софт-форки относятся не к форкам, как упоминалось ранее, где одновременно создаются два
79
блока, а к форкам протокола. Надо иметь в виду, что все майнеры рабо­тают независимо и им не обязательно обновлять свои протоколы. Когда большая группа принимает изменения протокола, блокчейн будет реа­гировать по-разному в зависимости от правил нового протокола.
Хард-форк является результатом нового протокола, который де­лает вещи, недопустимые в старом протоколе. Примером может слу­жить Bitcoin Cash, увеличивший размер блока с 1 до 8 МБ. Узлы ста­рого, устаревшего протокола биткоин откажутся от новых блоков раз­мером 8 МБ, что приведет к постоянному форку. Теоретически эти две вилки будут существовать вечно, пока у обеих цепочек есть поддержка, то есть майнеры, которые постоянно запускают это программное обес­печение. По сути, хард-форк не имеет обратной совместимости.
В софт-форке правила нового протокола только ограничиваются. Например, если новый форк биткоин под названием Bitcoin Dollars дол­жен был уменьшить размер блока до половины мегабайта, тогда все, что действительное в новом протоколе, по-прежнему будет действовать в старом протоколе. Однако блоки старого протокола больше не дей­ствуют в новом протоколе, а это означает, что софт-форк обратно сов­местим, но не совместим напрямую. Новые и старые узлы будут прини­мать блоки из новых протоколов, но старые узлы никогда не будут при­нимать свои блоки в самую длинную цепочку, добытую новыми уз­лами. Затем новые узлы заставляют старые узлы адаптировать новый протокол, чтобы они не остались позади. Перед каждым форком, жест­ким или мягким, все сообщество начинает дебаты о будущем биткоин.
В биткоин изменения в протоколе происходят в форме BIP (пред­ложения по улучшению биткоин). Это могут быть изменения в сетевом протоколе, проверка блока или транзакции или что-нибудь, что влияет на совместимость. Таким образом сообщество голосует за изменения, которые оно хочет поддержать.
Существует три типа BIP: стандартный, информационный и про­цессный.
Стандартный BIP – это актуальное обновление или изменение протокола. Так меняется экосистема, и за это голосуют майнеры.
Информационные BIP – это скорее рекомендации о том, как люди должны действовать в будущем, но они не меняют протокол. Примером информационного BIP может быть BIP, рассказывающий о том, как за­пустить пул для майнинга.
Последний процессный BIP – это конкретные вещи, которые сле­дует делать, а также передовые практики. Майнеры голосуют за BIP, включая ссылку на этот BIP в блок, который они добывают.
80
Г л а в а 5 . С Т Р А Т Е Г И И Р А З Р У Ш Е Н И Я Б Л О К Ч Е Й Н
И К Р И П Т О В А Л Ю Т
Теперь с точки зрения теории игр рассмотрим возможность атак и другого вредоносного поведения, которое потенциально может раз­рушить криптовалюты и блокчейн в целом.
Как было объяснено ранее, все зависит от прибыли, и биткоин, ко­нечно, не исключение. Например, работа в качестве майнера-одиночки может быть невыгодной, особенно если у вас мало специализированного оборудования. Итак, вы можете присоединиться к майнинговому пулу, в котором пользователи объединяют свои вычислительные ресурсы, чтобы вместе они все имели повышенную вероятность найти следующий блок и, таким образом, получить вознаграждение за блок. Существует не­сколько стратегий, которые можно использовать, чтобы еще больше уве­личить свою прибыль. И когда дело доходит до получения максимальной прибыли, честные стратегии обычно не лучший путь.
Как известно, в схемах с оплатой за акцию вам будут платить фиксированную сумму денег за каждую акцию или почти действитель­ный блок. Этот платеж гарантирован и постоянен за одну акцию, неза­висимо от того, какое вознаграждение приносит пул. Одна из проблем заключается в том, что у майнера нет стимула отправлять действитель­ные блоки в пул, потому что сумма дохода, полученного от этой доли, равна любой другой доле. Таким образом, майнеры прекратят работу над своим текущим блоком, как только он почти удовлетворит допусти­мые требования к блоку.
Другая категория – пропорциональные схемы, которые выплачива­ются только при обнаружении блока. Вознаграждение каждого майнера пропорционально количеству акций, отправленных до обнаружения блока. Однако эта схема невыгодна для майнера, потому что теперь май­нер должен нести риск не найти блок, что, следовательно, приведет к раз­бросу вознаграждений. Майнеру платят только тогда, когда пул находит действительный блок. По той же причине схемы пропорциональных вы­плат выгодны для пула, поскольку операторы пула должны платить май­нерам только при нахождении действительного блока. Однако необхо­димо помнить, что майнеры хотят максимизировать свои выплаты. Учи­тывая структуры стимулов как в схемах оплаты за акцию, так и в схемах пропорциональных выплат пулов, возможно ли допустить, что пулы уяз­вимы при некотором несоответствия стимулов? Существуют ли при этом способы воспользоваться схемами пропорциональных выплат?
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]