Сегодня постараюсь ответить на вопрос, куда уходит электричество в сети Биткоин и почему я считаю биткоин с одной стороны шедевром в ИТ-технологиях (чем глубже погружаешься, тем больше получаешь эстетическое наслаждение), с другой стороны — безобразно адским пожирателем наших ресурсов. «Ужасно красиво» — наверное наиболее точно описывает мое ощущение.
Для справки: Энергопотребление сети Bitcoin сравнимо с потреблением Чехии(на момент написания статьи) и постоянно растет (digiconomist.net/bitcoin-energy-consumption).
Отмечу, что данная статья не ставит целью рассказать о том, как устроен биткоин или блокчейн в целом, речь пойдет только об одной, правда достаточно важной части технологии. Ниже «пояснения на пальцах» с рядом грубых упрощений.
Блокчейн биткоина — это большой длинный файл(порядка 200 Гигабайт на момент написания статьи), который раз в 10 минут (в среднем) дополняется очередным блоком данных (размером до 1 Мбайта). Основная статистика — bitinfocharts.com/ru/bitcoin
В каждом блоке записан список «транзакций» — перемещение «денег» с адресов одних кошельков на другие кошельки. Для простоты я буду называть транзакции банковским термином «переводы».
Чтобы управлять своим счетом и делать переводы вам нужно установить специальную программу — так называемый кошелек. С помощью кошелька вы формируете заявку перевод и рассылаете ее всем майнерам (через специальные узлы сети), которые решают — брать вашу заявку в обработку или нет. Перевод может считаться завершенным (почти) только после попадания вашей заявки в файл блокчейна.
Многие думают, что предназначение майнеров — добыча биткоинов, однако это не совсем верно. Основная задача майнера — сформировать блок «переводов/транзакций» и «подписать» его «цифровой подписью». «Цифровая подпись» будет гарантировать, что операции по переводу монет останутся неизменным на протяжении всего существования биткоина. «Подпись» всегда можно перепроверить, повторно пересчитав и сравнив с той, которая хранится в блокчейне. Формируется подпись с помощью так называемой хеш-функции и выглядит в виде последовательности символов, называемых «хешем».
Хеш может выглядеть, например, вот так:
45F8C3AF42FC31103F1FDC0151FA747FF87349A4714DF7CC52EA464E12DCD4E9
Примитивный пример хеш-функции — «сложить все цифры в числе». Давайте рассчитаем «хеш» для строки цифр «256789». Просуммируем 2+5+6+7+8+9=37. Хеш равен 37. Если кто-то попытается подделать строку, и переписать ее как 257789, то пересчитав хеш, мы получим 38, а не 37 и поймем, что строка была подделана.
Конечно, такая условная хеш-функция слишком проста, если вы сделаете две правки 257689 — то проверка ничего не выявит. Поэтому математики разработали более сложные алгоритмы, взломать которые за разумное время невозможно.
Итак, каждый майнер формирует блок «переводов», выбирая понравившиеся ему «заявки». Предположим сформирован такой список переводов(транзакций):
Вова перевел Саше 10 монет
Джон перевел Кларку 5 монет
Серик перевел Нурлану 12 монет
Вот пример онлайн сервиса по расчету хеш-функции SHA256 passwordsgenerator.net/sha256-hash-generator. Давайте скопируем и вставим наш список переводов и рассчитаем хеш.
Попробуйте изменить хотя бы один символ, поэкспериментируйте — даже при малейшей корректировки хеш становится совершенно другим!
Ну хорошо, скажите вы, все мутно и почти непонятно, а где бабло и электроэнергия?!!
Спокойствие, мы подошли к финалу. Несложно заметить, что расчет хеш-функции занимает доли секунд. Но нам нужно, чтобы расчет занимал около 10 минут. Помните, я в самом начале писал, что блоки в файл блокчейна добавляются приблизительно раз в 10 минут? Почему именно 10 минут? Данное время выбрано экспертным путем, чтобы вся система биткоина с одной стороны не была перегружена многочисленными мелкими блоками и информация о транзакциях успевала распространиться по сети среди участников системы, с другой стороны переводы совершались в разумное(условно) время. Т.е. нам нужно чтобы каждый новый блок записывался в блокчейн не чаще, чем раз в 10 минут (в среднем). Значит нужно добиться, чтобы хеш рассчитывался не доли секунд, а минуты. Как это сделать? Подумали-подумали и решили — а давайте заставим майнеров рассчитывать хеш-функции много много много раз!
Достигнуто это следующим способом. В список «переводов» добавлена еще одна строчку:
Вова перевел Саше 10 монет
Джон перевел Кларку 5 монет
Серик перевел Нурлану 12 монет
Число для подбора: 1
Задано условие — господа майнеры, система примет от вас такой блок, в хеше которого первые 10 цифр должны быть нулями! Вот вам специальный параметр — «Число для подбора», ставьте туда любое значение до тех пор, пока не получится хеш с 10 нулями в начале.
На самом деле ставится условие — хеш должен быть меньше определенного числа, называемого «Сложность Майнинга». Эта сложность периодически пересматривается. Если статистика показывает, что время нахождения «правильного» хеша стало меньше 10 минут, сложность повышается, т.е. (чтобы окончательно запутать тех, кто дочитал) число, определяющее сложность майнинга уменьшается.
Теперь вы можете попробовать себя в роли майнера. Скопируйте указанный текст и начинайте перебирать «число для подбора» в ожидании, когда же вывалится хеш с нужными параметрами.
Сразу предупрежу — в силу своей сложности нет никакого разумного способа рассчитать данное число, кроме тупого перебора.
По этой причине куча майнеров со всего мира денно и нощно рассчитывают хеш-функции, перебирая числа, пока кому-то не повезет и у него вывалится хеш с нужным количеством нулей. Еще раз — майнеры не рассчитывают какую-то одну очень-очень сложную математическую операцию, для которой требуется много вычислительных ресурсов и времени. Они просто тупо перебирают результаты, в поисках красивого нужного количества нулей в начале хеша. Совершенно бессмысленная (с точки зрения стороннего наблюдателя) работа, так как 100%-1 рассчитанных по всему миру хешей никем и никогда не используются! С таким же успехом (но гораздо большей пользой), можно было заставить майнеров, например, приседать 600 раз (постепенно увеличивая это число по мере роста силы ног), вот только приседания проконтролировать сложнее.
Это один из ключевых моментов, важно в нем разобраться.
Итак, чтобы записать блок транзакций/переводов в блокчейн, нужно его подписать «цифровой подписью», на расчет которой уходят доли секунды, а электричества тратится столько, что лампочка даже не успеет моргнуть. Никаких сложных расчетов для работы системы в целом не нужно. Несколько лет назад, когда биткоин никому не был известен, система работала на слабеньких компьютерах и вполне себе нормально существовала. Для работы блокчейна не играет роли, сколько нулей будет в хеше в самом начале — десять, пять или ни одного. Это никак не скажется на надежности хранения информации и защите от взлома. Сложность создана искусственно, для увеличения времени попадания каждого блока в блокчейн до 10 минут.
Ответ на вопрос куда уходит электричество — на расчет миллиардов и миллиардов хеш-функций в поисках результата с нужным количеством нулей в начале.
Ну и самое важное — если майнер нашел хеш, удовлетворяющий требованиям, и если его блок записывается в блокчейн, система начисляет вознаграждение такому майнеру — несколько новых биткоинов (сейчас 12.5). Вот оно, то самое место, где появляются деньги! Ради этой награды жгут электричество и покупают видеокарты (уже нет). Именно так создаются новые биткоины в системе.
Также майнер зарабатывает на комиссиях от каждой проведенной им транзакции, но пока это не самые интересные доходы.
Надеюсь теперь вы понимаете, почему биткоин на блокчейне — красивая технология с точки зрения ИТ-эстетики, но совершенно чудовищная, с точки зрения использования вычислительных ресурсов и ресурсов нашей планеты в целом.
Можно ли что-нибудь сделать? Можно ли как-нибудь другим способом выдерживать эти 10 минут? Есть кое-какие предложения (Proof of Stake), как можно модифицировать протокола блокчейна в части криптовалют, предложения эти существуют уже давно, однако успешной практической реализации пока не получили.
Поэтому шуршим ноликами и греем атмосферу.
P.S.:
Если кто-то хочет почувствовать майнинговую удачу и найти правильный результат хеш-функции, предлагаю вам поиграться с фразой «Hello, world!»
Введите «Hello, world!0» в сервис по расчету хеш-функций => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
теперь последовательно меняйте «нолик» на следующие цифры до тех пор, пока в начале хеша не выпадет 4 нуля.
Открываю тайну — правильный результат:
Надеюсь, что в процессе упрощения не выкинул «ребенка вместе с водой». Если у вас есть вопросы или дополнения, пишите в комментарии, постараюсь ответить.
Целая диссертация !!!!
Спасибо )) Но скорее черновик курсовой работы, с точки зрения людей в теме.
Да же не курсовая…))) не выше реферата.
Но это всё теоретические выкладки о влиянии майнинг ферм на возможности производства энергетических мощностей.
Вопрос о более приземлённом в радиусе 300 км от места вашего постоянного проживания. У вас есть сведения о наличии майнинг ферм на уровне не менее 20 Мегаватт.
Для понятия законности данных пожирателей энергетических ресурсов в Казахстане, учитывая, что от Караганды до Павлодара мощностей с избытком, насколько это с точки зрения налогового кодекса законно в Казахстане
Я не специалист по налогам, но предположу, что точки зрения налогового кодекса потреблять электроэнергию в Казахстане законно, если потребление происходит на основании соответствующего договора с организацией, поставляющей электроэнергию.
Может быть и красиво, но все это больше напоминает байку про шапку и фальшивые рубли.
Некие параллели угадываются. Но при этом в байке про шапку пострадал ограниченный круг участников, а в случае с биткоином выхлоп СО2 в атмосферу влияет на всех.
И по этой причине как эколог я не могу поддерживать биткоин. Уж лучше доллар или тенге. Из-за них деревья хоть и страдают, но не все человечество.
И я с вами полностью согласен.
А почему уже не покупают видеокарты для майнинга?
Количество майнеров выросло настолько, что мощности видеокарт уже недостаточно для быстрой окупаемости в бытовых условиях. Кроме того, многие перешли на специальные процессоры, оптимизированные для решения данной задачи, по этим причинам спрос на карты стал падать.
Какая-то бессмыслица. Никакой новой стоимости не производится, наоборот бессмысленно растрачивается энергия, на производство которой затрачены реальные ценности, вредные выбросы от производства энергии бессмысленно уходят в атмосферу, а какой-то добрый дядя какому-то бездельнику ни за что платит какие-то условные ценности, непонятно откуда взявшиеся. Это такая же бессмыслица, как смена пола. Куда идем?
1. У людей есть деньги и очень много, они не знают куда их деть. Профессионалы по отъему денег им всячески помогают.
2. Удобный способ оплачивать всякие мутные дела.
3. Искренняя вера в будущее криптовалют, как чудо, которое спасёт мир от «злобных капиталистов».
Я правильно понимаю, что за затраченную эл. энергию участники процесса платят? А, если это так, что теряет общество в целом? Пусть «неудачники плачут, кляня свою судьбу». Или они научились как-то воровать эл. энергию?
Да, весь доход Казахстана — это доход от продажи электроэнергии. Проблема в том, что цена за эл/энергию у нас очевидно ниже себестоимости, так как мы социальное государство и держим цену для населения. Поэтому майнеры здесь и находятся. Если взять посчитать всю экономику с сетями Кегока и пр, то майнеры думаю будут глубоко убыточными для Казахстана.
Например, в Украине тариф в 2 раза выше и майнеров там уже не так много.
Мошенничество и полный идиотизм…
Ну, да ладно…
А почему просто не запрограммировать блокировку введения заключительной информации на 10 минут?…
Мошенничество и полный идиотизм — с одной стороны да, с другой стороны это обратная сторона (прошу прощения за тавтологию) эволюционной свободы. Эволюция создает разные варианты, полезное проходит отбор, остальное со временем вымирает. Телефон когда-то тоже казался странной штукой, а на VR и 3D очки наоборот делали ставку. В итоге странный телефон оказался крайне полезной штукой, а с очками так и непонятно, толи опередили свое время, толи вообще тема не взлетит. Возможно через несколько лет человечество поймет, что вся эта криптоиндустрия — слив ресурсов коту под хвост. А может быть найдут наконец-то толковое применение и все будут щастливы. Только время рассудит.