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