Основы блокчейна - Сложность
Мы часто читаем и слышим о сложности майнинга. Мы знаем, что она также влияет на прибыльность майнинга, но что именно собой представляет сложность? Как и почему она добавлена в консенсус доказательства выполнения работы? Прочитайте эту статью, чтобы узнать, что такое сложность майнинга.
Что собой представляет сложность майнинга криптовалюты?
Чтобы понять, что собой представляет сложность, сперва нужно понимать, как работает доказательство выполнения работы и какие проблемы оно решает. Мы уже объяснили это в этой статье.
Доказательство выполнения работы решает проблему двойной траты, где злоумышленники имеют дурное намерение потратить один биткоин дважды. Для выполнения двойной траты необходим контроль над минимум 51% сети.
Для предотвращения того, чтобы один человек контролировал 51% сети, доказательство выполнения работы позволяет бесконечному количеству майнеров (узлов) присоединиться к сети блокчейн и таким образом децентрализовать ее. Но что произойдет, если множество майнеров присоединятся к сети или покинут ее?
Давайте представим, что 100 одинаковых майнеров добывают биткоин. Скорость майнинга каждого майнера — 10 TH/s, или 1,000 TH/s всех вместе взятых. Это количество мощности статистически угадает блок каждые 10 минут со сложностью 1. Это ожидаемо, поскольку время блока сети Биткоин составляет 10 минут.
Если к сети присоединятся еще 100 майнеров, мощность увеличится на 2,000 TH/s, что удвоит вероятность угадывания блока. Это привело бы к уменьшению времени блока вдвое — на 5 минут. Это не нормально, потому что время блока должно быть 10 минут.
Если мы увеличим сложность на значение 2, сложность угадывания правильного хэша блока увеличится. В результате, время блока снова будет около 10 минут.
Блокчейны регулируют сложность автоматически. Например, сложность Биткоина регулируется каждые 2,016 блоков или каждые 2 недели. Сложность Ethereum регулируется каждый блок или приблизительно каждые 15 секунд.
Что именно собой представляет сложность майнинга?
Как сказано выше, сложность майнинга контролирует среднее время блока, увеличивая трудность угадывания следующего блока.
Давайте взглянем на гипотетический пример:
Введите NiceHash в поле DATA и выберите Difficulty 1, затем нажмите на кнопку MINE. Ваш компьютер будет угадывать nonce, пока вывод хэша не начнется с четырех нулей. Нахождение правильного nonce должно занять несколько секунд.
Если вы измените уровень сложности на 2, компьютер будет угадывать nonce, пока вывод хэша не начнется с шести нулей. Решение этой задачи должно занять немного дольше.
Наконец, если вы выберите Difficulty 3, компьютер будет угадывать nonce, пока вывод хэша не начнется с восьми нулей. Это займет больше всего времени и потребует больше вычислительной мощности.
Найти вывод хэша с большим количеством последовательных нулей сложнее. Как следствие, сложность увеличивается и требуется больше вычислительной мощности для угадывания правильного ответа за то же время.