Что такое блокчейн?
Блокчейн — это перечень записей данных, которые работают как децентрализованный цифровой реестр. Данные хранятся в блоках в хронологическом порядке и защищены с помощью криптографии.
Первая модель блокчейна была создана в начале 1990-х годов, когда специалист по информатике Стюарт Хабер и физик У. Скотт Сторнетта решили использовать криптографию в цепочке блоков для защиты цифровых документов от фальсификации.
Их работа вдохновила многих программистов и любителей криптографии, что в конечном итоге привело к созданию Биткоина как первой децентрализованной электронной денежной системы (или просто первой криптовалюты).
Хотя технология блокчейна гораздо старше криптовалют, ее потенциал начали осознавать только после появления Биткоина в 2008 году. С тех пор интерес к ней продолжает расти с каждым днем, а криптовалюты получают все более широкое признание.
Технология блокчейна используется в основном для записи криптовалютных транзакций, но она также подходит для разных видов цифровых данных и может выполнять множество задач. Самая старая, безопасная и популярная блокчейн-сеть — это Биткоин, совмещающий криптографию и теорию игр.
Как работает блокчейн?
В контексте криптовалют блокчейн состоит из стабильной цепочки блоков, каждый из которых содержит перечень ранее подтвержденных транзакций. Поскольку сеть блокчейна поддерживается множеством компьютеров по всему миру, она функционирует как децентрализованная база данных, или реестр. Это означает, что каждый участник (нода) хранит у себя копию данных блокчейна и взаимодействует с другими нодами, чтобы подтвердить совпадение информации в блоках.
Таким образом, транзакции блокчейна происходят в глобальной одноранговой сети, и именно это делает Биткоин децентрализованной цифровой валютой, не имеющей ограничений и устойчивой к цензуре. Кроме того, большинство систем блокчейна не требуют доверия и не контролируются единым органом управления.
В основе почти каждого блокчейна лежит процесс майнинга, основанный на алгоритмах хеширования. Биткоин использует алгоритм SHA-256 (алгоритм безопасного хеширования 256 бит). Он принимает вход произвольной длины и генерирует выход с фиксированной длиной. Выходные данные называются хешем и, в этом случае, всегда состоят из 64 символов (256 бит).
Одинаковые входные данные приведут к одному и тому же выходу независимо от того, сколько раз повторяется процесс. Однако если немного изменить входные данные, на выходе получится абсолютно другой результат. За счет этого в мире криптовалют большинство хеш-функций имеют детерминированный и однонаправленный характер.
Однонаправленность означает, что по выходным данным почти невозможно вычислить входные. Можно только догадываться, что было на входе, но шансы угадать эту информацию крайне малы. За счет этого и обеспечивается безопасность блокчейна Биткоина.
Давайте рассмотрим работу блокчейна на примере простой транзакции.
Представим, что на балансе Алисы и Боба есть несколько биткоинов. Алиса должна Бобу 2 биткоина.
Для их отправки Алиса передает всем майнерам в сети сообщение с транзакцией. В этой транзакции Алиса сообщает майнерам адрес Боба и сумму биткоинов, которую она хотела бы отправить, а также передает цифровую подпись и свой публичный ключ. Подпись сделана с помощью приватного ключа Алисы и подтверждает, что она является владельцем этих монет.
Майнеры должны убедиться в действительности транзакции, после чего они объединяют ее с другими транзакциями и пытаются создать блок с помощью алгоритма SHA-256. Выход должен начинаться с определенного количества 0, которое зависит от так называемой «сложности» и вычислительной мощности сети.
Чтобы получить выходной хеш с правильным количеством 0 в начале, перед запуском алгоритма майнеры добавляют в блок так называемое число nonce. Поскольку небольшое изменение на входе полностью меняет выход, майнеры пробуют разные комбинации, пока не найдут необходимый хеш.
После создания блока майнер транслирует его другим майнерам. Затем они проверяют действительность блока, чтобы добавить его в свою копию блокчейна и завершить транзакцию. Также майнеры включают в блок выходной хеш предыдущего блока, чтобы связать все блоки вместе в своеобразную цепь, то есть блокчейн. На этом механизме строится система доверия блокчейна.
Каждый майнер хранит копию блокчейна на своем компьютере, при этом степень доверия к блокчейну зависит от вложенной вычислительной мощности и его длины. Если майнер изменит транзакцию в предыдущем блоке, выходной хеш этого блока также изменится, что приведет к изменению всех хешей после него. Тогда майнеру придется переделать всю работу, чтобы его блокчейн был принят как действительный. Чтобы обмануть систему, злоумышленнику потребовалось бы завладеть более 50% вычислительной мощности сети, что почти невозможно. Подобные сетевые атаки называются атаками 51%.
Модель, в которой производство блоков осуществляется за счет работы компьютера, называется Proof-of-Work (PoW). Существуют и другие модели, например Proof-of-Stake (PoS), которые не требуют большой вычислительной мощности и потребляют меньше электроэнергии, предлагая возможности масштабирования для множества пользователей.