Практически каждый раз, когда мемпул биткойна (или эфира, или другой монеты) начинает забиваться транзакциями в очередь на отправку, а комиссии за транзакции растут, поднимается вопрос границ масштабируемости блокчейна. Как бы отправлять больше транзакций в единицу времени. Технически это сделать не так сложно: достаточно увеличить размер блока или начать выпускать блоки чаще, и пропускная способность блокчейна вырастет. Почему же этого не делается? Вот тут мы и подходим к трилемме блокчейна.
Помните знаменитое «быстро, дёшево, качественно, — можно выбрать не больше двух из трёх одновременно»? Аналогичное трио есть и для блокчейна: масштабируемость, децентрализация и безопасность. Повышая масштабируемость за счёт увеличения блока, мы снизим децентрализованность блокчейна, а снижая время между транзакциями снизим безопасность. В итоге, приходится балансировать.
Впервые термин «трилемма масштабируемости» был
предложен основателем Ethereum Виталиком Бутериным:
This sounds like there’s some kind of scalability trilemma at play. What is this trilemma and can we break through it?
The trilemma claims that blockchain systems can only at most have two of the following three properties:
Decentralization (defined as the system being able to run in a scenario where each participant only has access to O(c) resources, i.e. a regular laptop or small VPS)
Scalability (defined as being able to process O(n) > O(c) transactions)
Security (defined as being secure against attackers with up to O(n) resources)
In the rest of this document, we’ll continue using c to refer to the size of computational resources (including computation, bandwidth and storage) available to each node, and n to refer to the size of the ecosystem in some abstract sense; we assume that transaction load, state size, and the market cap of a cryptocurrency are all proportional to n.
Разные проекты по-разному оценивают для себя приемлемость снижения какого-то из трёх параметров. Так, например, сообщество биткойна консервативно выбирает децентрализованность и безопасность. Какие-то другие проекты готовы жертвовать уровнем децентрализации в пользу масштабируемости, и в таких проектах появляются главные ноды, которые и производят валидацию транзакций.
С ростом вычислительных возможностей и пропускной способности сети некоторое увеличение размера блока будет становиться допустимым, поэтому со временем число транзакций в единицу времени, вероятно, будет расти и для биткойна, однако достигнуть такого же результата, как у крупнейших централизованных процессинговых сетей типа Visa или MasterCard, вряд ли получится.
Для решения проблемы масштабируемости изобретаются самые разные способы: разбиение блокчейна на более мелкие блокчейны (например, с технологиями шардинга и парачейна), вынесение части транзакций в привязанный блокчейн (сайдчейн) или во второй слой L2 через смарт-контракты. Тем не менее, любой из этих способов просто переносит проблему в тот дополнительный уровень, который создаётся: следующий слой сам по себе либо менее децентрализован, либо менее безопасен. Среди других вариантов решения проблемы — попытка найти альтернативные варианты алгоритма консенсуса, как, например, вместо Proof-of-Work — Proof-of-Stake, однако пока что подобные варианты также не преодолевают эффект трилеммы блокчейна.