Одной из проблем проведения транзакций в криптовалюте является скорость их обработки и валидации. Bitcoin, как первопроходец на крипто-рынке и старейший представитель виртуальной валюты, страдает от этого недостатка в большей степени, чем идейные последователи. Чтобы ускорить этот процесс, пользователю важно понимать его механизм и методы оптимизации.
Содержание
В соответствии с основным принципом работы блокчейна, каждая транзакция представляет собой часть информации, записываемой в блок и передаваемой другим участникам сети. Каждая запись о проведенной транзакции занимает определенный объем памяти, которая впоследствии будет добываться из общей цепочки при помощи майнинга.
Цифровой объем информации вычисляется следующим образом:
- данные об адресах отправителей (Input);
- данные об адресах получателей (Output);
- запись об объеме транзакции (Amount).
К примеру, запись об одном адресе, с которого были отправлены активы, занимает около 148 байт. Если пользователь получает одну монету с десяти адресов, то размер записи об отправителях увеличивается десятикратно. А если пользователь отправляет часть монеты на другой адрес и затем получает «сдачу» из системы, то полный объем записи о транзакции увеличивается вдвое, так как криптоактивы проходят двойной путь.
Комиссия и ее влияние на скорость
Чтобы транзакция криптовалюты считалась действительной, она должна попасть в Mempool и пройти через майнеров. Майнеры являются третьей стороной, которая отвечает за действительность совершенной сделки, и за каждое такое подтверждение получают вознаграждение – комиссию, которую уплачивает отправитель.
Размер комиссии напрямую влияет на скорость проведения сделки. Каждая транзакция занимает очередь в зависимости от ее величины, ведь в первую очередь майнерам выгодно проводить сделки с большим вознаграждением.
Размер комиссии определяется рыночным спросом и зависит от размера очереди и объема транзакции. Система определяет приоритет каждой сделки согласно заложенному в ней алгоритму. При формировании запроса в Mempool пользователь точно знает, сколько информации занимает его транзакция, и может вручную регулировать ее комиссию.
Стоимость вычисляется по величине сатоши/байт. Сатоши – это минимально возможная дробная часть биткоина, одна стомиллионная от монеты. Каждый байт оценивается согласно текущей загруженности Mempool (актуальную стоимость можно посмотреть на сервисах-обозревателях блоков). Произведение количества байтов в транзакции на цену байтов в сатоши и будет являться оптимальным размером комиссии. Предложив более высокую цену, отправитель сможет вывести транзакцию в первые строки очереди на валидацию.
Важно понимать, что сумма комиссии зависит не от объема переводимых средств, а от количества адресов, участвующих в сделке. Минимальная величина взимается за перечисление любого объема средств напрямую между двумя кошельками. Однако более крупные транзакции являются приоритетными в очереди на подтверждение.
В случае указания слишком низкой комиссии участники сделки рискуют получить отказ в валидации сделки или ожидать ее неопределенное количество времени. Сделка может быть отменена по запросам майнеров, снята отправителем самостоятельно при слишком длительном ожидании, или увеличить комиссию в Mempool для повышения шансов на успешную валидацию сделки.
Есть несколько вариантов ускорения транзакций в блокчейне Bitcoin, которые так или иначе основаны на "игре" с комиссиями.
- Увеличение размера комиссии за платеж. Прямой и понятный способ. По умолчанию системой выставлен размер комиссии на уровне 0,0001 BTC, но пользователь вручную может изменить это значение в большую сторону. Таким образом, уровень загруженности сети будет нивелирован, а операция с повышенными комиссионными будет включена пулами в ближайший вычисленный блок.
- Replace-by-fee. С комиссией связан и следующий способ, который доступен лишь отправителю криптовалюты. Чтобы использовать это ускорение транзакции Биткоин, его следует предварительно активировать в своем кошельке. Поддерживают данную опцию популярные бумажники, такие как GreenAdress (функция настроена по умолчанию), Electrum, Bitcoin Core, Armory. Суть метода состоит в том, что уже созданный зависший платеж можно заменить на такой же, но с повышенным размером комиссии непосредственно через интерфейс сервиса. Это позволит протолкнуть платеж поскорее, однако не все майнеры поддерживают этот метод, некоторые определяют его, как двойное расходование средств и отклоняют. В любом случае, по времени выгоднее сразу поставить высокую комиссию, чем менять платеж.
- ChildPystorParent. Эта методика может применяться как получателем, так и отправителем, если у того остается "сдача" от операции. Принцип действия состоит в том, что один выход висящей трансакции используется для входа второго платежа с повышенной комиссией, чтобы майнеры обработали их одновременно и быстро. Для этого в кошельке Bitcoin Core потребуется активировать опции "Тратить неподтвержденную сдачу" и "Включить управление входами".
Можно также повысить приоритетность платежа для его более быстрого включения в блок. Для этого достаточно делать следующее.
- Пытаться избегать перевода мелких сумм, они при стандартной комиссии обрабатываются в последнюю очередь. Если есть такая возможность, то лучше перечислять более крупные суммы криптовалюты, их приоритетность изначально выше.
- Использовать мультиподпись, то есть цифровую подпись, которая ставится доверенными пользователями. Блокчейн-система распознает их как подтверждение платежа повышенной надежности и обрабатывает быстрее. Например, в бумажнике GreenAdress есть функция мультиподписи.
- Отправить открытую транзакцию через доверительный сервер. При этом вся информация о переводе (в том числе об отправителе и получателе) будет доступна сторонним наблюдателям. Этот способ вполне рабочий, но применяется редко, поскольку "покушается" на одну из фундаментальных основ цифровых валют – анонимность платежа.
Как регулировать скорость и величину комиссии в кошельках
Рассмотрим возможности ускорения транзакции через процедуру Replace-by-Fee. Подобная функция есть во многих блокчейн-кошельках (скриншот приведен из интерфейса Trezor), так что по аналогии с этим примером пользователям будет нетрудно разобраться и в интерфейсе других приложений.
- Откройте настройки приложения и перейдите во вкладку Bitcoin. Переставьте ползунок «Редактирование неподтвержденных транзакций» в активное положение.
- Вернитесь на предыдущий экран и откройте историю транзакций по Bitcoin. Выберите нужную транзакцию и в выпадающем меню нажмите «Увеличить комиссию».
- В открывшейся вкладке выберите цену за байт из предлагаемых приложением вариантов или установите ее вручную. Нажмите «Отправить». После уведомления об отправке транзакции комиссия в системе будет изменена согласно установленной цене.
Пока транзакция находится в Mempool, изменение ее комиссии не потребует заново отправлять ее в очередь. Вместо этого она автоматически переместится на более приоритетную для валидаторов позицию.
Сервисы-ускорители транзакций
Существует множество сервисов для ускорения транзакций, функционирующих на платной или бесплатной основе.
Бесплатные сервисы передают транзакцию на крупные акселераторы, которые занимаются валидацией «застрявших» сделок. Однако относиться к таким компаниям стоит с осторожностью: ненадежные разработчики под видом агрегаторов и ускорителей могут предлагать вредоносные программы, запускающие взлом кошельков или несанкционированный майнинг на устройстве. Среди надежных и действенных бесплатных ускорителей можно выделить следующие:
- bitAccelerate;
- bitTools;
- bitNitro.
При проведении нескольких транзакций можно пользоваться тремя этими сервисами сразу.
Платные сервисы взимают собственную комиссию для ручной валидации сделок. Обычно она сравнима по цене с ценой, взимаемой Mempool при большой загруженности. Лучшими сервисами в этой сфере считаются viaBTC и antPool.
Как планируется изменять блокчейн биткоина в будущем, чтобы увеличивать скорость
Длительная валидация транзакций сподвигла разработчиков других криптовалют (таких, как EGLD) на создание блокчейна с иным протоколом и собственной экосистемы, способной обрабатывать большее количество запросов. Для Bitcoin тоже предпринимались некоторые попытки модернизации, большинство из которых оказались неудачными.
На сегодняшний день ускорить транзакцию можно при подключении софтфорка Segregated Witness (SegWit) к основному клиенту. Сейчас это решение используется сразу для нескольких криптовалют. Ускорение проведения транзакций реализуется за счет исключения из информационных блоков электронных подписей, которые занимают около половины цифрового «веса». Благодаря этому они облегчаются для обработки вычислительными машинами.
Другой вариант – использование Lightning Network. Это платежный протокол, который предлагалось встроить в систему BitcoinCore. Сейчас эта система функционирует отдельно. Принцип ее работы состоит в создании двустороннего платежного канала между двумя узлами сети. При этом средства для перевода блокируются у пользователей, а в открытый канал лишь поступают расписки, подтверждающие владение криптовалютой. Это существенно ускоряет процесс валидации и обмена средствами между участниками сети.
В ближайшем будущем Bitcoin может ввести облегченный вариант транзакций в свое основное программное обеспечение, принять решение об уменьшении объема блоков в цепи или создать экосистему с более усовершенствованными платежными протоколами.
Отзывы и обсуждения