Часы работы офиса: Пн.- Птн. с 10:00-19:00, Субб. с 11:00-14:00 вс.- выходной. Онлайн заявки обрабатываются в течении 2-х часов
70630.016 USD

+37477788760

+37477667060

FAQ

Мы разберем понятие майнинга, расскажем о алгоритмах консенсуса  PoW  и PoS. И так же пошагово разберём весь процесс майнинга Биткоина.

Вот уже более 10-и лет индустрия инновационных технологий не раз говорила о криптовалюте, Биткоинах, хэшах, майнинге и так далее, но многие до сих пор не имеют понятия что это такое и с чем его есть. Сегодня разберем тему майнинга и поймем, как это работает.

Майнинг – процесс решения математических задач, в результате которого в блокчейн криптовалюты добавляются новые блоки информации. Это процесс, который позволяет осуществлять верификацию транзакций, добавление новой информации в базу данных и выпуск новых монет в обращение. Его важность состоит в том, что он обеспечивает функционирование криптовалют в качестве децентрализованной P2P-сети.

И как следует из определения, майнинг криптовалют выполняет 3 основные функции:

  1. twemoji-2705 Подтверждение транзакций - включение ее в блок.
    Майнеры обязаны подтвердить транзакцию как легитимную, прежде чем включить в блок, внедренный в блокчейн, это необходимо для предотвращения повторного расходования одних и тех же денежных средств. (“double-spending”). Процесс включения транзакции в состав найденного блока и называется подтверждением транзакции.

twemoji-267b Обеспечение безопасности через децентрализацию
Майнеры (пoлные ноды) хранят копии блокчейна на своих компьютерах, создавая тем самым полностью децентрализованную сеть. Это гарантирует, что подделка информации в одной из копий базы данных не навредит блокчейну. Чем больше майнеров участвует в процессе, тем безопаснее сеть. Распределенная майнинговая мощность (хешрейт) обеспечивает безопасность сети.

3.twemoji-1f4b0 Выпуск новых монет.
Если привычные нам валюты выпускают Центробанки, то биткоины добывают. Концепция аналогична добыче золота, а разница лишь в том, что биткоин существует внутри программного обеспечения, но для вывода в обращение его нужно «намайнить». То есть ноды решают задачу и впоследствии получают вознаграждение в виде криптовалюты.

Ноды - это компьютеры, которые соединены с другими компьютерами (нодами) в сети для документирования и синхронизации информации. Понятно, что компьютеры обслуживают люди, как раз их и называют майнеры.

майнинг 1

Как видно участнков много и действия их нужно подчинить каким-то правилом. Для этого существуют механизмы консенсуса в сети. Это процесс, который позволяет сети, согласовать действительность и порядок транзакций, которые будут добавлены в историю, путем последовательного добавления новых блоков. Этот механизм обеспечивает четкий и однозначный порядок транзакций и блоков и гарантирует целостность и согласованность содержимого этой цепочки между всеми узлами сети.

Виды алгоритмов консенсуса в майнинге.

Не все блокчейны создаются одинаковыми, и многие сильно различаются в зависимости от типа алгоритма консенсуса, который они используют.

twemoji-1f449Proof of Work или PoW - самый старый и потому популярный алгоритм в майнинге. Ибо самый большой куш добычи получает «добытчик» у которого самое мощное оборудование.

twemoji-1f449Proof of Stake или PoS система построена иначе. Его суть в том, что проверку легитимности транзакции осуществляют специальные узлы, валидаторы, которых выбирают на основе комбинации нескольких факторов: количество монет в кошельке валидатора (он же стейк), возраст стейка и рандомизация. Люди (стейкхолдеры) добровольно замораживают на счету часть своих активов, чем способствуют алгоритмам консенсуса в майнинге. Чем больше заморозил, тем больше получил. Мощность оборудования в данном процессе особой роли не играет. Валидаторы транзакций получают только часть комиссии за транзакцию.

Proof of Stake vs Proof of Work

Proof of StakeProof of Work
Транзакции валидатора, который выбирается в зависимости от количества монет в ставке, возраста стейка и активности участникаТребуется майнинг в виде выполнения сложных вычислений с использованием мощных вычислительных устройств
Нет вознаграждения за блок. Валидаторы транзакций получают только комиссию за транзакцию. В DPoS и LPoS валидаторы делятся наградой с теми, кто их поддержал монетами (голосами)Есть награда за новый блок в виде новых монет, ее получает первый майнер, решивший математическую головоломку. Есть награда за проверку транзакций в виде комиссий
PoS очень рентабелен для инвесторов, поскольку не нужно покупать мощные вычислительные устройства, ASICPoW рентабелен только при очень больших вложениях, позволяющих получить преимущество над остальными майнерами. И только если курс добываемой монеты высокий

Сегодня есть много вариаций алгоритма PoS.
Одна из самых популярых - это Delegated Proof of Stake или dPoS, существует так же Byzantine Fault Tolerance или BFT и др. Не будем на них останавливаться.

Майнинг в Биткойне. Как это работает.

Представим себе, что пользователь, намеревается переслать кому-то другому некую сумму в биткоин и подтверждает транзакцию в своём приложении-кошельке.

Транзакция транслируется приложением кошелька в сеть блокчейна Биткоин. Там она попадает в пул неподтверждённых транзакций (мемпул), где и будет находится до тех пор, пока её не подберёт какой-нибудь майнер. Такой пул представляет собой скопление неподтверждённых транзакций, ожидающих обработки. Чаще всего неподтверждённые транзакции собираются не в одном гигантском пуле, а в небольших разделённых локальных пулах.

майнинг 2

Шаг twemoji-31-20e3. Создание блока-кандидата
Когда майнер получает уведомление о том, что предыдущий блок имеет действительное «доказательство работы» (PoW), он начинает создавать блок-кандидат, называется он так, потому что у него еще нет действительного доказательства работы. Майнер удаляет уже присутствующие в предыдущем блоке транзакции, если они есть, выбирает транзакции из пулов и начинает формирование своего блока. Одни и те же транзакции могут быть добавлены разными майнерами в свои блоки и каждый из них параллельно начинает искать хэш-сумму (подпись) для своего блока, со своим набором неподтвержденный транзакций.
Таким образом, блок, по сути, это набор транзакций (на этот момент времени всё ещё неподтверждённых транзакций), плюс дополнительные метаданные.
Прежде чем добавить транзакцию в блок, майнеру необходимо проверить отвечает ли транзакция требованиям к исполнению, в соответствии с историей транзакций в блокчейне, что бы исключить вариант двойной траты криптовалюты. О чем мы писали вверху. Если на балансе кошелька отправителя находится достаточно средств согласно существующей истории транзакций блокчейна, транзакция считается действительной и может быть добавлена в блок.

Шаг twemoji-32-20e3. Подпись блока.
Для того, чтобы блок в последующем мог быть добавлен в блокчейн (что означает, что все узлы в блокчейне зарегистрируют транзакции, находящиеся в этом блоке), в первую очередь блоку необходима подпись. Эта подпись создаётся путём решения очень сложной математической задачи, которая является уникальной для каждого блока транзакций. Блок содержит: заголовок (Head) + список транзакций (Payload). При этом заголовок блока содержит данные из предыдущего блока и текущего, что исключает подделки любого блока. Заголовок блока так же содержит одно волшебное число (nonce), которое майнеру приходится найти. Mайнер находит волшебное слово методом перебора и создает хэш сумму (подпись). При решении такой математической проблемы затрачиваются большие вычислительные мощности (а, соответственно, и большое количество электроэнергии) потому что весь процесс сводится к перебору значений методом проб и ошибок. . Этот процесс называется майнингом.

Подробнее о том как проходит процесс майнинга мы объясним чуть более техническим языком. Если вам не хочется вдаваться в подробности, можете перейти к пункту 3.

Майнинг, также известный как хэширование (алгоритм консенсуса «доказательство выполнения работы»/Proof of Work)

Математическая задача, которую приходится решать каждому майнеру при попытке добавления блока в блокчейн, заключается в нахождении хэш-суммы (также называемой цифровой подписью) для данных в этом блоке. Причём подпись должна начинаться с определённого количества идущих подряд нулей (определяет сложность майнинга). Выглядит весьма трудной задачей, не так ли? На самом деле всё не так сложно. Позвольте нам попытаться объяснить это в упрощённом виде.

twemoji-25fc Как мы сказали каждый Блок состоит из двух главных частей — Заголовка (Head) и Тела (Payload).
Head — содержит информацию которая отвечает за стабильность, а также иммутабельность сети. Payload — содержит список всех транзакций, которые должны быть сохранены в данном Блоке и попасть в Blockchain.

twemoji-1f1ed В классическом блокчейне Head содержит такие поля:
• Номер версии(Version)
• Хеш предыдущего блока(prev_block)
• Хеш всех транзакций в текущем блоке(mrkl_root)
• Временную метку когда этот блок был создан(Time)
• Bits и Nonce, которые используют в майнинге

Прежде чем мы продолжим, важно знать, что такое хэш-функция. Говоря простым языком, хэш-функция представляет из себя математическую задачу, которую очень сложно решить, но при этом полученный ответ очень просто проверить.
Хэш-функция берёт строку входных данных, состоящую из цифр и букв (любую, в прямом смысле этого слова, строку случайных букв, чисел и/или символов) и преобразовывает её в новую 32-символьную строку, состоящую из случайных букв и цифр. Эта 32-символьная строка и есть хэш-сумма. Если изменяется любая цифра или буква во входящей строке, то хэш-сумма также изменится случайным образом. Однако, одна и та же строка входных данных всегда на выходе будет иметь одну и ту же хэш-сумму.

Теперь примите во внимание, что данные внутри блока – это входные данные для хэширования. Мы берем данные всего блока: version, prev_block, mrkl_root, time, bits, nonce + список всех транзакций, которые майнер выбрал из мемпула. В результате обработки этих входных данных хэш-функцией мы получаем хэш-сумму (32-символьную строку). Но нам нужно получить именно такую хэш-сумму, которая будет начинаться с определённого количества нулей. Потому что правилами блокчейна Биткойна оговаривается, что только те блоки могут быть добавлены в блокчейн, чьи подписи (хэш-сумма) начинаются с определённого количества нулей (так блокчейн регулирует сложность майнинга). Все было бы просто, однако сгенерированная выходная строка является всегда случайной для разных строк данных на входе. А что если строка данных блока в результате обработки хэш-функцией не даёт на выходе подпись (хэш-сумму), начинающуюся с того определённого количества идущих подряд нулей? Так это и является причиной того, что майнерам приходится многократно изменять некий фрагмент данных своего блока, называемый «нонс» (англ. nonce) - наше волшебное слово. Каждый раз, когда майнер изменяет нонс, это влечёт за собой незначительное изменение компоновки данных блока. А когда меняется структура данных внутри блока (то есть, его входные данные), также изменяется и его подпись (или его выходные данные). Итак, каждый раз, когда меняется нонс блока, этот блок получает новую случайную подпись.

Майнинг 3

Такая процедура изменения нонса повторяется майнерами бесконечное число раз, пока в конечном итоге они случайно не наткнутся на выходную строку, удовлетворяющую требованиям к подписи блока (определённое количество нулей в самом её начале). Выше приведён пример, иллюстрирующий этот процесс. В примере используется три нуля, но количество нулей на самом деле зависит от сложности блока в блокчейне. Сложность блока – это несколько более продвинутая тема, поэтому предлагаю вам ознакомиться с ней позднее.
Именно таким образом майнерам приходится искать подходящую подпись для своего блока, и это также является причиной, по которой требуются так много вычислительных мощностей для решения этой математической проблемы. Перебор настолько огромного количества нонсов в попытке угадать правильный занимает много времени и больших вычислительных мощностей. Также следует учитывать то, что с ростом мощности хэширования (количества майнеров) в блокчейне увеличится и сложность математической задачи, что повлечёт за собой увеличение средних расходов на электричество, требуемого для решения блока.

Шаг twemoji-33-20e3: Майнер, первый нашедший для своего блока удовлетворяющую требованиям подпись, транслирует этот блок и его подпись всем остальным майнерам.

Шаг twemoji-34-20e3: Другие майнеры теперь проверяют легитимность подписи, беря строку данных транслируемого блока и хэшируя её, чтобы проверить, действительно ли полученная хэш-сумма в результате приводит к включённой в блок подписи с правильным количеством нулей (помните, да? – трудно решить, но легко проверить). Если подпись действительна, то все остальные майнеры подтвердят её достоверность и придут к согласию, что этот блок может быть добавлен в блокчейн (то есть они достигнут консенсуса, говоря другими словами – все согласятся друг с другом – отсюда и термин алгоритм консенсуса). Из этого же проистекает термин «доказательство выполнения работы/proof-of-work». Подпись как раз и является требуемым «доказательством», что работа была произведена (были израсходованы вычислительные мощности).
Теперь блок может быть добавлен в блокчейн и разослан всем другим узлам в сети. Те, в свою очередь, примут блок и сохранят его, добавив к своим данным транзакций, при условии, что все транзакции внутри этого блока могут быть исполнены в соответствии с историей, записанной в блокчейне. Майнер получает вознаграждение за свою работу в виде Биткоин.
После того, как блок был добавлен в цепочку, все другие блоки, которые будут добавлены после него, будут считаться «подтверждением» для этого блока.

Комментариев


Оставьте свой комментарий

поля, обязательные для заполнения *