Блокчейн для бабушки за 60 минут - Хата Евгений. Страница 4
Блок — звено цепочки блокчейна с записями информации о транзакциях.
В Proof of Work состав блока определяется тем участником, который первым завершил работу. В этот момент происходит первое подтверждение транзакции. Майнеры мониторят сеть на предмет новых транзакций. Каждая новая транзакция добавляется в пул неподтвержденных транзакций.
Майнеры занимаются обратным расчетом сложного криптографического алгоритма, который можно вычислить только путем проб и ошибок.
Представим себе блокчейн в виде головоломки. Каждый участник получает определенное количество кусочков, а победителем становится тот, кто соберет все первым. Кусочки головоломки — это транзакции. Первая часть головоломки является последним звеном предыдущей. Майнер выбирает транзакции для включения в блок и пытается собрать всю головоломку. Структура блока (головоломка) не позволяет найти решение без так называемого nonce.
Как найти nonce?
Nonce — это случайный фрагмент, который подлежит включению в блок, вычислением которого и занимается майнер. Правильный nonce определяет окончательный вид блока.
Представьте, что это последний кусочек головоломки. В зависимости от того, как выглядят другие ее детали и как майнер их складывает, nonce имеет определенную форму. Проблема в том, что майнер не знает, подходит ли этот кусочек. Необходимо перебрать буквально миллиарды nonce, пока верное решение будет найдено. На языке блокчейна это называется «вычисление нового блока».
Как только майнер вычислит новый блок, этот блок передается другим нодам и майнерам, которые проверяют его правильность и только после этого направляют остальным участникам.
На готовом блоке ставится временная метка. Майнер, нашедший блок, получает комиссию за все транзакции блока и дополнительное вознаграждение (вознаграждение это — по сути, добытые путем решения таких головоломок новые монеты). Транзакции, включенные в блок, подтверждаются впервые. В течение нескольких миллисекунд тысячи или даже миллионы майнеров копируют этот блок и начинают искать новый блок, добавляя новые кусочки головоломки к уже имеющимся и пытаясь найти правильный nonce. Каждый новый блок включает в себя часть предыдущего — и так до бесконечности.
Любой новый блок ставится поверх старого блока и нумеруется.
Структура блокчейна
Генезис-блок — это первый блок любого блокчейна.
В блокчейне Биткойн его создал Сатоши 3 января 2009 года. Сегодня блокчейн состоит из сотен тысяч криптографически связанных между собой блоков. Любое изменение повлияет на все последующие блоки. Отсюда тезис о неизменности блокчейна.
Чтобы изменить один из блоков, вам придется отменить все последующие блоки (головоломки) и начать с нуля.
Изменение единственной транзакции изменит весь блок и следующие за ним блоки.
В случае с биткойном транзакция считается неизменной после 4 или 5 подтверждений (3–4 последующих блока). Это занимает около 40–50 минут. Следовательно, транзакция достаточно безопасна даже с одним подтверждением, особенно если размер транзакции небольшой.
Сохраненную таким образом информацию в блокчейне абсолютно невозможно изменить. Чем больше участников, тем выше уровень стабильности и безопасности криптовалюты, так как становится все сложнее переиграть других. Валюта, которой пользуются всего 50 человек, нестабильна. Но только представьте силу биткойна с миллионами участников.
Что такое хешрейт?
Хешрейт — это количество попыток в секунду, необходимых для получения правильного значения nonce.
Для сравнения, хешрейт человека составляет около 0,00003 Н/с (хешей в секунду). Поэтому, если вы решите майнить вручную (сложить головоломку), на 1 nonce уйдет 9–10 часов.
В блокчейне Биткойн общий хешрейт — количество попыток вычислить блок. Он составляет миллионы триллионов в секунду (= хеши тэга [3]). Это бесконечно большие цифры: 10 000 000 000 000 000 000 000 хешей в секунду. У человека всего 0,00003. Шансы вычислить блок рассчитываются как отношение вашего хешрейта к общему хешрейту сети.
Так как популярность криптовалюты растет, майнеров становится все больше. Именно поэтому вычислительная мощность будет постоянно увеличиваться.
В самом начале истории Биткоина Сатоши добывал биткоины с помощью своего персонального компьютера в одиночестве. Ему принадлежало 100 % хешрейта. Со временем к нему присоединились другие майнеры, оттянув на себя часть хешрейта и вознаграждения. С ростом интереса к криптовалюте возросли и требования к компьютеру.
Вместо стандартного ПК появилось специализированное оборудование, так называемые ASIC-майнеры.
ASIC-майнеры — это компьютеры, которые занимаются исключительно хешированием и делают это быстрей других. Больше они ничего не могут.
Например, компании Bitmain или BitFury, крупнейшие производители ASIC-чипов, по всей видимости, стоят миллиарды долларов. ASIC выполняют гига-, а иногда и терахеши [4] в секунду.
Проблема масштабирования блокчейна
В основном банки проводят около 2000 транзакций в секунду (Tx/s). Технологии блокчейна столкнулись с большим препятствием: поскольку каждая нода в сети должна фиксировать данные всей сети, скорость сети ограничена скоростью самой медленной ноды. Блокчейн ограничивает количество транзакций в секунду во избежание централизации вычислительной мощности большими и сильными нодами, которые могут хранить и обрабатывать более крупные блоки, а также для ограничения скорости роста цепочки.
Жаркие дебаты в криптосообществе ведутся на тему размера блока, так как чем больше блок, тем выше Tx/s.
Для увеличения Tx нужно либо уменьшить размер транзакции (меньше данных на Tx), либо увеличить размер блока (больше хранимых данных).
SegWit частично решает эту проблему с точки зрения размера блока.
Что такое SegWit?
В августе 2017 года для улучшения масштабирования биткойна было представлено обновление.
Segregated Witness (SegWit), «отделенный свидетель», — обновление протокола, при котором транзакции обрели иную структуру, исключив из нее подпись приватного ключа в отдельную структуру.
Как в проведенной аналогии с головоломкой, первая часть головоломки представляет собой информацию о транзакции, а вторая — подпись приватного ключа.
При SegWit необходимость хранить кусочек головоломки, не хранящий информацию и применяемый только для подтверждения, отпала. Эта информация теперь может храниться отдельно, например, как цвет кусочка головоломки. Вот откуда пошло название «отделенный свидетель». Раз кусочки уменьшились вдвое (подпись больше не занимает места), в одном 1 МБ блоке можно сохранить в два раза больше транзакций SegWit (около 8400 кусочков SegWit могут закончить головоломку).
Как можно решить вопрос о масштабировании?
Никто не знает, как будет выглядеть окончательное решение, но пока многообещающим является технология DAG (Directed Acyclic Graph — «направленный ацикличный график»). Новый тип распределенного реестра IOTA применяет принцип локализованного узла. Еще один вариант — это технология HashGraph.
Группа Биткойн работает над проектом Lightning, группа Ethereum — над Raiden. Оба проекта объединяют пользователей «вне сети», когда члены группы доверяют друг другу и могут производить транзакции безопасно, не информируя об этом других.