Перейти к содержимому

Что такое масштабирование в криптовалюте

  • автор:

Проблемы масштабирования в блокчейне

Igor Geronemo

Масштабируемость это возможность блокчейна справляться с увеличенной нагрузкой путем добавления предусмотренных архитектурой ресурсов без падения качества работы.

Для широкого применения криптовалюты должны иметь высокую пропускную способность транзакций. В система Visa — 5K tps. Если рассматривать криптовалюту, как средство оплаты или полноценную систему для децентрализованных приложений, то надо ориентироваться на порядки в несколько тыс. транзакций в секунду.
В декабре 2017 г. Хайп на рынке привел к очень высокому повышению комиссии. Трансфер в сети биткойна стоил десятки долларов. И в данный момент большинство самых известных криптовалют имеют проблемы с масштабируемостью.

Биткойн.

Максимум 1 мб блок. В блок помещается около 2000 транзакций, что дает около 3.5 транзакций в секунду. В 2016–2017 г. было очень много разговоров о пропускной способности биткойна и в итоге было запланировано 2 апгрейда сети

  1. В Августе 2017 г. был проведен софтфорк SegWit (Segregated Witness) https://ru.wikipedia.org/wiki/Segregated_Witness , который дает возможность выносить часть информации о транзакции за пределы блока, что позволяет увеличивать пропускную способность вплоть до 2 раз.
  2. В ноябре 2017 г. планировали сделать хардфорк Segwit2x увеличив размер блока в 2 раза, но из-за отсутствия консенсуса у комюнити от хардфорка отказались.

Не все клиенты пользуются Segregated Witness (т. к. это был сотфорк, а не хардфорк, то осталась обратная совместимость и многие не используют SegWit в транзакциях), то реальная пропускная способность увеличилась лишь частично. В теории имеется на данный момент 7 tps (transactions per second) и вряд ли это значение в ближайшем будущем будет сильно увеличено. Самый вероятный сценарий — LightningNetwork (о нем ниже).

Эфир.

Количество транзакций в эфире зависит от установленного лимита газа (совокупная мощность вычислений) на 1 блок. Сейчас это 8M. Это значение несколько раз менялось, было 3M и 5M. Существенно его не увеличить, т. к. ноды итак еле справляются. Размер блокчейна составляет около 1Тб. Пропускная способность около 15 транзакций в секунду и на данный момент это предел.

Основные способы увеличения пропускной способности криптовалют.

1. Увеличение размера блока. По этому пути можно пойти, но это временное решение проблемы, блок будет необходиомо увеличивать в сотни раз. Но даже 2–4-кратное увеличение блока приведет к снижению децентрализации, т. к. хранить у себя копию блокчейна станет сложнее. При текущей экономике майнинга (когда владельцы полных нод не получают вознаграждения) в эфире и биткойне этот путь никто не рассматривает всерьез.

2. Офф-чейн транзакции.

2.1. Платежные каналы.

Часть транзакций можно не записывать в блокчейн, а писать туда лишь итоговый результат. Пример из жизни. Большая компания отдыхает в ресторане и в процессе заказывает около 50 позиций. При этом расчет идет не каждый раз за каждый заказ, а 1 раз в конце. Таким образом записывается лишь итоговый результат, но при этом опускаем некоторые детали, которые можно хранить вне блокчейна. Lightning Network — пример такой технологии. Позволяет очень сильно увеличивать пропускную способность, если вы доверяете тем агентам, с которыми имеете дело.

2.2. Сайдчейны.

3. Переход от майнинга Proof of Work на Proof of Stake или какие-то гибридные решения. Сейчас владельцы полных нод (т. е. люди, которые поставили ПО и занимаются валидацией транзакций и хранением блокчейна) делают это на безвозмездной основе. При увеличении количества транзакций на порядки размер блокчейна и мощности для обработки новых транзакций увеличатся многократно, что лишит этих людей физической возможности поддерживать ноду. Блокчейн исчезнет, т. к. его будет некому хранить кроме нескольких майнеров (а это сокрушительный удар по децентрализации). В случае перехода на PoS владельцы полных нод за свою работу будут получать вознаграждение за обработку транзакций и имеют возможность покупать оборудование для обработки и хранения гигантских объемов данных.

Принцип PoS майнинга следующий. Владелец ноды устанавливает у себя ПО, скачивает блокчейн и кладет на свой баланс некоторое количество монет, не меньшее установленного протоколом, которые становятся залогом его добросовестности. Далее он, также, как и другие участники подтверждаете пришедшие к нему блоки. Каждый участник проводит транзакции в блоке, валидирует его и получает вознаграждение. Т. к. ПО у всех одинаковое и список транзакций тоже одинаковый, то результат у всех должен получиться одинаковым. В случае валидации неверного блока участник теряет залог. В теории атаковать сеть злоумышленнику невыгодно, т. к. для этого ему нужно скупить на рынке очень много койнов (>1/3, участвующих в майнинге, для вывода из строя и или >2/3, для получения контроля). Это принесет ему прибыль, но атака подорвет доверие к криптовалюте и обрушит ее стоимость. Но это теория, в реальности PoS алгоритмы еще не до конца изучены в полевых условиях. PeerCoin — первопроходец PoS, гибрид с POW, разработана в 2012 г. и имеет много недостатков.

Ключевая проблема алгоритмов PoS — проблема Византийских генералов BFT

Вид PoS — delegated PoS, где участники голосуют за валидаторов и делегируют им свои монеты за вознаграждение — https://miningbitcoinguide.com/mining/sposoby/dpos-protokol

Большое и серьезное видео о PoS и dPoS

4. Sharding. Разбиение блокчейна на несколько частей (шардов), когда каждый из них хранит лишь свою часть блокчейна. Можно сделать 100 шардов и на первый взгляд это увеличит пропускную способность в 100 раз. Но не все так просто. Проблема в том, что шарды не знают о состоянии других шард, т. е. по умолчанию можно делать транзакции только внутри шард. Чтобы обойти это ограничение надо наладить обмен информации между шардами и это снизит общую пропускную способность. Стоит отдельно добавить, что, судя по всему, для сохранения децентрализации Sharding является необходимостью, т. к. хранение блокчейна с 10K tps на сервере это очень дорогостоящее мероприятие, требующее большого количества аппаратных мощностей, а Sharding позволяет хранить лишь часть блокчейна.

Трилемма массштабируемости, которую шардинг по идее должен разрешить.

Существующие криптовалюты, с высоким tps

  1. реализовавшие PoS: NXT (запущен давно), Ardor (обновление NXT), Cosmos
  2. dPos: Bitshares, Steem, Lisk (запущены давно, Steem имеет перспективы, как блоги с системой репутации), EOS, Tezos, TRX
  3. DAG — ациклический граф: IOTA, Nano
  4. Централизованная, Ripple и ее “децентрализованное” ответвление Stellar

Наиболее ожидаемые решения проблемы масштабируемости криптовалют на данный момент

Что на самом деле означает «масштабируемость» в мире блокчейна?

Масштабируемость — одна из самых важных проблем в блокчейне. С тех пор, как появился Биткоин, она была в центре внимания как практиков отрасли, так и ученых. Чжицзе Рен и Питер Чжоу исследуют вопросы масштабируемости блокчейна в VeChain и сравнивают различные блокчейны, анализируя их плюсы и минусы. Их цель — обеспечить как криптовалютные сообщества, так и широкую публику глубоким пониманием текущего состояния развития блокчейна. Думаю, вам это тоже будет чертовски интересно. Далее — от первого лица.

Независимо от того, исследуете ли вы блокчейн в академических кругах или просто тащитесь от происходящего в мире крипты, вы наверняка слышали термин «масштабируемость» (scalability) или «масштабируемый блокчейн» (scalable blockchain). Об этом так много говорят, столько шума. Однако в большинстве случаев за «масштабируемым» блокчейном скрывается обычная цепочка блоков, способная достигать высоких показателей TPS (транзакций в секунду). Иногда бывает даже так, что истинный смысл «масштабируемости» искажается или даже намеренно меняется, чтобы ввести людей в заблуждение и получить незаслуженные преимущества. С другой стороны, мы видели массу докладов и статей, написанных исследовательскими институтами, компаниями или СМИ, в которых пытаются объективно сравнить масштабируемость разных блокчейнов. Однако вряд ли хоть кто-то из них способен отличить лживые утверждения от имеющих под собой почву.

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

Для большинства компьютерных систем — например, базы данных или поисковой системы — «масштабируемость» означает способность системы обрабатывать растущий объём работы, то есть масштабироваться. Система плохо масштабируется или, иными словами, имеет плохую масштабируемость, если вместо того, чтобы задействовать больше ресурсов (например, подключать дополнительную вычислительную мощность, серверы или пропускную способность), она требует дополнительных усилий по модификации системы, чтобы быть в состоянии справиться с возросшей нагрузкой.

И всё же, в области блокчейна у слова «масштабируемость» гораздо более широкий диапазон значений. Да что там говорить — даже термин «блокчейн» пока не получил хорошего определения с академической точки зрения. К примеру, если говорить про Bitcoin, многие до сих пор считают «масштабированием» любое улучшение пропускной способности, задержки, времени начальной загрузки или стоимости транзакций.

В наши дни есть много различных систем блокчейна, которые можно считать «масштабируемым», однако их пропускная способность сильно отличается. Обратите внимание, что слово «масштабируемый» является сравнительным термином в блокчейне. Когда система называется масштабируемой, это значит, что она достигает более высокого значения TPS, чем другие существующие системы, путём изменения механизма консенсуса и/или уточнения некоторых параметров системы.

Фактически, мы можем классифицировать масштабируемые блокчейны на четыре типа:

  • 1. Масштабирование Bitcoin: решения для повышения пропускной способности Bitcoin за счёт увеличения размера блока или сокращения интервала блока без изменений в POW-алгоритме консенсуса
  • 2. Масштабирование POW: решения, которые всё еще укладываются в структуру консенсуса Сатоши Накамото, но достигают более высокой пропускной способности, чем POW-алгоритм в Биткоине, за счёт изменения алгоритма
  • 3. Масштабирование алгоритмов византийской отказоустойчивости (Byzantine Fault Tolerance, BFT): решения, основанные на BFT-алгоритмах, но с более простыми сообщениями, нежели в алгоритмах Practical Byzantine Fault Tolerance, PBFT
  • 4. Масштабируемые блокчейны: решения, которые ослабляют требование того, что узлы валидации/майнинга должны знать всю историю транзакций. Благодаря этому пропускная способность системы может возрастать с увеличением размера сети и, следовательно, лучше масштабироваться, чем системы трёх вышеупомянутых типов

Масштабирование Bitcoin

Все мы знаем, что Биткоин плохо масштабируется. Потому что дизайн POW (proof-of-work), лежащий в основе работы Биткоина, это не позволяет. В Биткоине POW используется как метод случайного определения следующего действительного (valid) блока, то есть все узлы «работают» (обеспечивают доказательство проделанной работы, POW) в течение определённого времени, чтобы определить победителя. Более того, новый блок должен быть синхронизирован со всей сетью, чтобы каждый узел мог (плюс-минус) конкурировать с другими в гонке за следующий блок. По сути, POW Биткоина обладает каскадной структурой, как на рисунке ниже.

Каскадная структура POW Биткоина запускает алгоритм консенсуса только после того, как все узлы закончат получать и проверять все блоки.

То, что синхронизация занимает 1 минуту, когда длительность работы POW составляет 10 минут (как в Биткоине) — это нормально. Но Биткоин больше не будет честным и безопасным, если время синхронизации будет сопоставимо с каждым циклом POW, что произойдёт, если размер блока увеличится или интервал блока значительно уменьшится — например, до 1 минуты. В таком случае в сети появится много форков, ответвлений, что в итоге приведёт к очень долгому времени подтверждения и снижению уровня безопасности.

Другими словами, неочевидное ограничение Биткоина заключается в том, что время каждого раунда работы алгоритма консенсуса должно быть значительно больше периода синхронизации. Сколько времени уйдёт на синхронизацию — зависит не только от дизайна алгоритма консенсуса, но и в значительной степени от характеристик основной сети, например, от пропускной способности, задержки, топологии, уровня децентрализации. В работе ‘On scaling decentralized blockchains‘ (О масштабировании децентрализованных блокчейнов) подсчитано, что Bitcoin мог обеспечить не больше 27 транзакций в секунду на сети Bitcoin в 2016 году. Это ограничение может быть неприменимо к отдельному альткоину, использующему тот же алгоритм POW для достижения консенсуса, или даже к современному Bitcoin, так как сети отличаются по размеру или уровню децентрализации. Однако вышеупомянутое ограничение остается в силе. Следовательно, «наивные» подходы, которые увеличивают блок (привет BCH — от редакции) или уменьшают интервал между блоками, могут «масштабировать» Биткоин совсем чуть-чуть.

Масштабирование POW

Для решения проблемы, изложенной выше, предлагаются новые схемы POW, в которых безопасность системы не зависит от синхронизации новых блоков, как показано на рисунке ниже. Другими словами, период согласования (достижения консенсуса) не обязательно должен быть значительно больше времени синхронизации, его можно оставить примерно или в точности таким же. Например, в Bitcoin-NG консенсус используется только для определения лидера раунда вместо целого набора транзакций. Таким образом, синхронизация транзакций может выполняться параллельно и может использоваться больший размер блока. Другие похожие блокчейны в этой категории имеют Hybrid Consensus, Byzcoin и GHOST.

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

POS (proof-of-stake)

Мы можем включить некоторые новые схемы POS в категорию масштабируемого POW с точки зрения масштабируемости. Всё потому, что в таких системах консенсус в сети достигается с помощью механизмов выбора лидера, которые основаны на генераторах случайных чисел и которым не требуется много времени для достижения справедливого выбора. Следовательно, у них нет ограничения в том, что «период консенсуса должен быть значительно больше времени синхронизации», и можно сразу перейти к большому размеру блока, как в решениях масштабирования POW. Среди известных проектов: Ouroboros, Snow White, Dfinity и Algorand.

Масштабирование BFT

Алгоритмы византийской отказоустойчивости (BFT) — это семейство алгоритмов консенсуса, которые могут допускать произвольное поведение ненадежных узлов, что позволяет честным узлам достигать консенсуса в ненадёжных сетях. Всё началось с задачи византийских генералов, предложенной Лесли Лэмпортом в начале 80-х. Однако из-за отсутствия «реальных» случаев применения практическая версия BFT появилась только в 1995 году и получила название «практической византийской отказоустойчивости» (PBFT).

PBFT — это алгоритм, имеющий сложность сообщения O(N²), как показано на следующем рисунке. N здесь — это общее число узлов проверки/майнинга в сети. На рисунке ниже показаны пять шагов в каждом раунде согласования (консенсуса), а стрелка представляет сообщение, отправляемого с одного узла на другой. Можно заметить, что для достижения консенсуса по одному сообщению это сообщение сперва должно быть передано всем узлам сети, а затем каждая нода (узел) должна оповестить каждую другую о сообщении.

Одним из главных недостатков PBFT является то, что он плохо масштабируется в зависимости от размера сети из-за сложности сообщения O(N²). Легко обнаружить, что количество сообщений, отправляемых между узлами для каждой транзакции, будет расти в квадрате относительно роста количества проверяющих сеть узлов. И поскольку пропускная способность может расти только пропорционально количеству узлов, пропускная способность будет уменьшаться по мере роста сети, и в принципе её нельзя будет использовать в сети с более чем, скажем, 50 узлами.

Для решения этой проблемы было предложено несколько идей, масштабирующих классические алгоритмы BFT. Первая попытка получила название спекулятивной (или предположительной) BFT. Идея очень проста: сперва узлы предполагают, что состояние сети хорошее и что среда доверенная, и используют более простые и эффективные схемы для достижения консенсуса. Если попытка в таком случае не удаётся, они переключаются обратно на более «дорогостоящий» PBFT. Это эквивалентно размену «худшей из задержек» на «лучшую из возможных пропускную способность». Отметим, что этот тип BFT на примере, допустим, Zyzzyva, существовал еще до концепции блокчейна. Поскольку проблема масштабируемости становится всё более и более важной, идея спекулятивной византийской отказоустойчивости была пересмотрена и принята на вооружение практиками и исследователями блокчейна для построения таких систем, как Byzcoin, Algorand и Thunderella.

Zyzzyva спекулятивно использует схему сложности сообщения O(N) для достижения консенсуса

Вторая идея заключается в намеренном удалении избыточности в процессе BFT за счёт использования информационно-теоретического инструмента — кодирования со стиранием. Он может повысить эффективность использования пропускной полосы. К примеру, Honeybadger-BFT попадает в эту категорию.

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

Что лучше: масштабируемый POW (POS) или масштабируемая BFT

Хотя схемы масштабируемого POW (POS) и масштабируемой BFT, упомянутые выше, могут отличаться как по форме, так и по концепции, они могут иметь схожую производительность с точки зрения пропускной способности. В идеале оба подхода должны максимально использовать пропускную способность для передачи сообщений и обеспечивать беспрепятственную сложность сообщений O(N). 100-1000 транзакций в секунду (TPS) в сети с сотнями узлов (нод) будет грубым приближением пропускной способности масштабируемого POW (POS) или масштабируемой BFT. Другими словами, если вы видите термин «масштабируемый блокчейн», скорее всего, он будет относиться к двум этим типам «масштабируемости».

Направленные ациклические графы (DAG)

Многих удивит, что алгоритмы консенсуса на базе DAG также попадают в эту категорию, поскольку многие считают, что их вполне можно масштабировать горизонтально. Но факт заключается в том, что большинство DAG, независимо от того, являются они академическими предложениями по типу Phantom, Conflux или Avalanche, или промышленными проектами по типу IOTA и Hedera Hashgraph, они требуют, что все сообщения были известны каждому углу. Phantom, Conflux и IOTA можно рассматривать как усовершенствованные версии GHOST (масштабируемый POW), обеспечивающие лучшее распараллеливание консенсуса и синхронизацию. Avalanche и Hedera Hashgraph можно рассматривать как алгоритмы спекулятивной BFT, которые выдают высокую пропускную способность с менее строгими предположениями BFT.

Горизонтальные блокчейны (scale-out)

Эта концепция больше напоминает первоначальное определение «масштабируемого» в распределённых системах, в том смысле, что как масштабируемый горизонтально (scale-out) блокчейн, так и масштабируемая распределённая система с радостью предлагают более высокую пропускную способность по мере роста сети. Принципиальное различие между ними заключается в том, что масштабируемость в распределённых системах требует линейного роста производительности системы вместе с числом серверов (узлов), а это по сути является недостижимым для блокчейна по причине децентрализации.

И поэтому исследователи блокчейна стремились к более низкому уровню масштабируемости, чтобы пропускная способность сети росла сублинейно с увеличением размера сети. В результате получались схемы, которые сегодня называются «масштабируемыми горизонтально блокчейнами». Возможно, вы не слышали об этом самом горизонтальном масштабировании (scale-out), но наверняка слышали о «шардинге», Lightning Network и Ethereum Plasma. Их все можно рассматривать как горизонтальные подходы к решению вопроса масштабируемости блокчейна.

В масштабируемых горизонтально блокчейнах некоторые сообщения могут никогда не достичь некоторых узлов. Здесь под «узлами» мы подразумеваем тех, кто участвует и в валидации, и в консенсусе. В контексте Биткоина это будет означать, что майнеры не должны знать и подтверждать все транзакции. Серьёзным следствием такого параметра будет то, что растёт риск двойной траты, поскольку монеты, потраченные в транзакции, можно потратить снова в узлах, которые не знают об этой транзакции. Чтобы предотвратить двойные траты и, в то же время, сохранить параметр, нам понадобится, чтобы некоторые узлы в сети проверяли транзакции от лица других, что фактически возвращает определённый уровень централизации в систему. В результате под угрозой оказывается безопасность или децентрализация. Эту проблему называют «трилеммой масштабируемости блокчейна». Из-за трилеммы были споры о том, стоит ли нам вообще использовать горизонтальные схемы масштабирования.

Трилемма масштабируемости блокчейна

Как мы уже упомянули в некоторых схемах горизонтального масштабирования, есть две популярные стратегии разработки и реализации горизонтального блокчейна: одна — через шардинг и другая — через off-chain схемы, то есть такие, которые проводятся не на основном блокчейне.

Шардинг (sharding) — это разделение всей сети на подсети, «шарды» или сегменты, где узлы в каждой подсети используют локальный ledger, то есть книгу блоков. В идеале каждому узлу нужно знать, проверять и хранить сообщения, передаваемые только в пределах его собственного сегмента, а не все. Можно представить шардинг как разбиение исходного блокчейна на меньшие блокчейны, которые менее безопасны, так как меньше узлов проверяют транзакции и участвуют в консенсусе.

Таким образом, самые большие проблемы стратегии шардинга следующие: 1) как защитить каждый шард; 2) как шарды могли бы эффективно и безопасно взаимодействовать для обработки транзакций между шардами. Например, если какие-нибудь криптовалюты перемещаются из шарда А в шард Б, получатель в шарде Б должен запросить действительность валют у множества узлов из шарда А, чтобы не попасться на уловку злоумышленников. Для решения этих двух проблем предлагалось много решений, достаточно перечислить некоторые: Omniledger, Chainspace, Rchain, шардинг для Ethereum, распространяться о них мы будем в другой статье.

Схемы вне блокчейна (off-chain), внешние решения надстройки, в значительной степени базируются на идеях Lightning Network, которая использует некоторые хитрые приёмы для активации отдельного канала вне блокчейна между двумя узлами для быстрых переводов — без необходимости регистрировать каждую транзакцию между ними на блокчейне Bitcoin. Однако такое удобство сопряжено с некоторыми издержками, а именно: обе стороны должны заранее внести депозит на блокчейн, чтобы открыть оффчейн-канал между собой. С тех пор предлагалось множество подобных внеблокчейновых схем, предлагающих проведение быстрых платежей. В частности, сторонам позволяли взаимодействовать посредством других типов сообщений, например, транзакций с множеством сторон (multi-party transactions), транзакций условных платежей (conditional payment transactions) и транзакций на смарт-контрактах (smart contract transactions). Таким образом, остаётся лишь задача спроектировать и эффективно развернуть такие механизмы за пределами блокчейна с применением принудительных мер на блокчейне для различных типов сообщений. Из обсуждаемых проектов: Plasma, Polkadot, Liquidity.

Что лучше: шардинг или внеблокчейновые платежи?

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

Фактически, термин «консенсус» состоит из двух свойств: согласованность (соглашение) и жизнеспособность (доступность). Первое означает, что два честных узла не должны иметь разногласий по поводу содержания сообщения. Последнее означает, что если честный узел знает сообщение, все остальные честные узлы в конечном счете тоже о нём узнают. Как для шардинга, так и для внеблокчейновых схем жизнеспособность оказывается скомпрометированной, поскольку о некоторых сообщениях узнают не все честные узлы. Разница между ними в том, как они достигают согласованности. В частности, шардинг гарантирует согласованность в шарде с определённым ухудшением безопасности. С другой стороны, решения вне цепи блоков не дают жёсткой гарантии согласованности. Вместо этого согласованность зависит от некоторого экономического принуждения, такого как депозит на основной цепи, и штрафного механизма, если кто-то ведёт себя плохо за пределами блокчейна.

VAPOR

Помимо шардингового и внеблокчейнового подходов, мы недавно предложили ещё одно решение для горизонтального масштабирования: VAPOR. Эта система основана на важном допущении под названием «рациональность», которое мы наблюдали на имеющихся системах блокчейна. В частности, мы находим, что большинство систем блокчейна рассматривают особый тип сообщений — транзакций, и большинство систем по умолчанию подразумевают, что участники блокчейна рациональны в отношении транзакций. К примеру, если Алиса рациональна и если она хочет что-то купить у Боба, после того, как она осуществит платежную транзакцию Бобу, ей нужно будет предоставить подлинность этой транзакции Бобу. И Боб, если он разумен и рационален, продаст свой товар только после того, как проверит, что сделка действительно подтверждена и подлинна. Мы называем это «рациональностью в передачи ценности». VAPOR использует «рациональность» в системе передачи ценности для масштабирования без ущерба для безопасности и децентрализации. Другими словами, VAPOR может использоваться в качестве полностью защищённой и децентрализованной системы ценностей, то есть в качестве криптовалюты, без необходимости каждого узла знать, подтверждать и хранить все транзакции. Однако у этой системы есть ограничение в функциональности, поскольку её можно использовать только для передачи ценности — в качестве «денег», чтобы допущение о «рациональности» соблюдалось.

Обсуждение

Мы надеемся, что теперь концепция масштабируемости блокчейна стала вам понятнее. Самое важное, что нужно из этого всего вынести: так называемый «масштабируемый блокчейн» ничего не скажет вам о его подлинной масштабирумости, если только его не сравнивают с Биткоином, POW Биткоина, классическим BFT или негоризонтальным блокчейном.

Критерии определения масштабируемости блокчейна

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

      Использует ли блокчейн POW Биткоина в качестве типа консенсуса? Если да, есть ли ограничение, что узлы всегда должны синхронизироваться с новейшими блоками, иначе их мощность майнинга будет потрачена впустую? Если да, это не масштабируемый POW.
      Использует ли блокчейн византийскую отказоустойчивость (BFT) в качестве типа консенсуса? Если да, есть ли какая-нибудь хитрая уловка, которая позволяет уменьшить сложность сообщения? Если нет, это не масштабируемая BFT.
      Нужно ли знать каждый кусочек сообщения каждому проверяющему узлу/майнеру? Узел в данном случае означает узлы, которые участвуют в консенсусе, то есть узлы, которые могут генерировать блоки — например, майнеры в контексте криптовалют. Если да, это не горизонтально масштабируемый блокчейн.

Так сколько транзакций в секунду может быть на блокчейне?

А теперь позвольте мне дать чуть более конкретное представление о масштабируемости с точки зрения TPS, проводимых транзакций в секунду. Как мы все знаем, если блокчейн не масштабируется горизонтально, каждый узел, участвующий в консенсусе, должен получить все сообщения. Следовательно, пропускная способность системы будет ограничена наименее способным узлом в сети. Следовательно, пропускная способность домашнего персонального компьютера, то есть 100-1000 TPS, будет вполне разумным ожиданием максимального уровня TPS, который может достичь полностью децентрализованный блокчейн. Другими словами, если не масштабируемый горизонтально блокчейн заявляет о пропускной способности в 10 тысяч TPS, это говорит о том, что система должна быть достаточно централизованной, поскольку узлы с меньшей пропускной способностью не смогут к ней присоединиться. С другой стороны, если блокчейн масштабируется горизонтально, его пропускная способность в теории не ограничена. Однако стоит остерегаться компромиссов между безопасностью, децентрализацией и функциональностью, поскольку невозможно одновременно угодить им всем.

Слой 1 или слой 2?

«Что будет лучшим решением для масштабирования блокчейна, слой 1 или слой 2?» — этот вопрос вызывает столько горячих споров, что мы не могли его не задать, обсуждая «масштабируемость». Однако мы не будем называть их конкретно, поскольку определение слою 1 и слою 2 (layer 1/layer 2), как таковое, не существует. Ограничимся кратким описанием.

В частности, layer 1 используется для представления всех усилий по масштабированию блокчейнов путем изменения существующих алгоритмов консенсуса или предложения новых алгоритмов консенсуса, которые включают все алгоритмы, описанные в этой статье, за исключением внеблокчейновых схем. Однако, как мы уже объяснили, их достижимая «масштабируемость» сильно разнится. С другой стороны, подходы layer 2 по большей части представлены внеблокчейновыми схемами. Будет неуместно сравнивать «слой 1» и «слой 2» с точки зрения масштабируемости, поскольку только одна категория «слоя 1», а именно шардинг, приближается к тому уровню «масштабируемости», что и «слой 2».

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

И поскольку масштабируемость как задача не решена даже близко, в будущем мы определённо увидим новые системы масштабируемых блокчейнов.

Почему масштабируемость — большая проблема криптовалют

Масштабируемость — способность криптовалюты справляться с наплывом большого числа транзакций в один момент. Например, биткоин спокойно функционирует при семи транзакциях в секунду. Если переводов в секунду больше семи, то все транзакции встают в очередь на пополнение. Эта очередь формируется благодаря свободной комиссии биткоина. То есть человек, заплативший большую сумму в качестве комиссии, занимает более высокое место в очереди.

Такая неприятная ситуация возникает из-за ограничений в блокчейне. Суть в том, что каждый блок имеет строго прописанный максимум информации, которую он может в себя вместить. Такие ограничения помогают системе легче переживать DDoS-атаки на сеть. А транзакции являются той самой информацией, которая записывается в блоки, подтверждающие переводы. На создание каждого блока требуется время. У каждой криптовалюты оно своё, но у биткоина этот процесс занимает 10 минут.

С этим на помощь приходят майнеры. Они обеспечивают «разгадывание» блоков с последующим подтверждением транзакций. Вроде бы все довольны, но нет.

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

Какие были предложены и реализованы решения проблемы масштабируемости

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

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

Увеличение размера блока до восьми мегабайт

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

Окей, снимаем ширму: первой группой разработчиков были ребята, которые впоследствии создали Bitcoin Cash, а второй группой была компания Blockstream со своим протоколом SegWit, который являлся целью компромисса. Разлад произошел после того, как создатели Bitcoin Cash приняли ряд важных решений без участия главы Blockstream Адама Бэка.

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

Некоторые вопросы к экономике криптовалют и блокчейнов

Обработка транзакций в блокчейне всегда будет медленнее и дороже, чем в централизованной системе. Масштабирование блокчейнов происходит за счёт доверия к централизованным элементам инфраструктуры. Криптовалюты не работают ни как средство обращения (вымываются из оборота из-за ограниченности предложения), ни как средство сбережения (отсутствует привязка к реальным активам). «Честная» крипта не вытеснит фиат из-за высокой стоимости кредитов в ней. Долгосрочные проекты на блокчейнах открытого доступа невозможны из-за непредсказуемой стоимости доступа, поэтому они не в состоянии создать долговременную ценность своим криптовалютам. Будущее — за блокчейнами закрытого доступа под контролем традиционных институтов.

    i «Частные деньги» Мультивалютная система, предложенная Фридрихом фон Хайеком в книге «Частные деньги», основывается на множестве условий и предположений, значительная часть которых нереализуема. И даже при их выполнении оказывается неустойчивой и очень дорогой в эксплуатации. Все участники системы вынуждены нести гораздо более высокие транзакционные издержки и часто действовать вопреки своим текущим экономическим интересам. Едва ли такая система окажется выгоднее, чем единая фиатная валюта с умеренной инфляцией. Также мне не кажется оправданным смешивать в одном инструменте средство обращения и средство сбережения (требование долгосрочного сохранения покупательной способности денег): по отдельности эти функции реализуются лучше и дешевле. Тем не менее, разработка механизмов, которые позволяли бы находить оптимальные «ареалы монетарного регулирования» (как территориальные, так и отраслевые) мне кажется необходимой, просто это задача отнюдь не уровня «рыночек порешает». i О международной торговле в нацвалютах Международная торговля в нацвалютах, которая многим видится как более справедливый порядок по сравнению с использованием небольшого числа резервных валют, на самом деле скорее привела бы к повышенным издержкам, постоянным перебоям в поставках из-за курсовых рисков, повышенной узявимости и меньшей управляемости национальных экономик, валютным войнам. Мне кажется более вероятным, что сложившиеся вызовы (в том числе и для эмитентов резервных валют т.к. сопоставимый с национальной экономикой оффшорный рынок нацвалюты — серьёзная угроза для монетарной и бюджетной стабильности) приведут к активизации разработки наднациональной валюты международных расчётов, возможно, с использованием блокчейн-технологий для организации прозрачного управления ею на основе консенсуса центробанков. i О международной торговле в нацвалютах/Что дальше?

Предуведомление

Я отнюдь не пытаюсь доказать, что блокчейн вообще и криптовалюты в частности — это бессмысленно и вредно. Наоборот, как я уже писал в докладе про ЦВЦБ i Цифровые валюты центральных банков Центробанки практически всех экономически развитых стран занялись исследованиями в области «цифровых валют». Какие задачи они хотят решить с их помощью, и чем нам всем это грозит? , это инструмент, колоссально снижающий транзакционные издержки и накладные расходы экономических агентов. К сожалению, активные блокчейны, по идеологическим или даже эмоциональным причинам, оказываются неприспособлены к обслуживанию реальной экономики, а только «экономики хайпа».

TL;DR

  1. Суть децентрализации в блокчейнах — в том, что все транзакции должны быть подтверждены всеми узлами сети. Это приводит к расходам на порядки больше, чем в централизованных системах (где таких узлов — единицы). С ростом сети расходы на обработку транзакций растут _сверх_линейно: к рассылке транзакции по всем узлам добавляется координация между узлами, которая не может быть завершена за время, пропорциональное их количеству, в отсутствие централизации. Таким образом, безотносительно конкретного алгоритма децентрализованного консенсуса, обработка транзакций на блокчейне будет многократно медленнее и дороже, чем в централизованных системах аналогичного технологического уровня.
  2. Технологии масштабирования блокчейнов увеличивают пропускную способность за счёт (а) увеличения уязвимости самого блокчейна, (б) введения централизованных элементов инфраструктуры, в общем и целом — бесконтрольных и безответственных.
  3. Снижение издержек по сравнению с «конвенциональной» финансовой инфраструктурой с помощью криптографии и смарт-контрактов достигается ценой отсутствия контроля за правомерностью транзакций, отсутствия обратимости ошибочных и мошеннических действий, отсутствия возможности корректировать поведение системы в непредусмотренных разработчиками обстоятельствах, отсутствия системы обратных связей, препятствующих этой системе «пойти вразнос». И, из-за п. 1, даже такое снижение возможно лишь при невысоком уровне популярности такой системы.
  4. Дефляционные валюты, какими создаются большинство криптовалют, не в состоянии работать как валюты. Их накопление у агентов с высокой нормой сбережения (+ естественный экономический рост) приводит к «обескровливанию» экономики и переходу на альтернативные (часто дорогие и ненадёжные) способы расчёта. Возврат денежных единиц в экономику через механизмы кредитования не работает. Дефляционная валюта = высокая положительная реальная безрисковая ставка = меньше желающих рисковать выдавая займы + очень высокая ставка по кредитам. Следовательно, реальный сектор, имея альтернативой кредиты в фиате, не будет кредитоваться в крипте. Следовательно, дефляционная крипта никогда не сможет вытеснить фиат.
  5. Криптовалюты не могут являться и средством сбережения. Они не имеют самостоятельной ценности и также не имеют привязки своей цены к реальной экономике в виде долгосрочных контрактов, обслуживающих производственные цепочки. Поэтому, даже при ограниченном предложении, вложенную в них ценность они не сохраняют, и цена криптовалюты может быть любой. Сколь-нибудь значимый объём долгосрочных контрактов в криптовалюте не появятся из-за предыдущего пункта.
  6. Попытка придать криптовалюте ценность, сделав её единственным способом получить доступ к искусственно ограниченной пропускной способности блокчейна — провальна. Это приводит к непредсказуемой стоимости доступа. Следовательно, серьёзные долгосрочные проекты на таком блокчейне запускаться не будут из-за риска, что на волне хайпа стоимость эксплуатации проекта будет выше его экономических выгод, что повлечёт доп. издержки для ухода с этого блокчейна. Т.е. устойчивой базы пользователей, обеспечивающих его долговременную ценность, у блокчейна не будет. Будут краткосрочные проекты или экспериментальные (когда блокчейн непопулярен и дёшев) или мошеннические (когда популярен и до́рог). В конце концов и те, другие, переедут на следующий, более прогрессивный блокчейн.
  7. Исходя вышеперечисленного, мне кажется, будущее — за блокчейнами закрытого доступа под контролем традиционных институтов. Это позволит радикально уменьшить транзакционные издержки на рутинных операциях, одновременно сохранив жизнеспособность и устойчивость системы в условиях современной экономики.

Блокчейн как система обработки транзакций

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

Инфраструктура блокчейнов — неизбежно очень дорогая

Что происходит при классической централизованной обработке:

  1. сервер получил транзакцию,
  2. сервер обработал транзакцию,
  3. сервер перешёл к следующей транзакции.

Всё. Понятно, что в реальном мире присутствует некоторая избыточность для обеспечения отказоустойчивости, однако она крайне невелика (двойное-тройное резервирование вычислительных мощностей + несколько резервных хранилищ истории транзакций).

А вот примерно так выглядит обработка транзакций в децентрализованных системах:

  1. сервер получил транзакцию,
  2. сервер разослал транзакцию по всем остальным обработчикам,
  3. <идёт окно сбора блока>
  4. сервер договаривается с остальными, какой список транзакций они все будут обрабатывать,
  5. сервер обрабатывает согласованный с остальными блок транзакций,
  6. сервер рассылает всем остальным обработчикам результаты обсчёта блока,
  7. сервер договаривается со всеми остальными, чьи результаты обработки считать правильными,
  8. сервер записывает в свою копию чейна результаты обработки.

От блокчейна к блокчейну процедура может достаточно сильно меняться, однако суть остаётся прежней: каждая транзакция так или иначе должна быть разослана, обработана и сохранена всеми участниками обработки. Собственно, в этом суть децентрализации блокчейнов. При этом, все участники должны договориться о правильной последовательности транзакций: пользователь отправляет свою транзакцию какому-то произвольному участнику, дальше он её рассылает по всей сети; следовательно, порядок транзакций у всех участников будет разный; упорядочивание по штампу времени на транзакции не работает т.к.для этого нужен единый доверенный источник времени, через который проходили бы все транзакции перед отправкой, что отменяет децентрализацию.

Поэтому децентрализованная обработка транзакций, при прочих равных, никогда не будет дешевле и быстрее централизованной. Даже если мы откажемся от таких безумно дорогих алгоритмов консенсуса как Proof of work, суть — все узлы сети должны обработать все транзакции и договориться об их правильном порядке — от этого не поменяется.

Из-за необходимости договариваться о порядке транзакций, стоимость обработки растёт с количеством серверов в сети сверхлинейно. И чем выше децентрализация (= больше обработчиков) — тем медленнее и дороже будут транзакции. Но в основе идеологии популярных блокчейнов часто лежит максимальная децентрализация: каждый пользователь системы должен также быть обработчиком транзакций. Особенно это выражено у биткойна, где, не имея собственного сервера-обработчика, невозможно даже сформировать корректную транзакцию для отправки в сеть. Простые пользователи даже для такой простой задачи вынуждены полагаться на централизованных провайдеров инфраструктуры (коих буквально по пальцам пересчитать).

К сожалению, многие блокчейны последних поколений, ради хайпа или действительно искренне не понимая сути проблемы, хвалятся перед пользователями колоссальной производительностью. Особенно этим отличается Солана, утверждая о пропускной способности вплоть до 60.000 транзакций в секунду, что больше чем у Визы. Только у Визы — это реально проведённые платёжные транзакции, а у блокчейнов — в лучшем случае <количество транзакций в блоке> × <минимальный размер транзакции>, а то и вообще все факты коммуникации между узлами сети. В итоге, когда «злоумышленник» начинает создавать платёжные транзакции со скоростью всего лишь 350 штук в секунду, Солана практически полностью останавливается на несколько суток, т.к. 350 реальных платёжных транзакций оборачиваются почти полмиллионом «транзакций» Соланы.

В итоге, пользователи популярных криптовалют (а) продолжают пользоваться централизованной (но на сей раз уже совершенно безответственной) инфраструктурой, (б) платят комиссии, которые оправдываются только на суммах очень далёких от повседневных транзакций. А сама инфраструктура оказывается в принципе неспособна обрабатывать весь объём тех транзакций, для которых она предполагалась.

Масштабирование блокчейнов — проблематично и требует доверия в очень агрессивной среде

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

Шардинг

Шардинг — это буквально физическое разделение блокчейна на несколько частей (шардов), с установлением каких-то каналов передачи информации между ними. Популярную сейчас тему с объединением разных блокчейнов «мостами» можно считать разновидностью шардинга.

Проблемы здесь две.

Чем меньше узлов в блокчейне «открытого доступа» — тем более он уязвим для атак. Значит, шарды сами по себе должны быть достаточно велики, т.е. избыточность инфраструктурных расходов всё равно присутствует (и она в десятки-сотни раз больше, чем в централизованных системах).

Канал передачи информации между шардами/блокчейнами (мост) — это офф-чейн решение: обыкновенный сервер, который анализирует транзакции, происходящие на одном блокчейне, и на их основе создаёт транзакции на другом. Если ваша транзакция предполагает использование моста, то вы должны доверять его оператору (и, само собой разумеется, алгоритму передачи данных между блокчейнами: что он не имеет ни багов, ни уязвимостей и корректно работает в любых возможных условиях). Ломают мосты — регулярно. А система, в которой вы должны доверять свои активы неконтролируемым и ненаказуемым лицам, которые вольны ими распоряжаться необратимо — мало пригодна для обычной хозяйственной деятельности.

Небольшая мелочь на фоне предыдущего — мост сам по себе создаёт существенную дополнительную нагрузку на инфраструктуру.

Надстройки над блокчейном — Layer2

Они существуют в двух формах:

  1. «Чистый» layer2. Пользователь обращается к централизованному сервису, который пользуется блокчейном только для чтения/записи какой-то информации (например, проверить корректность обращения → сохранить результат обращения). Как и в случае с мостами, в полный рост стоит проблема доверия: будет ли этот сервис функционировать корректно, и будет ли он функционировать вообще.
  2. Rollups. Тот же централизованный сервис, но вместо записи результатов обработки транзакций, в блокчейн записываются криптографические доказательства того, что они были обработаны правильно, а сам сервис делает депозит, который будет отобран у него в случае, если кто-то обнаружит жульничество. Уже лучше, но
    • объём записи на блокчейн — гораздо выше чем в «layer2 на доверии» (надо записывать и алгоритм обработки, и все транзакции, и результаты, и доказательства; тогда как в первом случае достаточно было только результатов);
    • кто будет тратить ресурсы на проверку результатов работы этих сервисов, если 90+% этой работы будет впустую? ведь бо́льшая часть сервисов — не мошеннические, а мошеннические воруют деньги отнюдь не всё время т.е. ловля нарушителей банально не окупается;
    • выгода оператора сервиса от мошенничества может быть кратно больше, чем депозит этого оператора на чейне;
    • мы по-прежнему должны доверять сервису в том, что (а) его алгоритм в принципе корректен и работоспособен в любых обстоятельствах, (б) оператор не остановит его к тому моменту, когда он нам понадобится.

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

Для сложившегося противоречия я вижу только одно, крайне неприятное для большинства криптоэнтузиастов решение — отказаться от блокчейнов открытого доступа. Прозрачность, независимое подтверждение и единый реестр транзакций — это хорошо, но, чтобы это было также дёшево и надёжно, валидаторами должны стать небольшое число признанных финансовых организаций. Системообразущих/центральных банков, например.

Крипта как альтернативная финансовая система

Когда начало приходить понимание, что массовые платежи в обозримом будущем перевести на блокчейн не получится, появилась идея, что криптовалюты позволят создать новую, «справедливую» мировую финансовую систему. Что крипта будет использоваться для крупных транзакций и для сохранения ценности, а повседневные расчёты, так и быть, отдадим централизованным Layer2 решениям, которым по-прежнему нужно доверять. Но и здесь разработчики, в массе своей, копают куда-то не туда.

Дефляционные криптовалюты — не работают как валюты

Мы все не любим инфляцию, и создатели криптовалют тоже. К тому же, ограниченность предложения повышает ценность криптовалюты в глазах пользователей. Однако, такая «валюта» нежизнеспособна (по крайней мере, как валюта, т.е. средство обращения).

Даже на очень примитивной модели это легко увидеть. В любой экономике существуют агенты с высокой нормой сбережений. Ограниченность выпуска валюты приводит к тому, что, в конечном итоге, вся она окажется у таких агентов и всякий обмен благами посредством этой валюты прекратится. То есть даже не вдаваясь в механизмы падения производства в условиях высокой дефляции i Инфляция/Управление инфляцией из-за неравномерности процесса снижения цен, можно сразу сказать, что такая валюта работать не будет. По мере вымывания средства обращения из экономики, агенты будут стремиться (а) ввести заменители (колоссальное усложнение расчётов, транзакционные издержки, повышенные риски), (б) изъять «излишки» у сберегателей силовыми методами.

ОК, предположим что все цены идеально точно отслеживают объём валюты в обращении, тогда изъять её всю всё-таки не получится: этот объём будет экспоненциально убывать вместе с экспоненциальным снижением уровеня цен. Экономика не останавливается, но у «сберегателей» в конечном итоге появляется возможность уничтожить её одним ударом — резким увеличением своего спроса. «Идеальные» цены выстреливают вверх, и у остальных экономических агентов просто не оказывается денег на продолжение своей деятельности в условиях новых цен.

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

Можно было бы предположить, что возвращение валюты в оборот будет происходить через механизм кредитования (денежный мультипликатор). Однако здесь мы видим два препятствия.

Кредитор за свои риски хочет получить какую-то премию сверх безрисковой ставки, допустим 5%г в среднем. В случае фиатной валюты реальная безрисковая ставка обычно около 0%г (доходность коротких гособлигаций). В случае дефляционной криптовалюты — она положительная, причём неопределённо положительная, т.к. помимо неопределённости в скорости экономического роста, который в условиях ограниченного денежного предложения и создаёт дефляцию, существуют и столь же неопределённые невозвратные потери. Таким образом, средняя реальная процентная ставка по кредитам в криптовалютной экономике будет не 5%г, а значительно больше (добавляются, по меньшей мере, средняя скорость экономического роста, около 3%г, + скорость невозвратных потерь, которая, скорее всего, несколько выше).

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

Интересно и другое следствие этого построения. В условиях конкуренции дефляционной крипты и фиата за реальный сектор — крипта не сможет победить никогда. Потому что предприниматели будут брать кредиты в фиате — это просто гораздо дешевле. А значит, и практически все остальные расчёты они тоже будут вести в фиате — ведь именно им финансируется бизнес.

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

Криптовалюты не работают как инструмент сбережения

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

Но в чём самостоятельная ценность криптовалют? Средства обращения самостоятельной ценности не имеют — они лишь соизмеряют ценности реальных активов. Денежная единица одинаково хорошо выполняет свою функцию безотносительно количества нулей на ценниках. Главное — чтобы это количество не изменялось слишком быстро.

Разработчики криптовалют предполагают, что если количество денежных единиц в обращении ограничить, то выраженные в них цены, по крайней мере в долгосрочной перспективе, изменяться не будут (или будут снижаться из-за выбытия денежных единиц) ⇒ даже если обслуживаемый такой валютой товарообмен невелик, она будет хорошо сохранять свою ценность. Это ошибка. Чем меньше объём экономических отношений, обслуживаемый валютой, тем меньше её ценность «заякорена» относительно реальных активов. Пока условный биткойн используется только для покупки условного бигмака, а не для расчётов по всем производственным цепочкам, обслуживающим его изготовление (с долгосрочными контрактами номинированными в биткойне же), условный бигмак может стоить сколько угодно условных биткойнов. Потому что цена бигмака в биткойнах существует только в момент покупки, а сразу после транзакции они будут конвертированы в валюты тех самых долгосрочных контрактов, которые и определяют цену бигмака.

Пока объём долгосрочных контрактов, номинированных в криптовалюте, мал (есть ли вообще такие?), её цена определяется исключительно спекулятивными настроениями — просто отсутствуют обратные связи, привязывающие её к реальным активам. Безотносительно объёма транзакций в этой криптовалюте.

Радикальная автоматизация снижает издержки ценой надёжности и стабильности

Развитая финансовая система должна иметь механизмы: проверки корректности транзакций, исправления ошибок (включая принудительные действия по отношению к злоумышленникам), стабилизации своей работы.

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

Т.е. ошибки (как человеческие, так и программные), уязвимости и просто некорректное поведение в непредусмотренных обстоятельствах — будут. При этом возможности по их предотвращению — ослаблены, а возможности устранения их последствий — практически полностью отсутствуют. Это, мягко говоря, не способствует использованию блокчейнов для обслуживания крупных транзакций. «Низкие издержки» транзакций на блокчейне часто являются следствием полного отсутствия требований к надёжности системы и перекладыванием всех её рисков на конечных пользователей. В этом смысле «нерегулируемые финансовые организации», на классических технологиях, были бы ещё дешевле и эффективнее, при сопоставимых рисках.

Другая сторона «тупых» смарт-контрактов (и вообще, «алгоритмических финансов» как они есть сейчас) — это практически полное отсутствие отрицательных обратных связей. Что происходит, например, когда «централизованная» финансовая система сталкивается с повышенной волатильностью? Начинаются приостановки торгов, их перевод в дискретный режим или даже закрытие. Чтобы ликвидность успела накопиться, горячие головы — подостыть, а роботы не наделали много дел. Институционалы вообще крупные сделки (и ликвидации) проводят в режиме прямых контактов. Это всё обратные связи, которые придают системе устойчивость. И даже они не всегда достаточны. В крипте их, кажется, просто нет.

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

Всё это делает современную крипту совершенно негодной в роли инфраструктуры для мировой финансовой системы.

Крипта как технологическая платформа

Когда стало понятно, что криптовалюта, не имеющая самостоятельной ценности, обречена — появилась концепция блокчейна как технологической платформы, оснащённой некоторой криптовалютой для оплаты за её использование. Это похоже на налоги, которые являются важным «якорем» для стоимости национальной валюты.

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

  1. Есть какой-то прогрессивный блокчейн, на котором все захотят писать децентрализованные приложения.
  2. Разработчики/пользователи приложений платят за «газ» — объём вычислений и записанных на блокчейн данных. Обычно, платят в «базовой» криптовалюте блокчейна. Плату получают узлы сети.
  3. Популярность этого блокчейна растёт, но его пропускная способность ограничена ⇒ растёт цена его использования. И растёт цена его базовой криптовалюты.

Наличие некоторой криптовалюты = наличие доступа к вычислениям на её блокчейне, так возникает её ценность.

В чём же здесь проблема?

Ровно в том, что чем больше используется блокчейн — тем дороже им пользоваться, причём верхний предел стоимости отсутствует. Доступные вычислительные мощности искусственно ограничены (появление новых узлов сети не увеличивает пропускную способность сети, но наоборот — уменьшает — из-за возросших расходов на координацию между бо́льшим числом узлов), и создана ситуация конкуренции за ограниченный ресурс, в которой побеждает самый маржинальный (что практически всегда означает — мошеннический). И единственный способ обхода этого ограничения — запускать новый блокчейн.

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

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

Заключение

Я всячески приветствую разработки, связанные с автоматизацией финансовой и, шире, бюрократической системы на технологиях блокчейна. Однако, мне кажется что ограниченная масштабируемость и неконтролируемость децентрализованных систем, а также экономическая несостоятельность «замкнутых на себя» криптовалют и «криптоплатформ», могут быть преодолены только в блокчейнах закрытого доступа — состоящих из ограниченного числа авторизованных участников. Я предполагаю, что мировая финансовая система в обозримом будущем будет строиться на блокчейне, валидаторами в котором будут центральные банки всех государств-участников, а доступ для рядовых пользователей — организовывать банки коммерческие и прочие профучастники. И это будет даже более конкурентная и децентрализованная среда, чем та, которую мы имеем сейчас — когда почти вся обработка идёт менее чем в десятке майнинг-пулов, а почти весь доступ к инфраструктуре — через Инфуру, Бинанс и OpenSea.

Ссылки по теме

My first impressions of web3

  • 2022-01-08: Интересный обзор централизованности блокчейн (на примере эфира), а также незащищённости клиент-серверного взаимодействия «децентрализованных» приложений.

After a few days, without warning or explanation, the NFT I made was removed from OpenSea. What I found most interesting, though, is that after OpenSea removed my NFT, it also no longer appeared in any crypto wallet on my device. This is web3, though, how is that possible?

  • A wallet like MetaMask needs to do basic things like display your balance, your recent transactions, and your NFTs. MetaMask needs to interact with the blockchain, but the blockchain has been built such that clients like MetaMask can’t interact with it. So like my dApp, MetaMask accomplishes this by making API calls to three companies that have consolidated in this space: etherscan, Infura, OpenSea. Again, like with my dApp, these responses are not authenticated in some way. They’re not even signed so that you could later prove they were lying. It reuses the same connections, TLS session tickets, etc for all the accounts in your wallet, so if you’re managing multiple accounts in your wallet to maintain some identity separation, these companies know they’re linked.
  • All this means that if your NFT is removed from OpenSea, it also disappears from your wallet. It doesn’t functionally matter that my NFT is indelibly on the blockchain somewhere, because the wallet (and increasingly everything else in the ecosystem) is just using the OpenSea API to display NFTs, which began returning 304 No Content for the query of NFTs owned by my address!
  • Given the history of why web1 became web2, what seems strange to me about web3 is that technologies like ethereum have been built with many of the same implicit trappings as web1. To make these technologies usable, the space is consolidating around… platforms. Again. People who will run servers for you, and iterate on the new functionality that emerges. Infura, OpenSea, Coinbase, Etherscan.
  • When building First Derivative, it would have been great to price minting derivatives as a percentage of the underlying’s value. That data isn’t on chain, but it’s in an API that OpenSea will give you. People are excited about NFT royalties for the way that can benefit creators, but royalties aren’t specified in ERC-721, and it’s too late to change it, so OpenSea has its own way of configuring royalties that exists in web2 space.
  • Even if this is just the beginning (and it very well might be!), I’m not sure we should consider that any consolation. It seems like we should take notice that from the very beginning, these technologies immediately tended towards centralization through platforms in order for them to be realized.
  • When you think about it, OpenSea would actually be much “better” in the immediate sense if all the web3 parts were gone. It would be faster, cheaper for everyone, and easier to use. For example, to accept a bid on my NFT, I would have had to pay over $80-$150+ just in ethereum transaction fees. That puts an artificial floor on all bids, since otherwise you’d lose money by accepting a bid for less than the gas fees. Payment fees by credit card, which typically feel extortionary, look cheap compared to that. OpenSea could even publish a simple transparency log if people wanted a public record of transactions, offers, bids, etc to verify their accounting.

Money and Cryptocurrencies

  • 2022-01-08: Разбор тщеты криптовалют и их непригодности в современном виде к дальнейшему усовершенствованию денежного обращения.

The Web3 Fraud

  • 2022-01-14: Скорость и стоимость хранения и вычислений на блокчейне Эфира. 600КГц или 3kB/с за 250$ в секунду.

Estimating the cost (measured in ‘gas’) of an arbitrary computation is complex but let’s assume that we are only interested in the most simple operation: 256 bit integer addition. Each addition costs 3 gas each. So on a worldwide basis this system rates at 600,000 adds per second.

Compare this amount of compute to a Raspberry Pi 4, a $45 single-board computer which has four processors running at 1.5 GHz. Each core has 2 ALUs and it will take 4 instructions to perform a 256 bit addition, as the basic unit for the Raspberry Pi (and most other modern computers) is 64 bits. So each core has a peak performance of 750,000,000 adds per second for a total peak of 3,000,000,000 adds per second. Put bluntly, the Ethereum “world computer” has roughly 1/5,000 of the compute power of a Raspberry Pi 4!

This might be acceptable if the compute wasn’t also terrifyingly expensive. The current transaction fees for 30M in gas consumed is over 1 Ether. At the current price of roughly $4000 per Ether this means a second of Ethereum’s compute costs $250. So a mere second of Ethereum’s virtual machine costs 25 times more than a month of my far more capable EC2 instance. Or could buy me several Raspberry Pis.

What about the storage? The entire Ethereum blockchain is just 1 terabyte of data and adds a total of a few hundred kilobytes a minute. Storing the Ethereum blockchain using a robust commercial service like Amazon S3 costs just $20 a month.

Even the most optimal storage strategy in Ethereum requires 600 gas per byte. Yet the total network compute capacity is only 2M gas/second so storing 1 megabyte will require 300 seconds. So not only can the Ethereum blockchain only store 3 kB of data a second, storing that 3kB costs $250! So the cost of writing a single 3kB message to the Ethereum blockchain is the same price as a year of storage on Amazon for the entire 1 TB Ethereum blockchain. Or the same price as buying a 1 TB M.2 SSD.

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

Может быть, вам показалось, но способов получить гарантированную доходность за счёт каких бы то ни было финансовых инструментов, портфелей или торговых стратегий НЕ СУЩЕСТВУЕТ. Хуже того, способов гарантированно сохранить свой капитал тоже НЕ СУЩЕСТВУЕТ.

Материалы сайта могут быть использованы на условиях лицензии CC BY-NC-SA.
© Андрей Болкисев, 2022.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *