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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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