Сейчас в интернете много информации о майнинге. Часто люди, желающие понять, что такое майнинг биткоинов и в чем его смысл, сталкиваются с проблемой: расплывчатых объяснений много, а для чего все-таки нужен майнинг биткоинов – непонятно.
В этой статье я расскажу вам, что такое майнинг биткоинов. Вы узнаете, как происходит процесс майнинга главной криптовалюты и в чем его суть.
Содержание
Что такое майнинг биткоинов
Когда речь заходит о майнинге, то обычно говорят, что майнеры каким-то образом добывают биткоины. Видимо, в электронных шахтах цифровыми отбойными молотками. Приблизительно так:
На самом деле, майнеры в процессе майнинга не просто откуда-то из виртуальной реальности добывают монеты.
Майнеры обеспечивают надежность блокчейна, его нерушимость и невозможность взлома.
За эту очень важную и полезную работу они получают биткоины.
Теперь разберемся подробнее. Как это работает?
Как происходит майнинг биткоинов?
Чтобы разобраться в сути майнинга, нужно понять, что такое «хеш-функция».
«Хеш-функция» — это способ преобразования любой информации.
Это алгоритм, который получает на входе любые данные (текст, картинка, код):
а затем генерирует из этих данных последовательность букв и цифр строго фиксированной длины.
Получение такой последовательности называется «хеширование», а сама последовательность – «хеш». Хеширование выполняется компьютером или другим вычислительным устройством.
Хеш-функция имеет следующие особенности:
- Одинаковые исходные данные всегда дают одинаковый хеш, разные исходные данные – разный;
- Малейшее изменение входных данных (например, лишний пробел) всегда приводит к необратимому и непредсказуемому изменению хеша;
- Хеширование работает только в одну сторону. Получить хеш из исходных данных можно, получить исходные данные из хеша нельзя!
Различных видов хеш-функций имеется множество, однако блокчейн биткоина построен на одной из них с названием SHA-256.
Алгоритм работы блокчейна с применением хеш-функции
Как для создания блокчейна используется хеш-функция?
Для начала, у нас есть самый первый, стартовый блок. В нем хранится информация — записи о переводах средств:
Пропуская этот блок через алгоритм хеширования, мы получаем хеш этого блока:
Этот хеш мы ставим в начало следующего блока. Информация в начале блока, до списка переводов, называется «заголовок» блока.
Второй блок тоже хешируем, ставим получившийся хеш в заголовок третьего блока, и так далее:
Все! Блокчейн получен!
Теперь цепь неразрывно связана, и любое, самое малейшее изменение информации в каком-либо блоке приведет к необратимому изменению всех дальнейших хешей в цепочке.
Алгоритм майнинга биткоинов
Теперь давайте разберемся в алгоритме майнинга биткоинов.
Итак, в процессе майнинга биткоинов в среднем через каждые 10 минут к блокчейну биткоина добавляется новый блок с записями транзакций – переводов биткоина. Чтобы система присоединила его к блокчейну, добавляемый блок должен быть «правильным» и «красивым».
«Правильность» блока означает, что все транзакции в блоке проверены. «Красивость» блока означает, что хеш этого блока удовлетворяет определенным требованиям.
Например, начинается с трех нулей:
Как получить такой блок?
Дело в том, что в блоке биткоина, кроме заголовка блока и информации о транзакциях, есть еще параметр, называемый «nonce». Это – какое-то число:
Число «nonce» может быть любым – от нуля до нескольких миллиардов.
При изменении этого числа изменяется информация в блоке, а значит, изменяется хеш блока. Это означает, что при каких-то значениях этого параметра, выполнив хеширование блока, мы получим нужный, красивый хеш. Задача майнеров – найти именно такой «красивый» блок.
Эту задачу майнеры решают методом перебора значения параметра «nonce». Например, подставим вместо «nonce» единицу, вычислим хеш блока.
Получили «красивый» блок? Нет!
Подставим двойку, вычислим хеш. Получили «красивый» блок? Нет!
Подставим тройку:
Ну и так далее, пока не будет найден нужный параметр:
Именно этим занимаются майнеры по всему миру. Чтобы присоединить новый блок с биткоин-переводами к цепочке блокчейна, нужно, чтобы он был «красивым». Поэтому майнеры постоянно вычисляют хеш этого блока, подставляя все новые и новые значения параметра «nonce» в надежде получить «красивый» блок.
Кто нашел первый – тот присоединил к цепочке новый блок. Когда система видит, что присоединен новый блок — она выдает награду сделавшему это майнеру.
В общем-то, конечно, это похоже на процесс добычи золота. Нужно просеять огромное количество “пустой” породы, чтобы получить драгоценную золотую крупицу.
Чем выше вычислительная мощность майнера – тем быстрее он производит вычисления, тем больше шансов быть первым.
Чем больше общая мощность майнерской сети, тем быстрее она производит вычисления, тем проще найти «красивый» блок.
Однако, у системы есть требование: новый блок в цепочке должен появляться в среднем один раз в 10 минут. Поэтому, чем больше вычислительная мощность сети майнеров – тем больше требования системы к «красивости» блока. То есть система будет требовать, например, чтобы хеш нового блока начинался не с трех нулей, а с четырех, пяти и так далее, чтобы для его нахождения нужно было сделать больше вычислений.
Система автоматически подстраивается под вычислительную мощность майнеров. Поэтому, сколько бы майнеров не подключалось к сети, «добыть» монет больше, чем запрограммировано системой, не получится! Это – одно из удивительных свойств биткоина.
И все же — зачем майнеры, можно сказать, “просеивают пустую породу”? Для чего все-таки необходимо это огромное количество громоздких вычислений? Какая от них практическая польза?
Суть майнинга биткоинов
Представим себе, что кто-то хочет переписать историю транзакций и вносит изменение в блок.
Например, Петя хочет стереть запись в «Блоке 1» о том, что Вася отправил ему 2 биткоина. Уж очень Пете не хочется их отдавать.
Петя – крутой хакер. Он влезает в систему, вносит изменения в «Блок 1» и злорадно потирает руки.
Но, поскольку в информацию внесены изменения, хеш блока меняется! Вычисляется новый хеш, и… теперь он не начинается с трех нулей! Система не принимает блок 1, исключая его из цепочки блокчейна — ведь он «некрасивый» и его хеш не начинается с трех нулей.
Значит, чтобы обмануть систему и оставить в цепочке блокчейна блок c “подчищенным” Петиным переводом, нужно сделать его «красивым». Значит, нужно заново пересчитывать хеш этого блока, меняя значения параметра «nonce». Считать придется до тех пор, пока вновь не будет получен «красивый» блок. Ну что же, деваться некуда – надо так надо! Петя напрягается, долго считает….
… перебирает разные варианты…
… и наконец, методом перебора, находит искомый хеш, получив «красивый» блок. Теперь «Блок 1» снова можно подставить в цепочку блокчейна.
Казалось бы, Пете можно радоваться, задача решена! Но теперь у «подчищенного» блока 1 новый хеш, ведь информация изменилась. Этот хеш, хоть и «красивый», но отличается от того, который был раньше.
Поэтому в заголовок следующего блока записывается новый хеш:
Это значит, что следующий за «Блоком 1» «Блок 2» тоже изменился. А значит, поменялся и его хеш. Теперь он не начинается с трех нулей.
В результате, система не принимает «Блок 2» в цепь блокчейна.
Пете опять не удалось убедить систему в том, что он никогда не получал два биткоина. И чтобы она приняла эти изменения, ему нужно снова методом перебора искать «красивый» хеш блока 2.
Как вы уже, наверное, поняли, Пете придется заново найти «красивые» хеши для всех блоков до самого конца цепочки блокчейна.
Значит, чтобы Петя мог сжульничать и внести нужное ему изменение в информацию в «Блоке 1» о том, что Вася не отправлял ему 2 биткоина, ему необходимо перевычислить, «перемайнить» всю цепочку от этого блока и до последнего.
Для этого Пете нужно иметь вычислительную мощность, превышающую совокупную вычислительную мощность всей сети майнеров. А мощность сети майнеров в настоящий момент в 4 000 000 раз превышает мощность ведущего мирового суперкомпьютера.
Именно так майнеры защищают блокчейн биткоина от внесения любых изменений. На страже системы стоит вся их вычислительная мощность. За это майнеры и получают вознаграждение.
Откуда берутся биткоины при майнинге?
Одновременно с присоединением к блокчейну нового блока, система выпускает определенное количество новых биткоинов.
До мая 2020 года эта эмиссия будет составлять 12,5 биткоинов за блок. Именно эти вновь выпущенные монеты и достаются майнерам. А поскольку процесс вычисления “красивого” блока схож с просеиванием пустой породы в поисках золота — майнинг зачастую называют добычей биткоинов.
Также майнеры получают комиссии, которые пользователи уплачивают при переводе.
Итак, теперь вы понимаете, в что такое майнинг биткоинов и в чем его суть.
Вы увидели, что майнинг биткоинов – это не просто неизвестно зачем созданный способ добычи денег «из воздуха». Это серьезный и досконально проработанный алгоритм и основа работоспособности всей системы. Это фундамент, на котором строится безопасность блокчейна биткоина.
Майнинг существует столько, сколько существует биткоин. И ценность биткоина как нового класса активов, существующего независимо от банков и правительств “цифрового золота”, делает майнинг привлекательным. Именно в этом причина того, что за 10 лет майнинг стал серьезным видом бизнеса, целой новой отраслью в индустрии.
Конечно же, как любой серьезный бизнес, он требует серьезного и вдумчивого подхода. Если вы хотите заняться майнингом биткоинов – обязательно разберитесь в его технических основах и максимально глубоко вникните в экономику этого процесса!
Пожалуйста, оцените статью.
Пишите свое мнение в комментариях к статье!
Спасибо за простое и ясное изложение сути процесса майнинга. Я прочитал много статей на эту тему, но из объяснений авторов было непонятно, какая информация берётся для начала вычислений, какой выходной результат считается правильным и как полученные данные используются. Ваша статья всё расставила по своим местам.