- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Создание лучшего рынка комиссий Bitcoin
Разработчик Джеймсон Лопп утверждает, что у Bitcoin теперь может быть рынок комиссий, но это T означает, что сеть оптимизирована для этой среды.
За последний год мы наблюдали, как рынок комиссий за транзакции Bitcoin стремительно развивался. Поскольку объем транзакций продолжает расти, растет и спрос на пространство блока, которое остается ограниченным и составляет 1 мегабайт (МБ) примерно каждые 10 минут.
Так как у нас естьобсуждался проблема увеличения предложения пространства блоков до тошноты, в этой статье основное внимание будет уделено истории и текущему состоянию комиссий за транзакции Bitcoin .
Дело в том, что давление, вызванное высокой конкуренцией за пространство блока, ухудшило пользовательский опыт и, таким образом, побудило Bitcoin кошельки вносить коррективы, чтобы KEEP удовлетворенность пользователей, обеспечивая своевременное подтверждение транзакций.
Однако нам еще далеко до оптимального рынка комиссий.
История комиссий за транзакции
В течение первых нескольких лет существования биткоина комиссии за транзакции были необязательными — они считались пожертвованием майнерам.

Кошельки платили одинаковую комиссию за каждую транзакцию — по умолчанию устанавливалась комиссия, которую разработчик кошелька считал целесообразной.
Комиссия по умолчанию менялась несколько раз за эти годы, поскольку курс Bitcoin рос с 0,01 BTC до 0,0005 BTC и до 0,0001 BTC. Также существовали правила вокруг "приоритетные транзакции« это позволило пользователям отправлять транзакции без комиссии, если входы были достаточно старыми и имели высокую стоимость, хотя на данный момент майнеры в основном отказались от них.
За прошедшие годы мы узнали, что жестко заданные статические комиссии за транзакции ужасны по нескольким причинам:
- Для майнеров важна не абсолютная комиссия, а ставка комиссии за байт данных транзакции. С точки зрения майнера, у него есть только 1 МБ пространства, в которое он хочет вставить как можно больше транзакций, чтобы собрать больше комиссий. Таким образом, транзакция в 200 байт с комиссией в 0,0001 BTC предпочтительнее транзакции в 1000 байт с комиссией в 0,0001 BTC, потому что он может вставить пять первых и собрать в пять раз больше комиссий.
- С точки зрения пользователя, если вы всегда устанавливаете статическую плату, вы, скорее всего, в конечном итоге создадите транзакцию с большим объемом данных (из-за траты большого количества малоценных входных данных) с очень низкой ставкой комиссии, которая может никогда не быть подтверждена.
- Кошельки со статическими сборами T могут адаптироваться к быстро меняющимся рыночным условиям, в результате чего пользователи транслируют транзакции, которые либо переплачивают, либо недоплачивают. В первом случае транзакции T будут подтверждаться намного быстрее, а во втором случае время подтверждения увеличится, поскольку майнеры будут обходить их в пользу более прибыльных транзакций для подтверждения.
Выпуск Bitcoin 0.3.15в ноябре 2010 года было внесено изменение, чтобы начать вычислять комиссии относительно размера данных транзакции, но не все программное обеспечение кошелька последовало этому примеру, и многие пользователи продолжали слепо устанавливать одну и ту же статическую комиссию для каждой транзакции. Это, как правило, не было проблемой, пока мы не начали упираться в максимальный размер блока, потому что майнеры подтверждали практически любую действительную транзакцию, которая была успешно передана им.
Когда в 2015 году блоки начали заполняться, стало ясно, что лучше всего использовать динамический алгоритм оплаты, поскольку он может реагировать на меняющиеся условия в сети.
Bitcoin CORE начал рассчитывать динамические оценки комиссий с релиз 0.10в феврале 2015 года, и Алекс Моркос постоянно улучшает их с тех пор. Алгоритм оценки платы Core довольно сложен; вы можетепросмотреть его код здесьианглийское объяснение здесь.
Возникает рынок комиссионных
Антуан Ле Кальвес, разработчик p2sh.info, предоставляет исторический анализ динамических и статических сборов.
Вот последние два года:

Мы видим значительные скачки в использовании динамической платы во время стресс-тестов и атак сети.прошлой осенью.
Однако я подозреваю, что это произошло не из-за того, что обычные пользователи перешли на кошельки с динамической комиссией, а скорее из-засами злоумышленники платят гонорарычто они намеренно установили более высокие статические комиссии, используемые большинством кошельков в то время.
Некоторые из более опытных пользователей скорректировали свои жестко закодированные сборы во время атак, но они, вероятно, составляли небольшое меньшинство от общего числа транзакций. Мы также можем видеть скачок в начале марта 2016 года – это, вероятно, частично является результатом нового кошелька Blockchainразвертывание динамических сборов омесяцем ранее.
Расти Рассел выступилотличный анализзарождающегося рынка комиссий в декабре 2015 года, который показал, что все больше транзакций используют динамически рассчитываемые комиссии и что средняя стоимость транзакции увеличивается, поскольку небольшие платежи вычитаются из блокчейна.

Эй Джей Таунс продолжил пост Растиболее глубокий анализ. Он выделил восемь отдельных фаз рынка комиссий на протяжении истории биткоина:
Таунс продолжил свое расследование ввторой пости пришли к нескольким выводам о влиянии, которое развивающийся рынок комиссий оказал на пользователей.
Это были:
- Значительное количество кошельков динамически рассчитывают комиссии с побайтовой детализацией.
- Многие кошельки по-прежнему T рассчитывают комиссии динамически или даже не рассчитывают комиссии на уровне байтов.
- Рыночные комиссии смогут расти и дальше только при более широком использовании кошельков, поддерживающих динамическую оценку комиссий.
- Значительная переплата по сравнению с рыночным курсом не ускорит подтверждение вашей транзакции.
- Произошло два Мероприятия , затронувших кошельки со статическими комиссиями, и вскоре произойдет третье событие.
- Кошельки, которые динамически рассчитывают комиссии, в среднем платят значительно более низкие комиссии, чем те, которые T.
Я отслеживал оценки комиссий Bitcoin Core с помощью Statoshi; здесь вы можете увидеть, что за последние шесть месяцев они утроились, поскольку конкуренция за место в блоке продолжает расти.

Calvez также предоставляет панель управления со всеми общедоступными API оценки комиссий и их историческими данными оценки:

Интересно, что оценки комиссий 21, BitGo и Blocktrail, по-видимому, наиболее чувствительны к изменению рыночных условий, в то время как оценки BitPay, Blockchain и BlockCypher менее изменчивы.
Однако было бы халатностью с моей стороны рекомендовать всем переходить на использование динамически рассчитываемых комиссий за транзакции, не ознакомившись предварительно с сопутствующими опасностями.
Как говорится, каждое решение влечет за собой новые проблемы. Динамические транзакционные сборы не являются исключением.
Динамические трудности
Динамические оценки тарифов никогда не будут идеальными, поскольку они представляют собой попытку предсказать (NEAR) будущее.
Как датский физикНильс Бор однажды пошутил: «предсказывать очень сложно, особенно будущее». Если алгоритм оценки сборов не может правильно предсказать будущее состояние рынка сборов, то пользователи застревают в «ловушка для сбора платы«как отметил доктор Вашингтон Санчес из OpenBazaar.
Это может произойти, если вы транслируете транзакцию с вполне разумной комиссией для текущих рыночных условий, но сразу после этого другие пользователи транслируют множество других транзакций с более высокой комиссией, что по сути отодвигает вашу транзакцию в конец очереди приоритетов майнеров. Проблема в том, что вы T можете, без Заменить на плату (РБФ), обновите свою «ставку», чтобы компенсировать новые рыночные условия.
Ошибки в алгоритмах оценки комиссий также могут нанести ущерб рынку комиссий. Возьмем, к примеру, недавнюю ошибку пользователя, которая привела к тому, что кто-то создал транзакцию с колоссальной суммойКомиссия 300 BTC. Это было достаточно плохо для несчастного пользователя, который, вероятно, засунул суммы «комиссии» и «стоимости» в какое-то плохо закодированное программное обеспечение, но это также имело цепную реакцию:
[вставить]https://twitter.com/khannib/status/725090752531959808[/вставить]
Это обоснованное предположение, но, похоже, что «цель блока 1-2» BlockCypher использует алгоритм оценки комиссии, основанный на взвешенном скользящем среднем значении комиссий за последние два дня блоков. В результате, когда была добыта транзакция с комиссией в 300 BTC , недавнее среднее значение комиссии и, следовательно, их оценка подскочили на 800%.
Но это не для того, чтобы придраться к BlockCypher, поскольку мы видели, что у многих кошельков есть проблемы с комиссиями за транзакции. Даже Bitcoin CORE не является исключением, поскольку я недавно наблюдал неожиданный всплеск оценок комиссий от Bitcoin CORE 0.12.0:

Я заметил, что оценка комиссии Statoshi.info "двухблочная цель" выросла с 44 до 112 сатоши за байт 27 февраля без какой-либо видимой причины. Другие мои Bitcoin узлы не сообщили о таком же скачке.
Возможно, это можно объяснить различиями в транзакциях мемпула, поскольку алгоритм оценки комиссий Core использует только комиссии за транзакции, которые изначально были получены как неподтвержденные.
Это вызывает беспокойство и демонстрирует недостатки экстраполяции будущего на основе взгляда вашего узла на сеть, который не обязательно будет совпадать с мнением всех остальных.
Макро-обвал
Хотя разработчикам Bitcoin приходится сталкиваться с множеством проблем, связанных с каждой транзакцией, мы также должны осознавать влияние на рынок комиссий в целом.
Меня беспокоят несколько потенциальных сценариев, которые могут привести к более быстрому росту ставок сборов, чем это необходимо:
- Плохо закодированные динамические алгоритмы комиссий могут создать обратную связь, которая повышает ставку комиссии без потолка, поскольку транзакции продолжают заполнять сеть, не обращая внимания на бэклог mempool. Это не вызывает большого беспокойства, если большинство транзакций инициируются людьми, которые затем видят отображаемую комиссию и решают, слишком ли она высока для их вкусов. Однако, если многие транзакции создаются автоматически без принятия решений Human , а создающие их алгоритмы T имеют никаких проверок на вменяемость максимальной выплачиваемой комиссии, рынок может разбежаться, пока инженеры, написавшие эти алгоритмы, не заметят и не внесут в них изменения.
- Разочарованные пользователи (или ленивые разработчики), которые все еще полагаются на жестко закодированные комиссии, могут KEEP вручную обновлять настройки своего кошелька, пока их транзакции не начнут подтверждаться, вероятно, значительно переплачивая, но в конечном итоге заставляя других пользователей статических комиссий делать то же самое, чтобы оставаться конкурентоспособными. В результате пользователи динамических комиссий будут вытянуты вверх. Я уже наблюдал, как происходит первое, хотя пока не в той степени, чтобы это существенно повлияло на динамические комиссии.
[встроить]https://twitter.com/lopp/status/713095965155192832[/встроить]
ONE из недавних разработок, которая T привлекла особого внимания, несмотря на то, что она потенциально может повлиять на рынок комиссий, является развитие вторичных Рынки комиссий для майнеров.
Это может принимать форму специальных программ поощрения клиентов, таких какУслуга BlockPriority от BTCC или это может принять форму частных предоплаченных покупок пространства блока. Это создает проблемы для любых разработчиков, которые пишут алгоритмы оценки сборов, потому что теперь существуют непрозрачные Рынки сборов, которые невидимы для остального мира.
Процитируем пресс-релиз BTCC:
«BlockPriority отдает приоритет всем транзакциям клиентов BTCC, включая тех, кто платит нулевую комиссию за транзакции».
Это не должно быть проблемой для алгоритма оценки комиссий Bitcoin Core, поскольку он требует, чтобы 95% транзакций mempool с заданной ставкой комиссии были подтверждены в блоках X после того, как были просмотрены, но это может повлиять на более наивные алгоритмы. Урок для разработчиков заключается в том, что только потому, что вы видите транзакции с низкой ставкой комиссии X, которые подтверждаются, больше не означает, что для вашего сервиса безопасно транслировать транзакции с этой ставкой комиссии.
Для майнинговых пулов может быть экономически выгодно продавать предоплаченные контракты на блочное пространство, поскольку это дает им новый предсказуемый источник дохода.
Однако я предупреждаю пулы: вы T сможете скрыть эту активность, если она станет значительной частью ваших добытых транзакций. Есть много инженеров кошельков, таких как я, которые отслеживают такое поведение, и если это станет проблемой, мы выйдем на публику. Я подозреваю, что любые публичные майнинговые пулы, уличенные в таком поведении, не будут так хорошо себя чувствовать, если отдельные хэшеры обнаружат, что пул добывал транзакции с более низкой комиссией и не делился прибылью от контрактов на приватное пространство блоков.
Это может привести к тому, что хэшеры перейдут в пул, который, по их мнению, будет более прибыльным.
Отдельный свидетельтакже, вероятно, повлияет на рынок комиссий. Он предложит скидку на комиссию в размере 75% в попытке сбалансировать затраты на создание и потребление неизрасходованных выходов транзакций.
Ожидается, что это побудит пользователей отдавать предпочтение использованию транзакций, которые минимизируют влияние на набор UTXO, чтобы минимизировать комиссии, а также побудит разработчиков разрабатывать смарт-контракты и новые функции таким образом, чтобы также минимизировать влияние на набор UTXO.
Дэвид Хардинг написал полезнуюРазбивка экономии данныхпредоставлено SegWit.
[встроить]https://twitter.com/lopp/status/705122188106604546[/встроить]
Я думаю, что это правильный путь, хотя я не уверен, что 75% — это оптимальное число. Мне кажется, что наиболее справедливая скидка будет динамической и основана на соотношении размера данных на выходе к соответствующему размеру данных того же выхода, когда он тратится как вход.
Хотя это, безусловно, будет гораздо сложнее реализовать, если это вообще возможно.
Двигаясь вперед
Все еще существует множество кошельков и Bitcoin сервисов, которые не внедрили динамические сборы. Вы знаете, кто вы, и ваше бездействие, вероятно, приводит к плохому опыту для некоторых ваших пользователей. Если вы T внедрили динамические сборы, то каждая транслируемая вами транзакция попадает в ONE из двух категорий:
- Вы переплачиваете по рыночной ставке и не получаете подтверждения значительно быстрее.
- Вы недоплачиваете, и транзакции зависают, что приводит к неудовлетворительному пользовательскому опыту.
Крайне маловероятно, что трансляция транзакции с жестко заданной комиссией окажется оптимальной и принесет оптимальную ставку, соответствующую текущим рыночным условиям.
Разработчикам кошельков следует добавить механизмы безопасности, такие как пороговые значения проверки работоспособности на микроуровне и автоматические выключатели на макроуровне, чтобы предотвратитьстреляют в себя в ноге.
Кошельки должны устанавливать минимальный порог, который выше, чем просто минимальная комиссия за ретрансляцию. Наблюдая за транзакциями с минимальной комиссией, которые попадают в блоки, мы можем ясно видеть, что на сегодняшний день, если вы платите менее пяти сатоши за байт, вам придется несладко.

Разработчики кошельков должны думать о своих алгоритмах оценки комиссий с позиций противоречия и писать их так, чтобы они были устойчивы к крайним случаям, которые могут возникнуть из-за ошибок в другом программном обеспечении кошельков или вредоносных атак со стороны субъектов, пытающихся манипулировать рынком комиссий. Они также должны отслеживать данные по оценке комиссий и устанавливать оповещения, чтобы уведомлять их, если оценки становятся более волатильными, чем ожидалось.
Однако следует признать, что не существует универсального алгоритма оценки комиссии — все зависит от варианта использования, к которому относятся ваши транзакции с Bitcoin .
Алгоритм Bitcoin Core стремится быть максимально универсальным и консервативным, чтобы быть невероятно надежным, но в некоторых случаях использования это может привести к переплате. Каждому кошельку и сервису придется решить, на какой компромисс они готовы пойти, чтобы сбалансировать риск отложенных подтверждений с выгодой от экономии денег на комиссиях.
Поэтому я призываю все Bitcoin кошельки сделать свои оценки комиссий доступными через публичные API. Я подозреваю, что сами алгоритмы оценки комиссий станут предметом конкуренции и часто останутся закрытыми, но если оценки будут публичными, то нам будет легче отслеживать аномальную активность. Возможно, кто-то даже создаст "Средний Bitcoin"агрегатор для оценки гонораров!
Мы должны признать, что «рынок комиссий» — это T совсем рынок в традиционном смысле этого слова.
Пользователи могут делать «ставки», транслируя транзакции, но майнеры T публикуют свои «запросы» — кошелькам приходится делать предположения на основе недавно подтвержденных майнерами транзакций и на основе того, какие транзакции в настоящее время ожидают подтверждения.
Конрад С Графвысказал свои мыслина "рынке комиссий" в последнее время:
«Платятся сборы; покупаются продукты и услуги. Таким образом, этот термин уже скрывает реальный продукт. Пользователи отправляют транзакции с комиссией в качестве открытой заявки в надежде на подтверждение. Я описываю это как рынок услуг по включению транзакций. Пользователи делают ставки, чтобы майнеры включали транзакции в блоки-кандидаты. Включение в большее количество блоков-кандидатов — особенно по отношению к общему хешрейту майнинга для этих кандидатов — повышает шансы на более быстрое подтверждение. Пользователи предпочитают более быстрое подтверждение более медленному, при прочих равных условиях, поэтому временной элемент дефицита является ключевым. Это рынок приоритета подтверждения, рынок времени».
Возможно, если бы майнинговые пулы опубликовали публичные API со своими политиками майнинга и «текущими ставками», то это помогло бы сервисам кошельков принимать более обоснованные решения при расчете динамических комиссий, а не заставляло бы разработчиков полагаться на догадки. Это также могло бы помочь смягчить проблемы, вызванные майнерами, которые создают непрозрачные вторичные Рынки комиссий через частные контракты на пространство блоков.
Пользователям Bitcoin не нужно KEEP текущее состояние конфликта блоков.
Кошельки должны справляться со сложностями рынка комиссий скрытно, предоставляя пользователю несколько простых вариантов при отправке транзакции. ONE из возможных путей — авторизация пользователем максимальной комиссии в зависимости от срочности транзакции и использование кошельком RBF для увеличения комиссии, выплачиваемой после каждого блока, который проходит без подтверждения.
Значения комиссий за транзакции должны отображаться для пользователя в виде предпочитаемой им единицы расчета, например, в долларах. Вероятно, также имело бы смысл отображать комиссию в виде процента от стоимости транзакции, если она превышает определенный порог, например, 1%. Это облегчит пользователям принятие решения о том, является ли текущее состояние рынка комиссий слишком спорным и предпочтут ли они отложить совершение транзакции до тех пор, пока они не смогут безопасно сделать это по более низкой ставке комиссии.
Когда мы обсуждаем комиссии за транзакции, пользователи Bitcoin должны прекратить говорить, что они заплатили "X центов" или "Y битов" в качестве комиссий за транзакции, поскольку этот тип заявления бессмыслен, если не известен размер транзакции. Мы должны стандартизировать использование ставок комиссий в обсуждениях, предпочтительно выраженных в сатоши за байт. Людям проще писать и KEEP "20 сатоши за байт" по сравнению с "20 000 сатоши за килобайт".
До сих пор развитие рынка комиссий за транзакции в сети биткоинов было тернистым.
Сначала сборы устанавливались вручную разработчиками, затем вручную пользователями, а теперь мы находимся в более хаотичном и потенциально опасном месте, когда разработчики играют более активную роль в управлении экономикой этого развивающегося рынка.
Кристов ATLAS красноречиво отметил риски мы принимаем централизованно планируя экономические изменения в Bitcoin без их полного изучения; разработчики должны KEEP об этом при написании алгоритмов оценки комиссий. Мы должны стремиться к тому, чтобы рынок комиссий оставался управляемым людьми с помощью машин, а не наоборот. Разработчики кошельков должны быть осторожны при построении логики комиссий, чтобы мы могли обеспечить плавный пользовательский опыт, не лишая пользователей свободы выбора, которая необходима для поддержания функционирующего рынка комиссий.
Изображение предоставлено Дэном Ноттом для CoinDesk
Jameson Lopp
Джеймсон Лопп — технический директор и соучредитель Casa, сервиса самообслуживания. Шифропанк, чья цель — создание Технологии , расширяющей возможности отдельных лиц, он занимается созданием Bitcoin кошельков с мультиподписью с 2015 года. До основания Casa он был ведущим инженером инфраструктуры в BitGo. Он является основателем группы специальных интересов Bitcoin Mensa, встречи Triangle Blockchain and Business и нескольких проектов Bitcoin с открытым исходным кодом. Все это время он работал над тем, чтобы обучать других тому, чему он научился на собственном горьком опыте, создавая надежное программное обеспечение, способное противостоять как противникам, так и неискушенным конечным пользователям.
