Как улучшить рынок комиссионных в сети Биткоин?

За последний год мы увидели то, как быстро развивается финансовая сторона сети Биткоин. По мере увеличения общего количества операций растет и спрос на вместительность блоков. Сейчас она ограничивается одним мегабайтом в, примерно, каждые 10 минут.

Эта статья сосредоточится на прошлой и нынешней ситуации с выплатами за транзакции в сети Биткоин.

Как было раньше?

В первые годы существования системы плата за операции была опциональной, поскольку она считалась «пожертвованием» майнеру. В «официальном» клиенте Bitcoin Core эта ставка менялась вместе с ростом курса обмена криптовалюты, от 0.01 BTC до 0.0005 BTC и до 0.0001 BTC.

С течением времени стало понятно, что запрограммированные статические комиссионные являются весьма неудачным решением по нескольким причинам:

  • Для майнеров значение имеет не столько сумма, сколько соотношение денег к байту данных. Поскольку в их распоряжении находится 1 МБ свободного места, им нужно разместить там как можно больше транзакций, чтобы получить больше денег. При условии стандартной ставки в 0.0001 BTC, передача 200 байт информации выгоднее, чем 1000 байт, ведь в первом случае есть возможность получить награду за 5 отдельных операций вместо одной.
  • С точки зрения пользователя, если всегда устанавливать одинаковое количество отчислений, в конце концов получится сделка с огромным объемом данных (из-за множества маленьких затрат), но очень маленькой ставкой, которая никогда не будет подтверждена.
  • Клиенты со статическими комиссионными не смогут быстро адаптироваться к изменчивым условиям рынка. Как результат, люди будут либо переплачивать, либо недоплачивать за сделки.

Релиз программы версии 0.3.15 в ноябре 2010-го года включал в себя изменения касаемо вычисления суммы гонорара. До этого ставка зависела от объема информации внутри транзакции. Тем не менее, не все электронные кошельки поддерживали изменения, поэтому многие пользователи продолжали слепо устанавливать статическую плату за операцию. Это не являлось проблемой до того момента, пока не начались разговоры о максимальном размере блока, так как майнеры могли подтвердить практически любую валидную сделку.

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

Программа Bitcoin Core начала высчитывать динамические платежи начиная с версии 0.10 в феврале 2015-го года. С тех пор Алекс Моркос постоянно улучшал систему.

Появление рынка комиссионных

Антуан ле Кальвез, разработчик p2sh.info, предоставил исторический анализ динамических и статических комиссионных (далее ДК и СК соответственно).

Вот график за последние два года:

54414615

Мы видим значительные скачки в использовании ДК во время стресс-теста сети и атак на неё последней осенью.

Есть подозрение, что причиной этому послужил не переход обычных пользователей на ДК-кошельки, а то, что сами злоумышленники совершали платежи, которые намеренно были выше используемых в большинстве кошельков СК.

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

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

72502999

А. Таунс совершил более глубокий разбор. Он определил восемь этапов развития РК в истории сети Биткоин:

91003109

Таунс пришел к нескольким выводам касаемо того, как этот рынок повлиял на пользователей:

  • Значительное количество кошельков использует ДК, высчитывая соотношение деньги/байт.
  • Многие клиенты все еще не используют динамический подсчет.
  • Диктуемые рынком ставки смогут повышаться только с ростом популярности кошельков со встроенным принципом ДК.
  • Переплачивание рыночной стоимости передачи не поможет ей подтвердиться быстрее.
  • На СК-кошельки повлияли два события. Довольно скоро произойдет третье.
  • ДК-клиенты в среднем платят значительно меньше денег за сделку.

В любом случае, не все так просто с ДК. Как гласит поговорка, каждое решение порождает новые проблемы.

Трудности использования ДК

Расчёты ДК никогда не будут идеальными, так как они являют собой попытку предвидеть будущее. Датский физик Нильс Бор однажды сострил: «предсказание ― трудная штука, особенно когда оно касается будущего». Если метод подсчета выплаты неверно вычислит будущее положение дел на РК, то люди попадут в своеобразную ловушку.

Это может произойти в том случае, когда человек совершает операцию с приемлемой ценой гонорара, но сразу после этого совершается множество других, с более высокими суммами. Таким образом, первая сделка теряет свой приоритет среди майнеров. Проблема в невозможности обновить цену без использования метода ‘replace-by-fee’.

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

Кальвез в своем твиттер-аккаунте прокомментировал график следующим образом: «Хм, возможно, @BlockCypher нуждается в пересмотре их алгоритма расчёта комиссионных для предотвращения таких выбросов».

Кальвез не имел намерения подразнить BlockCypher. Дело в том, что множество клиентов имеют проблемы с гонорарами за подтверждение передачи. Этому подвержен даже BC.

Над этим стоит призадуматься. Сеть с точки зрения вашего узла может отличаться от того, как её «видят» другие, а это уже непосредственно влияет на прогнозы.

Макрокризис

Невзирая на множество сложных задач, которые появляются перед разработчиками Биткоин-сети касаемо платы за транзакцию, надо быть также осведомленными о том, что влияет на РК в целом.

Есть несколько потенциальных сценариев, которые могут взвинтить уровни комиссионных быстрее, чем следует:

  1. Плохо написанные методы расчёта ДК могут создать «петлю обратной реакции», из-за которой бесконтрольно растет сумма платежей, а сделки заполняют сеть без оглядки на резерв памяти. Это не страшно, если большинство сделок инициируются людьми, которые видят отображаемые цены и решают, слишком ли они большие. Тем не менее, рынок может обрушиться, если множество операций будет совершаться без какого-либо участия людей, а в алгоритмах будет отсутствовать потолок выплачиваемого гонорара.
  2. Недовольные юзеры (либо ленивые разработчики), которые все еще полагаются на запрограммированные цены, могут вручную обновлять настройки своих кошельков. В конце концов это ведет к тому, что остальные люди, использующие СК-принцип, буду делать то же самое для поддержания конкуренции. Как результат ― приспешники ДК-принципа выйдут вперед.

Создание второстепенных РК ― недавняя разработка, которой не удалось привлечь к себе достаточно внимания, невзирая на потенциальную возможность повлиять на рынок в целом.

Она может принять форму специальных «побудительных» программ, как например BTCC’s BlockPriority или воплотиться в приватных закупках предоплаченного блок-места. Это являет собой проблему для разработчиков алгоритмов из-за существования непрозрачных РК, которые невидимы для остального мира.

Приводим цитату из пресс-релиза BTCC: «BlockPriority обращает внимание на транзакции всех пользователей BTCC, включая тех, которые вообще не платят отчислений майнерам».

Это не должно стать проблемой для алгоритма приложения BC, но более бесхитростные приложения могут пострадать. Урок для разработчиков ― если вы видите подтвержденные операции с низкими ставками «майнерских комиссионных», это больше не значит, что оперирование сделками с такой же ценой будет безопасным для сервиса.

Это имеет экономическое значение для майнерских пулов. Они могут продавать заранее оплаченные контракты на блок-место, так как это предоставляет им новый и предсказуемый поток дохода.

Вместе с тем, хотелось бы предостеречь участников пулов: вы не сможете скрывать подобную активность, если она будет иметь значительную долю ваших транзакций. Существует достаточное количество разработчиков кошельков, которые следят за таким поведением. Если это станет проблемой ― обо всем узнает общественность. Соответственно, хэшеры покинут пул в поисках более прибыльного места.

Продвигаясь вперед

Сейчас осталось довольно много клиентов и Биткоин-сервисов, где до сих пор не реализована функция ДК. Подобное бездействие скорее всего не сулит пользователям ничего хорошего. Без имплементации ДК, каждая осуществляемая транзакция значит одно из двух:

  1. Вы платите выше рыночной цены, не добиваясь при этом более быстрого подтверждения операции.
  2. Вы недоплачиваете ― теряете свое время.

Вариант, когда транзакция с СК попадает «в точку» рыночного курса, имеет очень маленькую вероятность.

Разработчики должны добавить механизмы защиты в свои клиенты. Примером могут быть «пределы здравого смысла» на микроуровне и прерыватели цикла на макроуровне. Это не даст пользователям «выстрелить себе в ногу».

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

42062043

Разработчикам также стоит поразмыслить о собственных методах с точки зрения конкуренции и сделать их надежными относительно разнообразных эксцессов. Не помешает и мониторинг данных расчёта платежей вместе с оповещениями об их излишней волатильности.

Необходимо осознавать, что не существует универсального метода ― все зависит от конкретного случая и условий. Алгоритм Bitcoin Core нацелен на максимальную обобщенность и консервативность для увеличения надежности. В некоторых случаях это выливается в переплачивание.

Джеймсон Лопп призывает все Биткоин-клиенты сделать открытый доступ к своим системам расчётов. Сами алгоритмы имеют дело с конкуренцией, поэтому не страшно, если они останутся закрытыми, но с помощью мониторинга высчитывания мы сможем пресечь любую необычную активность. Возможно, кто-то даже создаст с этой целью отдельное приложение.

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

Биткоин-пользователи не должны следить за подтверждением блоков. Это задача клиентов, равно как и наличие нескольких простеньких опций при отправке транзакции.

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *