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

Igor Geronemo
gocryptoteam
Published in
5 min readAug 24, 2018

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

Для широкого применения криптовалюты должны иметь высокую пропускную способность транзакций. В система 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

https://golos.io/ru--kriptovalyuta/@encryptmymoney/chto-takoe-byzantine-fault-tolerance-bft-i-kakie-est-resheniya

Pow vs PoS https://busy.org/@miacoins/polnyi-gid-po-prokolu-proof-of-stake-poslednemu-predlozheniyu-ethereum-i-intervyu-vitalika-buterina

Вид 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

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

  1. В сети биткойн — Lightning Network, Sidechains (?)
  2. В сети эфир комбинация п. 3 и 4, т. е. Переход на PoS (алгоритм Casper) и шардинг
  3. Другие криптовалюты — уже запущенный EOS и Tezos. Ожидаемые Cardano (алгоритм Ouroboros), Cosmos (алгоритм Tendermint), Ark, Dfinity, Algorand, Hashgraph, Telegram Open Network и т. д.

Хотите узнать больше ? Присоединяйтесь на канал GoCripto

https://t.me/GoCryptoChat

--

--