В этой статье мы постараемся подробно описать основную задачу комиссий в Биткойне, как они работают и на что влияют. Объясним причины волатильности комиссий, задержек подтверждения транзакций и опишем подходы к решению этих проблем.
Кроме того, давайте выясним, как именно обновление Segregated Witness помогает снизить транзакционные издержки.
А в качестве бонуса поделимся мыслями о том, как дружба с майнерами сводит комиссии к нулю и к чему эта тенденция может привести в будущем.
Итак, давайте начнем.
Время для полного подтверждения транзакции
Важно отличать процесс обработки транзакций (верификацию) от процесса их подтверждения (подтверждения).В сети Биткойн транзакции обрабатываются практически мгновенно и подтверждаются в течение часа.
В других цифровых валютах все можно сделать за пару секунд. Что определяет время полного подтверждения транзакции в децентрализованной среде? В основном, от механизма достижения консенсуса.
В чистом виде PoW не могут достичь консенсуса менее чем за час.
В свою очередь, протоколы консенсуса, основанные на ПБФТ и протоколы на основе DPoS можно достичь консенсуса за несколько секунд. Однако уровень децентрализации и независимости таких систем гораздо меньше, чем в Биткойне.
Согласно правилам протокола Биткойн, владельцы большей части вычислительных мощностей должны подтвердить транзакцию (блок, в котором содержится транзакция), чтобы она считалась полностью подтвержденной.
То есть на основе блока, в котором транзакция получила первое подтверждение, необходимо построить еще несколько блоков.
Причем эта цепочка должна быть самой длинной, и не должно быть конкурирующих цепочек.
Количество этих блоков (подтверждений транзакций) определяется получателем платежа по своему усмотрению.
Он руководствуется правилом, которое гласит, что чем больше подтверждений имеет транзакция, тем меньше вероятность ее последующей отмены.
Ограничения пропускной способности
С ростом популярности Биткойна поток новых транзакций в сети значительно увеличился.Известно, что размер блока определяется правилами протокола и строго ограничен.
В Биткойне максимальный размер блока составляет 1 МБ, поэтому пропускная способность ограничена (1,7 КБ/с).
Если поток новых транзакций превышает пропускную способность, не все из них будут обработаны.
И такие ситуации случаются часто.
Какие транзакции получат подтверждение первыми, а какие останутся в ожидании – вопрос, требующий однозначного ответа.
Его суть в том, что транзакции должны конкурировать друг с другом.
Роль комиссий
Комиссионный механизм в Биткойне необходим для оплаты распределенных сетевых услуг, где сетевая услуга, по сути, является надежным хранилищем данных.Пользователи сети Биткойн фактически платят за каждый байт данных, добавляемых в общую базу данных.
Поскольку эта база данных имеет ограниченную пропускную способность, пользователи конкурируют за приоритет записи.
При формировании транзакций пользователи устанавливают комиссию в виде определенного количества сатоши за байт данных.
В этом случае каждый узел валидатора ставит в очередь все неподтвержденные транзакции таким образом, что сначала подтверждает транзакции, которые платят большую комиссию за единицу их веса.
Очевидно, что те транзакции, которые оказываются в конце очереди, могут долгое время оставаться неподтвержденными.
Еще одна важная проблема, которую решает механизм комиссий, — это «трагедия общего достояния».
В контексте Биткойна это означает защиту от транзакционного спама.
Наличие обязательных комиссий означает, что злоумышленнику будет дорого засорять сеть фейковыми транзакциями в течение длительного периода времени, если у него будут такие намерения.
Рекордная волатильность цен
Пользователи сети Биткойн иногда сталкиваются с необычно высокой волатильностью комиссий.Например, в 2017 году средняя цена записи одного байта данных в блокчейн Биткойна колебалась от 1 до 500 сатоши.
А очередь неподтвержденных транзакций варьировалась от нескольких КиБ до десятков и даже сотен МиБ.
Из-за того, что цена записи данных может резко измениться, пользователи вынуждены конкурировать друг с другом практически вслепую.
Это связано с тем, что фактическая транзакция будет подтверждена в среднем в течение 8 минут, а комиссию за обработку необходимо установить до ее подписания.
Поэтому вопрос правильно установленной комиссии по-прежнему остается актуальным, ведь каждый хочет быстрого подтверждения своих транзакций с минимальными затратами.
Естественно, платить за типичную транзакцию более 50 USD – не лучший вариант, особенно когда от этой суммы можно сэкономить до 90%, если правильно рассчитать комиссию.
Последствием резкого увеличения потока новых транзакций является появление большой очереди транзакций, ожидающих входа в блокчейн.
К ним относятся те транзакции, отправители которых либо не обратили внимания на изменение цены входа, либо сформировали транзакцию в момент перед резким повышением.
Зачастую проблема кроется не в самом пользователе, а в программном обеспечении кошелька или сервисов управления биткойнами.
Активный пользователь часто сталкивается с программными продуктами для работы с Биткойном, в которых полностью скрыто управление комиссиями.
Решение проблемы с волатильностью комиссий
Независимо от возможности вручную контролировать приоритет записи генерируемых транзакций, биткойн-кошельки могут использовать механизмы оценки текущей цены записи данных, а не использовать постоянные или обновляемые вручную значения.Это дает большое преимущество кошельку в плане управления приоритетом записи транзакции в общую базу данных и экономии средств на комиссиях.
Стоит отметить, что прогнозирование цены записи также возможно, но зачастую такие прогнозы работают только на очень короткие периоды времени (в среднем несколько минут).
Если прогноз устарел и сделка не подтверждена, то вполне вероятно, что ждать ее подтверждения можно долго – чаще всего несколько часов, а иногда и дней.
комиссия за транзакцию = размер транзакции * цена байта Динамический или адаптивный расчет комиссий за транзакцию означает автоматическую оценку конечного размера транзакции в байтах и оценку стоимости записи одного байта в блокчейн Биткойна в течение следующих нескольких часов.
Для обеих оценок существуют определенные алгоритмы анализа транзакций и сетевой активности.
После получения оценки размера транзакции в байтах и стоимости записи одного байта эти значения умножаются, чтобы получить фактическое количество биткойнов, которое необходимо добавить к транзакции в качестве комиссии.
Преимущество подхода адаптивного ценообразования заключается в том, что в транзакцию включается более точная комиссия, которая будет выше минимального порога, но не слишком высокой, что экономит деньги пользователя.
Более того, вероятность того, что транзакция окажется глубоко в неподтвержденной очереди, минимальна.
Однако есть исключения.
Поэтому давайте подробнее рассмотрим, что важно делать в чрезвычайной ситуации.
Увеличение комиссии после отправки транзакции
Обратите внимание, что протокол Биткойн очень гибок с точки зрения комиссий.Например, есть два улучшения протокола: replace-by-fee и child-pays-for-parent, которые позволяют увеличить комиссию уже сгенерированной и отправленной транзакции.
К сожалению, очень немногие кошельки реализуют эту функцию для удобства своих пользователей, хотя со временем их становится больше.
Кроме того, эта возможность имеет ряд технических нюансов и организационных требований для ее корректного использования.
Одно из этих требований заключается в том, что пользователь (или программное обеспечение автоматически) должен переоценить комиссию за транзакцию, создать и подписать новую (альтернативную) транзакцию, распространить ее в сети и продолжить мониторинг ее статуса.
Как помогает разделение свидетелей
Одним из изменений протокола, внесенных обновлением Segregated Witness, является введение нового формата транзакции и веса транзакции.До появления Segregated Witness при расчете комиссии обычно учитывался только размер транзакции.
Теперь также важны размер, транзакция и ее вес.
Новая транзакция сохраняет подтверждение владения монетой в отдельной структуре (данные-свидетели).
Чтобы преобразовать размер транзакции (общий размер) в ее вес, размер данных-свидетелей умножается на меньший коэффициент, чем остальные данные транзакции.
Вес транзакции рассчитывается по специальной формуле: вес = базовый размер * 3 + общий размер .
В этом случае базовый размер — это размер транзакции без учета размера данных-свидетелей.
Как нетрудно догадаться, любые данные, включенные в данные-свидетели, требуют в 4 раза меньшую комиссию, чем остальные данные транзакции.
Такой подход позволяет майнерам определить более выгодную транзакцию с точки зрения занимаемого места в блоке и полученного вознаграждения.
Известно, что около 60% всех данных о транзакциях состоят из доказательств владения монетами (т. е.
таких, которые могут быть записаны в данных свидетелей).
Соответственно, вес транзакций нового формата существенно снизится.
Таким образом, пользователь может заплатить меньше за подтверждение новой транзакции, при этом она будет иметь такой же приоритет среди майнеров при включении в блок, что и старая транзакция с более высокой комиссией.
На диаграмме показана зависимость стоимости записи одного байта данных в блокчейне Bitcoin от нагрузки (потока неподтвержденных транзакций), выраженной в байтах в секунду.
Вывод можно сделать очень простой: если поток новых транзакций ниже или равен пропускной способности учетной системы, то стоимость учета практически равна нулю.
А если поток новых транзакций превышает пропускную способность, цена резко возрастает.
Вариант с другом-шахтером
Представьте, что у вас есть друг, который занимается майнингом и контролирует 10% всех вычислительных мощностей, задействованных в сети Биткойн.В среднем он генерирует блок раз в 100 минут. В этом случае вы можете создать собственную транзакцию, в которой установите нулевую комиссию, а затем отправить эту транзакцию своему другу для подтверждения.
Вероятность того, что ваша транзакция получит первое подтверждение в течение 50 минут, составляет 50%, а полное подтверждение - в среднем через 50 минут после первого.
В результате ваши транзакции получат полное подтверждение примерно в течение 100 минут. Если бы у вас не было такого друга, транзакция получила бы полное подтверждение примерно в течение 60 минут, но с выплатой полной комиссии.
Как видите, когда дело доходит до экономии денег, вам повезло, если у вас есть друг-шахтер.
Но если такого друга нет, то могут быть альтернативные варианты оплаты места в блоке.
Вариант с токенизацией места
Обычно майнер следует стандартной схеме и сортирует транзакции по стоимости записи 1 байта данных в блокчейн.Кажется, сейчас это делают все.
Однако не исключено, что у майнера будет лучшая мотивация.
Он может самостоятельно сформулировать политику монетизации своей деятельности.
Другими словами, он может действовать нестандартно по отношению к транзакциям, которые он будет фиксировать в своем блоке.
Если он сможет найти более выгодные условия, чем просто брать комиссию за вашу транзакцию, он, скорее всего, изменит свою политику.
Этот подход предполагает, что пользователи будут платить майнеру за подтверждение своих транзакций не через заранее определенную комиссию, а напрямую (по собственной схеме).
На практике любой достаточно крупный майнинг-пул может провести собственную кампанию по повышению доходности и использовать для этого простые механизмы, например:
- определить приоритеты сортировки транзакций;
- заключить партнерство с каким-либо сервисом (биржей, магазином, браузером);
- продать гарантии на какое-то место в квартале в будущем.
Заключение
Вероятно, в будущем мы увидим много разных способов оплаты входа в «самую надежную базу данных на Земле».Учитывая интерес многих сервисов и приложений к свойствам этой базы данных, уже давно существуют сторонние решения для добавления произвольных данных в блокчейн Биткойна с целью их надежной «фиксации» (метки времени).
Но такие решения плохо вписываются в экосистему приложений, и разработчикам сложно их монетизировать.
На данный момент вариант проталкивания транзакций «как друга» и вариант токенизации свободного места в блоках может показаться комичным, но при нынешних темпах развития отрасли такие сценарии могут оказаться вполне осуществимыми.
Более того, они могут стать основополагающими в отношениях между пользователями и валидаторами, но это не точно.
Теги: #информационная безопасность #биткойн #Криптовалюты #Финансы в ИТ #Криптография #блокчейн #майнинг #Криптовалюта #токенизация #комиссии #сегрегированный свидетель