Что нужно знать о будущем технологии Биткойна

Биткойн (BTC) пробил исторический максимум $19 900, после чего скорректировался. Невероятно важно не потеряться в суматохе и не забыть о техническом прогрессе Биткойна.

Любой, кто задумывается о покупке биткойнов, должен изучить как минимум две вещи:

  • историю технологии, стоящей за Биткойном;
  • и, что более важно, что ждёт Биткойн в будущем.
  • Как говорит эксперт по Биткойну Андреас Антонопулос: «Инвестируйте в образование, а не в спекуляции».

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

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

    Начнем со стоящей перед Биткойном проблемы масштабируемости.

    Проблема пропускной способности транзакций

    Представляя Биткойн миру, создатель Сатоши Накамото описал его в Whitepaper как «чисто пиринговую версию электронных денег, которая позволит пересылать онлайн-платежи от одной стороны другой без посредничества финансового института».

    Одним из фундаментальных преимуществ Биткойна были мгновенные и безопасные пиринговые платёжные транзакции. Сегодня Биткойн всё больше выступает ведущей криптовалютой на глобальном рынке, чья стоимость только за последний год выросла более чем на 1600%.

    Из-за такого беспрецедентного роста число транзакций в блокчейне Биткойна также увеличились, и ежедневно проводится до 400 000 транзакций. Такой быстрый рост транзакций может перерасти в серьёзную проблему масштабируемости блокчейна, так как сейчас более 170 000 транзакций находятся в очереди как неподтверждённые.

    Подтверждённых транзакций в день

    Со стремительным ростом цены Биткойна растёт и его использование. Обратите внимание на застой на уровне около 400 000 транзакций в день.

    Чтобы понять, почему транзакции выстраиваются в очередь, нужно сначала объяснить сами транзакции Биткойна.

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

    Из пула памяти майнеры выбирают транзакции, которые хотят подтвердить. Когда майнеры признают транзакцию действительной (т. е. подтверждают, что у отправителя есть достаточно биткойнов для отправки получателю), они добавляют её в новый блок, который впоследствии публикуется в блокчейне. Затем другие узлы перепроверяют транзакции этого нового блока, чтобы удостовериться в его подлинности, прежде чем добавить блок к своему реестру.

    Диаграмма жизненного цикла транзакции. Источник: weusecoins.com.

    Подсчитаем пропускную способность транзакций:

    • Средний размер транзакции – примерно 250 байт;
    • Размер блока ограничен – 1 МБ (примерно 1000000 байт);
    • Таким образом, в блоке помещается примерно 4000 транзакций (1 МБ разделить на 250 байт);
    • Блок может публиковаться в блокчейне в среднем только раз в 10 минут (600 секунд);
    • Каждые 600 секунд публикуется (максимум) 4000 транзакций, со скоростью 6,66 транзакций в секунду.

    Если в пуле памяти больше 170 000 неподтверждённых транзакций, то как майнер выбирает, какие транзакции подтверждать? Комиссии! Отправитель транзакции имеет возможность добавить к транзакции произвольную комиссию для майнера, что мотивирует майнера выбрать и подтвердить транзакцию быстрее. Майнеры выбирают транзакции с наивысшей комиссией, чтобы максимизировать прибыль. Теоретически можно отправить транзакцию без комиссии. Но если в пуле есть транзакции с более высокой комиссией, чем у вашей, то почему вашу транзакцию должны вообще хоть когда-нибудь выбрать?

    По мере роста пользовательской базы Биткойна растёт и средняя комиссия за транзакцию. Каждую секунду обрабатывается максимум лишь 7 транзакций, и каждый хочет, чтобы его транзакции были подтверждены первыми. На данный момент средняя комиссия составляет примерно $17. Данная комиссия явно не идеальна – если вы хотите отправить другу биткойнов на пару долларов, то вам, возможно, придётся потратить на комиссию больше, чем собственно на транзакцию! Здесь и кроется проблема, и если ничего не изменится, комиссии будут расти из-за пробок с транзакциями.

    Решение проблемы пропускной способности

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

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

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

    • При 1 млрд транзакций в день:
      • Блоки на 1,6 ГБ (1655 МБ);
      • 87 терабайт/год (87028089 МБ);
      • Возможно, достаточно для одного мегаполиса?
      • Централизация (майнинг!).

    При размере блока, достаточном для населения всего лишь одного города, хостинг узлов и майнинг будут доступны лишь тем, у кого есть самые мощные машины, т. е. крупным бизнесам. Источник: Lightning Network.

    Кроме того, вспомните, что после того, как блок добыт, все другие узлы должны его подтвердить, прежде чем он будет принят. Если размер блока будет невероятно большим и кто-то опубликует недостоверный блок, узлам придётся потратить огромное количество времени на проверку блока, прежде чем отбросить его как недостоверный и перейти к следующему. По сути, можно организовать DoS-атаку, многократно публикуя в сети безумно огромные недостоверные блоки, надолго приостанавливая обработку достоверных блоков. Как говорил в интервью пионер блокчейна Ник Сабо, небольшой размер блока служит техническим параметром безопасности, предотвращающим перегрузку сети.

    Больше о полном влиянии увеличения размера блока, если Биткойн покорит мир, можно прочесть в статье, которую я написал здесь.

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

    Segregated Witness (SegWit)