Как реализация объединенного майнинга влияет на глобальный хешрейт альтернативных цепочек?
Подходит ли одно решение для всех? Подходит ли одно решение для некоторых? Уменьшается ли количество «подходящих решений» по мере того, как они тестируются?
Объяснение того, как на самом деле работает объединенный майнинг, было бы превосходным.
Объединенный майнинг позволяет майнеру майнить более одной цепочки блоков одновременно. Преимущество заключается в том, что каждый хеш, который делает майнер, способствует общему хешрейту обеих (всех) валют, и в результате все они более безопасны.
Начнем с общего объяснения: майнер (или контроллер майнинга в случае майнинга в пуле) фактически строит блок для обеих цепочек хеширования таким образом, чтобы один и тот же расчет хэша защищал оба блока. Рабочие единицы, основанные на этом блоке, затем назначаются майнерам. Если майнер решает блок (на уровне сложности одной или обеих цепочек блоков), блок повторно собирается с завершенным доказательством работы и отправляется в правильную цепочку блоков (или оба блока повторно собираются отдельно и каждый отправляется в соответствующую цепочку блоков). сеть, если она соответствует обоим их требованиям сложности).
Единственная запутанная деталь заключается в том, как один и тот же хеш может защитить обе цепочки блоков. Я буду использовать пример Биткойна и Namecoin, где Namecoin поддерживает объединенный майнинг, а Биткойн — нет:
Во-первых, майнер должен собрать набор транзакций для обеих цепочек блоков. Затем он собирает последний блок Namecoin и хэширует его. Затем он создает транзакцию, содержащую этот хэш, действительный в цепочке Биткойн, и вставляет его в транзакцию Биткойн, установленную на вершине дерева. Затем он собирает окончательный биткойн-заголовок с этой транзакцией и отправляет рабочие единицы.
Если майнер решает хэш на уровне сложности Биткойн, блок Биткойн собирается и отправляется в сеть Биткойн. Хэш Namecoin ничего не делает, и сеть Биткойн игнорирует его.
Если майнер решает хеш на уровне сложности Namecoin, блок Namecoin собирается. Он включает в себя набор транзакций Namecoin, заголовок блока Namecoin, заголовок блока Bitcoin и хэш остальных транзакций в блоке Bitcoin. Весь этот «беспорядок» затем передается в систему Namecoin. Система Namecoin, поддерживающая объединенный майнинг, принимает это как доказательство работы, поскольку она содержит работу, которая должна быть выполнена после того, как заголовок блока и набор транзакций Namecoin были созданы. (Потому что вы не можете создать набор биткойн-транзакций, содержащий этот хеш, и, следовательно, биткойн-заголовок, который защищает его, без этой информации. Таким образом, это доказывает, что работа была проделана.)
Обратите внимание, что майнер может решить обе цепочки одновременно, и он это сделает, если решит на более высокой сложности. Один блок может «выиграть» в публичной цепочке, а другой нет. Они полностью независимы — объединена только добыча полезных ископаемых.
Три ключевых момента, которые нужно помнить:
Выгода для Namecoin очевидна. Многие биткойн-майнеры, вероятно, будут заниматься совместным майнингом, поскольку это практически ничего не стоит им и дает им большую отдачу, чем добыча биткойнов в одиночку. В результате время генерации их блоков будет более предсказуемым, а их транзакции более защищенными от атаки 51%.
По сути, идея состоит в том, что вы собираете блок Namecoin и хешируете его, а затем вставляете этот хеш в блок биткойнов. Теперь, когда вы решаете биткойн-блок на уровне сложности выше или равном уровню сложности Namecoin, это будет доказательством того, что для блока Namecoin был проделан такой же объем работы. Протокол Namecoin был изменен, чтобы принимать биткойн-блок (решенный на уровне сложности Namecoin или выше), содержащий хэш блока Namecoin, в качестве доказательства работы для блока Namecoin. Биткойн-блок будет приемлем для сети Биткойн только в том случае, если он находится на уровне сложности сети Биткойн.
Цепочка блоков Биткойн получает один дополнительный хеш, когда принимается объединенный блок майнинга, а цепочка блоков Namecoin получает немного больше (поскольку она включает блок Биткойн), когда принимается объединенный блок майнинга. Однако из-за дерева Меркла весь блок биткойнов не нужно включать в дерево Namecoin, а только хэши верхнего уровня (поэтому дополнительное раздувание цепочки Namecoin не является большой проблемой).
Поскольку вы зарабатываете больше денег на майнинге как Namecoins, так и майнеров Bitcoin, в конечном итоге все они будут заниматься объединенным майнингом, и уровень сложности для всех цепочек блоков в конечном итоге будет одинаковым.
Кроме того, экономический стимул для майнинга будет комбинированным экономическим стимулом всех сетей, что сделает все сети более безопасными. Конечно, это позволяет конкурирующим сетям (с разным уровнем инфляции) быстро становиться безопасными. Это подвергает Биткойн большей конкуренции.
В конечном счете, ценность Биткойна является отражением потребности в Биткойнах для обмена. Чем больше людей используют биткойн для совершения покупок, тем выше спрос на биткойны и тем выше цена на биткойны. (Спекуляция также повышает цену, но долгосрочная спекуляция, по сути, является ставкой на то, что транзакционный спрос на Биткойн будет увеличиваться в будущем.) Чем выше цена, тем выше стимул для майнинга.
В любой момент времени существует определенный спрос на валюту, подобную биткойнам, для совершения транзакций. Эта потребность не увеличивается с ростом конкуренции. Это означает, что транзакционный спрос на Биткойн действительно такой же, как транзакционный спрос на все существенно схожие формы оплаты. Поскольку все больше валют конкурируют за удовлетворение одного и того же спроса, они фактически снижают спрос на другие валюты по мере того, как они становятся более широко используемыми.
Это означает, что, в конечном счете, в той мере, в какой валюты взаимозаменяемы для конечных пользователей, объединенный майнинг не повышает общую безопасность сетей. Спрос на валюту определяет цену (и, следовательно, стоимость вознаграждения). Повышенный спрос на какую-либо конкретную валюту приводит к снижению спроса на другие, снижая стимул к добыче других валют. Общий стимул является функцией общего спроса на все биткойн-подобные валюты.
За исключением того, что теперь конкурирующие валюты могут позиционироваться как «такие же безопасные, как Биткойн, но с более низкой комиссией за транзакции». Другими словами, между конкурирующими валютами идет гонка уступок за самую низкую комиссию за транзакцию, потому что снижение комиссии за транзакцию не вредит безопасности сети по сравнению с другими объединенными сетями майнинга. Пользователи, следуя своим личным интересам, будут использовать валюту с самой низкой комиссией за транзакции, если она имеет такую же безопасность, как и конкуренты.
Это повысит цену валюты с самой низкой комиссией за транзакцию (поскольку спрос на валюту выше) и снизит цену валюты с более высокой комиссией за транзакцию (поскольку спрос на эти валюты падает, поскольку он удовлетворяется спросом на валюту). конкурирующая валюта). Поскольку стимулом для майнинга являются валюты с более высокой комиссией за транзакцию, общий стимул к майнингу уменьшится. До тех пор, пока добыча валюты объединяется с валютой, находящейся на халяву, она будет бессильна увеличить стимулы путем введения обязательных транзакционных сборов.
Результатом будет снижение стимула к майнингу, уменьшение майнинга, и в конечном итоге все сети, допускающие объединенный майнинг, станут небезопасными.
Сам Сатоши, кажется, является изобретателем объединенного майнинга. По его словам ( bitcointalk.org ):
Я думаю, что BitDNS может быть полностью отдельной сетью и отдельной цепочкой блоков, но при этом делить мощность процессора с биткойнами. Единственное совпадение — сделать так, чтобы майнеры могли искать доказательство работы для обеих сетей одновременно.
Сети не будут нуждаться в какой-либо координации. Майнеры будут подписываться на обе сети параллельно. Они будут сканировать SHA таким образом, что в случае попадания они потенциально решат обе проблемы одновременно. Решение может быть только для одной из сетей, если одна сеть имеет меньшую сложность.
Я думаю, что внешний майнер мог бы вызвать getwork для обеих программ и объединить работу. Может быть, вызвать Биткойн, получить от него работу, передать ее в BitDNS getwork, чтобы объединить в совместную работу.
Вместо фрагментации сети совместно используют и увеличивают общую мощность ЦП друг друга. Это решит проблему, заключающуюся в том, что при наличии нескольких сетей они представляют опасность друг для друга, если доступная мощность процессора совпадет с одной. Вместо этого все сети в мире будут совместно использовать общую мощность ЦП, увеличивая общую мощность. Небольшим сетям было бы проще начать работу, подключившись к готовой базе майнеров.
При объединенном майнинге следует помнить, что хэш блока вспомогательной цепочки (например, namecoin) не обязательно должен быть ниже порога вспомогательной цепочки. скорее, это хэш блока родителя (например, биткойн), который должен быть ниже порога вспомогательной цепи (неймкойн). например, посмотрите, что случилось с namecoin, когда в блоке 19200 был введен объединенный майнинг :
nmc block height: 19199
nmc block hash: 000000000000b19f0ad5cd46859fe8c9662e8828d8a75ff6da73167ac09a9036
nmc block height: 19200
nmc block hash: d8a7c3e01e1e95bcee015e6fcc7583a2ca60b79e5a3aa0a171eddd344ada903d
этого не произошло из-за изменения сложности неймкойна, а также не произошло потому, что сложность неймкойна стала неактуальной из-за объединенного майнинга. скорее это произошло потому, что критерии оценки действительных блоков изменились из-за объединенного майнинга.
в заголовок namecoin были добавлены дополнительные поля, которые позволяют нам убедиться, что блок проверяется на соответствие порогу namecoin. в частности, хэш блока родительской цепочки теперь включен в заголовок блока namecoin. именно этот хэш блока добывается в родительской цепочке, поэтому мы можем просто наблюдать за этим хэшем блока и получать любой результат, который ниже порога namecoin.
причина, по которой этот хэш блока родительской цепочки имеет отношение к вспомогательной цепочке, заключается просто в том, что хеш блока вспомогательной цепочки включен в скрипт coinbase txin в родительской цепочке. этот coinbase txin может принимать любое произвольное значение — он не должен создавать действительный скрипт . так что это хорошее место для размещения хэша блока родительской цепочки.
Итак, работая в обратном направлении, для проверки блока, добытого слиянием, нам нужно:
и поскольку каждый из этих шагов включает одностороннюю хэш-функцию данных на предыдущем шаге, то завершение каждого шага подтверждает все предыдущие шаги.
потрошитель234