Алгоритмы консенсуса в блокчейне. Алгоритмы блокчейн


От PoW до BFT: Какими бывают алгоритмы достижения консенсуса | Обучение

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

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

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

Что такое алгоритм достижения консенсуса

Используем определение издания TechTarget: «В информатике консенсусным алгоритмом называется процесс достижения согласия по поводу значения определенного набора данных в распределенных системах или процессах, который необходим для обеспечения надежности в сети с участием нескольких ненадежных узлов, что важно при выполнении распределенных вычислений и в многоагентных системах. При решении этой проблемы обязательно исходят из предположения, что некоторые процессы и системы будут недоступны, и что некоторые сообщения не будут получены адресатами. Таким образом, консенсусные алгоритмы должны быть отказоустойчивыми — обычно предполагается, что должны ответить как минимум 51% узлов сети».

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

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

Доказательство выполнения работы (PoW)

Это был первый успешно реализованный в блокчейне децентрализованный алгоритм, и он по-прежнему используется в сетях Bitcoin, Ethereum (Ethereum планирует перейти на доказательство доли владения, подробнее в следующем разделе), Litecoin, ZCash, Monero и многих других.

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

Гайд по майнингу: Всё, что нужно знать о добыче криптовалют

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

Доказательство доли владения (PoS)

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

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

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

Доказательство доли владения сегодня реализовано в Peercoin, Decred, и готовится к внедрению в сети Ethereum — эта сеть планирует переключиться с одного алгоритма на другой. Преимущества PoS в более высокой энергоэффективности и, возможно, в более успешном предотвращении атак, но он еще не был реализован ни в одном крупном проекте, и не проверен временем.

Делегированное доказательство доли владения (DPoS)

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

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

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

Преимущества DPoS состоят в том, что эта система хорошо масштабируется и обеспечивает быструю проверку транзакций, а недостаток — это некоторая централизация, а также отсутствие тестирования на крупном проекте. DPoS используется в сетях Steemit, EOS и BitShares.

Стратегия византийских генералов (BFT)

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

BFT реализуется компанией Ripple (где валидаторы предварительно выбираются фондом Ripple) и Stellar (здесь любой может стать валидатором, а доверие вырабатывается сообща).

Среди преимуществ BFT — масштабируемость и дешевые транзакции, среди недостатков — некоторая централизация.

Новые консенсусные алгоритмы

Вероятно, в будущем появятся новые алгоритмы со своими достоинствами и недостатками, и заменят те варианты, которые известны нам сейчас. Например, перспективным решением кажутся направленные ациклические графы (DAG) и их реализации Hashgraph, Tangle и Block-lattice.

Вывод

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

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

Подготовила Тая Арянова

ru.ihodl.com

Алгоритмы блокчейна, proof of burn

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

Proof of Activity – разновидности гибридной системы

Рассматриваемая концепция появилась сравнительно недавно.

Её предшественниками были:

  • PoW или доказательство доли владения. Смысл подтверждения транзакций сводился к предъявлению особых требований к каждому блоку, который желает принять участие в процессе майнинга. Для этого необходимо было решить сравнительно сложную вычислительную задачу. Это позволяло подтвердить действительность вновь образовавшегося блока. У данной концепции был системный недостаток – она неминуемо порождала «гонку мощностей»: чем больше энергии и вычислительных мощностей, тем выше вероятность успеха атаки на сеть.
  • PoS или доказательство доли. Попытка изменения способа подтверждения транзакций была предпринята в 2011 году. Новая концепция преодолевала негативные стороны PoW и основывалась на механизме достижения консенсуса путем установления зависимости от сложности сети и размера средств, зарезервированных на кошельках пользователя. Однако и такой подход имел главный минус – при получении доступа к приватным ключам исходных блоков существует реальная возможность обгона главной цепочки. В результате – майнер становится владельцем системы.

Гибридный характер Proof of Activity заключался в использовании плюсов рассмотренных систем при одновременном устранении их недостатков. Смысл нового подхода состоит в организации одновременного поиска блоков PoS и PoW при формировании блокчейна.

Это дает следующие преимущества:

  • Практически не представляется возможным вероятность «переписи истории». При использовании Proof of Activity формирование блоков PoW рассматривается как контрольная точка всей майнинговой цепочки. Меняется подход и к определению степени доверия продавцам: теперь включенные блоки с реальной работой расцениваются, как более надежные (чего не было при реализации алгоритма PoW на стадии становления криптовалюты).
  • Решена проблема с «законной» (по меркам сети) эмиссией денег. В этом смысле блоки PoS играют роль ежегодного дохода от депозита майнера.

Реализация концепции PoA предотвращает вероятность единоличного управления созданием новых блоков даже при условии существования пользователя, владеющего 50% всех монет сети. майнеру необходимо также считаться с существующими холдерами (владельцами валюты). В этом случае вероятность единоличного выбора составляет (при N=3) 12.5%.

Proof of Burn – концепция «сжигания» цифровых монет

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

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

В результате майнер избавляется от собственных средств, одновременно получая возможность бесконечного их накопления. Proof of Burn организован в форме лотереи, т.е. она проводится среди всех пользователей, которые инициировали процесс сжигания цифровой валюты. Зависимость заработка установлена с количеством уничтоженных монет. В целом, данную концепцию можно охарактеризовать, как приобретение майнером виртуальной вычислительной среды (железа) или создание невозвратного PoS-депозита. Proof of Burn может рассматриваться в качестве альтернативного способа подтверждения транзакций (при формировании основной части денежной массы).

Proof of Capacity – «мегабайты вместо энергии»

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

Последний заголовок блока формирует уникальное число-индекс. В каждом размещенном на HDD разделе располагается небольшая часть этого индекса. Установлена прямая зависимость от объема выделенного пространства. Хэш от числа-индекса по своему размеру не должен превышать объем сети. В итоге, каждый выделенный мегабайт или терабайт рассматривается в качестве инструмента повышения объемов майнинга.

Сторонники данного алгоритма утверждают:

  • Это энергоэффективный способ. Отсутствует необходимость привлечения больших объемов электрической энергии.
  • Пользователь защищен от ботнета. Это предполагает невозможность установки на ПК сторонней программы, которая позволяет получить удаленный доступ к данным майнера. Проще говоря, невозможно таким путем забрать часть объема HDD, выделенного пользователем для заработка монет.

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

Существует также схожая с PoC идея (Proof-of-Storage), где основной акцент сделан на размещении блоков данных в облачном хранилище (совместном). В этом случае пользователь получает вознаграждение за каждый предоставленный системе мегабайт. Само хранилище носит децентрализованный характер, а выплата денег майнерам осуществляется за счет денежных средств тех клиентов, которые арендуют это пространство для своих целей.

altstake.io

Алгоритмы консенсуса в блокчейне | crypto.by

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

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

Доказательство работы (PoW)

Proof-of-Work (PoW) был первым успешным децентрализованным алгоритмом консенсуса в блокчейне. PoW используется в Bitcoin, Ethereum (Ethereum планирует перейти на Proof-of-Stake), Litecoin, ZCash, Monero и на многих других платформах. Самый известный алгоритм работает следующим образом: в начале пользователи сети отправляют друг другу цифровые токены, затем все произведенные транзакции собираются в блоки и записываются в распределенный открытый реестр — блокчейн.

В PoW все транзакции доказываются с помощью трудных математических вычислений, достоверность которых может перепроверить любой пользователь сети. Май­не­ры ре­ша­ют за­да­чу, фор­ми­ру­ют новый блок и под­твер­жда­ют тран­зак­ции. За­да­чи с каждым разом становятся сложнее, так как ко­ли­че­ство поль­зо­ва­те­лей растет, и на­груз­ка на сеть становится больше. Хэш каж­до­го блока со­дер­жит хэш — выходные данные преды­ду­ще­го блока. Это по­вы­ша­ет без­опас­ность системы, и порядок созданных блоков нарушить невозможно. Пользователь должен первым правильно определить «nonce» — число, добавленное в конец строки для того, чтобы создать хеш, который начинается с необходимого количества нулей. Если май­нер сумел ре­шить за­да­чу, фор­ми­ру­ет­ся новый блок: в нем раз­ме­ща­ет­ся оче­ред­ной ком­плект тран­зак­ций, и они счи­та­ют­ся под­твер­жден­ны­ми.

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

Этот алгоритм является честным и понятным, ему можно доверять. Однако у PoW есть главный недостаток — потребление огромного количества энергии. В 2017 году на полное оформление одной транзакции в системе Bitcoin требовалось затратить в среднем 163 кВт/ч энергии. Таким количеством энергии можно в течение пяти с половиной дней полностью обеспечивать нужды семьи из трех человек, проживающей в небольшом одноэтажном доме. Кроме того, те майнеры, которые обладают более быстрыми и мощными ASIC, получают больше, чем остальные. В результате этого биткоин оказывается не таким децентрализованным, как задумывалось изначально.

Доказательство владения доли (PoS)

Proof-of-Stake во всех реализациях для проверки транзакций требует от участников доли части монет, которые они хранят в сети. PoS является альтернативным механизмом PoW, впервые реализованным в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, связанной с большими затратами на электроэнергию.

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

Валидаторы ставят свои монеты на транзакции путем блокировки монет. Микшер, который используется для завершения блока, выбирается пропорционально значению, поставленному в сети. Proof-of-Stake предотвращает плохое поведение в сети с помощью перекладывания полномочий по проверке на самых активных и интересующихся пользователей. Алгоритм консенсуса доказательства владения доли используется в Peercoin, Decred и вскоре будет функционировать на Ethereum, в котором заранее прописывался переход с одного алгоритма на другой.

Делегированное подтверждение доли (DPoS)

Делегированное подтверждение доли Delegated proof-of-stake (DPoS), которое было разработано Дэниелом Ларимером в 2014 году, только внешне похоже на имя Proof-of-stake, ведь детали реализации двух алгоритмов существенно отличаются друг от друга. В DPoS вместо ставки на монеты для проверки транзакций держатели токенов в ходе голосования выбирают валидаторов транзакций, которые будут формировать блоки. Вес каждого голоса определяется суммой активов голосующего. Держатели монет, в случае сомнений, могут перевыбирать кандидатов. Благодаря этому можно достичь высокой устойчивости сети. Если большая часть исполнителей вышла из строя, то сообщество тут же проголосует за их замену.

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

DPoS используется Steemit, EOS и BitShares. Новый крипто-проект Minter от блокчейн-сообщества DeCenter основан на алгоритме консенсуса делегированного подтверждения доли.

Задача византийских генералов (BFT)

Византийская отказоустойчивость (Byzantine fault tolerance) носит весьма технический характер (как и другие консенсусные алгоритмы). Целью BFT является установление доверия между несвязанными сторонами сети. Концепция данного алгоритма консенсуса была представлена в научной работе Лесли Лэмпорта, Роберта Шостака и Маршала Писа еще в 1982 году.

BFT позволяет валидаторам совершать быстрые транзакции, управлять каждым состоянием сети и обмениваться сообщениями друг с другом, чтобы получить правильную запись транзакции и обеспечить честность. Данный алгоритм реализуется компанией Ripple, где валидаторы предварительно выбираются фондом Ripple, и Stellar, где любой может быть валидатором — доверие устанавливается сообществом. В отличие от блокчейнов, основанных на PoW, блокчейны BFT не подвергаются нападению, если только сами пользователи сети не координируют атаку. BFT считается выгодным алгоритмом, поскольку он масштабируем и охватывает транзакции с низкой стоимостью, но, как и DPoS, внедряет компонент централизации.

Новые алгоритмы консенсуса

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

Например, сейчас набирают популярность направленные ациклические графы Directed acyclic graph (DAG), и, возможно, в ближайшем будущем будут активно использоваться в блокчейн-проектах, потому что они могут выступить в качестве потенциального решения проблем, связанных с масштабируемостью. DAG — ори­ен­ти­ро­ван­ный граф с дан­ны­ми на основе то­по­ло­ги­че­ской сор­ти­ров­ки. Его раз­ви­тие идет толь­ко в одном на­прав­ле­нии — от ран­них блоков к поздним. Из-за без­блоч­но­го устрой­ства все тран­зак­ции совершаются в сетях DAG, поэтому этот про­цесс за­ни­ма­ет на­мно­го мень­ше вре­ме­ни, чем в слу­чае блок­чей­нов, ос­но­ван­ных на PoW и PoS. В сети DAG нет май­не­ров. Под­твер­жде­ние осуществляется непо­сред­ствен­но в самих тран­зак­ци­ях, поэтому сдел­ки про­хо­дят почти мгно­вен­но.

Интересным с точки зрения экономики платформы является Proof-of-Importance (PoI). Алгоритм консенсуса используется в блокчейне NEM. Значимость каждого пользователя в сети определяется количеством средств, имеющихся у него в кошельке, и количеством проведенных транзакций. В отличие от PoS, который учитывает сумму имеющихся средств у пользователя, PoI принимает в расчет количество средств и активность пользователя в блокчейне. Такой подход побуждает активно использовать те средства, которые хранятся на счете.

Вывод

Большинство платформ, несмотря на обилие алгоритмов консенсуса, по-прежнему используют Proof-of-Work, Proof-of-Stake и их модификации. Одним из наиболее оптимальных является алгоритм консенсуса Delegated Proof-of-Stake, плюсы которого заключаются в увеличенной скорости подписания блоков и большей энергоэффективности за счет ограниченного количества подписантов.

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

crypto.by

Что такое блокчейн?: walter_simons

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

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

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

Принцип работы

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

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

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

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

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

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

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

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

Блокчейн полностью децентрализирован, над ними не стоит никакой орган власти, который может запретить транзакции или заблокировать доступ к блокчейну. Не нужна никакая третья сторона для подтверждения передачи информации. Если мы передаем деньги, то необходимо подтверждение банка, если отправляем права на собственность, то требуется участие нотариуса. Блокчейн полностью исключает необходимость участия третьего доверенного лица.Сегодня блокчейн перестает ассоциироваться с биткоином и становится самостоятельной технологий, которая ложится в основу новых приложений и систем. Эксперты уверены: как в свое время конные повозки уступили место автомобилям, так и блокчейн становится логичным эволюционным продолжением традиционных инструментов учета. К тому же, если раньше о блокчейне говорили как о хранилище данных, то теперь его возможности становятся гораздо шире, потому что он также может исполнять программы. Некоторые блокчейны позволяют каждому факту содержать мини-программу. В криптовалюте это можно проследить при совершении транзакций с условиями, например: пользователь А передаст пользователю B 12 BTC, если сегодня 15 апреля, 13:30.

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

Алгоритмы

2002 год. Америка. Агентство национальной безопасности США объявляет о создании хеш-функции SHA-2. Криптография выходит на новый уровень.

Пройдет шесть лет и алгоритм SHA-256 (один из видов SHA-2) ляжет в основу самой первой в мире криптовалюты и до сегодняшнего дня останется той, самой классикой, которую не истребят даже новомодные разработки.

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

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

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

Технически алгоритм SHA-256 работает так: исходное сообщение разбивается на блоки, затем каждый блок делится на 16 слов. Каждый блок сообщения алгоритм пропускает через цикл с 64 или 80 раундами. Результаты обработки каждого блока складываются, полученная сумма и является значением хеш-функции.

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

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

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

Есть и еще один довольно популярный вид алгоритмов группы Х и его разновидности Х15, Х13, Х11. Цифра после Х — это то количество последовательных функций, которые используются для вычисления блока. Эти алгоритмы достаточно часто используют различные форки криптовалют. Такие криптовалюты очень нравятся майнерам-любителям, так как эти криптовалюты можно майнить на видеокартах, без затрат на покупку специализированного оборудования.

Следующий алгоритм называется Blake. Как и SHA-2, BLAKE имеет два варианта: первый использует 32-битные слова, используемые для вычисления хешей длиной до 256 бит, а второй использует 64-битные слова, используемые для вычисления хешей длиной до 512 бит. Преобразование базового блока объединяет 16 слов ввода с 16 рабочими переменными, но между блоками сохраняется только 8 слов (256 или 512 бит).

На этом алгоритмы не заканчиваются, каждый год программисты придумывают что-то новенькое. Постепенно популярность набирают алгоритмы крипто 2.0: N-Scrypt, Scrypt-jane и CryptoNote.

Зачем так много и так часто? Создатели криптовалют стремятся создать алгоритмы, которые было бы трудно перевести на специализированное оборудование, ASIC. Мы в этом подходе видим сразу четыре потенциально слабых места:

  • Асики все равно делают, и уже сделаны асики под Скрипт и N-Скрипт;
  • Ошибочно полагают, что таким образом можно избежать централизации. На самом деле в любом бизнесе, а майнинг это бизнес, централизация неизбежна;
  • Алгоритмы, выполняемые на процессорах общего назначения, это неиссякаемый источник мотивации для вирусописателя-ботнетовода;
  • Новые алгоритмы, созданные «на коленке», серьезно не тестированы, какие там могут быть уязвимости и дыры, неизвестно.
Что такое PoW и PoS?

Каждому из нас хотя бы раз приходилось отчитываться о проделанной работе. Кто-то это делает постоянно, кто-то — от случая к случаю, но так или иначе, если хочешь получить зарплату, докажи, что усердно работал. К чему бы вся эта демагогия? Так проще понять, что такое PoW.Мы уже писали об одном потрясающем свойстве блокчейна — децентрализации. Чтобы подтвердить транзакцию или сделку, не нужна третья сторона. Но необходим особый алгоритм. Proof of Work или доказательство выполнения работы — принцип защиты распределенных систем от хакерских атак или спама. Главное назначение Proof of Work — проверить вычисления, произведенные при создании нового блока. Из-за того, что процесс вычисления блока сложен и случаен, нельзя точно предсказать, какой из майнеров решит задачу и закроет блок. Чтобы блок признали истинным, нужно, чтобы значение его хеша было меньше, чем текущая цель. Таким образом, каждый блок показывает, что была проделана работа по его нахождению.

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

Для более простого понимания приведем пример: какой-то человек совершает сложную и долгую работу, затем результаты этой работы отправляет в систему на проверку. У этой системы есть специальный «шаблон проверок», благодаря которому правильность решения устанавливается за секунды. Важная особенность этого алгоритма заключается в разности затрат времени — большой срок запроса и быстрая скорость ответа. Очень долго что-то вычисляем, но быстро проверяем.Но помимо преимуществ у алгоритма есть и недостатки. Главный минус — огромные затраты вычислительных мощностей. Многие видные обозреватели крипто и блокчейн технологий сравнивали PoW со страшным монстром, который день и ночь пожирает электричество.Альтернативу долго ждать не пришлось. Многие майнеры возликовали, когда появился новый алгоритм под названием Proof of Stake или иначе подтверждение доли. И здесь важны не мощности вашей техники, не количество затраченного времени, а баланс вашего кошелька. Это тот принцип, когда деньги делают деньги: чем больше денег у вас есть в кошельке, тем большую прибыль вы получите. Если приводить примеры, то PoW-модель — это когда вы идете на работу и зарабатываете деньги (работник), а PoS-система — это когда вы свои сбережения кладете в надежный банк и живете на проценты (рантье).

Степень защиты от атак при PoS гораздо выше. Так как чтобы провести атаку, нужно хорошенько потратиться. Но если купить 51% монет, то рынок отреагирует быстрым ростом цены. Кроме того, какой смысл делать атаку на сеть, если большая часть ресурсов атакующего вложены в виртуальные монеты этой же сети, и атака ударит по самому больному — по кошельку? Если у атакующего найдётся много средств, и он её произведёт, то он сам же и пострадает от атаки, поскольку это нарушит устойчивость криптовалюты. Минусы у Proof of Stake, к сожалению, тоже имеются.Поэтому кому-то из гениев блокчейн сообщества пришла в голову идея — найти золотую середину, объединив два алгоритма Proof of Stake и Proof of Work.

Гибридная схема PoW + PoS

Ресурсы, расходуемые на хеширование блоков при алгоритме PoW, огромны и намного превышают мощности крупнейших суперкомпьютеров. К тому же PoW-криптовалюту можно атаковать, временно арендовав огромные вычислительные мощности.

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

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

Гибридный же механизм наиболее безопасен, поэтому и лег в основу проекта Emercoin и ряда других.

При стандартной гибридной схеме блокчейн состоит из двух типов блоков. Одновременно ищутся как блоки PoW, так и PoS. «Доказательство работы» можно сравнить с пропускным пунктом, ведь в основном PoW используется для распределения новых монет. Подтверждение доли необходимо для защиты транзакций, то есть в качестве основного средства для генерации блоков транзакций.Для успешной атаки на проект с гибридным механизмом атакующий должен иметь 51% всей вычислительной мощности сети и 51% всей денежной массы. Это создаёт для атакующего два барьера разной природы, которые и защищают сеть от компрометации.

Как мы уже упоминали, Emercoin имеет гибридный механизм консенсуса, но в нашем проекте упор больше сделан на PoS. По сути, Emer является PoS-криптовалютой, в которой механизм PoW оставлен по соображениям безопасности, и играет хоть и важную, но вспомогательную роль, а примерно 80% блоков закрываются именно PoS-ом.

Источник: Блог Эмеркоина на Хабре

walter-simons.livejournal.com