Большинство людей, использующих криптовалюту, являются простыми пользователями: они отправляют, получают деньги и полагаются на майнеров и на ноды.
В результате вместо одной центральной организации мы получаем огромную группу людей, цель работы которых – поддерживать консенсус.
Шаги для достижения консенсуса
У технологии блокчейна есть очень изящное решение для достижения консенсуса.
Шаг 1. Когда нужно передать кому-то деньги, вы используете свой приватный ключ для «подписания» транзакции. Фактически это значит, что отправка денег происходит от одного публичного адреса к другому. Никто другой не сможет отправлять деньги, пока доступ к приватному ключу есть только у вас.
Шаг 2. Далее ваш кошелек автоматически передает информацию об этой транзакции нескольким узлам, к которым он подключен.
Шаг 3. После этого ноды передают информацию другим узлам и майнерам и так далее по цепочке. Получается экспоненциально растущая волна, которой понадобится всего несколько миллисекунд, чтобы все участники сообщества узнали о вашей транзакции.
Шаг 4. Когда майнер получает сообщение о транзакции, он проверяет наличие у вас нужного количества монет в принципе.
Поскольку каждую секунду накапливается нехилая очередь транзакций, можно дать майнерам «взятку» в виде небольшой платы, то есть поднять процент комиссии, чтобы они сначала проверили вашу операцию.
Теоретически платить эти взносы вы не обязаны, но одновременно происходит столько транзакций, что до вашей дело может так и не дойти, поскольку предпочтение всегда отдается обработке и включению в блокчейн (историю операций) тех заявок, которые приносят прибыль.
Что такое алгоритм консенсуса?
Казало бы, если все, что требуется для проведения транзакции, – это подтверждение майнеров, то почему бы просто не создать тысячи собственных майнеров? Они смогут сколько угодно подтверждать, что кто-то отправил вам миллионы долларов.
Криптовалюты разработали механизмы консенсуса, которые позволяют решать проблемы мошенничества децентрализованно.
Множество алгоритмов консенсуса находятся еще в процессе создания, а наибольшую популярность приобрел Proof of Work, или доказательство выполнения работы. Именно его следует рассмотреть более детально.
Proof of Work
Proof of Work (PoW) – самый популярный алгоритм, нацелен на доказательство выполнения работы.
Большинство криптовалют использует именно его из-за неоднократно доказанной на деле эффективности и надежности. Майнерам требуется просто доказать, что работа выполнена.
Тот майнер, который первый решит криптографическую задачу, будет определять статус транзакции и получит вознаграждение.
Как подтверждаются транзакции?
Рассмотрим на примере системы Биткойн. Для перевода денег вы передаете информацию о новом владельце криптовалюты нодам и майнерам, которые пускают ее дальше по цепочке. Транзакция подтверждается не сразу, а только после включения в так называемый «блок», во избежание разночтений.
Блок – звено цепочки блокчейна с записями информации о транзакциях.
В Proof of Work состав блока определяется тем участником, который первым завершил работу. В этот момент происходит первое подтверждение транзакции. Майнеры мониторят сеть на предмет новых транзакций. Каждая новая транзакция добавляется в пул неподтвержденных транзакций.
Майнеры занимаются обратным расчетом сложного криптографического алгоритма, который можно вычислить только путем проб и ошибок.
Представим себе блокчейн в виде головоломки. Каждый участник получает определенное количество кусочков, а победителем становится тот, кто соберет все первым. Кусочки головоломки – это транзакции. Первая часть головоломки является последним звеном предыдущей. Майнер выбирает транзакции для включения в блок и пытается собрать всю головоломку. Структура блока (головоломка) не позволяет найти решение без так называемого nonce.
Как найти nonce?
Nonce – это случайный фрагмент, который подлежит включению в блок, вычислением которого и занимается майнер. Правильный nonce определяет окончательный вид блока.
Представьте, что это последний кусочек головоломки. В зависимости от того, как выглядят другие ее детали и как майнер их складывает, nonce имеет определенную форму. Проблема в том, что майнер не знает, подходит ли этот кусочек. Необходимо перебрать буквально миллиарды nonce, пока верное решение будет найдено. На языке блокчейна это называется «вычисление нового блока».
Как только майнер вычислит новый блок, этот блок передается другим нодам и майнерам, которые проверяют его правильность и только после этого направляют остальным участникам.
На готовом блоке ставится временная метка. Майнер, нашедший блок, получает комиссию за все транзакции блока и дополнительное вознаграждение (вознаграждение это – по сути, добытые путем решения таких головоломок новые монеты). Транзакции, включенные в блок, подтверждаются впервые. В течение нескольких миллисекунд тысячи или даже миллионы майнеров копируют этот блок и начинают искать новый блок, добавляя новые кусочки головоломки к уже имеющимся и пытаясь найти правильный nonce. Каждый новый блок включает в себя часть предыдущего – и так до бесконечности.
Любой новый блок ставится поверх старого блока и нумеруется.
Структура блокчейна
Генезис-блок – это первый блок любого блокчейна.
В блокчейне Биткойн его создал Сатоши 3 января 2009 года. Сегодня блокчейн состоит из сотен тысяч криптографически связанных между собой блоков. Любое изменение повлияет на все последующие блоки. Отсюда тезис о неизменности блокчейна.
Чтобы изменить один из блоков, вам придется отменить все последующие блоки (головоломки) и начать с нуля.
Изменение единственной транзакции изменит весь блок и следующие за ним блоки.
В случае с биткойном транзакция считается неизменной после 4 или 5 подтверждений (3–4 последующих блока). Это занимает около 40–50 минут. Следовательно, транзакция достаточно безопасна даже с одним подтверждением, особенно если размер транзакции небольшой.
Сохраненную таким образом информацию в блокчейне абсолютно невозможно изменить. Чем больше участников, тем выше уровень стабильности и безопасности криптовалюты, так как становится все сложнее переиграть других. Валюта, которой пользуются всего 50 человек, нестабильна. Но только представьте силу биткойна с миллионами участников.