Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы технологии блокчейн и криптовалют для менеджеров. Учебное пособие
.pdf
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 . С Т Р А Т Е Г И И Р А З Р У Ш Е Н И Я Б Л О К Ч Е Й Н
И К Р И П Т О В А Л Ю Т
Теперь с точки зрения теории игр рассмотрим возможность атак
и другого вредоносного поведения, которое потенциально может разрушить криптовалюты и блокчейн в целом.
Как было объяснено ранее, все зависит от прибыли, и биткоин, конечно, не исключение. Например, работа в качестве майнера-одиночки
может быть невыгодной, особенно если у вас мало специализированного
оборудования. Итак, вы можете присоединиться к майнинговому пулу,
в котором пользователи объединяют свои вычислительные ресурсы,
чтобы вместе они все имели повышенную вероятность найти следующий
блок и, таким образом, получить вознаграждение за блок. Существует несколько стратегий, которые можно использовать, чтобы еще больше увеличить свою прибыль. И когда дело доходит до получения максимальной
прибыли, честные стратегии обычно не лучший путь.
Как известно, в схемах с оплатой за акцию вам будут платить
фиксированную сумму денег за каждую акцию или почти действительный блок. Этот платеж гарантирован и постоянен за одну акцию, независимо от того, какое вознаграждение приносит пул. Одна из проблем
заключается в том, что у майнера нет стимула отправлять действительные блоки в пул, потому что сумма дохода, полученного от этой доли,
равна любой другой доле. Таким образом, майнеры прекратят работу
над своим текущим блоком, как только он почти удовлетворит допустимые требования к блоку.
Другая категория – пропорциональные схемы, которые выплачиваются только при обнаружении блока. Вознаграждение каждого майнера
пропорционально количеству акций, отправленных до обнаружения
блока. Однако эта схема невыгодна для майнера, потому что теперь майнер должен нести риск не найти блок, что, следовательно, приведет к разбросу вознаграждений. Майнеру платят только тогда, когда пул находит
действительный блок. По той же причине схемы пропорциональных выплат выгодны для пула, поскольку операторы пула должны платить майнерам только при нахождении действительного блока. Однако необходимо помнить, что майнеры хотят максимизировать свои выплаты. Учитывая структуры стимулов как в схемах оплаты за акцию, так и в схемах
пропорциональных выплат пулов, возможно ли допустить, что пулы уязвимы при некотором несоответствия стимулов? Существуют ли при этом
способы воспользоваться схемами пропорциональных выплат?
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
