Статья, на которую можно ссылаться: что такое блокчейн

Источник: habrahabr

 

В 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. Мы в этом подходе видим сразу четыре потенциально слабых места:

  1. Асики всё равно делают, и уже сделаны асики под Скрипт и N-Скрипт;
  2. Ошибочно полагают, что таким образом можно избежать централизации. На самом деле в любом бизнесе, а майнинг это бизнес, централизация неизбежна;
  3. Алгоритмы, выполняемые на процессорах общего назначения, это неиссякаемый источник мотивации для вирусописателя-ботнетовода;
  4. Новые алгоритмы, созданные "на коленке", серьёзно не тестированы, какие там могут быть уязвимости и дыры, неизвестно.

Что такое 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-ом.


Страница сайта http://185.71.96.61
Оригинал находится по адресу http://185.71.96.61/home.asp?artId=39182