Введение в технологию Блокчейн
Шрифт:
Это означает, что, если у Alice есть оборудование для майнинга, которое составляет около 0,1 процента от общей хэш-мощности экосистемы, она будет добывать примерно один из каждых 1000 блоков.
Какая цель у этой корректировки сложности головоломки?
Почему мы хотим сохранить этот 10-минутный интервал между новыми блоками?
Причина довольно проста.
Если бы блоки были очень близки друг к другу, тогда мы потеряли бы преимущества оптимизации, заключающиеся в том, что мы можем вносить много транзакций в один блок.
Нет ничего
И было много дискуссий о идеальной латентности блока, которую альткоины или альтернативные криптовалюты должны иметь.
Но, несмотря на некоторые разногласия относительно идеальной задержки, все согласны с тем, что это должна быть фиксированная величина.
Вот почему у нас есть функция автоматического пересчета целевого пространства или сложности головоломки.
Способ настройки доказательства работы позволяет нам переформулировать наше предположение о безопасности.
Вместо того, чтобы сказать, что почему-то большинство узлов являются честными в контексте, где узлы даже не имеют идентификаторов и не понимают, что это значит, мы можем теперь четко заявить, что атаки на биткойн маловероятны, если большинство майнеров, взвешенные по хэш-мощности, следуют протоколу – или, являются честными.
Это так, потому что, если большинство майнеров, взвешенные по хеш-мощности, честны, конкуренция за предложение следующего блока автоматически гарантирует, что существует по меньшей мере 50-процентный шанс, что следующий блок, который будет предложен в любой момент, исходит от честного узла.
В области исследований распределенных систем и компьютерной безопасности, как правило предполагают, что некоторый процент узлов является честным, и показывают, что система работает как предназначено, даже если другие узлы ведут себя произвольно.
Это тот же подход, которому следовали и мы, за исключением того, что мы взвешиваем узлы по хэш-мощности при определении большинства узлов.
В исходном документе Биткойн также содержится этот тип анализа.
Но теория игр дает совершенно другой, и, возможно, более сложный и реалистичный способ определения того, как будет себя вести система.
В этом представлении мы не разделяем узлы на честные и злонамеренные.
Вместо этого мы предполагаем, что каждый узел действует в соответствии со своими стимулами.
Каждый узел выбирает (рандомизированную) стратегию, чтобы максимизировать свой выигрыш, учитывая потенциальные стратегии других узлов.
Если протокол и стимулы разработаны хорошо, то большинство узлов будут следовать правилам большую часть времени.
«Честное» поведение – это всего лишь одна стратегия из многих.
Исходя из теории игр, большой вопрос заключается в том, является ли поведение майнера по умолчанию «равновесием Нэша», то есть представляет ли оно стабильную ситуацию, в которой ни один майнер не может реализовать более высокий выигрыш, отклонившись от честного поведения.
Этот вопрос по-прежнему спорный и является активной областью
Равновесие Нэша – одно из ключевых понятий теории игр. Так называется набор стратегий в игре для двух и более игроков, в котором ни один участник не может увеличить выигрыш, изменив свою стратегию, если другие участники своих стратегий не меняют.
Решение головоломок-хэшей вероятностно, потому что никто не может предсказать, какой из nonce приведет к решению головоломки.
Единственный способ сделать это – попробовать nonce один за другим и надеяться, что это удастся.
Математически этот процесс называется испытаниями Бернулли.
Испытание Бернулли – это эксперимент с двумя возможными результатами, и вероятность получения каждого результата зафиксирована между последовательными испытаниями.
Здесь два результата: попадает ли хэш в целевое пространство или нет.
И, предполагая, что функция хэша ведет себя как случайная функция, вероятность этих исходов фиксирована.
Как правило, узлы пробуют так много nonce, что испытания Бернулли, являющиеся дискретным вероятностным процессом, могут быть хорошо аппроксимированы непрерывным вероятностным процессом, называемым пуассоновским процессом, процессом, в котором события происходят независимо с постоянной средней скоростью.
Конечным результатом всего этого является то, что функция плотности вероятности, которая показывает относительную вероятность времени, пока не будет найден следующий блок, выглядит следующим образом.
Это называется экспоненциальным распределением.
Вблизи 10 минут, если существует небольшая вероятность того, что блок будет найден сейчас, следующий блок будет найден очень скоро, скажем, в течение нескольких секунд или минуты.
И существует также небольшая вероятность того, что потребуется целый час, чтобы найти следующий блок.
Но в целом сеть автоматически регулирует сложность, так что межблочное время поддерживается в среднем, в течение 10 минут.
Если вы майнер, вам, вероятно, интересно, сколько времени вам понадобится, чтобы найти блок.
Как выглядит эта функция плотности вероятности?
Она будет иметь ту же форму, но просто будет иметь другой масштаб по оси x.
Опять же, это может быть представлено уравнением.
Для конкретного майнера это будет зависеть от его хэш-мощности.
Если у вас есть 0,1 процента от общей хэш-мощности сети, это уравнение говорит нам, что вы будете находить блоки каждые 10 000 минут, что составляет примерно одну неделю.