Уже более года в сообществе Биткоина всё чаще слышатся жалобы на неподтверждённые транзакции. Пожалуй, наиболее остро пользователи ощутили эту проблему 29 февраля этого года, когда подтверждения некоторых транзакций пришлось дожидаться в течение трёх дней. И хотя после этого таких массовых задержек не наблюдалось, подтверждения транзакций всё ещё приходится ждать больше 10 минут, а иногда не это требуется и несколько часов. Вполне естественно, что это вызывает недовольство среди пользователей. В данной статье объясняется, почему на подтверждение транзакций уходит так много времени, а также описываются возможные решения проблемы.
Неподтвержденные транзакции порождают беспокойство
Вполне логично, что в свете проблем в сети появляется всё больше жалоб на неподтвержденные транзакции. Почти каждый день о новых затруднениях сообщается на форумах r/bitcoin, bitcointalk.org, bitcoin.com, и, конечно, на r/btc. Бытует мнение, что эти публикации специально создаются людьми, желающими повлиять на ход дискуссий о размере блока. Однако, несмотря ни на что, проблема существует, и она вполне реальна для людей, которым приходится часами ждать подтверждения транзакций и выплачивать повышенные комиссионные майнерам.
В связи с этим некоторые криптовалютные кошельки добавили в свой программный интерфейс функцию replace-by-fee, определяющую срочность транзакций в зависимости от размера комиссий. Однако, такая опция представлена далеко не во всех кошельках, и некоторые пользователи становятся напрямую зависимыми о того, какую комиссию выберет платформа для определения приоритета транзакции. Если эта комиссия оказывается очень маленькой, пользователям приходится ждать подтверждения своих транзакций по нескольку часов и даже дней. Если же транзакция не подтверждается в течение трёх-семи дней, она удаляется из пула памяти майнеров.
Пулы памяти часто переполняются, особенно при высоком объёме торгов, как это часто происходит при росте цены на Биткоин и соответствующем увеличении количества транзакций. Для того, чтобы понять, где именно находится в конкретный момент времени транзакция, ожидающим подтверждения пользователям приходится использовать обозреватели блокчейна.
В большинстве случаев, если в течение трёх дней подтверждение не получено, кошельки обозревателей блокчейна удаляют транзакцию из своих данных. Это означает, что пул памяти удаляет транзакцию, а средства возвращаются в кошелек отправителя.
Опережая вопросы, ответим, что новичкам не стоит беспокоиться о том, что их средства будут потеряны – они либо вернутся назад в оригинальный кошелек, либо подтвердятся и отправятся получателю.
Как решить проблему масштабируемости Биткоина? У нее существует несколько решений, и до сих пор не ясно, какое именно поможет в данной ситуации. Все они тестируются, изучаются и обсуждаются.
Внутри блокчейна
Первое из предлагаемых решений – увеличение размера блока до 2 МБ или больше при помощи жесткого обновления. В настоящее время размер блока составляет 1 МБ, он был установлен из-за засорения сети мелкими транзакциями. Размер блока в 1 МБ ограничивает количество транзакций в секунду, то есть в настоящее это приблизительно 7 транзакций. Некоторые считают, что увеличение размера блока или удаление лимита позволит увеличить количество транзакций и сделает криптовалютную сеть такой же быстрой, как сети крупных платежных карт.
Ещё одно предлагаемое решение проблемы масштабируемости - Segregated Witness (Segwit). Оно состоит в том, что транзакции расщепляются с изолированием подписей, после чего данные обрабатываются по отдельности. Этот обновление ускоряет транзакции и исключает эластичность. Отделяя цифровые подписи в другое дерево Меркла, Segwit дает возможность включать намного больше данных в транзакции. В настоящее время ведутся разговоры о выпуске данного протокола за пределы тестовой сети.
Однако, среди приверженцев Биткоина есть и те, кто не поддерживает идею больших блоков, и считает, что такое увеличение может привести к централизации в царстве майнинга. Существуют также опасения, что увеличение может понизить размер комиссионных, и майнеры потеряют стимул защищать сеть. Кроме того, пропускная способность сети потребует загрузки полных узлов. Данное изменение повлечет за собой добавление достаточно большого количества гигабайт к уже и без того большому блокчейну Биткоина (сейчас его размер приближается к 90 ГБ).
С другой стороны, множество факторов говорит в пользу увеличения размера блока, и многие считают, что именно увеличение может устранить проблему пула памяти, медленных транзакций и высоких комиссионных. Предложений по увеличению размера блока - великое множество, так же как и количество попыток продвинуть эту идею при помощи клиентов BitcoinXT или Classic. Для применения всех этих решений необходимо одно общее - консенсус.
Внеблокчейновые методы
На данный момент обсуждается три популярных внеблокчейновых решения. Одно из них - Lightning Network. На сайте Lightning Network говорится, что эта система «способна обеспечить в сети от миллионов до миллиардов транзакций в секунду». Протокол Lightning Network основан на использовании скриптового языка смарт-контрактов Биткоина и предлагается для решения проблем масштабируемости и значительного понижения размера комиссий при помощи оптимизированных микротранзакций.
Ещё одно решение вне блокчейна, Duplex Micropayment Channels (DMC), было предложено в прошлом году доктором Кристианом Декером (Dr. Christian Decker) из ETH Zurich и профессором Роджером Ваттенхофером (Roger Wattenhofer). По мнению Декера, в данный момент масштабировать сеть нельзя. Внеблокчейновый подход DMC подразумевает уменьшение времени блокировки пользователей, именно это является его основным отличием от решения Lightning Network.
Совсем недавно в криптовалютном пространстве появилось ещё одно платёжное решение с реализацией вне блокчейна. Команда Blockchain.info (BC.info) представила проект под названием Thunder Network. Разработчики BC.info говорят, что Thunder Network будет масштабироваться быстрее традиционных операторов кредитных карт и сможет обрабатывать 100 000 транзакций в секунду. Идея немного напоминает Lightning Network и функционирует бездоверительным способом. В данный момент проект находится в стадии альфа-тестирования и уже проверен руководителем BC Питером Смитом (Peter Smith) и разработчиком Мэтсом Джеррачем (Mats Jerratsch).
Как бы то ни было, все внеблокчейновые решения имеют ряд недостатков. В частности, они могут внести в децентрализованное пространство централизованные аспекты. В целом, у внеблокчейновых моделей довольно много противников, и многие из опасений перекликаются со страхами, связанными с увеличением размера блока.
Что делать дальше
Самое лучшее, что сейчас могут сделать обычные пользователи – это ждать и изучать предлагаемые решения. В конце концов, разработчики, инвесторы и сообщество Биткоина придут к общему консенсусу. Многомиллиардный рынок нельзя изменить в одно мгновение. Перед внедрением любых изменений необходимо провести тщательный анализ и тестирование.
Конечно, длительное ожидание неудобно, и многие недовольны высоким размером комиссионных, однако разработчики кода не сидят без дела, а некоторые вещи для поддержки или даже участия в проектах можно сделать уже сейчас. В этом и есть красота проекта с открытым исходным кодом. Критика и цензура предлагаемых решений не ускорит, а лишь затормозит развитие ситуации. Наиболее востребована сейчас обыкновенная человеческая помощь, например, можно посоветовать кому-то наиболее оптимальный кошелёк с функцией replace-by-fee или успокоить пользователя с зависшей транзакцией. Участие в здоровых дискуссиях о способе оптимизации блокчейна Биткоина, с сохранением здравомыслия, тактичности и уважения ко всем участникам, тоже может принести большую пользу.
На самом деле, неважно, на какой стороне вы находитесь, со временем решение масштабирования и оптимизации Биткоина будет найдено. Единственным плодотворным условием сейчас является взаимодействие.