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