Биткоин – одна из форм цифровой наличности, позволяющая осуществлять онлайн-платежи между двумя людьми – продавцом и покупателем. Работает по принципу «распределённой бухгалтерской книги», в которую вписываются транзакции и сальдо счетов.
Протокол Bitcoin работает на основе принципов криптографии и определяет процедуру формирования, подтверждения и записи каждого отдельно взятого денежного перевода. Нет нужды приводить конкретный программный код – он находится в свободном доступе в виде «белой книги» - «Bitcoin: A Peer-to-Peer Electronic Cash System"». Однако понять его особенности можно, разобравшись в порядке формирования транзакций и дальнейших действий участников блокчейна с ними.
Биткоин-транзакции
В них содержится следующая информация:
- Уникальный идентификатор, образующийся при двойном пропускании информации через хэш-функцию SHA256.
- Ввод. Или Биткоин-адрес, который определяет источник биткоинов, подлежащих переводу. Чаще всего является выводом из предыдущих транзакций и используются для проверки реальности отправителя и наличия на его счету необходимых средств.
- Количество биткоинов, которое должно быть переведено на другой адрес
- Вывод. Или Биткоин-адрес получателя.
Вывод одной транзакции может использоваться в качестве ввода для другой – это создаёт непрерывность цепочки и позволяет отслеживать путь перемещения биткоина по блокчейну.
Проверка переводов
Все транзакции сети блокчейн обязаны быть преверными на подлинность, направленность и наличие реальных криптовалютных активов. Данный процесс не является централизованным – в нём участвуют все узлы сети.
Учётная запись, которая инициирует процесс, идентифицируется по биткоин-адресу и паре ключей – закрытому и открытому. Для прохождения проверки подлинности, отправитель помечает криптовалютный перевод цифровой подписью, созданной на основе закрытого ключа. А любой узел сети может с помощью открытого ключа, который известен всем, может подтвердить или опровергнуть подлинность.
Криптовалютные переводы не вписываются в блокчейн поодиночке – они формируются в списки, называемые блоками. Они связаны между собой цепочкой – блокчейном. Все те транзакции, что уже были отправлены в сеть, но не добавились в список и не были подтверждены, являются обратимыми.
Майнеры проверяют подлинность каждого денежного перевода и добавляют его в блок. Каждый из них должен получить определённое количество независимых подтверждений.
На каждом компьютере, подключённом к сети, хранится актуальная копия всего блокчейна, которая обновляется по мере поступления новой информации. В процессе формирования нового блока, нужно дополнительно решить особую математико-криптографическую задачу, называемую «доказательство работы». Тот майнер, который справится с ней первым, получает вознаграждение после подтверждения другими узлами правдивости его расчётов.
В чём заключается протокол?
С точки зрения процесса создания и валидации транзакций, протокол Биткоин можно сформулировать так:
- Каждая новая транзакция передаётся на все узлы сети.
- Каждый узел собирает все новые переводы в блок.
- Каждый узел пытается первым найти решение хэша, чтобы осуществить получить доказательство работы.
- Первый узел, который находит решение, передаёт готовый блок в сеть.
- Все узлы проверяют правильность вычислений и принимают, либо не принимают, новый блок.
- Начинается работа над новым блоком. Хэш только что вычисленного добавляется в новый, тем самым гарантируя непрерывную последовательность.
Итого
Протокол Биткоин основан на совместном ведении и создании «распределённой учётной книги биткоинов». Каждая транзакция намертво фиксируется в новом блоке, который подтверждается только при подтверждении достоверности всех криптовалютных переводов и вычислении правильной хэш-суммы. Все процессы проверяются всеми участниками сети – в этом и заключается алгоритм консенсуса.