Что значит найти блок

Майнинг и как он работает: матчасть

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок
Привет, %username%!
Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.

Сначала упрощенный ликбез, куда без него.

Кошельки

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

Транзакция

Это запись о том, с какого кошелька на какой какая сумма переводятся. А так же, время и дата операции. Эта запись (её хэш) подписывается закрытым ключом отправителя и рассылается всем в округе в ожидании подтверждения.

Подтверждение

Чтобы о транзакции узнали и все себе её записали, необходимо её подтверждение, которое получается в результате создания нового блока.

Это служебные данные + список транзакций + номер кошелька майнящего + волшебное число.

Цепочка блоков

Последовательность, в которой каждый следующий блок включает в себя Id предыдущего.

Начало

Итак, есть некоторое количество народа, можно один. Назовём его Хаброша. Он решает запустить свою систему криптовалюты HabraCoin.

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

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

Так же, в алгоритме HabraCoin указаны следующие вещи.

Ограничение скорости

Как мы видим, сам факт создания блока говорит о том, что его создатель получает за это вознаграждение. И чтобы это вообще имело смысл, скорость и сложность создания блоков следует ограничить. Иначе сами понимаете, тонны блоков из ничего и никакого толку.

Как этого добиться?

Если помните, все блоки состоят из нескольких полей. Мы берем эти поля, конкатенируем, получаем из них массив байт. Это массив байт отдаем хэш функции, получаем результат и смотрим: меньше то, что получилось с учетом текущей сложности, или нет?
Если нет, то изменяем этот массив байт до тех пор, пока не получим нужное значение. А именно:

В каждом блоке есть поле, называемое nonce. Это число размером несколько байт, которое нужно увеличивать на единицу, дописывать к блоку и опять считать от него хэш. Поскольку хорошие хэш функции выдают более-менее равновероятностные значения, то мы не знаем заранее, сколько раз придется повторять процесс. Может 1-2 раза, а может миллиарды.

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

то победит та, для которой 4й блок найдут раньше времени. А меньшая цепочка выкидывается и её транзакции снова попадают в очередь на подтверждение.

Комиссия

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

Давайте смоделируем ситуацию и поможем Хаброше скрафтить какой нибудь блок.

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

Пример получившегося блока:

1824B9ADF09908222CF65069FDE226D32F165B3CF71B7AA0039FDFEF75EAA61610909EBFFBAC023480FC87FCF640C4A
009B82C4A6D25A0F4B8A732AE54EF733E792681137BA378577DFDC2732D192DAF323966EAD4ADC9635D7A12EDD50E34
9F660622D186AF3C03BF7D265F2AA7EB125056F4BF45BE519E8B22B845B28065110000006400000142E5D667CB01CEE
EDD0AC15EC4C491819A99030BD5FEF7CD2B469F2B90BA13D7981EDCD0708353D13390B8564F496C44FAC2777B0AF79D
C94CBF36D0CC0F047E807889F34C4DC5FEB724699C257391F84F3DDD70B84F841D115F4EFEAF4E58779042F35257E5C
035046037DE740718D199A8F06AD7A58E37CCCD4CC5E95295DCC2C5F3C70847BD59FA57BCC5FF4B208F93948FCFD763
EC1E5C85B61C43EB64B77A9F53B28785D7DE2335333003260A0839D53927976751A8D8967B2BB325909D86E82BC4125
2A28ECF6F0E7476BB99B29585EB0E75410000

Вот мы и заработали пару хабракоинов для Хаброши. Статья конечно поверхностная, так что готов к вашим вопросам.

Источник

Что такое майнинг? Удача в майнинге

Начинающие и даже майнеры со стажем зачастую не понимают, что такое удача в майнинге. Давайте разберёмся и расставим все точки над “ё”. В общем, открываем глаза. Разжёвываем, что такое удача — для майнеров любого уровня.

Что такое майнинг

Майнинг-пулы соревнуются в том, кто первый найдет криптовалютный блок. За блок пулу положено вознаграждение. Например, в сети Bitcoin вознаграждение за блок составляет 6.25 BTC, а в сети Ethereum 2 ETH. Читайте подробно как устроены криптовалюты в статье Что такое Биткоин от А до Я простыми словами. Теория и практика.

Если вы вдруг думаете, что майнеры решают какую-то сложную задачу вселенского масштаба, то, увы, глубоко заблуждаетесь. Майнеры просто играют в «угадайку». Хотя тут даже кавычки не нужны, это и есть самая обычная угадайка.

Один из самых важных параметров любой криптовалюты — время блока, то есть промежуток, за который находятся новые блоки. Например, у Биткоина время блока составляет 10 минут, у Эфириума — 14 секунд. Это значит, что сеть Биткоина настроена на то, что в ней будет создаваться новый блок каждые 10 минут, а Эфириум — на каждые 14 секунд. Отсюда, кстати, можно сделать вывод, где переводы ходят быстрей.

На самом деле блок Биткоина можно найти и за одну минуту, и за час. Десять минут — это среднее время блока, если взять, скажем, 1000 блоков подряд. Получается, что каждый ASIC, который майнит Биткоин, каждые 10 минут получает новую задачку и пытается выиграть в угадайку, то есть создать блок. Ну а ферма, которая майнит эфиры, каждые ±14 секунд получает новую задачу, пытается выиграть в эту же угадайку и тоже хочет создать новый блок.

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

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

Это не так. Все карты или ASIC-майнеры, которые сейчас майнят в мире, решают одну задачу. Все карты в мире каждые 14 секунд в случае с Эфириумом или 10 минут в случае с Биткоином получат новую задачу. Да, одинаковую для всех.

Разные алгоритмы майнинга — это разные уравнения. Предположим, один алгоритм это A + B = C, другой A X B = C. Каждый блок нам дают постоянное значение А, а также говорят, что решением будет такое число C, у которого на конце будет два нуля. В итоге мы случайным образом перебираем числа B, пока не найдём ответ.

Сеть каждой криптовалюты подбирает для нас такое количество нулей на конце числа C, чтобы в среднем блоки находились за нужное заданное время.

РАССМОТРИМ ПРИМЕР.

Есть сеть криптовалюты N. Вы майните её в одиночку. Время блока — 1 минута. Сеть даёт вам такой примерчик, что на конце ответа, то есть числа C, должно быть два нуля.

Ваш друг приходит майнить эту же криптовалюту. Вычислительные мощности сети выросли в два раза, а значит блоки вы будете находить в два раза быстрее — за 30 секунд. Так как время блока является важным параметром, который задан создателями криптовалюты, сеть сразу выдаст задачку посложнее. Повторим, одинаковую задачу для вас обоих. Теперь на конце ответа — числа C — должно быть уже три нуля.

Важно понимать, что вычисления примера, который задаёт сеть, идёт банальным перебором чисел. Нет формул, которые лучше или хуже решают задачи, нет волшебных видеокарт, которые делают это лучше других, равно как и нет патчей и хаков. Все просто до предела — идёт перебор. Считайте, что каждый раз карта условно подставляет цифры от 0 до 999999 подряд, пока не решится пример.

Разница только в том, с какой скоростью видеокарта или ASIC могут подставлять эти цифры. Чем мощнее карта, тем быстрее она это делает.

Далее приходит ещё сто друзей и сеть говорит “Ой, ребят, слишком быстро вы решаете мои задачки. Давайте-ка решать примерчик, но чтобы на конце ответа уже было десять нулей”. Сеть подобрала сложность задачи таким образом, чтобы время между блоками составляло всю ту же одну минуту. То есть увеличивает её пропорционально увеличению людей в сети.

А если друзья уйдут? Сеть поймёт это. Если блоки начнут находиться раз в четыре минуты, тогда пора упрощать задачку. И вот уже снова блоки создаются раз в минуту. Ура.

Что такое удача в майнинге?

В предыдущих статьях мы давали следующее описание удачи в майнинге.

Представьте, что вы бросаете кубик, и нужно выбросить цифру 6. В идеальном мире, если вы кинете много раз, цифра 6 должна выпадать в 16.67 процента случаев, то есть каждый шестой раз — ведь у кубика 6 граней — согласны? В реальности же вам может повезти, поэтому вы выбросите “шестёрку” несколько раз подряд сразу после начала эксперимента.

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

Вы кидаете каждый кубик по одному разу и пытаетесь выкинуть 6. Понятное дело, что у вашего друга шансов выкинуть 6 намного больше — ровно в девять раз больше, но это совершенно не значит, что вы не можете его обыграть. Предположим, что награда за блок составляет 100 долларов. Вы можете объединится с другом в пул и найти блок, а потом честно поделить награду: вам — 10 долларов, ему — 90. А можете искать блок сами: тогда вы получите все 100 долларов за найденный блок. В идеальном мире это должно занять в 10 раз больше времени, чем с другом в пуле, но наш мир не идеален.

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

Майнеры играют в угадайку или занимаются перебором — называйте как нравится. Чем больше вычислительной мощности у каждого майнера (MH/s, Sol/S и так далее), тем быстрее он перебирает цифры в надежде найти решение блока. И так каждый блок. Чем больше у вас карт и чем они мощнее, тем быстрее вы играете в эту игру.

Например, у вас 100 MH/s, а у Васи из соседнего подъезда — 500 MH/s. И вы пошли соревноваться. Логично предположить, что Вася будет вас обыгрывать, причём также логично, что на одну вашу победу будет приходиться пять Васиных побед. Вот это идеальный мир.

Но в реальности — как в примере с кубиками — Васе может не везти, а выигрывать будете вы. Ну просто сегодня такой день и удача на вашей стороне. Если по факту вы сегодня играете с Васей на равных, значит вам везёт, а ему нет.

Главное понимать, что везти вам будет ну как максимум один день. Затем Васины мощности возьмут своё, и через три дня вы проиграете. Отношение ваших побед к Васиным в среднем за три дня всё равно будет равно 1 к 5.

Что такое удача майнинг-пула?

Удача это число в процентах, которое показывает удачу пула (майнера) в поиске блока. В идеальном мире пул находил бы блоки каждый раз на отметке 100 процентов. Если пулу везет, то блоки будут найдены до 100 процентов, а если не везёт — то дело может затянуться до 100 процентов и более. Ну вот такой день, не везёт Васе.

Время блока в этой сети — 10 минут. Несложно подсчитать, что в день в среднем находится 144 блока. Для примера хешрейт сети составляет 40 MS/s. Если хешрейт пула 10 MS/s, значит он должен находить в среднем каждый четвёртый блок и 36 блоков в день. Если такой пул нашёл 40 блоков за день — то есть больше “нормы” — значит ему повезло, а если, например, 20 блоков, тогда не повезло. Но не пугайтесь, значит, повезёт в другой день. Как и в случае с Васей.

В среднем удача всегда стремится к 100 процентам, то есть к идеальному миру. Красиво звучит, не так ли?

Посмотрим на реальные значения удачи пула на примере нескольких криптовалют: Ethereum, Ethereum Classic, Aeternity.

Как видите, при большой выборке удача всегда практически 100 процентам.

Тут основным фактором играет терпение, это сложно принять. Но это факт — как и в случае с Васей и кубиками. Если вы будете долго бросать кубики, то есть майнить, в итоге удача в среднем за длинный промежуток времени выровняется и придет к 100 процентам. При этом даже возможно, что ваша удача в начале была 5 или 1000 процентов. Через время она составит 100 процентов, если вы не начнёте метаться в поисках другой монеты, пула и так далее. Как делают неопытные майнеры.

Удача в соло майнинге

Все вышеописанное полностью подходит и под соло-майнинг. Если вы майните одной картой, ангаром ферм или покупаете мощности на Nicehash, вы столкнётесь с удачей. Например, на пуле 2Miners.com у каждого соло-майнера есть статистика его персональной удачи по каждому найденному блоку.

Моя удача на пуле падает, такое возможно?

Удача майнинг пула растёт до тех пор, пока этот пул не находит решение блока. Как только блок найден, значение удачи сбрасывается до 0 процентов. Однако очень часто в чатах о майнинге спрашивают, мол, вот я майнил в соло — удача была уже 95 процентов, а тут она вдруг стала 85 процентов. Как так?

Отвечаем: удача рассчитывается исходя из количества посланных решений пулу — шар — и сложности сети. Если сложность сети упала или поднялась, ваша удача изменится в цифровом обозначении. Но это не значит, что вам резко повезёт или нет.

Мифы о майнинге

Собрали самые распространённые.

Продолжение следует. Вопросы задавайте в чате 2Bitcoins или в чате 2Miners.

Источник

Что такое майнинг и блокчейн на пальцах

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

Бывалый

Многие майнят и даже не понимают, что там происходит у них на балконе и что делают «батники». Вот этот текст как раз для новичков, частично отредактированный ) (отсюда https://www.facebook.com/petunder/posts/1353165761418879)

Давайте на пальцах, что такое майнинг и блокчейн. Это очень просто. Начнем с блокчейна. Любой человек это может понять, даже бомж с Комсомольского вокзала (правда, для лучшего понимания блокчейна, бомжу придется проставить бутылочку). Блокчейн это _тупо_ набор _текстовых_ файлов (блоков), которые выстроены в _цепочку_ друг за другом (файлы с названием 0.txt, 1.txt. 404000.txt). В файле (блоке) есть записи типа: «Вася перевел 0,1 монеты Пете; Женя перевел 0,2 монеты Лене; Георгий перевел 0,3 монеты Диме» и так далее. Размер блока ограничен, в биткойне это 1 мегабайт. Т.е., в каждом блоке ограниченное количество таких записей (транзакций).

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

Но доход майнера складывается не только из комиссии, которую платит отправитель платежа, но и автоматического вознаграждения за найденную подпись блока. Вознаграждение в сети биткойн отвечает за эмиссию биткойнов. Начиналось оно с 50 биткойнов за найденную подпись блока и начало автоматически уменьшаться каждые 210 000 блоков в два раза. На текущий момент вознаграждение майнера в сети (480 000 блоков) составляет 12.5 биткойнов за каждую подпись блока (почти 40 000 долларов). В 2020 году оно уменьшится еще в 2 раза. Именно этот алгоритм отвечает за предельно достижимое количество биткойнов в 21 млн монет. Итак:

доход майнера = комиссия за транзакцию + эмиссионный доход.

Вот вам майнинг на пальцах. Если вы майнер и ваша ферма стоит на балконе для лучшего охлаждения, значит вы балконный конкурент американским VISA, Master Card и отечественному Мир )

Вознаграждение за найденную подпись блока уменьшается, как было написано выше, и, в какой то момент времени, дойдет до неприлично низких значений. Также, растет сложность сети, следовательно приходится производить гораздо больше вычислительных операций для поиска подписи блока, что делает майнинг весьма затратным мероприятием. Это всё происходит прямо на наших глазах. Если экстраполировать на ближайшее будущее существующие тренды, то получится, что эмиссионная часть дохода от майнинга будет более-менее нормальной еще пару-тройку лет. И это оптимистичный прогноз. А что же с комиссией за транзакции?

Источник

Что такое блок в Биткоине и криптовалюте? Время, награда и майнинг

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

Блоки- это файлы, в которых постоянно записываются данные, относящиеся к сети криптовалюты (к примеру, Биткоин). Блок записывает некоторые или все самые последние транзакции монеты, которые еще не вошли в какие- либо предыдущие блоки.

Таким образом, блок подобен странице книги учета или книге записей. Каждый раз, когда блок «завершается», он уступает место следующему блоку в блокчейне.

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

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

Ключевые моменты статьи:

Что такое блок?

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

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

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

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

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

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

Как работает блок

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

Блок представляет собой «настоящее» и содержит информацию о своем прошлом и будущем. Каждый раз, когда блок завершается, он становится частью прошлого и уступает место новому блоку в блокчейне.

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

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

Майнинг Биткойнов

С каждым блоком связана математическая задача. Майнеры постоянно обрабатывают и регистрируют транзакции как часть процесса соревнования в каком-то виде гонки.

Поскольку за решение каждого блока вознаграждаются майнеры совершенно новыми BTC, каждый блок также содержит запись о том, какие адреса или скрипты Биткойн имеют право на получение награды. Количество сгенерированных биткойнов на блок начинается с 50 и уменьшается вдвое каждые 210 000 блоков (около четырех лет) – этот процесс называется халвингом.

Для примера, в Эфире каждые 13.46 секунд (время проверки 1 блока) создаются 2 монеты ETH.

Сравнение блока с банками

В качестве аналогии можно сравнить обычные банковские транзакции с транзакциями в сети Биткоин.

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

Внутри сети блокчейнов отдельные блоки создают «бухгалтерскую книгу», очень похожую на то, как банкомат или банк будут регистрировать ваши транзакции.

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

Общие вопросы о блоках

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

Какое максимальное количество блоков?

Максимального количества не существует, блоки просто продолжают добавляться в конец цепочки со средней скоростью:

МонетаВремя блока
Bitcoin10м 52с
Ethereum13.42с
Bitcoin Cash9м 46с
Litecoin2 м 32 с
Tron3c
BitcoinSV9м 38с
Dash2 м 38 с
Zcash1 м 15 с
Ethereum Classic13.15c

Что будет, когда все монеты одной криптовалюты будут сгенерированы?

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

Источник

Блокчейн: Тайна сложности майнинга и времени (нахождения) блока

Что значит найти блок. Смотреть фото Что значит найти блок. Смотреть картинку Что значит найти блок. Картинка про Что значит найти блок. Фото Что значит найти блок

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

Что такое майнинг (он же хэширование) — освежим в памяти материал

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

Подпись блока (хэш), удовлетворяющая критериям — или сложность майнинга

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

Что определяет сложность майнинга?

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

В блокчейне Биткойна каждые две недели производится корректировка сложности майнинга, таким образом, чтобы суммарная мощность хэширования сети в среднем производила 1 блок каждые 10 минут. Если к блокчейну биткойна присоединится много майнеров и суммарная мощность хэширования возрастёт, то скорость нахождения блока может увеличиться с 1 блока за 10 минут до 9 минут на 1 блок. Спустя некоторое время это также вызовет рост сложности майнинга, так что даже с этой дополнительной мощностью хэширования скорость производства блоков будет сохранять устойчивый темп в 1 блок за 10 минут. То же самое относится и к противоположному сценарию, когда майнеры прекращают майнинг на блокчейне и совокупная скорость хэширования понижается, сложность майнинга также уменьшается. Главный вопрос состоит в том – почему же 1 блок каждые 10 минут?

Но почему всего лишь один блок в десять минут?!

Может вы сейчас и не осознаёте этого, но это действительно очень хороший вопрос. Лично мне потребовалось много времени, чтобы разобраться в этом, и, по всей видимости, я был не единственным.

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

В течение длительного времени этот вопрос никак давал покоя моей голове, пока однажды кто-то на Reddit, наконец-то, не предложил ответ. Оказалось, что это было единоличным решением Сатоши Накамото (изобретатель Биткойна), чтобы скорость производства блоков поддерживалась на стабильном уровне и составляла в среднем 1 блок раз в 10 минут, по той причине, что блокчейну понадобится приблизительно 10 минут для распространения последнего блока (блоков) по всем узлам сети во всём мире, чтобы блокчейн оставался должным образом синхронизированным. Если блоки создаются более быстрыми темпами, то некоторые узлы на другой стороне земного шара, возможно, не смогут достаточно быстро и своевременно включить данные последних транзакций в свои копии блокчейна. Это, в свою очередь, может привести к тому, что узлы больше не будут корректно синхронизированы. Последствием такой рассинхронизации узлов сети может стать появление так называемых «orphan» блоков (или разветвлений цепочки), которые представляют из себя «сиротские» блоки или блоки, исключённые из основной цепочки блокчейна. Возникновения таких блоков блокчейн должен по возможности избегать, чтобы оставаться безопасным. Несомненно, такой ответ кажется довольно простым, но он имеет смысл.

Итак — сложность нахождения блока

Давайте подведём итог — сложность нахождения блока основана на общей мощности хэширования сети и корректируется каждые две недели, чтобы поддерживать стабильный темп создания новых блоков, составляющий 1 блок в 10 минут. Это даёт сети время для синхронизации и обновления реестра блокчейна в глобальном масштабе и имеет решающее значение для обеспечения безопасности реестра («блоки-сироты» снижают уровень безопасности сети, поскольку они могут стать недействительными, даже после того, как их достоверность была подтверждена).

Чем больше майнеров присоединится к сети, тем больше совокупной вычислительной мощности будет расходоваться на нахождение удовлетворяющих критериям подписей, и тем быстрее блоки будут добавляться в блокчейн, если сложность решения блоков не будет изменена. Следовательно, сложность повышается, когда увеличивается суммарная мощность хэширования, и наоборот, при уменьшении сложности, мощность хэширования также снижается. Как можно видеть ниже, совокупная мощность хэширования (хэшрейт) на данный момент составляет 51 миллиард GH/s. Чем выше хэшрейт, тем выше сложность блока.

Как проиллюстрировано ниже, блок 100 (ещё в 2009 году) требовал подписи, которая начиналась только с восьми последовательных нулей, в то время как последний блок на момент написания этой статьи (блок 542865) нуждался в подписи, которая начиналась как минимум с 18 нулей, следующих друг за другом. Количество нулей — это то, что отражает уровень сложности. Поиск выходных данных с таким количеством последовательных нулей требует либо гораздо большего времени, либо гораздо большей мощности хэширования. И на сегодняшний день сложность нахождения блока намного выше, по той простой причине, что в блокчейне Биткойна расходуется значительно большая мощность хэширования (из-за возросшего числа майнеров).

Как вы можете видеть, совокупная мощность хэширования на блокчейне Биткойна в 2018 году во много-много раз больше, чем в 2009 году. Небольшое примечание: график ниже показывает только постоянно увеличивающуюся сложность добычи биткойнов до марта 2018 года, но она снижается с октября 2018 года, когда майнеры были вынуждены прекратить добычу, потому что их операционные расходы начали превышать прибыль от майнинга, поскольку цены на биткойны быстро падали.

Хорошо, а что если увеличить размер блока?

Да, это довольно широко обсуждаемая тема. Если увеличивается размер блока, независимо от сложности, то в блок будет помещаться больше транзакций, следовательно, больше транзакций будет обрабатываться в заданный период времени. Хотя это и может выглядеть, как решение, но на самом деле таковым не является. Есть несколько аргументов против увеличения размера блока, один из которых заключается в том, что более длительное время распространения блоков между узлами приведёт к более высокой скорости появления «сиротских» блоков. По существу, это компромисс между масштабируемостью и безопасностью, однако, это только временное решение, ценой которого будет целостность сети.

Где найти отчёты в реальном времени по добавлению новых блоков в блокчены Биткойна и Эфириума?

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

Источник

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

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