Тема: Майнинг: Крипто-алгоритмы майнинга. Что вычисляют майнинг фермы? Разбираемся с криптовалютными алгоритмами

Новости 14.07.2019
Новости

Многие интересуются техническими основами криптовалют, но немногие знакомы с криптографией. Для того, чтобы докопаться до сути происходящего в биткойн-протоколе приходится продираться через дебри криптографических терминов, загадочных и неудобных акронимов типа SHA-256, Scrypt, base58check, RIPMD-160 и т.п. Мы уже освещали ранее некоторые . В этой статье мы постараемся рассказать об одной из наиболее важных ее сторон – крипто-алгоритмах .

Классика: SHA-256

Начнем наш обзор, конечно же, с классического SHA-256, с которого все начиналось — именно на этом алгоритме построен биткойн-майнинг, как и майнинг подавляющего большинства биткойн-клонов ().

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

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

Как мы все знаем, при майнинге SHA-256 криптомонет, мы решаем поставленную задачу при помощи CPU, GPU или специализированного процессора. Процессы преобразования отображаются в интерфейсе программы, предназначенной для майнинга, например, в виде строки «Accepted 0aef41a3b». Значение 0aef41a3b - это и есть хэш. Он является как бы подписью большого набора данных (собственно, очередного блока транзакций с добавленным к нему случайным числом). Эта короткая строка как бы представляет собой блок, который состоит из нескольких тысяч, если не миллионов, подобных строк.

Это также объясняет то, почему вам нужно решить перебором множество задач, прежде чем удастся отыскать нужный хэш для нового блока. Ведь мы ищем не какой попало хэш, а тот, который начинается на определенное количество нулей. У вас имеется один шанс на тысячу, десятки, сотни тысяч, миллионы решений, что случайно получившийся хэш будет иметь нужное количество нулей в начале. Сколько именно? Определяется параметром сложности, которое задает ваш майнинг-пул. Заранее понять, получится у вас «красивый хэш» или нет, невозможно. Это похоже на игру в лотерею, но с машинами, которые могут выполнять вычисление выигрышной комбинации быстрее и лучше, чем любой из нас.

Вы считаете, что для решения задач, связанных с хэшированием при использовании протокола SHA-256, вам потребуется мощное ? В этом есть определенный смысл. Чем больше используется вычислительной мощности, тем лучше, так как увеличиваются шансы на добычу монет. Но имейте в виду, что вы не единственный, кто занимается майнингом. Есть люди, которые располагают более . Не расстраивайтесь, у вас есть все шансы на выигрыш. Это похоже на игру в лотерею, вы никогда не знаете, когда повезет!

Теперь вернемся к алгоритму SHA-256. Криптовалюта — это не единичный пример, где используется SHA-256. Есть несколько протоколов, о которых вы, скорее всего, слышали и которые используют данный алгоритм. Это протоколы SSL, SSH, PGP и многие другие. Каждый раз, когда вы заходите на защищенный веб-сайт с помощью сертификата SSL, используется SHA-256. Бьюсь об заклад, вы не задумывались об этом, не так ли? Все мы узнаем что-то новое со временем!

Именно алгоритм SHA-256 реализован во всех выпущенных на настоящий момент специализированных ASIC-майнеров, ASIC-оборудование для других алгоритмов майнинга пока только разрабатывается. Помимо Биткойна, майнинг, основанный на SHA-256, используется в ряде других цифровых валют-клонов. Например, такие альткойны как Peercoin и Namecoin его используют. В последнее время наблюдается всплеск новых SHA-256 монет: Zetacoin, Ocoin, Tekcoin и десятки других.

Задачки посложнее: Scrypt

Алгоритм SHA-256 - не единственный алгоритм, который интересен для майнеров. Вторым по популярности майнинг-алгоритмом в мире криптовалют является Scrypt. История появления Scrypt связана с тем, что уже на ранних этапах существования биткойна стало очевидно, что простота функции SHA-256 позволяет сделать аппаратные решения, которые будут выполнять такие вычисления гораздо эффективнее, чем на обычном компьютерном процессоре (CPU). И действительно, биткойн-майнинг очень быстро мигрировал с CPU на графические процессоры (GPU), затем на программируемые аппаратные устройства (FPGA), после чего вышли специально под него заточенные микросхемы (ASIC). специализированной ASIC-мощности представляет проблему для децентрализованной валюты.

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

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

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

Эта искусственно созданная сложность, весь этот трудоемкий вычислительный процесс и требования к памяти приводят к тому, что любое специализированное оборудование для Scrypt-майнинга не будет на порядки эффективнее универсальных устройств (GPU, CPU). В идеале, добыча монет, основанных на Scrypt, должна осуществляться на одном (или нескольких) компьютерах с большим количеством памяти. Здесь большое значение уделяется видеокартам. Если вы рассматриваете покупку видеокарт для майнинга с использованием Scrypt протокола, то наилучшим вариантом станет приобретение изделия от фирмы ATI. В силу архитектурных различий, производительность майнинга на видеокартах ATI сейчас гораздо выше, чем на Nvidia, хотя в будущем все может измениться.

В конечном счете, все сводится к следующему: протоколы SHA-256 и Scrypt работают ради одной цели – получить перебором «красивый хэш», который даст нам (или, скорее, пулу, на который мы работаем) право удлинить блокчейн и получить за это вознаграждения. Они просто решают поставленную задачу по-разному: в SHA-256 упор на технические возможности аппаратного обеспечения — чем выше производительность, тем лучше результат. А Scrypt требует в работе большой объем памяти. Соответственно, производительность напрямую зависит от размера оперативного запоминающего устройства (ОЗУ) и видеокарт, установленных в компьютере.

Самым известным альткойном из использующих в майнинге Scrypt является Litecoin. Есть и Dogecoin, Digitalcoin, Franco, Bottlecaps и многие другие. Популярность Scrypt-монет, особенно лайткойна, существенно возросла после того как биткойн-майнинг массово мигрировал на ASIC и бывшие майнеры с видеокартами остались не у дел — их оборудование не может конкурировать со специализированными комбайнами. Вот они и приспособили свои видюшки к лайткойн-майнингу, или к добыче другой экзотики, которую пока еще можно сбыть доверчивым горе-инвесторам, .

Крипто-танцы: Scrypt-Jane


Знакомьтесь – это Джейн! Нет, нет, она и Scrypt не состоят в браке, хотя между ними все же есть некие родственные отношения. Scrypt-Jane подобно любой другой девушке любит хорошо провести время. А ее способности к перемешиванию данных и приятели-алгоритмы унесут вас в самые экзотические места! Не понимаете? Сейчас все объясню.

Scypt-Jane поддерживает не менее трех различных систем поточного шифрования. Прежде всего, у нас есть Salsa20/8. Нет, это не латиноамериканский танец — на самом деле, это довольно простая функция. Основная ее работа заключается в приеме 192-байтной строки (из букв или цифр) и дальнейшем ее преобразовании в 64-байтную строку Salsa20 (х).

Непонятно, не так ли? Хорошо, постараюсь использовать меньше теории. Salsa20 состоит из двух частей: потокового шифра для шифрования данных (это, должно быть, звучит более знакомо) и функции сжатия (так называемый алгоритм Rumba20), предназначенной для сжимания строки в 192 байта до 64-байтного значения. Используя лексикон «чайника», можно сказать так: ваша строка может быть длиннее 64 байт, пока не сравняется со значением в 192 байта, при этом строка будет сжата (читай: конвертирована) до 64-байтной строки.

Теперь, когда мы немного разогрелись после сальсы и румбы, пришла пора вводить вторую функцию – ChaCha20. Честно, это не я выдумываю такие названия. ChaCha20 очень похож Salsa20: это такой же поточный шифр. И, тем не менее, он предлагает некоторые дополнительные услуги, такие как увеличение устойчивости к криптоанализу. Он также улучшает перемешивание данных на раунд. То есть, если вы занимаетесь добычей криптовалюты в составе майнерского пула, то вы можете увидеть, что один майнерский раунд (период времени, в течение которого пул находит один блок) может составлять либо длинный, либо короткий промежуток времени. Длительность подобных раундов частично зависит и от улучшенного перемешивания, предлагаемого ChaCha20 из Scrypt-Jane. Есть и другие факторы, влияющие на снижение времени раунда, но об этом позже.

И, наконец, последняя, но не менее важная третья функция перемешивания данных — Salsa6420/8. Сексуальное название, не так ли? Salsa6420/8 является доказательством правильности концепции 64-байтной версии Salsa20/8. Это просто улучшенная версия Salsa20/8, которая позволяет работать с более высокобайтными блоками. Я мог бы продолжить в том же духе выдавать подробную техническую информацию, но, боюсь, что половина из вас, мои дорогие читатели, уже заснула, а остальные принялись за игрушки на своих смартфонах, так что давайте не будем заострять на этом внимание. Просто помните о том, что у Scrypt-Jane имеется три отличных «миксовых партнера».

Но вернемся к реальности! Scrypt-Jane также поддерживает несколько хэш-функций. Одна из них уже очень хорошо известна всем нам – это SHA-256. Она также поддерживает более продвинутый вариант SHA-512. Другие поддерживаемые хэш-функции включают BLAKE256/512, Skein512 и Keccak256/512 (или просто SHA -3).

BLAKE256-512 отличается очень простой разработкой для применения и опирается на уже проанализированные нами компоненты: структуру HAIFA (не будем ее рассматривать в данный момент) и основную функцию ChaCha (которую мы затронули ранее). Наиболее характерные особенности BLAKE – это высокий запас надежности (довольно важная характеристика, но о ней не сейчас) и высокопроизводительная универсальность (что тоже очень важно для майнеров). Что нужно запомнить о BLAKE, так это то, что она может и будет работать быстрее, чем SHA- 2(56) на ряде платформ.

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

Да уж, танцевально-криптографическая терминология тут просто зубодробительная. Но хватит теории, давайте посмотрим на то, что Scrypt-Jane может сделать для нас. Scrypt-Jane имеет свой ​​собственный вариант масштабирования сложности проблем. Scrypt-Jane использует N-фактор (который является числом), и это число определяет количество памяти, необходимой для решения задач. Значение числа N-фактора возрастает через определенные промежутки времени. Обычно это происходит тогда, когда в блокчейне найдено определенное количество блоков. Всякий раз, когда это число N-фактора увеличивается, снижается эффективность добычи криптовалют, так как требуется все больший объем памяти на выполнение тех же задач. Говоря простым языком, количество выполненных задач снизится, то есть упадет и вероятность нахождения решения.

Scrypt-Jane первоначально была предназначена для майнинга только на процессорах CPU как еще более замороченная замена Scrypt. Но увы, доминирование CPU-майнинга и тут длилось недолго. Майнеры, работающие на GPU, как вороны кружили вокруг Scrypt-Jane монет, стремясь увеличить эффективность добычи и, соответственно, прибыль. Вы можете подумать, что даже в случае уменьшения прибыли, вы сможете вести добычу с GPU в течение более длительного времени по сравнению с майнингом на CPU? Боюсь, что вы ошибаетесь. В конце концов, значение N-фактора будет настолько высоко, что для добычи на Scrypt-Jane GPU будут менее эффективным, чем процессоры CPU. В связи с этим, Scrypt-Jane не так-то легко перевести в специализированный ASIC-майнинг, как SHA-256 или даже Scrypt.

Одной из первых Scrypt-Jane-монет, получивших некоторую популярность, была Yacoin (да, да, Yet Another Coin — «еще одна монета»), правда, популярность этой монеты быстро упала вместе с уменьшением интереса к ней майнеров. Совсем недавно мы были свидетелями появления монет, подобных Copperbars (эффективность майнинга на GPU также упала), и самые свежие дополнения к списку – это валюты TIX и Cryptonerd.

Далее везде

Три описанных алгоритма покрывают более 90% всего зоопарка криптовалют, но, конечно же, есть и другие. Чуть ли не еженедельно появляются предложения относительно все более новых и хитромудрых алгоритмов майнинга — все и не осветить. Из относительно новых можно упомянуть особо «асикоустойчивый» алгоритм , который собираются использовать в криптовалютной платформе нового поколения .

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

Многие из вас наверняка еще с самого начала задались вопросом «А как там оно все таки работает?». Я постараюсь максимально подробно и доступно ответить на этот вопрос. Не зря алгоритмы, да и все что связано с данной темой, имеет приставку крипто-. Это не спроста. Так как для того чтобы докопаться до сути – придется пробираться через дебри криптографических терминов типа SHA-256, Scrypt, RIPMD-160, base58check и т.д. Я не зря решил собрать все в одну статью. Так как материала будет не много и он хорошо усваивается. А так же можно будет сравнить и выявить слабые и сильные стороны каждого метода.

Сразу скажу вам одну интересную вещь. Вы даже не задумывались, но вы каждый день, лазая по просторам интернета, пользуетесь этим алгоритмом. Каждый раз заходя на сайт, который защищен сертификатом SSL, используется алгоритм SHA-256. Так же этот алгоритм используют протоколы SSH, PGP и многие другие. Но нас интересует какую роль он выполняет в майнинге.

Немного истории

SHA-256 - это криптографическая хэш-функция. Разработало ее Агенство национальной безопасности США.

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

Как-то слишком по научному, не находите? Ну а теперь давайте разбираться в то что все это значит.

При майнинге криптомонет, SHA-256 решает поставленную задачу при помощи процессоров (CPU), видеокарт (GPU) или специализированных устройств типа ASIC. Итак, как происходит решение этой задачи: Итак пулл (место где собираются майнеры чтобы объединить свои мощности в одну большую, для скорейшего и более эффективного майнинга монет) выдает нам новый блок, который состоит огромного набора данных. Из тысяч или даже миллионов строк. Но блок этот представлен всего одной строкой. Его «цифровой подписью» – очередным блоком транзакций с добавленным к нему случайным числом. Это строка называется ХЭШ.

Для того чтобы подобрать нужный хэш к новому блоку, нужно путем перебора решить множество задач. Так как ищем мы определенный хэш, который начинается на определенное количество нулей. Шанс что случайно получившийся хэш будет иметь нужное количество нулей в начале – примерно 1 к 1 000 000. Все зависит конечно же от параметра сложности, который задает пул. Т.е. заранее понять получится у вас или нет – не возможно. Но с компьютерами которые способны вычислять такие комбинации все становится проще.

Естественно что для того чтобы повысить свои шансы, вам необходимо располагать мощным оборудованием. Но всегда есть те у кого больше. Это не значит что у вас нет шансов. Нет, они есть. Например на «молодых» криптовалютах: таких как peercoin, namecoin, zetacoin, ocoin, tekcoin и еще десятки других. Или в кооперации с пулом.

На этом пожалуй все о SHA-256 и мы переходим к следующему алгоритму.

Scrypt является вторым по популярности алгоритмом в мире криптовалют. Создавался этот алгоритм специально для того чтобы усложнить процесс добычи криптовалюты. Так как алгоритм SHA-256 очень быстро мигрировал с процессоров (CPU) на видеокарты (GPU) и на программируемые аппаратные устройства (FPGA) и в дальнейшем на специально заточенные под этот процесс микросхемы ASIC, ввиду того что такие вычисления выполняются на таких устройствах значительно быстрее.

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

В принципе Scrypt-манинг мало чем отличается от привычного биткоин-майнинга (SHA-256):

  • На вход подается блок данных, к нему применяется хэш-функция, на выходе мы пытаемся получить «красивый хэш». Вот только сама хэш-функция гораздо сложнее в вычислении. Данный алгоритм использует более значительное количество оперативной памяти (памяти с произвольным доступом), чем SHA-256. Память в Scrypt используется для хранения большого вектора псевдослучайных битовых последовательностей, генерируемых в самом начале алгоритма. После создания вектора его элементы запрашиваются в псевдослучайном порядке и комбинируются друг с другом для получения итогового ключа.
  • Так как алгоритм генерации вектора известен, в принципе возможна реализация scrypt, не требующая особенно много памяти, а высчитывающая каждый элемент в момент обращения. Однако вычисление элемента относительно сложно, и в процессе работы функции scrypt каждый элемент считывается много раз. В Scrypt заложен такой баланс между памятью и временем, что реализации, не использующие память, получаются слишком медленными.

Таким образом созданная искусственная сложность и требования к памяти приводят к тому, что специализированные устройства для майнинга стали сильно уступать CPU и GPU устройствам (хотя уже и это рубеж постепенно преодолевают). Т.е. в идеале добыча монет должна осуществляться исключительно на компьютерах. Если вы уже задумались о то какую конфигурацию собрать себе для майнинга – то не торопитесь. В сети вы найдете массу информации о том что ATI видеокарты превосходят Nvidia в плане практичности. Т.е. соотношение цена/килохэши лежит на стороне ATI видеокарт. Но так было еще год назад. Теперь ситуация стремительно меняется и по сути большой разницы нет. Хотя ATI лидирует так же по некоторым другим параметрам, но это тема для отдельного разговора.

Итак мы подводим итог. По сути и SHA-256 и Scrypt созданы для одной цели – путем перебора получить красивый хэш, удлинить тем самым блокчейн и таким образом получить за это вознаграждение. Но решают поставленную задачу каждый по разному. SHA-256 старается использовать по максимуму аппаратные возможности любого устройства которое для этого было создано – чем выше производительность, тем лучше результат. Ну а Scrypt требует большой объем памяти и как результат этого, производительность ОЗУ (оперативно запоминающего устройства) и видеокарт, которые установлены в компьютере/компьютерах.

Самые известные монетки которые добываются при помощи Scrypt алгоритма: Litecoin, dogecoin, digitalcoin, franco, bottlecaps и еще много других. Популярность таких монет сильно возрасла когда биткоин-манинг мигрировал на ASIC устройства и все те майнеры которые честно майнили валюту видеокартами остались не у дел, так как их оборудование не может конкурировать в следующих категориях как цена, энергозатраты, размеры, шум (т.е. в принципе во всем). Таким образом все кто вложился в оборудование и еще не успел его окупить перешли на Scrypt-майнинг.

Описанные алгоритмы заняли более 90% среди всех добываемых валют. Хотя есть и другие, но они на мой взгляд пока не заслуживают внимания. Так как каждую неделю очередной умник предлагает все более хитроумный алгоритм, так что за ними и не успеть. О самых интересных я буду рассказывать вам в следующих статьях.

Сегодня существует несколько тысяч криптовалют. Неудивительно, что они используют разные алгоритмы майнинга. В Bitcoin используется SHA-256, в некоторых других монетах - X11, Keccak или Scrypt-N. Каждый алгоритм имеет свои преимущества и особенности, направленные на поддержание конкуренции среди майнеров. Рассмотрим некоторые из применяемых сегодня алгоритмов и сравним их друг с другом.

Лишь немногие альтернативные криптовалюты используют алгоритм майнинга Scrypt. Изначально, Scrypt, который требует больших объемов памяти, был разработан для того, чтобы остановить широкомасштабное наступление специализированного оборудования для добычи. Несмотря на то, что такие криптовалюты, как Tenebrix и , используют упрощенную версию Scrypt, процесс майнинга все равно предъявляет очень высокие требования к памяти.

Scrypt делает невозможным применение специально разработанного для майнинга биткоинов оборудования (ASIC). Тем не менее, производители очень быстро начали выпускать , ориентированные именно на Scrypt. Кроме того, мощные графические процессоры AMD вполне успешно справляются с добычей по этому алгоритму, потребляя при этом большое количество электроэнергии. За последние годы появилось несколько сотен альтернативных монет, основанных на алгоритме Scrypt, включая Litecoin и Dogecoin.

Стоит заметить, что существуют и другие разновидности этого алгоритма - Scrypt-N, Scrypt-Jane и др. Каждый из них имеет свою изюминку. Например, в Scrypt-N требования к памяти меняются через заранее заданные промежутки времени. Таким образом, даже если появится оборудование ASIC, разработанное специально для этого алгоритма, оно устареет уже через несколько лет, так как схема хэширования периодически меняется. Кроме того, существует алгоритм Scrypt-OG, который требует в 8 раз меньше памяти, чем исходный Scrypt. “OG” в данном случае означает “Optimized for GPU” - оптимизирован под графические процессоры.


В 2014 году большой резонанс в криптовалютном сообществе вызвало появление нового алгоритма майнинга, который получил название X11. Он основан на использовании 11 разных раундов хэширования. Благодаря невероятной энергоэффективности при добыче с помощью ЦП и ГП, он был хорошо воспринят сообществом. Данный алгоритм позволяет существенно снизить нагрев оборудования, поскольку предъявляет более низкие требования к вычислительным ресурсам. Повышенная экономичность также приводит к снижению операционных расходов, так как потребляется меньше электричества. Кроме того, X11 сделал невозможным использование существовавших в 2014 году устройств ASICS. Благодаря этому, снова можно было производить с помощью более-менее пристойного компьютера.

К сожалению, алгоритм X11 не смог долго выстоять в борьбе с ASIC. В частности, он был принят на вооружение некогда популярным криптовалютным проектом , известным также под названиями XCoin и Darkcoin, Но довольно быстро для него были созданы специальные устройства ASIC. К ним относятся PinIdea и Baikal, которые быстро стали популярны. Однако несмотря на повсеместное использование специальных микросхем для решения X11, этот алгоритм продолжает оставаться надежным средством, к которому прибегают разработчики криптовалют, когда хотят предотвратить bruteforce-атаки.

Стоит упомянуть разновидности данного алгоритма - X13, X14, X15 и X17. Как можно догадаться, X13 содержит 13 раундов хэширования, X15 - 15 раундов и т. д. Версия X17 появилась еще в 2014 году. Такая тенденция к усложнению обусловлена тем фактом, что новые криптовалютные проекты любят хвастаться, что используют новый алгоритм. Тем самым они стараются привлечь больше внимания к своей монете.


Алгоритм SHA-256 используется для добычи биткоинов. Он генерирует новые адреса сети и поддерживает ее с помощью доказательства выполнения работы. Стоит отметить, что SHA-256 представляет собой часть криптографической хэш-функции SHA-2, которая была изначально разработана Агентством национальной безопасности США. На раннем этапе добычи биткоинов, мощного ЦП было вполне достаточно, но осле изменения ПО для майнинга таким образом, чтобы обеспечивалась поддержка видеокарт, графические процессоры стали более предпочтительным вариантом. В конечном итоге, доминирующие позиции заняли ППВМ (перепрограммируемые вентильные матрицы) и ASIC.

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

Относительно недавно появилась новая версия алгоритма SHA-256 - SHA-256D, которая представляет собой удвоенный исходный алгоритм хэширования.

Будьте в курсе всех важных событий United Traders - подписывайтесь на наш

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

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

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

Итак, начнём.

1. Введение

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

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

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

Система достаточно безопасна, пока дружественные узлы контролируют (одновременно!) большую вычислительную мощность, чем группа атаки.

2. Транзакции

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

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

3. Сервер временных меток

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

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

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

5. Сеть

Для работы сети предпринимаются следующие шаги:

  1. всем узлам широковещательно посылается новая транзакция;
  2. узел (каждый!) размещает новые транзакции в своем блоке;
  3. узел (каждый!) активизирует сложные вычисления для расчета «своего» блока;
  4. узел нашел решение «своего» блока и широковещательно рассылает этот блок всем остальным узлам;
  5. если все транзакции в блоке правильные (не просроченные), то узел принимает;
  6. подтверждение принятия узлом блока заключается в том, что данный узел начинает работу по генерации следующего блока в хэш-цепочке, учитывая хэш блока принятого как хэш предыдущий.

Для узлов всегда самой корректной считается самая длинная цепочка, и они постоянно работают над ее ростом. Когда два узла широковещательно (и одновременно!) рассылают различные версии последующего блока, то могут принимать любую из версий в различное время.

При этом начинается работа узла именно с более ранним блоком, а иная версия сохраняется на случай, если она потом «вырастет» в более длинную цепочку.

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

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

6. Стимул

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

Это добавление новых «монет» сродни промывке золотого песка в поисках самородка, только в этом случае тратится время процессора и электроэнергия.

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

Именно стимул заставляет узлы быть «честными». Если атакующий сумеет взять под контроль вычислительную мощность бОльшую, чем все «честные» узлы, то он встанет перед выбором: обманывать и воровать или самому эти новые «монеты» генерировать. И выгоднее играть по правилам и не уничтожать систему вместе со своим состоянием.

7. Использование дискового пространства

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

Заголовок блока «тянет» примерно 80 байт (без транзакций). Генерация блоков - каждые 10 минут, то есть:80байт×6×24×365=4.2MB в год. Закон Мура полагает прирост в 1.2Гб за год, то есть необходимое дисковое пространство - не проблема.

8. Упрощенная проверка платежей

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

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

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

9. Комбинирование и разделение суммы

передавать монеты можно по отдельности, бывает неудобно выполнять отдельную транзакцию для каждого цента. Именно для того, чтобы суммы можно было делить и комбинировать, в транзакции предусмотрено множество входов-выходов. Как правило, имеется или один вход от предыдущей транзакции (бОльшей!), или множество входов скомбинированных малых сумм, и хотя бы два выхода: 1 - для платежа и 1- для возврата сдачи (если она есть).

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

10. Конфиденциальность

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

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

11. Заключение

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

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

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

Узлы не нуждаются в самоидентификации, потому что сообщения идут не по заранее установленному маршруту, а по наиболее короткому (быстрому) пути.

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

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

Такой гибкий механизм согласия позволяет реализовать любые необходимые правила и стимулы!

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

Разделить программы майнинга криптовалют можно на 3 вида, в зависимости от оборудования, которое они используют.

Алгоритмы для ASIC

Биткоин, Litecoin и Dogecoin - популярные монеты, имеющие большую сложность добычи. Эти монеты можно добывать только на специальном ASIC оборудовании, которое гораздо быстрее, чем обычные процессоры. А также потребляют меньше электроэнергии.

  • SHA256 - криптографическая программа или математическая операция, которая уникальна и обеспечивает зашифрованную строку данных. Второй аспект такой операции - необратимость. SHA - это сокращение от «secure hash algorithm» (безопасный алгоритм хеширования), а «256» - длина хеш-алгоритма в битах. Это очень популярный метод, который реализован в более чем 100 монетах.

Какие валюты майнить на алгоритме sha256?

На этом варианте поддерживается майнинг Биткоин, а также ему подобных криптовалют. Это криптовалюты, у которых подтверждение транзакций происходит методом “доказательства работы”. Наиболее известные криптовалюты на sha256:

Bitcoin, Bitcoin Cash, NameCoin, EmerCoin, Peercoin, ATB и Ghost.

  • Scrypt - метод шифрования более простой и быстрый, в сравнении с sha256. Был создан Персивалем, как ответ на доминирование ASIC устройств в майнинге криптовалют. Он может выполняться на процессорах или видеокартах, но с появлением Асиков для домашнего майнинга стал не актуален. Лежит в основе криптовалют:

Litecoin, DOGE, NetCoin, BitConnect, Novacoin, DigitalCoin, SysCoin.

  • X11 - был разработан для преодоления некоторых существенных недостатков предыдущих способов шифрования. Фактически он объединяет в себе 11 других алгоритмов, соединенных вместе. Один из недостатков, который должен был устранить новый метод - возможность зарабатывать криптовалюту простым пользователям, не имеющим специального оборудования. Появление специальных Асик устройств для майнинга, в которых использовались методы SHA256 и Scrypt, привело к тому, что майнинг стал контролироваться крупными майнерами, имеющими фермы. Созданный способ X11 позволил вновь использовать майнинг с помощью процессоров и видеокарт обычными пользователями. Положительное свойство этого алгоритма - значительно меньшее использование электроэнергии.

Что можно майнить используя алгоритм Х11?

Dash, Pura, Startcoin, AutumCoin.

Алгоритмы для майнинга на видеокартах

Современные видеокарты (графические адаптеры GPU) являются программируемыми микросхемами. Такие видеоадаптеры могут использоваться для вычислительных операций, кроме встроенных решений, таких как Intel Graphics.

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

Наиболее популярные алгоритмы для видеокарт:

  • Ethash (Dagger Hashimoto) - криптографический метод, который лежит в основе Ethereum. Главная особенность работы Ethash - это интенсивное использование видеопамяти. Этот метод криптографического шифрования до сих пор можно использовать для майнинга на видеокартах NVIDIA GTX 1070/1080.

Криптовалюты: Эфир (ETH), Классик эфир (ETC), Expanse (EXP).

  • Groestl - в настоящее время ASIC не существует для Groestl, и маловероятно, что в ближайшее время он будет разработан для этого метода.

Майнинг криптовалют: Groestl и Diamond.

  • Equihash - представляет собой асимметричный алгоритм «доказательство работы». Для его реализации требуется много оперативной памяти и делает невозможным создание ASIC.

  • Nist5 - новый алгоритм шифрования для создания валюты Wyvern.
  • Blake/Blake-256 - метод шифрования криптомонет BlakeCoin, NETCO и TRUMP
  • Lyra2 - криптовалютный метод валюты VertCoin, которая является вилкой Litecoin. Принцип метода - все, у кого есть персональный компьютер, должны быть в состоянии присоединиться к сети.

Какой алгоритм лучше майнить на NVIDIA?

Nvidia, одна из популярных видеокарт у майнеров. На сегодняшний день на ней лучше всего майнить ZCash (ZEC).

Алгоритмы для майнинга на процессоре

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

Для этого подойдут следующие алгоритмы:

  • Yescrypt - хеш-алгоритм валюты GlobalBoost, созданной в 2014 году.
  • CryptoNight присутствует в шифровании 15 криптовалют. Метод был разработан для майнинга криптовалют на процессоре компьютера. Он был реализован в открытом протоколе, который позволяет повысить конфиденциальность в транзакциях с криптовалютами.

В отличие от Scrypt, Cryptonight зависит от всех предыдущих блоков при создании нового.

Используется в майнинге валют: Monero, Bytecoin, Dashcoin, Quazarcoin и других.

Заключение

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

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

  • Подпишись на Email-рассылку от журнала BitExpert: Актуальные новости на Email
  • Подборки криптоновостей 1 раз в день в Телеграме: BitExpert
  • Инсайды, прогнозы обсуждения важных тем у нас в Телеграм чате: BitExpert Chat
  • Вся лента криптоновостей журнала BitExpert у вас в Телеграме: BitExpert LIVE

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER



Рекомендуем почитать

Наверх