Эволюция первой и (пока ещё) самой популярной из криптовалют продолжается: эта весна принесла в основном хорошие известия для проекта Bitcoin, в том числе важные и для российских сторонников. На Западе на него обратили внимание крупнейшие биржи: NASDAQ и NYSE, соответственно применившая биткойн-механику в процессе выпуска ценных бумаг и готовящая к запуску официальный индекс BTC к классическим валютам. В России владельцам нескольких заблокированных веб-сайтов удалось через суд добиться снятия блокировки. Уже шаг вперёд: по крайней мере мы можем теперь писать на русском про биткойн и не бояться, что завтра будем отправлены в бессрочный бан, а то и шить рукавицы.
Но если внешние условия благоприятны как никогда, головной болью стали аспекты внутренние — и уже не удаётся отмахнуться от них банальным «пройдёт». Попросту, у архитектуры Bitcoin есть несколько свойств, которые со временем — то есть с ростом востребованности криптовалюты — должны будут стать её узкими местами. Об этом знали, об этом говорили, но срок пришёл раньше, чем ожидалось большинством. Сегодня биткойн почти ткнулся в фундаментальные ограничения — и, значит, пора искать решения.
Узких мест несколько, но самое больное на текущий момент спрятано в ограниченном количестве транзакций, которые сеть Bitcoin способна провести в единицу времени. Чтобы понять, как это ограничение появилось, стоит вспомнить как биткойн работает. Клиенты «пересылают» друг другу произвольные суммы — и есть единый, общий для всех, список «денежных переводов», этакий гроссбух, куда каждая операция должна быть занесена, чтобы считаться выполненной (подробнее см. «Три друга, конфета и монета»). Собирают операции, заверяют их своими подписями и заносят в список особые участники Bitcoin: майнеры. Чтобы как-то упорядочить процесс ведения «гроссбуха» (майнерам необходимо координировать свои действия), операции заносятся в него не по одиночке, а по несколько штук разом, блоками, примерно один блок каждые десять минут. И максимальный размер блока ограничен одним мегабайтом — а поставил это ограничение не кто иной как Сатоши Накамото собственной персоной, ещё в те годы, когда в Bitcoin было мало участников и сеть можно было легко обрушить злоумышленникам (да, Накамото ограничил размер блока из лучших побуждений!).
Дальше — простая математика. На запись о каждом денежном переводе требуется от 200 байт и более (обычно около полукилобайта). Но каждые десять минут сеть способна переварить не более одного мегабайта записей. Следовательно, за единицу времени через сеть Bitcoin физически не может быть проведено больше некоторого количества транзакций. Параметр этот обычно считают в транзакциях за секунду, TPS. Теоретический потолок 7 TPS, практический — около 3.
Шесть лет назад, когда биткойн родился, это не было проблемой. И даже три года назад не было тоже: тогда в десять секунд проводилась от силы одна операция. Но время идёт, и — взгляните на график выше: количество биткойн-транзакций растёт стабильно и в нынешнем году вышло на очередную рекордную высоту, пробив отметку 110 тысяч штук в сутки. А это уже 1.3 TPS. Грубо, сформировалась зависимость: количество транзакций увеличивается десятикратно каждые три года, поэтому уже через год-полтора, то есть следующим летом, Bitcoin прекратит работу, «встанет». На её «магистралях» образуются «пробки»: время проведения операции вырастет бесконечно. Дальше — паника, отток клиентов, банкротства, вмешательство властей и т.п.
Впрочем, не все согласны с мнением, что проблема не устранится сама собой. Свободным финансовым системам (к которым Bitcoin имеет честь принадлежать) присуще замечательное свойство саморегуляции: подобно живым существам, они в состоянии сами приспособиться к изменившимся условиям. Так вот, по одной из версий, биткойн тоже приспособится к новой ситуации. Как? Клиент, для которого важно провести транзакцию быстрее, просто будет платить за неё больше «чаевых» (комиссионные, которые делятся между майнерами) — и майнеры в первую очередь будут обрабатывать именно такие операции. Соответственно, менее срочные транзакции будут обработаны позже. Заодно решится проблема «истощения рудников»: как и ожидалось, майнеры будут жить на «чаевые» (см. «Когда иссякнут рудники»).
К сожалению, гарантировать, что всё образуется само собой, никто не может: ну не было ещё в человеческой истории подобных ситуаций и технических систем, мы первые! Зато можно с уверенностью заявлять, что рост числа транзакций не прекратится. Дело в том, что если Bitcoin претендует хотя бы на конкуренцию с пластиковыми картами, ему необходимо уметь обрабатывать даже не десятки, а тысячи транзакций в секунду! VISA, например, утверждает, что её система в состоянии переварить 47 тысяч TPS — и уже переваривает треть этого потока. Если же биткойн намерен потеснить и наличность (а он, конечно же, намерен), цифру следует увеличить ещё как минимум на порядок.
Но реально ли это вообще? Ведь если решать задачу в лоб, придётся увеличить размер блок хотя бы в сто раз — и это только для начала. Сто мегабайт операций каждые десять минут! Полтора десятка гигабайт в сутки! Держать полную базу биткойн-транзакций на домашнем компьютере станет невозможным.
Впрочем, чисто технически здесь всё осуществимо: так, по крайней мере утверждает Гевин Андресен — де-факто руководитель проекта Bitcoin, занявший место Накамото. Андресену увеличение размера блока видится самым простым способом избежать надвигающегося кризиса — и уже со следующего марта он предлагает установить его в 20 Мбайт. По словам Гевина, такое увеличение будет ещё по силам пользователям биткойна: скорости интернет-каналов пока хватит, вычислительных мощностей тоже, хранить все транзакции рядовым клиентам необходимости не будет (есть запас по оптимизациям и оригинальные технические решения, позволяющие уменьшить объём обязательно хранимой информации до вменяемых величин).
Но увеличивать размер дальше? Программа-то справится, но Андресен не уверен в возможностях пользователей (он опасается, в частности, что темпы увеличения скоростей домашнего интернета в ближайшие годы ожидает застой). Впрочем, чего там, многие из участников разработки Bitcoin сомневаются, что радикальное увеличение размера блока вообще способно пройти без проблем — и предлагают, чтобы не рисковать, начать с малых инкрементов.
И вот тут вырисовывается второе узкое место Bitcoin — по сути, куда более масштабное, чем чисто техническая проблема размера блоков. Дело в том, что до сих пор судьба биткойна находилась и находится в руках технарей: небольшой группы энтузиастов, которые творят с криптовалютой что только им пожелается. Исходники свободны, не нравится — делайте форк (свою криптовалюту) и не мешайте! Вот только принцип этот, проверенный годами на другом гигантском ИТ-проекте — операционной системе Linux — в случае с биткойном может не сработать.
В Linux пользовательская масса защищена от побочных эффектов необязательностью апдейта: каждый волен обновить свою компьютер до последней версии линуксового ядра тогда, когда ему лично это посчитается нужным. С Bitcoin так не получится: радикальные решения, вроде увеличения размера блока, требуют чуть ли не синхронного обновления ПО на всех узлах системы, на компьютере каждого пользователя. Те, кто не обновился вовремя, окажутся автоматически отрезанными от криптовалютной сети: их переводы не будут приниматься. А ведь от нормального функционирования Bitcoin зависят уже тысячи людей, компаний, групп компаний, финансовых систем!
Иначе говоря, процесс внесения изменений в Bitcoin должен кем-то и как-то регулироваться: кучка технарей-энтузиастов, пусть даже и общавшихся с Накамото, на эту роль не годятся. Нужна некоммерческая организация, которая объединила бы все заинтересованные стороны, вне зависимости от их национальности и величины капитала. Ничего подобного у Bitcoin в настоящее время нет (Bitcoin Foundation, учреждённая в 2012 году, квартирует в США и даже там конфликтует с властями, а участники грызутся между собой). И едва ли рождение такой организации обойдётся без дополнительных трудностей…
P.S. В статье использованы иллюстрации CoinDesk, Pixel Logic.