Майнинг и конкуренция в хеш-вычислениях . Часть 1.1

…За последние два года внутренняя структура специализированных для майнинга АБ1С-ЧИПОБ существенно уплотнилась, достигая ныне существующего предельного размера (разрешения) при производстве кремниевых микросхем, равного 16 нанометрам (нм). В настоящее время производители АБГС-чипов намерены обогнать производителей обычных СРи-микросхем, проектируя 14-нанометровые чипы, поскольку рентабельность майнинга, определяющая развитие этой отрасли компьютерной индустрии, гораздо эффективнее, чем для компьютеров общего назначения. Теперь уже не наблюдается гигантских скачков в производительности майнинга биткойнов, так как эта отрасль достигла максимума, определяемого законом Мура (Moore’s Law), утверждающего, что плотность элементов в чипе должна удваиваться приблизительно через каждые 18 месяцев1. Вычислительная мощность для майнинга в биткойн-сети продолжает расти по экспоненте, так как гонка за достижение более высокой плотности размещения элементов в микросхемах идет бок о бок с гонкой за более высокую насыщенность аппаратными средствами центров данных, где могут быть размещены тысячи таких микросхем. Теперь уже никого не интересует, какой объем майнинга можно выполнить на одном чипе, более важно, сколько чипов можно втиснуть в одно здание (или помещение) при постоянно сохраняющейся проблеме отведения тепла и обеспечения соответствующим уровнем электроэнергии.

Решение с расширением диапазона дополнительных значений попсе

С 2012 года майнинг биткойнов начал развиваться в направлении устранения основного ограничения в структуре заголовка блока. В начальном периоде развития биткойн-системы майнер мог найти блок с помощью итеративного перебора значений попсе для получения хэш-значения, меньшего, чем установленное целевое значение. По мере роста уровня сложности майнерам часто приходилось перебирать все 4 миллиарда значений попсе без обнаружения желаемого блока. Но эта проблема была легко устранимой с помощью обновления метки времени блока с учетом фактически затраченного на вычисления времени. Так как метка времени является частью заголовка, ее изменение позволяло майнерам повторять итеративный проход по значениям попсе с другими результатами. Но после того как мощность аппаратного оборудования для майнинга превысила 4 Гхэш/сек, сложность этой методики стала возрастать, поскольку перебор всех возможных значений попсе стал занимать менее секунды. После внедрения в процесс майнинга ASIC-оборудования и соответствующего повышения вычислительной мощности до нескольких Тхэш/сек для программного обеспечения майнинга потребовалось увеличение области допустимых значений попсе, чтобы обеспечить возможность нахождения корректных блоков. Можно было бы увеличить поле метки времени на один бит, но перемещение ее в слишком далекое будущее привело бы к тому, что блок становился некорректным. Был необходим новый источник изменений в заголовке блока. Решением стало использование coinbase-транзакции как источника дополнительных значений попсе. Так как в coinbase-скрипте может сохраняться от 2 до 100 байтов данных, майнеры начали использовать этот «резерв» в качестве области дополнительных значений попсе, что позволило вести поиск в гораздо более широком диапазоне значений заголовка для поиска корректных блоков. Coinbase-транзакция включена в дерево Меркле, таким образом, любое изменение в coinbase-скрипте также изменяет корень дерева Меркле. Восемь байтов дополнительного значения попсе плюс 4 байта «стандартного» значения попсе позволяют майнерам исследовать в общей сумме 296 (8 с 28 нулями) возможных значений в секунду без каких-либо изменений метки времени. Если в будущем майнеры смогут превысить и этот предел возможностей, то можно будет изменять метку времени. Кроме того, в coinbase-скрипте остается место для будущего расширения области допустимых значений попсе.