Блокчейн основывается на алгоритме майнинга, например, в биткоине, который называется SHA-256, что происходит от «Secure hash algorithm 256 bits» (Безопасный хэш алгоритм 256 бит). Он принимает входную информацию в любом виде, вплоть до компьютерных файлов, и конвертирует ее в хэш, который всегда насчитывает 256 бит в машинном коде.
Каждый вход всегда выдает один и тот же результат по закономерности, но, стоит только немного изменить вход, коренным образом поменяется и выход.
Этот феномен называют односторонней функцией, в которой при наличии исключительно выходной информации невозможно наверняка рассчитать входную, только если не угадывать вероятность входных данных. Это может увенчаться успехом только с вероятностью 1 к 2 256, следовательно, угадать входную информацию практически невозможно, а значит, данный алгоритм безопасен.
Узнав основы использования алгоритма, можно переходить к нюансам функционирования блокчейна, рассмотрев элементарный образец транзакции.
Алиса должна Бобу 2 биткоина. Для отправки этих биткоинов она отправляет сообщение о планируемой транзакции всем майнерам в сети, уведомляя их о публичном адресе Боба и количестве подлежащих отправке биткоинов, прикладывая в письме цифровую подпись, сделанную при помощи закрытого ключа, а также открытый ключ. Это позволяет майнерам засвидетельствовать планируемую транзакцию от собственника биткоина, а также тот факт, что этим собственником является Алиса.
После получения подтверждений о легитимности транзакции майнеры перемещают ее в блок, в котором находится множество других транзакций, и начинают майнинг, помещая ее в блок по алгоритму SHA-256. Выводные данные должны начинаться с конкретного количества нулей. Только так он будет верифицирован. Количество нулей зависит от так называемой степени сложности, зависящей в свою очередь от уровня вычислительной мощности в сети
Для создания выходного хэш с желаемым количеством 0, майнерам необходимо добавить в блок так называемый «nonce number», т.е. двоичный код, который находят при PoW-майнинге.), перед запуском через алгоритм. Так как даже самое малое изменение входной информации полностью меняет выходную, майнеры подбирают выходной хэш путем вывода рандомных “nonce” чисел.
После получения блока майнер передает его другим, которые проверяют, верифицирован ли он. Если верификация пройдена, они добавляют его в свою копию цепочки блоков. На этом транзакция заканчивается.
Но в данном блоке необходимо включить выходной хеш из предыдущего блока, чтобы соединить все имеющиеся блоки. От этого действия и происходит название block-CHAIN. Не стоит недооценивать важность этого мероприятия, так как без подтверждения работы система перестанет функционировать.
Каждый майнер копирует блокчейн с максимальной вычислительной мощностью и максимально длинной цепочкой блоков. В случае изменения транзакции в предыдущем блоке, выходной хэш для этого блока, как и для последующих, тоже изменится.
Модель, обеспечивающая работу компьютеров для генерации блоков, называется Proof-of-Work (PoW) (Доказательство выполненной работы). Имеются и такие модели,как Proof-of-Stake (PoS)(Подтверждение доли владения), для работы которых не нужен столь большой объем вычислительной мощности, следовательно, они сохраняют электроэнергию.
Источник: Coin Media