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

Короче говоря, блокчейн — это список записей данных, который работает как децентрализованный цифровой реестр. Данные организованы в блоки, которые расположены в хронологическом порядке и защищены криптографией.

Самая ранняя модель блокчейна была создана в начале 1990-х годов, когда учёный-компьютерщик Стюарт Хабер и физик У. Скотт Сторнетта использовали криптографические методы в цепочке блоков как способ защиты цифровых документов от подделки данных.

Работа Хабера и Сторнетты, безусловно, вдохновила работу многих других ученых-компьютерщиков и энтузиастов криптографии, что в конечном итоге привело к созданию Биткойна как первой децентрализованной электронной денежной системы (или просто первой криптовалюты).

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

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


Как работает блокчейн?

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

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

Центральной частью почти каждого блокчейна является процесс майнинга, основанный на алгоритмах хеширования. Биткойн использует алгоритм SHA-256 (алгоритм безопасного хеширования 256 бит). Он принимает входные данные любой длины и генерирует выходные данные, которые всегда будут иметь одинаковую длину. Полученный результат называется «хешем» и в этом случае всегда состоит из 64 символов (256 бит).

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

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

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

Представьте, что у нас есть Алиса и Боб и их баланс в биткойнах. Допустим, Алиса должна Бобу 2 биткойна.

Чтобы Алиса отправила Бобу эти 2 биткойна, Алиса рассылает сообщение с транзакцией, которую она хочет совершить, всем майнерам в сети.

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

Как только майнеры будут уверены, что транзакция действительна, они могут поместить ее в блок вместе со многими другими транзакциями и попытаться добыть этот блок. Это делается путем прохождения блока через алгоритм SHA-256. Чтобы считаться действительным, вывод должен начинаться с определенного количества нулей. Необходимое количество нулей зависит от того, что называется «сложностью», которая меняется в зависимости от того, сколько вычислительной мощности имеется в сети.

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

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

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

Модель, заставляющая компьютеры работать для производства блоков, называется Proof-of-Work (PoW). Существуют также другие модели, такие как Proof-of-Stake (PoS), которые не требуют такой большой вычислительной мощности и предназначены для потребления меньшего количества электроэнергии. при этом имея возможность масштабироваться для большего числа пользователей.