В 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-ом.
Поделиться с друзьями
-->

Комментарии (23)


  1. icoz
    24.05.2017 22:51
    +12

    Кроме слова «хеш» в статье нет конкретики. Так и не понял, что именно майнится. Ищется хеш перебором чего-то. А чего — не расскажем?
    Где технические подробности?
    Упоминается «заголовок», а что в нём — ни слова.
    Каждая статья про биткоин — «блоки, хеши, майнинг, цепочка блоков». Как они передаются? На каждом клиенте хранится вся база сети? И так далее… Никакой конкретики.


    1. olegarch
      24.05.2017 23:28
      -7

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

      Как блоки передаются? Через Интернет, посредством протокола TCP/IP.
      И да, на каждом клиенте хранится вся база сети.

      Ну а если Вам нужна вообще вся конкретика — то вот вся книга, содержащая эту самую конкретику.


      1. icoz
        25.05.2017 07:19

        Спасибо за ссылку. Ушёл читать


    1. calg0n
      25.05.2017 00:57

      Так и не понял, что именно майнится

      Блоки.
      Ищется хеш перебором чего-то

      Перебором Nonce.
      https://en.bitcoin.it/wiki/Nonce
      https://en.bitcoin.it/wiki/Target
      https://bitcoin.stackexchange.com/questions/7330/whats-the-process-of-creating-a-block-on-the-blockchain
      https://habrahabr.ru/post/320178/
      Где технические подробности?

      Таких статей полно, но обычно комменты к ней однотипны — никто ничего не понял. Все технические подробности связаны с криптографией, начните с неё и потихоньку переходите к блокчейну.
      Упоминается «заголовок», а что в нём — ни слова.

      https://en.bitcoin.it/wiki/Block_hashing_algorithm
      Ну и на хабре есть неплохое собрание статей по биткоину/блокчейну: https://habrahabr.ru/post/319868/


    1. lagranzh
      25.05.2017 01:42
      +7

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


    1. NIKOSV
      25.05.2017 05:01
      +6

      Значит так, сейчас все на пальцах объясню что даже самый тупой поймет.

      Берем 2 палочки к ним прикладываем еще одну палочку, и у нас уже три палочки, видите? Так мы доказали тчто 2+1 = 3, все просто

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

      {трехэтажная километровая формула}

      тут все должно быть очевидно, не имеет смысла на этом останавливаться


  1. Kind
    24.05.2017 23:34
    -4

    Наконец-то статья про блокчейн!


  1. zeromodule
    25.05.2017 00:05
    +8

    Из вашей статьи мало что понятно по существу. Ссылаться на неё я бы не стал. Но в любом случае, спасибо.


  1. ser-mk
    25.05.2017 01:15

    Мне кажется или в статье напутана криптовалюта и блокчейн? Наскрлько знаю, git имеет структуру блокчейна, но когда делаешь коммит, там ничего по долгу не майнится.


  1. JagaJaga
    25.05.2017 02:05

    Ваша реализация PoS имеет под собой научные исследования?


  1. spmbt
    25.05.2017 03:13
    +1

  1. perfect_genius
    25.05.2017 07:38
    +3

    Очередная попытка объяснить, очередная неудача. Это как с энтропией.
    Вот если бы кто смог сделать простенькую картинку-анимацию…


  1. ragman
    25.05.2017 09:23

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

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


  1. Ghool
    25.05.2017 14:10

    У меня вот что вызывает вопрос
    Чем дальше тем сложнее создавать новые блоки.

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

    Есть понимание, когда это произойдёт (С учётом растущей мощности компов)?

    А если изобретут таки квантовые компы не накроется ли текущий биткойн медным тазом?


  1. Boneyards
    25.05.2017 15:06

    Сколько не пытался понять, никак не вьеду, по простому, я думал, что блокчейн — это блоки, к хешам которых, мощные компы (asic теперь) подбирают какой-то ключ, кто первым это сделает, получает определенное количество биткоинов


    1. ReaM
      25.05.2017 15:33
      +1

      Это видео объясняет гораздо подробнее и проще чем пытался автор, и что такое биткоин и что такое блокчейн.


      1. Boneyards
        25.05.2017 17:29

        О, здорово! спасибо)


  1. uldaborg
    25.05.2017 22:54

    «Не нужна никакая третья сторона».

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

    И государство не нужно, если бы конфликтов не было.


    1. lamo4ok
      25.05.2017 23:39

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


      1. Boneyards
        26.05.2017 17:23

        Судя по графикам последних пару месяцев, финансовые системы, прощупывают криптовалюты)


        1. lamo4ok
          31.05.2017 20:39

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


      1. crea7or
        27.05.2017 11:24

        Вот именно, но это не произойдёт. Одна из самых основных особенностей финсистемы — полный контроль над ней со стороны владельцев, а тут этого нет.


  1. grigorym
    31.05.2017 07:46

    Только порадовался, что наконец-то пойму, что такое блокчейн и как он работает — и такой облом. Что уж говорить о том, чтобы объяснять с помощью этой статьи кому-то другому?! Автор, молю тебя — напиши статью еще раз, только в этот раз понятнее!