Алгоритмы майнинга криптовалют – обзор, отличия и выбор

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

Некоторые алгоритмы более популярны и используются для нескольких разных криптовалют (блокчейнов). Наиболее популярные криптографические алгоритмы шифрования на сегодняшний деть это: DaggerHashimoto, Scrypt, SHA256, ScryptNf, X11, X13, Keccak, X15, Nist5, NeoScrypt, Lyra2RE, WhirlpoolX, Qubit, Quark, Axiom, Lyra2REv2, ScryptJaneNf16, Blake256r8, Blake256r14, Blake256r8vnl, Hodl, Decred, CryptoNight, Skunk, Lbry, Equihash, Pascal, X11Gost, Sia, Blake2s.

Как видите список алгоритмов весьма велик, мы расскажем подробнее о самых востребованных и надежных из них :

  • SHA256 – именно на этом алгоритме построен , для работы с ним видеокарт уже давно не достаточно, так как для него наши братья-китайцы изобрели специальное оборудование – АСИКи (от английской аббревиатуры ASIC ( – интегральная схема специального назначения). На этом же алгоритме основано и множество копирующих биткоин криптовалют, например, недавно появившийся BitcoinCash.
  • Scrypt – на этом алгоритме работает «цифровое серебро» — . В своё время этот алгоритм был отличной альтернативой, когда АСИКи были разработаны только для SHA256. Но времена идут, появились Scrypt-ASIC и этот алгоритм большинству майнеров тоже недоступен.
  • Ethash (DaggerHashimoto) – алгоритм шифрования, нашедший применение в . Для эффективной работы требуется иметь и желательно на основе микропроцессоров AMD, хотя и Nvidia 10-й серии неплохо справляется с DaggerHashimoto.
  • X11 – применяется в , доступен для современных видеокарт. Однако в конце 2017 — начале 2018, появились первые партии ASIC-майнеров для Dash.
  • Decred – модификация алгоритма Blake256, применяется в криптомонете Decred. Можно майнить на видеокартах. Майнинг Decred чаще всего запускается параллельно с DaggerHashimoto на .
  • CryptoNight – на основе данного алгоритма работает . Алгоритм примечателен тем, что относительно неплохо вычисляется на процессорах. Конкретно в данную минуту процессор Intel Xeon E3 даёт мне около четверти доллара в сутки (сопоставимые цифры и для Intel Core I7). Смешной заработок, но у криптоинвестора любая машина должна майнить хотя бы в фоновом режиме.
  • Equihash – лежит в основе валюты , довольно популярной в наше время среди майнеров на видеокартах, в силу того что сложность сети Ethereum (лидера у ) сильно возросла.
  • X11Gost – алгоритм лежит в основе криптомонеты Sibcoin, которая еще называется « ». По сути это форк, российский аналог валюты Dash. Не буду вдаваться в криптографию, но отмечу, что в основе алгоритма лежит хеш-функция в соответствии с ГОСТ Р 34.11-2012.

Расширенная таблица алгоритмами шифрования криптовалют

В этой таблице мы перечислили все значимые алгоритмы для майнинга криптовалют, с годом их выхода и кратким описанием:

Наименование Год Тикер Алгоритм Ключевые особенности
Bitcoin 2009 BTC SHA-256 Флагман цифровых валют признан тысячью и одним правосубьектом даже Евросоюзом
Ethereum 2015 ETH Dagger-Hashimoto Идея создание вычислительных мощностей для возможности реализации практически любого цифрового проекта
Steemit 2016 STEEM SHA-256 Мультимедийный контент может быть встроен с других веб-хостов.
Ripple 2013 XRP ECDSA Валюта созданная для банков, чтобы быстрее и защищеннее совершать транзакции
DigiByte 2014 DGB SHA256 Разработана для устранения слабых мест Bitcoin & Litecoin
Monero 2014 XMR CryptoNight Предназначенная для анонимных денежных транзакций
Siacoin 2015 SC blake2b Главная идея хранение данных
Litecoin 2011 LTC Scrypt Litecoin по большому счету клон Биткоин, только быстрее транзакции проходят
EthereumClassic 2015 ETC Dagger-Hashimoto В принципе тот же эфир просто ребята чего-то не поделили и разделились, но стоит гораздо дешевле
Dogecoin 2013 DOGE Scrypt Полностью скопированный алгоритм с Litecoin с некоторыми изменениями. Популярность обусловлена большими вложениями в рекламу и символом-картинкой с изображением знаменитой собаки известным и почитаемым в узких кругах
NEM 2015 XEM blockchain есть сервис нотариального заверения плюс позволяет вам осуществлять мгновенные платежи и денежные переводы по всему миру, не опасаясь высоких комиссий. Все кошельки надежно защищены и исключают шанс несанкционированного доступа.
Syscoin 2014 SYS Scrypt Имеет необычный алгоритм шифрования и ориентирован на децентрализованную торговлю. Syscoin — это не криптовалюта плюс платформа, это платформа, встроенная в криптовалюту.
Augur 2015 REP Smart contract Augur использует мощностя для прогнозирования финансовых рынков
Dash 2014 DASH X11 Позволяет почти полностью исключить отслеживание отправителя. По желанию пользователя можно не использовать и проводить трензакции напрямую.
ByteCoin 2012 BCN CryptoNight Ззащищает деньги пользователя самыми безопасными и современными криптографическими алгоритмами. Их невозможно взломать. Сама попытка взлома потребует огромного количества дорогостоящей электроэнергии и вычислительной мощности суперкомпьютера. Вы единственный, кто может получить доступ к вашему кошельку. По крайней мере так утверждают разработчики
BelaCoin 2014 BELA Scrypt Позволяет вам получать оплату за фотографии, которые вы публикуете
lbryCoin 2016 LBC LBRY С помощью lbry пользователи могут создавать и делиться своим контентом, таким как музыка, фильмы, живопись и т.д. В процессе загрузки контента на платформу пользователь может требовать плату за доступ
Radium 2015 RADS Smartchain Цель — задействовать возможности блокчейна для предоставления различных 100% децентрализованных сервисов.
Decred 2015 DCR Blake256 По сути это гибридная proof-of-work proof-of-stake (PoW/PoS) консенсусная система, которая направлена ​​на баланс между PoW майнерами и PoS избирателями что бы создать более надежное понятие консенсуса
Einsteinium 2014 EMC2 Scrypt Наподобие kickstarter только для научных проектов
Gridcoin 2013 GRC BOINC система, которая путем объединения вычислительных мощностей помогает решать задачи в медицине, биологии, математике, климатологии, астрофизике и других науках
VertCoin 2014 VTC Lyra2RE Позиционирует себя как форк полностью защищенный от ASIC майнеров. Выступает против монополизации майнинга.
Dashcoin 2014 DSH CryptoNight Анонимная криптовалюта следующего поколения так как сетевой код всегда обновляется с минимальными затратами на разработку и близкими к 0% ошибками протоколов
Potcoin 2014 POT Scrypt Представляет легальную индустрию марихуаны
Peercoin 2012 PPC SHA-256 Интересен возможностью получения монет не только майнингом видеокарты, но еще и генерацией новых монет — монетами уже имеющимися в кошельке
Namecoin 2011 NMC SHA-256 Главным применением Namecoin является цензура-устойчивый домен верхнего уровня.bit, который функционально похож на.com или.net домены, но не зависит от ICANN, главного руководящего органа для доменных имен.
Nautiluscoin 2014 NAUT NXT Цель — доказать, что электронные валюты могут быть хорошим классом инвестиционных активов.
Expanse 2015 EXP Dagger-Hashimoto Идея состоит в том, чтобы использовать новейшую технологию blockchain для создания всего, что может представить сообщество и команда, используя децентрализованную автономную организацию с самофинансируемым дизайном, чтобы сохранить ее по-настоящему децентрализованной
PinkCoin 2014 PINK X11 Валюта созданна на базе платформы Ethereum и обеспеченна фиксированным активом цветных бриллиантов
FoldingCoin 2014 FLDC Stanford Folding Использует ваш компьютер для моделирования процесса сворачивания белков в теле человека. Результаты полученные в этом исследовании будут использованные на изготовление и получение новых медицинских препаратов, способов лечение а также возможно с вашей помощью будут открыты новые открытия в медицине и исследовании белка в частности, а также лечение смертельно-опасных заболеваний
Navcoin 2014 NAV X13 При дополнительном использовании NAVTech и Tor вы можете защитить свою личность при совершении частных покупок в Интернете.
ViaCoin 2014 VIA Scrypt
DNotes 2014 NOTE Scrypt DNotes — peer-to-peer децентрализованная криптовалюта, передаваемая через Интернет, которая позволяет осуществлять мгновенную оплату любому человеку в мире. Это быстро и безопасно с минимальной комиссией как утверждают разработчики
Vcash 2014 XVC Blake256 Vcash был спроектирован как инновационный и перспективный. Он предотвращает подслушивание и цензуру, способствует децентрализованным, энергоэффективным и мгновенным сетевым транзакциям.

Ушедший 2017 год стал годом взрывной популярности криптовалют и такого же стремительного роста курса «главной» криптомонеты Bitcoin. Эти обстоятельства подогрели интерес не только к спекуляциям и майнингу, но и к самой сути явления. Все больше людей желают докопаться до сути – как же это все работает?

Мы открываем серию материалов, в которых постараемся в максимально доступной форме объяснить, что стоит за этими загадочными акронимами вроде Scrypt, SHA-256, Х11 и прочими. Начнем с важнейшего (но не самого лучшего) для мира криптовалют алгоритма — SHA-256. Именно он является основой разработки Bitcoin. Но перед этим определимся с ключевой терминологией – определим значения терминов «майнинг» и «хэш».

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

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

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

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

Что такое хэш?

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

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

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

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

В интерфейсе программного обеспечения для майнинга процессы преобразования блоков в хеш-суммы отображаются в виде лаконичной строки вида «Accepted 0aef59a3b». Блок может состоять из тысяч или даже сотен тысяч подобных строк, но только одна может служить той самой «подписью» блока, в поиске которой и заключается суть майнинга.

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

Примечательный факт. С алгоритмом SHA-256 каждый из нас неоднократно имел дело, сам того не подозревая, даже безотносительно майнинга криптовалют. Речь о сертификате безопасности SSL, которым защищены очень многие веб-сайты. При посещении такого сайта вы автоматически взаимодействуете с SHA-256, на котором построена работа SSL.

Особенности протокола SHA-256

Для начала немного истории. Изначально алгоритм шифрования SHA-256, вернее, его прототип, был придуман в стенах «зловещего» АНБ (Агентства национальной безопасности США) в теперь уже далеком 2002 году. Уже через пару месяцев он был видоизменен и официально представлен Национальным метрологическим университетом на федеральном уровне. Через два года вышла его вторая, усовершенствованная версия.

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

В конечном счете SHA-256 лег в основу создания первой в мире криптовалюты – Bitcoin. При этом протокол задействуется дважды для повышения защиты.

При проведении вычислений в рамках майнинга в системе Bitcoin признаком пригодности получаемого хеш-кода является число нулей в начале строки. По состоянию на конец 17-го, начало 18-го годов количество требуемых начальных нулей равно 17 (+/-). Вероятность обнаружения такого кода составляет приблизительно 1 к 1.4*10 20 . Это чудовищно малое число, не поддающееся осмыслению и сравнимое с вероятностью отыскать песчинку определенной формы на всех песчаных пляжах нашей планеты. Вот почему майнинг Биткойна требует таких огромных вычислительных мощностей и столько электроэнергии.

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

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

Работа протокола подразумевает разбиение информации на фрагменты по 512 бит каждый (или 64 байта, что то же самое, так как 1 байт = 8 бит). Затем происходит криптографическое «перемешивание» по заложенной в алгоритме схеме, и на выходе издается хеш-код размером в 256 бит. Операция хеширования производится в 64 итерации, что относительно немного, особенно на фоне новых появившихся криптографических алгоритмов.

Основные технические параметры SHA-256 следующие:

  • Размер блока: 64 байт;
  • Максимальная длина сообщения: 33 байт;
  • Размер результирующего хеш-кода: 32 байт;
  • Количество повторений в одном раунде: 64;
  • Максимальная скорость: около 140 MiB/s (мебибайт в секунду).

В своей работе алгоритм использует известную методику Меркла-Дамгарда, которая подразумевает разделение начального показателя на блоки сразу после внесения изменений. Блоки, в свою очередь, делятся на 16 слов каждый.

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

Эволюция SHA-256

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

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

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

  • через прообраз: имеется в виду обратное дешифрование изначального сообщения на основе только хеш-строки;
  • через обнаружение коллизий: здесь подразумеваются совпадение исходящих данных при условии различия входящих сообщений. То есть, входящие блоки разные, а исходящий хеш одинаков – такого быть не должно.

После того как первая версия SHA-256 провалила испытания по второму признаку, разработчики решили создавать новый механизм шифрования, основанный на кардинально иных принципах. Что и было сделано – в 2012 году был представлен протокол нового поколения, полностью лишенных вышеописанных недостатков.

Недостатки алгоритма

То, что разработчикам удалось исправить собственные ошибки, отнюдь не значит, что SHA-256 им получилось довести до совершенства. Протокол избавился от явных уязвимостей, но его «родные» недостатки остались.

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

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

Каждая итерация в рамках алгоритма выглядит довольно примитивно – элементарная двоичная операция плюс 32-разрядное сложение. Именно поэтому асики на SHA-256 появились столь молниеносно, умножив на ноль все надежды «домашних» майнеров, располагающих только процессором и парочкой видеокарт.

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

Резюме

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

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

Протокол SHA-256 на нынешний момент занимает львиную долю рынка криптовалют, но новые альтернативы его уже сейчас уверенно теснят. Например, вторая по популярности и «дороговизне» крипта – Ethereum использует протокол Ethash, который раньше назывался Dagger. Протокол настолько хорош, что Ethereum по сей день держит максимальную децентрализацию, и ASIC-майнеров для его добычи до сих пор не существует в природе. Возможно, именно Ethash придет на смену явно морально устаревшему SHA-256.

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

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

Следующий материал в рамках данной темы мы посвятим упомянутому альтернативному протоколу шифрования Scrypt.

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

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

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

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

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. Заключение

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

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

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

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

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

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

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

Сегодня существует несколько тысяч криптовалют. Неудивительно, что они используют разные алгоритмы майнинга. В 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 - подписывайтесь на наш

Scrypt: особенности и преимущества алгоритма

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

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

По реализации, Scrypt-майнинг от биткойн-майнинга не особо отличается: на вход подается блок информации, в отношении него затем применяется хэш-функция, и на выход идет хэш. Однако хэш-функция отличается более сложным вычислением. Кроме того, Scrypt алгоритм использует больше оперативной памяти, нежели SHA-256. Эта память применяется для хранения вектора псевдослучайных битовых последовательностей, которые генерируются в самом начале реализации алгоритма. Как только этот вектор создается, его элементы комбинируются в псевдослучайном порядке, и в итоге получают конечный ключ.

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

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

Большое значение в рассматриваемом алгоритме уделяется видеокартам. Рассматривая покупку видеокарт для Scrypt-майнинга, рекомендуется отдать предпочтение изделию от компании ATI. В связи с архитектурными различиями, производительность майнинга на таких видеокартах намного выше, чем в случае использования Nvidia. Однако здесь нельзя говорить однозначно, ведь ситуация на рынке стремительно меняется, и оба производителя активно совершенствуют свою продукцию.

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

В Scrypt-майнинге среди всех альткойнов наиболее популярным является Litecoin, хотя также успешно применяются и Dogecoin, Franco, Digitalcoin, Bottlecaps и др.

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