Управление: Как работает майнинг и доказательство транзакций в блокчейне

Admins

Когда-нибудь думали, как работает майнинг в блокчейне, либо как транзакции подтверждаются и добавляются в блокчейн? И я тоже. Но из-за того, что мне так и не попалось чёткое и доступное пошаговое разъяснение этого процесса, я решил написать его сам. Итак, представляю для вас итог моего исследования на тему, как обрабатываются транзакции в блокчейне. И всего за семь шагов.

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

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

Шаг 3: Майнеры, находящиеся в сети (время от времени именуемые узлами или нодами, но это не совершенно то же самое, что и майнеры!), выбирают транзакции из пулов и собирают из их новейший «блок». Блок, на самом деле, это набор транзакций (в данный момент времени всё ещё неподтверждённых транзакций), плюс доп метаданные. Любой майнер собирает собственный свой блок транзакций. Одни и те же транзакции могут быть добавлены различными майнерами в свои блоки.

Пример: Разглядим 2-ух майнеров, майнера А и майнера Б. Оба этих майнера могут решить включить некоторую транзакцию Х в свои блоки. В любом блокчейне установлены свои ограничения наибольшего размера блока. В Биткойн-блокчейне наибольший размер блока составляет 1 мб (Мб) данных. До этого чем добавить транзакцию в блок, майнеру нужно проверить отвечает ли транзакция требованиям к выполнению, в согласовании с историей транзакций в блокчейне. Если на балансе кошелька отправителя находится довольно средств согласно имеющейся истории транзакций блокчейна, транзакция считается реальной и быть может добавлена в блок. Если обладатель биткойнов захотит убыстрить процесс обработки собственной транзакции, он может предложить наиболее высшую заслугу за майнинг. В этом случае, обычно, майнеры присвоят наиболее высочайший ценность данной для нас транзакции по сопоставлению с иными, в связи с возможностью получить большее вознаграждение за процесс майнинга.

Шаг 4: Выбирая транзакции и добавляя их в собственный блок, майнеры тем делают блок транзакций. Для того, чтоб блок в следующем мог быть добавлен в блокчейн (что значит, что все узлы в блокчейне зарегистрируют транзакции, находящиеся в этом блоке), сначала блоку нужна подпись, также именуемая «доказательством выполнения работы» (англ. Proof-of-work либо PoW). Эта подпись создаётся путём решения весьма сложной математической задачки, которая является для всякого блока транзакций. Различным блокам соответствуют различные математические задачки, так что любой майнер будет работать над решением собственной задачки, для сформированного им блока. Все задачки идиентично трудны для решения. При решении таковой математической препядствия затрачиваются огромные вычислительные мощности (а, соответственно, и огромное количество электроэнергии). Вы сможете сопоставить это с выполнением вычислений на калькуляторе, лишь в этом случае всё еще труднее и делается на индивидуальном компе. Этот процесс именуется майнингом. Если вы желаете выяснить наиболее тщательно о том, что за математические задачки приходится решать в процессе (по сути, это не так трудно), тогда, пожалуйста, продолжайте читать далее. В неприятном случае, если нужен материал «полегче», сходу перебегайте к «шагу 5».

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

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

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

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

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

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

Руководство: Как работает майнинг и подтверждение транзакций в блокчейне1

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

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

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

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

Шаг 7: Опосля того, как блок был добавлен в цепочку, все остальные блоки, которые будут добавлены опосля него, будут считаться «доказательством» для этого блока. К примеру, если моя транзакция включена в блок 502, а длина блокчейна составляет 507 блоков, это значит, что моя транзакция имеет 5 подтверждений (507-502). Это именуется доказательством, поэтому что всякий раз, когда новейший блок добавляется опосля вашего, блокчейн вновь добивается консенсуса по поводу всей истории совершённых транзакций, включая вашу транзакцию и ваш блок. Можно также сказать, что сейчас блокчейн подтвердил вашу транзакцию 5 раз. На это опирается и Etherscan, когда указывает для вас подробные детали вашей транзакции. Чем больше подтверждений будет у вашей транзакции (иными словами – чем поглубже в цепочке находится ваш блок), тем труднее будет для злоумышленников подменить её. Опосля того, как новейший блок добавлен в блокчейн, всем майнерам необходимо начинать поновой с «шага 3» и сформировать новейший блок транзакций. Майнеры не могут продолжать (по сути могут, но это несколько выходит за рамки темы, обсуждаемой в данной статье) майнить этот же самый блок, иными словами – решать задачку – такого же самого блока, над которым они работали ранее по двум причинам:

1-ая: он может содержать транзакции, которые были доказаны крайним блоком, уже добавленным в блокчейн (помните, что различные майнеры могут выбирать/включать одну и ту же транзакцию(ии) в блок, который они решают). Любые из тех транзакций в случае, если они будут запущены вновь, могут быть признаны недействительными, поэтому что на балансе кошелька отправителя уже быть может недостаточно средств.

И 2-ая: любой блок должен добавить хэш-сумму (подпись) крайнего добавленного в блокчейн блока в свои метаданные. Конкретно это и делает блокчейн блокчейном (цепочкой блоков). Если майнер вдруг продолжит майнить этот же самый блок, над которым он уже работал, остальные майнеры увидят, что его хэш-сумма не соответствует той, что была в крайнем добавленном в блокчейн блоке и, вследствие этого, отторгнут этот блок.

ПОНРАВИЛАСЬ НОВОСТЬ: Управление: Как работает майнинг и доказательство транзакций в блокчейне — поделись ссылкой на НАШ веб-сайт

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Next Post

Coinbase решила ограничить операции с EOS

Южноамериканская биржа криптовалют Coinbase в протяжении четырёх дней ограничивает операции по вводу/выводу EOS. Торги длятся в обыкновенном режиме. По утверждению биржи, EOS показывает «сниженные уровни производительности. Отправка была временно отключена, а получение быть может задержано». Схожая ситуация наблюдалась в блокчейне EOS в конце прошедшего года, когда из-за эирдропа проекта EIDOS стоимость вычислительных ресурсов возросла […]

Subscribe US Now