Что такое блокчейн и как он работает

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

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

Вы можете только подобрать входные данные методом перебора, чтобы определить какие из них в результате дадут вам нужный хеш. Шанс такого подбора 1 из 2^256 степени, что делает алгоритм хеширования довольно безопасным.

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

Представим у нас есть Боб и Элис. Элис должна Бобу 2 биткоина.

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

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

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

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

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

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

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

Такая модель создания блоков называется Proof-of-Work, но существуют так же и другие модели, которые требуют меньше вычислительных ресурсов и более доступны, например - Proof-of-Stake.