Введение в технологию Блокчейн
Шрифт:
В качестве альтернативы это может быть пропорционально владению валютой, и это называется системой доказательства ставки.
Хотя эта система не используется в биткойне, доказательства ставки является альтернативной моделью, и такая система используется в других криптовалютах.
Мы рассмотрим доказательства ставки и другие варианты доказательства работы позже.
Вернемся
Давайте попробуем лучше понять, что значит выбирать узлы пропорционально их вычислительной мощности.
Другим способом понять это является то, что мы позволяем узлам конкурировать друг с другом, используя их вычислительную мощность, и это приводит к тому, что узлы автоматически выбираются в этой пропорции.
Еще один взгляд на доказательство работы заключается в том, что создание нового идентификатора узла будет умеренно тяжелым.
Это своего рода налог на создание идентичности и, следовательно, на атаку Сибиллы.
Это может показаться немного расплывчатым, поэтому давайте посмотрим на детали системы доказательства работы, которые используются в биткойне, чтобы прояснить эту систему.
Биткойн получает доказательства работы с использованием головоломок.
Чтобы создать новый блок, узел, который предлагает этот блок, должен найти номер или nonce.
Когда вы объединяете nonce, хеш предыдущего блока и список транзакций, которые составляют новый блок, и получаете хэш всей этой строки, то этот полученный хэш должен быть числом, которое попадает в диапазон, которое довольно мал по отношению к значительно большему выходному пространству этой хэш-функции.
Мы можем определить такое целевое пространство или диапазон, как любое значение, которое попадает ниже определенного целевого значения. В этом случае nonce должен будет удовлетворять неравенству.
Как мы видели ранее, обычно блок содержит ряд транзакций, которые предлагает узел.
Кроме того, блок также содержит указатель хеша на предыдущий блок.
И кроме того, теперь мы требуем, чтобы блок также содержал nonce.
Идея состоит в том, что мы хотим сделать сложной задачу нахождения nonce, которое удовлетворяет определенному свойству, состоящему в том, что хеширование всего блока вместе, в том числе и nonce, приведет к определенному типу результата.
Если хеш-функция удовлетворяет свойству головоломки, то единственный способ добиться успеха в решении этой задачи с хэшем состоит в том, чтобы просто перебирать nonce один за другим, пока вам не повезет.
Так что конкретно, если целевое пространство для результата составляет всего один процент от общего объема выходных данных, вам нужно попробовать около 100 nonce, прежде чем вы попадете в диапазон.
В реальности,
Это понятие головоломок и доказательство работы полностью устраняет необходимость волшебного выбора случайного узла.
Вместо этого узлы просто самостоятельно конкурируют, чтобы все время решать головоломки.
Время от времени одному из них везет, и он находит случайный нонс, который удовлетворяет этому свойству.
Затем этот удачливый узел предлагает следующий блок.
Вот каким образом система полностью децентрализована.
Никто не решает, какой узел получает возможность предложить следующий блок.
Существует три важных свойства головоломки.
Во-первых, ее довольно сложно вычислить.
И эта сложность меняется со временем.
По состоянию на конец 2014 года уровень сложности составлял около 10 в 20 степени хэшей на блок.
Другими словами, размер целевого пространства составлял всего 1/(10 в 20 степени) от размера выходного пространства хэш-функции.
Это очень много вычислений – например, это за пределами возможности обычного ноутбука.
Из-за этого далеко не все узлы пытаются конкурировать в этом процессе создания блока.
Этот процесс повторяющихся попыток и решений этих головоломок хэша известен как майнинг биткойна и участвующие в этом процессе узлы называются майнерами.
Хотя технически кто угодно может быть майнером, для этого сейчас высокая стоимость входа в этот процесс.
Второе свойство головоломки состоит в том, что мы хотим, чтобы стоимость решения была параметризируемой, а не фиксированной стоимостью все время.
То, как это делается, заключается в том, что все узлы в одноранговой сети Bitcoin автоматически пересчитывают размер целевого пространства в виде доли выходного пространства, каждые 2016 блоков.
Они пересчитывают диапазон таким образом, чтобы среднее время между последовательными блоками, создаваемыми в сети Биткойн, составляла около 10 минут.
С 10-минутным среднем временем между блоками, 2016 блоков работают до двух недель.
Другими словами, пересчет целевого пространства происходит примерно раз в две недели.
Давайте подумаем, что это значит.
Если вы майнер, и вы вложили определенное количество компьютерного железа в добычу биткойнов, но общая экосистема майнинга растет, в нее поступают все больше майнеров или они развертывают все более мощное аппаратное обеспечение, это означает, что за двухнедельный период, будет найдено немного больше блоков, чем ожидалось.
Таким образом, узлы будут автоматически перенастраивать диапазон головоломки, и объем работы, которую вы должны будете сделать, чтобы найти блок, будет увеличиваться.
Поэтому, если вы вложили фиксированный объем инвестиций в оборудование, скорость, с которой вы находите блоки, фактически зависит от того, что делают другие майнеры.
Есть очень хорошая формула, чтобы зафиксировать то, что вероятность того, что любой данный майнер, например, Алиса, выиграет следующий блок, пропорциональна доли глобальной хэш-мощности, которую она контролирует.