Ньютоновская сила тяжести Биткойна

HashFlare

ComputerUniverse Введи промокод FW7FRUX при покупке и получи скидку 5 евро

В последние годы много писали об «огромном расходе энергии», связанном с алгоритмом доказательства выполнения работы (Proof of Work, PoW) Биткойна. Мы попытаемся подвергнуть сомнению это распространённое мнение, поставив под вопрос главные показатели, используемые для демонстрации предполагаемого роста неэффективности PoW Биткойна.

Пролог: грядёт криптоапокалипсис

Не так давно во всех СМИ появились новости о грядущем криптоапокалипсисе. PoW уничтожит мир в 2020 г…

Новостной коллаж
«Биткойн нерационален Одна транзакция Биткойна потребляет столько энергии, сколько ваш дом использует за неделю. С ростом цены Биткойна растёт его энергопотребление. Энергопотребление Биткойна чрезвычайно высоко в сравнении с обычными цифровыми платежами, и одна транзакция сейчас потребляет столько энергии, сколько ваш дом использует за неделю».

«Чтобы сделать верификацию (майнинг) затратной, алгоритм верификации требует много вычислительной мощности, а следовательно, электричества. Сайт Digiconomist создал индекс энергопотребления Биткойна, оценивающий этот показатель. И результаты отрезвляют. На момент написания этих строк верификация одной транзакции в блокчейне Биткойна потребляет примерно 200 кВт⋅ч. Текущий индекс энергопотребления Биткойна 200 кВт⋅ч – оценка расхода электричества на одну транзакцию Биткойна».

«Сегодня на каждую транзакцию Биткойна требуется столько электричества, сколько в день в США потребляет 9 домов. И майнеры постоянно устанавливают новые и более быстрые компьютеры. Совокупная вычислительная мощность сети Биткойна уже в 100 тыс. выше, чем у 500 самых быстрых суперкомпьютеров мира вместе взятых. Оценка кВт⋅ч на транзакцию».

«Тем не менее, поскольку правительства смотрят в будущее и разрабатывают политику производства энергии, исследования должны заставить задуматься. Учитывая среднее потребление электричества на транзакцию 300 кВт⋅ч и потенциальный рост до конца 2018 г. выше 900 кВт⋅ч, де Ври заключил: “У Биткойна есть большая проблема, и она быстро растёт”».

«Отдельная транзакция Биткойна сейчас потребляет столько электричества, сколько ваш дом потребляет за неделю. С ростом Биткойна растёт и его непомерное использование энергии. Криптовалюте следует объясниться насчёт своего энергопотребления».

«Несмотря на то, что вы, возможно, читали, у нас нет точных цифр энергопотребления Биткойна. Сайт Digiconomist ведёт статистику энергопотребления Биткойна и выступает главным источником публикаций на эту тему. Эта статистика иногда ужасает: текущее энергопотребление Биткойна составляет 30,2 тераватт-часа (ТВт⋅ч), что больше, чем у 63 стран, а  отдельная транзакция потребляет столько энергии, сколько хватит на весь день примерно 10 американским домам. Но не стоит слепо верить этим цифрам».

Если вчитаться, то можно заметить, что большинство этих статей основаны на результатах анализа, предоставленных Алексом де Ври, «финансовым аналитиком и специалистом по блокчейну», сотрудником PWC Netherlands и автором сайта Digiconomist.

Должен признаться, это исследование вызывает у меня смешанные чувства. Мои претензии к работе де Ври касаются не оценки потребления электричества (эта часть уже получила свою справедливую долю критики), но постоянного использования конкретного показателя: потребления электричества на транзакцию. Не поймите меня неправильно. Если говорить о коммуникации, то этот показатель гениален, особенно для тех, кто нуждается в аргументах против PoW Биткойна. Цифра кажется настолько безобразно диспропорциональной, что потребность в дальнейшей дискуссии отпадает. Проблема в том, что этот показатель фундаментально неверен. По нескольким причинам.

Во-первых, число транзакций путают с числом платежей. Но будем честны, это фактические цифры радикально не меняет. Так что давайте об этом забудем.

Вторая проблема в том, что цифры часто публикуют, не уточняя, что корреляции между потреблением электричества и числом транзакций не существует. Другими словами, почти никогда не признаётся, что потребление электричества по отношению к числу транзакций представляет собой фиксированные издержки (а не переменные). Благодаря техническим решениям, таким как платёжные каналы или сеть Lightning, очевидно, что мы можем радикально сократить значение этого показателя настолько, насколько захотим. Это свидетельствует о двух вещах: показателем легко можно злоупотреблять, и он ничего не говорит нам о будущей эффективности PoW Биткойна.

Последняя проблема этого показателя в том, что он способствует ошибочному пониманию пользы PoW Биткойна. Неудивительно, что он обрёл особую популярность в период безумия «блокчейн, не Биткойн», но нам следует сделать всё возможное, чтобы способствовать рациональному мышлению, а не бесконечным спорам, основанным на эмоциональных реакциях.

Итак, дойдя до этого момента, мы сталкиваемся с очевидным вопросом…

В чём польза PoW Биткойна?

Теория «золотодобычи»

Первая теория заключается в том, что главная польза алгоритма PoW в выпуске новых монет. Пол Шторц написал хорошую статью на эту тему. Эта теория соблазняет тем, что она, на первый взгляд, согласуется с распространённой метафорой золотодобычи, используемой для объяснения механизма.

Данная теория мне симпатична, и я считаю, что она отражает важный аспект протокола, но в этой статье я не буду рассматривать выпуск новых монет как главную функцию алгоритма PoW. В поддержку этого выбора я приведу следующее наблюдение: хотя ожидается, что эмиссия новых монет прекратится примерно в 2140 г., остановка Биткойна в ту же дату не планируется. А значит, PoW играет в Биткойне другую важную роль.

Теория «четвёртого раздела»

Вторая теория заключается в том, что ответ на наш вопрос был дан 10 лет назад создателем Биткойна. А именно, в четвёртом разделе whitepaper.

4. Доказательство выполнения работы

Чтобы реализовать распределённый сервер меток времени на пиринговой основе, понадобится использовать систему доказательства выполнения работы, подобную Hashcash Адама Бэка, вместо газеты или постов Usenet. Доказательство выполнения работы включает поиск такого значения, что после хеширования, например с помощью SHA-256, хеш начинается с определённого количества нулей. Средняя требуемая работа экспоненциально зависит от количества требуемых нулей и может быть верифицирована с помощью единственного хеша.
В нашей сети меток времени мы реализуем доказательство выполнения работы путём увеличения нонса в блоке до тех пор, пока не будет найдено значение, дающее хешу блока нужное количество нулей. Если были потрачены мощности процессора на доказательство выполнения работы, блок не может быть изменён без повторения этой работы. Поскольку последующие блоки присоединяются к нему по цепочке, для изменения блока потребуется переделать все блоки, идущие после него.

Доказательство выполнения работы также решает проблему определения представления большинства в принятии решения. Если бы большинство базировалось на принципе «один IP–адрес – один голос», то его смог быть спровоцировать любой, кто способен распределить множество IP-адресов. Доказательство выполнения работы – это фактически «один процессор – один голос». Решение большинства представлено самой длинной цепочкой, в которую вложено больше всего усилий по доказательству выполнения работы. Если большая часть вычислительной мощности контролируется честными узлами, то честная цепочка будет расти быстрее всех, обойдя любые конкурирующие цепочки. Чтобы модифицировать старый блок, злоумышленнику понадобится переделать работу этого блока и всех последующих, после чего догнать и обогнать честные узлы. Позже мы покажем, что вероятность успеха более медленного злоумышленника экспоненциально сокращается с добавлением последующих блоков.
Чтобы компенсировать рост аппаратной скорости и меняющуюся со временем заинтересованность в поддержании узлов, сложность доказательства выполнения работы определяется скользящим средним числом блоков в час. Если они генерируются слишком быстро, сложность повышается.

Я резюмирую эту теорию следующим предложением:

Главная польза PoW Биткойна в том, что он обеспечивает экономическую историю.

Всё это хорошо, но в текущей форме это утверждение не слишком полезно. Намного лучше будет иметь математическую модель. В связи с этим возникает новый вопрос: как выразить «обеспечение экономической истории» в виде математического уравнения?

Цифровая сила тяжести

Исходя из предыдущего определения, можно утверждать, что наша модель должна быть способна выразить:

  • экономическую стоимость, обеспечиваемую системой (в идеале она должна быть способна делать это атомарно или в совокупности);
  • безопасность, предоставляемую этой экономической стоимости (или хотя бы хороший приблизительный показатель).

Поскольку в протоколе Биткойна нет такого понятия, как «монета», мы будем использовать концепцию неизрасходованного выхода транзакции (Unspent Transaction Output, UTXO) как элементарного объекта стоимости. Тогда легко можно определить общую экономическую стоимость, обеспечиваемую системой, сложив экономическую стоимость всех UTXO, существующих на данный момент (множество UTXO). Хорошо. Мы уже знаем, как выразить в нашей модели экономическую стоимость.

Теперь нужно выразить безопасность. Очевидно, важную роль здесь должно играть PoW. Поэтому уместно будет вспомнить два его свойства:

Доказательство выполнения работы глобально и кумулятивно

В некотором смысле PoW напоминает силу тяжести (точнее гомогенное гравитационное поле), одновременно воздействующую на все тела в её поле, оказывая кумулятивное влияние на их индивидуальные скорости.

В случае Биткойна:

  • когда добывается новый блок, безопасность, обеспечиваемая PoW, одновременно и равно применяется ко всем существующим UTXO;
  • UTXO «аккумулирует» PoW, связанное со всеми блоками, добытыми со времени его создания. При прочих равных, чем больше хешей накопилось, тем более защищён UTXO.

Эти два свойства фундаментальны для изучения экономики PoW Биткойна. К сожалению, в показателях, используемых де Ври, они полностью упущены.

Несколько допущений

Прежде чем продолжить, сделаем несколько допущений:

  • Д1: Последние 9 лет Биткойн был самым безопасным публичным блокчейном, если говорить о PoW.
  • Д2: В любой момент времени вся существующая и значимая вычислительная мощность, применимая для майнинга Биткойна, именно для этого и использовалась.
  • Д3: Предельные издержки и доходность майнинга Биткойна равны.
  • Д4: Комиссиями, которые уплачиваются майнерам, можно пренебречь в сравнении с вознаграждениями за блок.

Хотя в реальном мире эти допущения, скорее всего, окажутся в той или иной степени неверными, они кажутся удовлетворительными для этого предварительного исследования.

Теперь попытаемся превратить идею «обеспечения экономической истории» в математическую модель.

Число «накопленных биткойн-хешей» UTXO

Первая наша попытка будет прямолинейной. По сути, мы умножим стоимость UTXO на число «накопленных» им хешей с его создания до данного блока.

BHSb: число BTC-хешей, накопленных UTXO u после блока с высотой b
Au: Сумма UTXO u
Hi: Ожидаемое число хешей, связанное с блоком с высотой i
bu: Высота блока, содержащего транзакцию, создавшую UTXO u

Несмотря на простоту, данное определение отражает то интуитивное понимание, что система более полезна, когда UTXO «накопил» больше хешей и/или когда его стоимость выше.

Тем не менее эта система не совсем удовлетворительна, потому что число накопленных хешей – не очень хорошее приближение для оценки безопасности UTXO. Основная причина в том, что количество вычислительной мощности, посвящённой майнингу Биткойна, с годами существенно увеличилось. Так, на вычисление PoW, обеспечивавшего старый блок, в 2009 г. могло требоваться 10 минут, но современные ASIC могут вычислить его намного быстрее.

Стена Сатоши (число секунд, требуемое на вычисление PoW старого блока со 100% средней вычислительной мощностью, использовавшейся в период между двумя корректировками сложности).

Кажется очевидным, что нужна лучшая модель, принимающая во внимание этот факт.

Число «накопленных биткойн-дней» UTXO

Для начала добавим ещё одно допущение:

  • Д5: На достаточно больших временных промежутках средняя вычислительная мощность, посвящённая майнингу Биткойна, монотонно увеличивается.

Опять же, нельзя утверждать, что данное допущение всегда верно или всегда будет верно. Тем не менее в прошлом оно почти всегда было верно, так что будем использовать данную гипотезу.

Теперь можно определить безопасность UTXO при блоке B как число дней, которое потребуется для перезаписи истории с момента создания UTXO при использовании для майнинга блока B 100% вычислительной мощности.

Получаем следующее уравнение для отдельного UTXO:

BFSb(u): Число накопленных BTC-дней UTXO u после блока с высотой b
Au: Сумма UTXO u
bu: Высота блока, содержащего транзакцию, создавшую UTXO u
Hi: Ожидаемое число хешей, связанное с блоком с высотой i

и уравнение для множества UTXO:

BDSb: Общее число накопленных BTC-дней множества UTXO после блока с высотой b
Ub: UTXO после блока с высотой b
Au: Сумма UTXO u
bu: Высота блока, содержащего транзакцию, создавшую UTXO u
Hi: Ожидаемое число хешей, связанное с блоком с высотой i

Возможно, вас удивляет выбор «использования для майнинга блока B 100% вычислительной мощности». Всё просто. При наших текущих допущениях такое определение можно рассматривать как своего рода худший сценарий. («Как долго будет оставаться в безопасности данный UTXO, если для изменения истории будет использоваться вся вычислительная мощность?»). Более того, хотя альтернативный сценарий (50%, 200%, N%) изменит абсолютные значения наших результатов, он не изменит общую эволюцию показателей со временем.

Эффективность PoW Биткойна

Теперь, когда у нас есть модель пользы PoW Биткойна, давайте посмотрим, что мы можем узнать о его эффективности. Для этого определим два показателя.

Издержки единицы накопленных биткойн-дней, добавляемых данным блоком

Для получения этого первого показателя разделим вознаграждение за блок (см. допущение Д3 о предельных издержках и доходности майнинга Биткойна) на число накопленных дней Биткойна, которое блок добавляет существующим UTXO.

Получим следующее уравнение:

UCb: Издержки единицы накопленных BTC-дней, добавляемых блоком с высотой b
Rb: Вознаграждение за блок с высотой b
Hb: Ожидаемое число хешей, связанное с блоком с высотой b
Ub: Множество UTXO после блока с высотой b
bu: Высота блока, содержащего транзакцию, создавшую UTXO u
Au: Сумма UTXO u

По определению, сумма стоимости всех существующих UTXO – это число существующих биткойнов, равное сумме вознаграждений всех предшествующих блоков:

Поэтому можно переписать наше уравнение:

и наконец в упрощённом виде:

Здесь стоит сделать несколько наблюдений.

Во-первых, издержки единицы выражены по умолчанию в биткойнах/накопленных биткойн-днях, но мы получим такой же результат, если выразим их в долларах/накопленных USD-днях (числитель и знаменатель нашего уравнения выражают сумму биткойнов в один и тот же момент).

Но главное, стоит заметить, что издержки единицы не зависят от внешних факторов, таких как рыночная цена или количество вычисленных хешей.

Издержки единицы зависят только от правил, определяющих контролируемое предложение валюты. Они определены заранее.

Рассмотрим график этого показателя.

Издержки единицы накопленных BTC-дней, добавляемых блоком N

Издержки единицы (в BTC/накопленных BTC-днях); Высота блока

Думаю, многих этот график удивит, но можно ясно увидеть, что издержки единицы со временем монотонно сокращаются. Такой результат можно объяснить совместным влиянием дефляционной модели Биткойна (уполовиниванием вознаграждений) и временной инфляции, вызванной созданием новых монет. Ситуация должна измениться, когда будут созданы все биткойны. Тогда на издержки единицы будут влиять внешние факторы, но сложно (если вообще возможно) спрогнозировать развитие ситуации. Отметим, что ситуация может также измениться раньше этой даты, если комиссия станет важной составляющей мотивации майнинга.

Средние издержки накопленных биткойн-дней, добавленных до данного блока

Для получения этого второго показателя сложим все издержки майнинга от первого блока до интересующего нас блока. После этого разделим эти общие издержки на сумму всех накопленных биткойн-дней, созданных этими блоками.

Обратите внимание, что мы выразим все издержки и суммы UTXO в долларах, потому что мы будем иметь дело со стоимостью UTXO в разное время.

Получим следующее уравнение:

ACb: Средние издержки накопленных доллар-дней до блока с высотой b
Hj: Ожидаемое число хешей, связанное с блоком с высотой j
Rb: Вознаграждение за блок с высотой b
Pb: Рыночная цена при блоке с высотой b
Ub: Множество UTXO после блока с высотой b
bu: Высота блока, содержащего транзакцию, создавшую UTXO u
Au: Сумма UTXO u

Его можно переписать следующим образом:

и наконец в упрощённом виде:

Получим следующий график:

Средние издержки накопленных доллар-дней до блока N

Средние издержки (доллары/накопленные доллар-дни); Высота блока

Как и в случае издержек единицы, средние издержки указывают на то, что на самом деле PoW Биткойна со временем становится более эффективным. Такой результат может показаться противоречащим здравому смыслу из-за явного роста абсолютных издержек PoW Биткойна, но он начинает быть понятным, если осознать, что этот рост издержек уравновешивается ростом общей стоимости, обеспечиваемой системой.

В заключение

Мы обсудили, почему средние издержки на транзакцию не являются адекватным показателем для оценки эффективности PoW Биткойна и почему эту эффективность необходимо определить посредством обеспечения экономической истории.

Исходя из этого наблюдения и двух важных свойств PoW Биткойна (его глобального и кумулятивного влияния), мы формализовали пользу PoW с помощью очень простой математической формулы, определяющей общее число биткойн-дней, накопленных системой.

Наконец, мы вывели два показателя, из которых следует, что, вопреки распространённому мнению, PoW Биткойна становится всё более и более эффективным.

Источник

Ньютоновская сила тяжести Биткойна