В чем сложность криптовалюты?
Трудность - это параметр, который биткойны и другие криптовалюты используют для поддержания стабильного среднего времени между блоками при изменении хэш-мощности сети.
Сложность криптовалюты
Биткойн и другие криптовалюты, которые используют блокчейны для проверки работоспособности, поддерживаются в процессе, называемом майнингом. В этой системе майнеры - компьютеры, на которых запущен программный клиент криптовалюты - соревнуются в поиске нового блока, добавляя в цепочку самый последний пакет данных транзакций. Они получают вознаграждение и (в некоторых случаях) вознаграждение за новые токены взамен.
Время, необходимое для поиска нового блока, зависит от двух факторов: случайного шанса и сложности. Начните со случайного шанса. Майнеры берут пакет данных транзакции и запускают его с помощью алгоритма хеширования, односторонней функции, которая - с учетом определенного набора данных - всегда будет выдавать один и тот же вывод, но вывод которого не может быть сторнирован для отображения исходных данных. Нет никакого способа предсказать, каким будет хеш. Новый блок обнаруживается, когда хеш соответствует определенному требованию. Поскольку каждый набор данных имеет только один выход для данной хэш-функции, майнеры должны добавить одноразовый номер - «число, использованное один раз» - к данным, чтобы получить новый хэш. Если результат все еще не соответствует требованию, майнер пытается снова с новым одноразовым номером.
Требование, которому должен соответствовать хеш, соответствует сложности: действительный хеш должен быть ниже определенного целевого значения, установленного автоматически (и периодически корректируемого) по протоколу криптовалюты. Чем ниже целевое значение, тем больше повторений хеш-функции должен пройти майнер, чтобы получить приемлемый результат - другими словами, чем выше сложность. Майнер теоретически может получить удачу и получить действительный хеш для данного блока с первой попытки: однако со временем более высокая сложность означает, что майнеры должны в среднем подключаться к большему количеству одноразовых номеров на блок.
Какой цели служит трудность?
Зачем устанавливать более высокую сложность, если единственным практическим результатом является то, что майнеры должны повторять ту же функцию больше? Биткойн-документ объясняет:
«Чтобы компенсировать увеличение аппаратной скорости и разный интерес к работе узлов с течением времени, трудность доказательства работы определяется скользящей средней, нацеленной на среднее количество блоков в час. Если они генерируются слишком быстро, сложность возрастает. "
Биткойн предназначен для добавления нового блока в блокчейн в среднем каждые 10 минут. (Другие криптовалюты предназначены для более частых блоков; например, litecoin стремится к 2, 5 минутам.) Проблема в том, что количество вычислительной мощности, которой коллективно управляют майнеры сети, может сильно различаться. Когда Сатоши Накамото добыл первый блок, в сети была только одна машина - вероятно, простой ноутбук или настольный компьютер. В настоящее время существует несколько разветвленных ферм ASIC, имеющих размер склада (ASIC - это машины, специально разработанные для максимально быстрого выполнения хэш-функций).
Чтобы гарантировать, что сеть генерирует новый блок с постоянной средней скоростью, программное обеспечение настроено на автоматическую настройку целевого хэша вверх или вниз, что приводит к меньшей или большей сложности, соответственно. Когда Накамото добыл блок генезиса, сложность биткойна составила 1.
Чтобы проверить сложность биткойнов в реальном времени, вы можете обратиться к этой таблице.
По состоянию на конец июля 2019 года сложность составляет 9, 013 трлн. График ниже показывает изменение сложности биткойнов с течением времени:
