Введение. Горнодобывающая трудности Bitcoin регулируется таким образом, что блок будет найден, в среднем один раз каждые 10 минут. Эта цифра появляется в официальном документе Satoshi, но не так много мотивации даются для этого выбора. Это компромисс, полученный с учетом следующих моментов:
Преимущества длительного промежутка времени:
1a. Чем меньше времени впустую, пытаясь продолжить старую цепь, ожидая новые блоки для распространения, что даст злоумышленникам преимущество.
2а. Меньше накладные расходы для передачи и хранения блоков заголовков.
Преимущества короткого промежутка времени:
1б. Меньше дисперсии для шахтеров (и Вы должны заботиться о шахтерах).
2b. Меньше времени торговцы должны ждать, чтобы получить заданный уровень безопасности сделки (есть некоторые тонкости и много путаницы относительно этой точки, но это в основном правильно).
Там нет никакой гарантии, что значение 10 минут является оптимальным, и некоторыми альтернативными валюты blockchain основы ("альтов") Попытались их везение с другой целью. Также вероятно, что оптимальное значение будет меняться с течением времени, так что это может быть желательно, чтобы не иметь его жёстко, а есть система, которая позволяет рыночным силам определять его динамически. В этом посте я предлагаю именно такую систему.
Я буду первым сосредоточиться на сценарии, что награда блок состоит целиком в новых генерируемых монет, без каких-либо сборов по сделке, а также на соответствующих преимуществ 1a и 1b длинных и коротких промежутков времени. Общий случай будет рассмотрен позднее.
Я не знаю, если блок целевого время считается частью точки Шеллинга Bitcoin, который никогда не должен быть изменен, или если предлагаемая система слишком много хлопот, теперь реализовать, что колеса уже находятся в движении. По крайней мере, это может быть что-то рассмотреть для хорошо продуманного альта.
Основы. Сеть будет по-прежнему имеет целевое значение хеша такое, что найти хэш ниже цели будет осуществляться один раз каждые 10 минут в среднем. Тем не менее, при добыче блока, забойщик может выбрать целевой хэш специфический для этого блока, который может быть отличным от целевой сети. Пока блок хэш ниже определенной цели, блок является действительным. Конкретная цель является частью заголовка хеширован блока, так что шахтер может только выбрать цель, прежде чем он начнет добычу.
Выбор отрасли будет основываться на общую работе, содержащейся в отделении, полученный путем суммирования инверсий из конкретных целей.
Блока вес будет соотношение между целевой сетью и конкретной целью. Простой блок с более высокой целью будет иметь меньший вес. Количество новых генерируемых монет будет нормальный блок вознаграждение умножается на вес. Блок, который в десять раз легче найти, чем обычный блок будет давать только десятую часть Bitcoins в качестве награды.
Различные ориентиры, которые теперь срабатывают на определенное количество блоков, вместо этого будет вызвана определенной общей массы. Вознаграждение нормального блока будет вдвое всякий раз, когда общий вес достигает кратный 210000. блок, который пересекает порог, будет вознагражден пропорционально на основе той части веса, который опирается на оба стороны от точки пересечения. Это гарантирует, что общая Bitcoins генерироваться остается 21М, и на том же графике (хотя и с разной степенью детализации).
Трудность (целевая сеть) будет корректироваться каждые 2016 весовых единиц, так что время, чтобы найти в 2016 году вес единицы составляет 2 недели.
Если шахтеры в общих конечном итоге выбор вес выше / ниже, чем 1, то это будет иметь такой же эффект, как и жесткое кодирование промежуток времени больше / меньше, чем 10 минут.
Рыночные силы. Выбор веса, отличный от 1, не имеет никакого влияния на теоретической ожидаемой награде от добычи полезных ископаемых. Однако, это влияет на дисперсию и эффективность.
Шахтер не хотят вес слишком большой, так как это означало бы меньше шансов получить более высокую награду, что увеличивает дисперсию. Если интервал времени по умолчанию является настолько большим, что дисперсия является дорогостоящей, шахтеры будут иметь тенденцию к выбору более низкий вес.
Шахтер не хотят вес слишком мал, так что повысит вероятность того, что он будет отвергнут. Предположим, что средняя TimeSpan настолько коротка, что разветвление является само собой разумеющееся. Если два шахтеры найти блок, в то же время, тот, который выбрал больший вес будет принят, потому что в результате ветвь дольше. Таким образом, чем выше вес шахтер иметь более высокий процент принятых блоков и выше среднего дохода, и это будет толкать рынок обратно к среднему промежутку времени, где конфликты являются не то, что большой частью проблемы.
существует то же соображение, для горных бассейнов тоже, которые ради своих пользователей хотят, чтобы свести к минимуму как дисперсии и недопустимое скорость блока.
В целом, это позволит рынку достичь точки равновесия, которое поражает баланс между дисперсией и разветвлением.
Атакующие манипуляции. Стимулы злоумышленника отличаются от честных шахтеров. Он не будет заботиться о дисперсии в длинных интервалах времени, и выбирая более высокие блоки веса сделает нападение легче. На самом деле, можно показать, что если злоумышленник может выбрать произвольно большой вес, любая попытка двойного израсходуете гарантированно добиться успеха в конечном счете, независимо от hashrate атакующего и честной сети. Будучи в состоянии выбрать очень малый вес делает Финни атаки легче.
Таким образом, некоторые ограничения при выборе веса необходимо будет помещен. Например, она может быть ограничена сверху и снизу некоторыми кратными средней массы последних блоков. Это будет по-прежнему позволит рынку постепенно сходиться к иному промежутку времени, предотвращая атакующий от выбора времени охватывает намного выше или ниже, чем остальная часть сети.
Будущая работа. В результате равновесие может быть таким, что торговцы будут страдать от нужды долгого времени подтверждения; шахтеры могут выбрать короткое время охватывает, что в то время не вызывает много конфликтов, перегружать blockchain с многочисленными заголовками; и пропорциональная зависимость между блоком весом и наградами не совсем понятно, для сценария, когда операционные издержки являются значительными.
Я считаю, что все эти вопросы могут быть решены в рамках переработанный рамках пути операционные издержки работы, которые я думаю, что нужно в любом случае. В будущем я могу написать об этом в отдельном посте.
ПРОДОЛЖЕНИЕ:
Операционные издержки. Когда операционные издержки становятся значительными, описанная выше процедура теряет прямую пропорциональности между блоком весом и вознаграждением, скручиванием структуры стимулов и в пользу более короткие блоков. Это может быть решена с помощью непрерывной версии сборы опрокидывание сделки, который выплачивает комиссионные сборы не единый блок, но несколько блоков в зависимости от их веса. Пропорциональности, таким образом, приблизительно восстановлены.
Если распад достаточно быстро, это все еще дает более высокую награду за единицу веса, тем светлее блок. Это дает пользователям Bitcoin некоторый контроль над выбором шахтеров. Если скорость подтверждения оставляет желать лучшего из-за блок раз слишком долго, они, как правило, платить более высокую плату, чтобы ускорить их сделки; если все это делает, операционные издержки становятся пропорционально больше, чем поколение монет, что увеличивает стимул для добычи легких блоков, которые отрицают проблему.
Этот эффект не больше не справедливо, когда поколение монеты становится незначительным, в котором плата случае сделок является единственным существенным компонентом вознаграждения, и увеличения сборов не способствует более коротким блокам. Поиск механизма, чтобы позволить пользователям поощрять более короткие блоки в этом случае является открытой проблемой. Одна идея состоит в том, чтобы не использовать только экспоненциально затухающий функцию, но дать пользователю возможность выбора между функциями с различными эксцесса.
Блок затраты заголовка содержания. Каждый блок генерируется создает нагрузку на сеть в связи с необходимостью каждого узла, даже SPV клиентов, чтобы загрузить его и хранить его. Таким образом, шахтер должен платить за потребленные его блоком ресурсов. Это может быть в виде фиксированного вычета расходов из вознаграждения блока, который будет добавлен к долгосрочному плату бассейн описанного Вот. Это позволит предотвратить шахтер от выбора очень короткие блоков, которые перегружают сеть.
Спорные операционные сборы. Из-за распад операционных издержек, шахтеры могут быть стимулы, чтобы намеренно отказаться от действительного блока и попытаться найти свой собственный тяжелый блок, что позволяет им собирать больше сборов. Это может быть решена по принципу, что оспариваемые операционные издержки будущих периодов - то есть, в случае вилки, платы которых блоки имеют в общем не платят ни одному из них, бур, а приостанавливалось и не добавил обратно в пул до блоков встречаются с общим весом, равным текущему максимальным весом. Это относится только к сборам и не coinbase. Таким образом, нет никакого стимула, чтобы создать вилку, когда вы знаете, что вы потеряете награду вы пытались вернуть. Это также делает желательные вилы, что гораздо более болезненным, но это будет компенсироваться за счет отсроченных платежей, которые будут существовать в любое время.
Осуществление этого может быть сложно, и требует, среди прочего, что недействительные блоки будут рассмотрены при расчете блока наград действующей цепи.