Степан Гершуни рассказывает о преимуществах и недостатках блокчейн фреймворка Quorum, который используется для быстрого тестирования и разворачивания на его основе полномасштабных высоконагруженных блокчейн сетей для государства, корпораций и консорциумов.
Я не буду сильно углубляться в конкретные кейсы применения, но полезно понимать, что в данном контексте мы рассматриваем Quorum как аналог других фреймворков, таких как Corda, Fabric, Exonum, Substrate и многих других. Целью этой статьи не является доказать, что Quorum превосходит или уступает другим похожим решениям. Скорее наоборот — мы попытаемся объективно разобраться в плюсах и минусах технологии и области применения проекта.
В конце статьи я привожу ссылки и конкретные инструменты, которые позволят вам попробовать запустить сеть или консорциум на основе Quorum самостоятельно, причём даже без необходимости уметь программировать.
Что такое Quorum?
Quorum — это фреймворк с открытым исходным кодом, созданный компанией JPMorgan и использующийся сегодня в большом количестве консорциумных блокчейн проектах. Quorum полностью построен на архитектуре Ethereum и является по своей сути форком клиента geth.
Можно назвать три основных отличия от стандартного протокола Эфириум:
- конфиденциальные транзакции;
- новые механизмы консенсуса;
- производительность.
Конфиденциальность
Основным отличием и функционалом Quorum является улучшенная работа с конфидециальными данными. Теперь у каждой транзакции, которую вы можете отправить в сеть, появилось новое поле privateFor, которое гарантирует, что никто кроме указанного там получателя не сможет расшифровать данные транзакции или смарт-контракта.
Эта функциональность открывает массу возможностей для создания бизнес-процессов со встроенным аудитом и одновременно приватностью. Например, вы можете сделать систему бюджетирования для корпорации, которая с одной стороны не разглашает данные внешним наблюдателям, и при этом с другой стороны может доказать аудитору или внутренней финансовой службе целевое расходование каждой транзакции в блокчейне в неизменном виде.
Консенсус
В блокчейн сетях с ограниченном количеством участников нет смысла использовать непроизводительные и полностью распределённые типы консенсусов, вроде Proof of Work и Proof of Stake. Это дает полную гарантию независимости от количества участников публичным сетям, но всегда увеличивает стоимость проведения и хранения транзакций: одно дело хранить транзакцию на десяти корпоративных нодах, а совсем другое — на сотнях тысяч нод по всему миру, как в Bitcoin и Ethereum. Вместо этого применяется консенсус основанный на голосовании нод под общим названием BFT.
Для консорциумных сетей Quorum поддерживает два типа консенсуса: Istambul BFT (IBFT, вариация PBFT) и RAFT. Оба консенсуса обеспечивают быструю кооперацию нод в закрытой permissioned сети и финальность транзакций.
Основной задачей этих механизмов является простота и надежность формирования закрытых сетей, которые при этом полностью сохраняют главные свойства приватных блокчейнов — неизменность, проверяемость, отслеживаемость данных.
Скорость
Одна из отличительных сторон любых приватных блокчейнов всегда является скорость работы, выраженная в количестве транзакций в секунду. Это напрямую зависит от метода консенсуса используемого в той или иной сети, а так же количества отдельных нод.
Вот в этом эксперименте был проведен стресс-тест сети Quorum, который показал в среднем от 100 до 140 транзакций в секунду. Это примерно в 9 раз выше, чем пропускная способность публичной сети Ethereum. Безусловно, публичные (или permisionless) блокчейны компенсируют пропускную способность надежностью и неизменностью данных, но для не требующих публичности случаев Quorum позволяет проводить onchain значительно больше бизнес-процессов используя при этом знакомую и понятную разработчикам архитектуру Эфириума.
В чем выгода?
Главным преимуществом Quorum можно назвать огромное сообщество разработчиков, обширную документацию и большое количество инструментов для упрощения разработки. Поскольку код и логика Quorum по большей части совпадает с Ethereum, любой смарт-контракт с легкостью и без дополнительной работы можно перенести в консорциумную сеть. Вы можете использовать такие популярные инструменты как Remix, Truffle, язык Solidity и для разработки не требуется нанимать дорогостоящих программистов — сегодня эти технологии достаточно распространены и в силу большого сообщества легки в освоении.
Поддержка крупнейших банков вроде JPMorgan и крупнейших IT-компаний (Microsoft) гарантирует, что проект будет поддерживаться и обновляться параллельно с развитием сети Ethereum адаптируя весь новый функционал.
Интересно. Хочу попробовать сам
Исходный код проекта можно найти на GitHub, но если вам интересно запустить пилот или поэкспериментировать с консорциумной сетью на основе Quorum, то это можно сделать через сервис Chainstack.
Первым делом необходимо зарегистрироваться и зайти на https://console.chainstack.com/, создать проект и запустить в проекте несколько нод по вашему желанию. Вам нужно всего лишь указать облачный сервис и выбрать тип консенсуса — система сама установит необходимое ПО, соединит отдельные ноды в общую сеть и настроит Block Explorer на отображение блоков и транзакций сети. Фактически на этом этапе ваш консорциум или корпоративная сеть готова — осталось только пригласить других участников. Для этого зайдите во вкладку Members и введите почтовые адреса остальных участников проекта. После получения приглашения эти участники смогут увидеть данные своих нод и пользовать смарт-контрактами, отправлять транзакции и читать информацию из общего блокчейна.
Выбрав конкретную ноду внутри Chainstack вы увидите необходимые данные для начала работы: IP адрес, публичный и приватный ключ, тип консенсуса и другую информацию. Chainstack автоматически будет обновлять ноду до последней версии, масштабировать сеть при необходимости и давать интерфейсы (API) для разворачивания смарт-контрактов и интеграции их в ваши внутренниие бизнес-процессы.