Что такое Polkadot?
Кто и когда создал Polkadot?
Polkadot создал д-р Гэвин Вуд [Gavin Wood], знаковая фигура в ранней истории Ethereum – он был сооснователем, первым главным техническим директором и главным разработчиком Ethereum. Вуд разработал код для первой имплементации платформы, написал ее формальную спецификацию и создал язык программирования Solidity.
11 января 2016 года Вуд покинул Ethereum, чтобы заняться реализацией проекта, способного оправдать ожидания, которые, по мнению Вуда, не сумел оправдать Ethereum.
По словам Вуда, идея Polkadot родилась у него летом 2016 года, когда он ожидал получения технической документации по шардингу в Ethereum 2.0, чтобы начать ее имплементацию. В сотрудничестве с разработчиком Мареком Котевичем [Marek Kotewicz] Вуд начал работу по созданию «шардированной», максимально простой версии Ethereum, и к октябрю 2016 года подготовил первую черновую версию white paper Polkadot.
Еще работая в команде Ethereum, Вуд совместно с несколькими коллегами основал EthCore, коммерческую компанию по разработке блокчейн-технологий. Впоследствии EthCore сменила название на Parity Technologies. Сотрудники компании создали Parity Ethereum Client, фреймворк Substrate, сеть Polkadot и мультиподписной кошелек Parity.
Летом 2017 года Вуд и разработчик Питер Чабан [Peter Czaban] основали некоммерческую организацию Web3 Foundation, призванную способствовать разработке протоколов ПО децентрализованного интернета.
Одной из первых задач Web3 Foundation стал контроль средств, собранных в ходе ICO Polkadot, которое прошло с 15 октября по 27 октября 2017 года. Проект привлек приблизительно $145 млн, продав 5 млн нативных токенов DOT.
Какие проблемы решает технология Polkadot?
Polkadot призвана решить ключевые проблемы, препятствующие технологии блокчейн стать полномасштабным практическим приложением, а именно:
- Масштабируемость: блокчейны так называемого первого поколения не могут обрабатывать огромное количество транзакций в предполагаемом децентрализованном мире будущего. Пока сетевые ноды обрабатывают транзакции в формате «один на один». Этот фактор сдерживает дальнейший рост сети.
- Изоляция: блокчейны остаются дискретными и независимыми, им недостает двусторонней связи и операционной совместимости.
Как устроен Polkadot?
Структура Polkadot включает следующие компоненты:
1. Relay Chain (связующая или ретранслирующая цепь) – это основная цепь Polkadot, соединяющая все индивидуальные блокчейны (парачейны) в сети.
2. Parachain (парачейн, сокр. от «параллелизированная цепь») – индивидуальные параллельные блокчейны, которые осуществляют транзакции и переносят их в исходный блокчейн. Парачейны строят так называемые коллаторы: они собирают транзакции пользователей и подтверждают блоки на основе алгоритма Proof-of-Validity (доказательство валидности). За свою работу коллаторы получают награду, размер которой зависит от конкретного парачейна. Деятельность коллаторов аналогична работе майнеров в блокчейнах с алгоритмами Proof-of-Work и Proof-of-Stake.
3. Bridge Chain (букв., «цепной мост») – предназначен для соединения блокчейнов, не использующих протоколы управления Polkadot (например, блокчейны биткоина, Ethereum и Tezos).
Механизм Relay Chain контролирует соблюдение консенсуса, отвечает за доставку сообщений между цепями-участниками, а также способствует финализации транзакций. Relay Chain представляет собой блокчейн с пулом валидаторов, на которых в случайном порядке возлагается задача добавлять и валидировать блоки в различных парачейнах. Для каждой транзакции валидаторы должны вносить депозит. Если транзакция отвечает правилам консенсуса, депозит возвращается и валидатор получает награду. Если правила нарушены, залог пропадает.
Консенсус в цепи-ретрансляторе достигается посредством двух механизмов на основе принципа персональной ответственности. Один из них отвечает за производство блока, другой – за финализацию. Разделение производства блоков и финализации решает проблему ограничений масштабируемости в протоколах с мгновенной финализацией (например, Tendermint), делая возможным быстрое производство блоков и позволяя большему количеству валидаторов участвовать в достижении консенсуса.
Названия двух этих механизмов представляют собой акронимы: за производство новых блоков отвечает BABE (Blind Assignment for Blockchain Extension), за финализацию старых блоков – GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement).
BABE – это алгоритм для создания блоков цепи-ретранслятора, состоящих из заголовков всех валидных и доступных блоков парачейна, произведенных коллаторами. Алгоритм BABE работает на основе слотов (временных интервалов): право производить блок в цепи-ретрансляторе в определенном временном интервале случайным образом предоставляется валидатору, известному как слот-лидер.
Право выпускать следующий блок предоставляется посредством вычисления с использованием верифицируемой случайной функции. Модель BABE напоминает Ouroboros Praos, компонент производства блоков в протоколе консенсуса Cardano.
GRANDPA – это механизм финализации, в котором каждый валидатор голосует за самый высокий блок, который считает валидным (фактически голосование происходит за всех предков блока).
Все блоки, за которые проголосовали своими стейками больше двух третей валидаторов, финализируются. Поскольку можно мгновенно финализировать множество блоков, на достижение консенсуса относительно финализации у валидаторов может уйти больше времени, чем требуется на создание одного блока. Это позволяет GRANDPA поддерживать больший набор валидаторов, чем традиционные BFT-алгоритмы, которые должны финализировать каждый блок отдельно.
Валидаторов находят и утверждают так называемые номинаторы [nominators]. Они вносят за валидаторов залог, который у них конфискуют в случае, если поведение выбранных ими валидаторов не соответствует правилам консенсуса. Опция оплаты работы номинаторов отличает алгоритм Nominated Proof-of-Stake (NPoS), на котором работает Polkadot, от традиционных алгоритмов Delegated Proof-of-Stake (DPoS).
Номинаторы не участвуют в процессе осуществления и подтверждения транзакций.
За нарушениями со стороны валидаторов следят сторожевые ноды, так называемые рыбаки [fishermen]: они выявляют («рыбачат») случаи недобросовестного поведения, создают доказательства, содержащие данные о конфликтующих голосованиях валидатора, и получают долю от конфискованных ставок нарушителей.
Подобная схема позволяет GRANDPA обеспечивать асинхронную подконтрольную безопасность: финализация двух любых конфликтующих блоков приведет к тому, что ответственные валидаторы теряют свои депозиты (как минимум две трети всего депозита). До тех пор, пока механизм производства блоков отвечает определенным критериям, финализированная цепь растет.
Механизм финализации GRANDPA используется для всех парачейнов в Polkadot. В обмен на механизм финализации каждый парачейн получает опцию интероперабельности с другими парачейнами. Этот компромисс позволяет Polkadot обеспечить простой коммуникационный механизм, дающий коллаторам парачейна возможность взаимодействовать напрямую через входящие и исходящие очереди сообщений.
Хотя парачейны используют один и тот же механизм финализации, каждый из них может имплементировать различные механизмы производства блоков, с разными особенностями и параметрами, оптимизированными под определенный класс приложений.
Средства разработки парачейна (Parachain Development Kits/PDK) – это инструменты, значительно упрощающие разработку парачейнов специализированного применения. Одним из таких PDK является фреймворк Substrate, идущий в комплекте с Framework for Runtime Aggregation of Modularized Entities (FRAME).
Substrate включает встроенные имплементации алгоритмов производства блоков: BABE, Aura и другие. Другое PDK, Cumulus, содержит связующий код, необходимый для соединения цепи на базе Substrate с сетью Polkadot. Совместно Substrate и Cumulus облегчают создание и связь парачейнов с сетью Polkadot.
В зависимости от алгоритма производства блоков и параметров транзакционная пропускная способность каждой сети может варьироваться, поэтому общую транзакционную пропускную способность сети Polkadot можно оценить только приблизительно.
Первая версия Polkadot предусматривает работу 100 парачейнов. При условии, что каждый парачейн способен поддерживать как минимум 10 транзакций в секунду, нижний предел пропускной способности составляет приблизительно 1000 транзакций в секунду.
Будущие версии Polkadot позволят парачейну функционировать в качестве цепи-ретранслятора второго уровня с присоединенными дополнительными парачейнами, которые сформируют древовидную структуру, теоретически обеспечивающую безграничную пропускную способность.
На определенной стадии главная цепь-ретранслятор становится элементом, ограничивающим эффективность системы, но только для того, чтобы валидировать обработку входной очереди, поскольку парачейны напрямую коммуницируют друг с другом. По некоторым оценкам, устройство древовидной структуры позволит Polkadot масштабироваться до 10 000x способности одной PoS-цепи.
Какие функции выполняет токен DOT?
Нативный токен сети DOT выполняет три главные функции:
- Управление: владельцы токенов полностью контролируют протокол, имея привилегии, которые на других платформах закреплены за майнерами – определение структуры транзакционных сборов, решения по изменению протокола, добавление или удаление парачейнов.
- Операции: токены DOT обеспечивают функционирование базового механизма консенсуса Polkadot. Держатели токенов должны быть активными участниками сети и осуществлять стейкинг токенов, противодействуя нарушениям правил консенсуса.
- Вознаграждение: токены раздаются активным участникам сети.
Как финансируется проект Polkadot?
Хотя в ходе первого токенсейла в 2017 году проект привлек $145 млн, средств на разработку не хватило. В июне 2019 года Web3 Foundation провела дополнительную продажу 500 000 DOT. Прогнозируемая капитализация проекта после этого выросла до $1,2 млрд.
В конце июля 2020 года Web3 Foundation провела очередной приватный токенсейл, собрав $43,6 млн.
Как развивается проект Polkadot?
В ноябре 2018 года состоялся релиз платформы для запуска блокчейнов Substrate – инструмента, призванного ускорить развитие Polkadot и дать корпоративным пользователям возможность быстрого запуска распределенных реестров.
В августе 2019 года команда разработчиков Polkadot запустила экспериментальную версию протокола взаимодействия блокчейнов под названием Kusama. Ее позиционировали как испытательный полигон, «который позволит командам и отдельным разработчикам создавать и развертывать парачейны, а также тестировать функциональность по управлению и распределению Polkadot в реальных условиях».
Сеть Kusama работала на механизме консенсуса Proof-of-Authority (PoA), за функции нод валидаторов отвечала Web3 foundation. Функциональность сети оставалась ограниченной.
В конце февраля 2020 года начальную интеграцию с блокчейном на базе платформы Substrate завершил проект Chainlink. Разработчики Polkadot назвали это важной вехой во внедрении сети децентрализованных оракулов Chainlink в экосистему протокола.
Оракулы необходимы для исполнения смарт-контрактов и работы dapps, которые используют данные из-за пределов собственного блокчейна. Предоставление надежных информационных каналов третьей стороной дает возможность добиться взаимодействия различных сетей и расширения области применения смарт-контрактов и dapps.
По заявлению разработчиков, блокчейны экосистемы Polkadot станут первыми за пределами системы Ethereum, которые применяют оракулы Chainlink. До запуска основной сети Polkadot в полном объеме информационные каналы Chainlink будут обслуживать экспериментальный протокол Kusama. Пока парачейн между Kusama и Chainlink находится в стадии разработки.
5 марта 2020 года Web3 Foundation выделила грант для разработки «моста» между блокчейнами биткоина и Polkadot. Проектом занимается компания Interlay. Фреймворк XCLAIM в основе мостового BTC-парачейна позволит выпускать обеспеченные биткоином токены PolkaBTC. Эти токены можно будет пересылать в другие парачейны. После сжигания PolkaBTC в BTC-парачейне пользователи смогут получить биткоины в соотношении 1:1 или же эквивалентную сумму в токенах DOT. Исходный код BTC-парачейна выложен на Github, также доступны его спецификации.
26 мая 2020 года Web3 Foundation после более чем трех лет разработки запустила первую фазу основной сети блокчейна Polkadot, после чего сеть работала с использованием механизма доказательства полномочий (Proof-of-Authority).
Web3 Foundation обеспечивала работу нод и валидацию блоков, а также могла вмешаться в функционирование блокчейна при возникновении критической ситуации. Эти меры требовались для снижения возможного негативного влияния багов и нарушений безопасности. Держатели токенов DOT получили доступ к своим аккаунтам и возможность подать запрос на развертывание ноды или же предложить валидатора.
Переводы токенов DOT оставались недоступны. С технической точки зрения запущенная первая фаза основной сети больше напоминает тестовую.
18 июня 2020 года по итогам аудитов и доработки финальных аспектов состоялся переход блокчейна Polkadot в фазу Nominated Proof-of-Stake (NPoS). Кроме того, компания Interlay представила «мост» между блокчейнами биткоина и Polkadot, пока в состоянии Proof-of-Concept.
В начале июля 2020 года разработчики Polkadot, Cosmos и Terra пообещали к концу третьего квартала 2020 года представить DeFi-протокол Anchor, который позволит инвесторам получать процентный доход по депозитам в стейблкоинах Terra.
20 июля 2020 года Web3 Foundation по итогам голосования участников сообщества сложила с себя полномочия администратора сети Polkadot. К этому моменту число валидаторов достигло 197. Это позволило перевести процесс подтверждения на децентрализованную модель с участием сообщества. Разработчики задействовали алгоритм Proof-of-Stake, в котором заблокировано более половины выпущенных токенов DOT.
Систему управления на основе токенов протестировали для утверждения предложения об ограничении полномочий Web3 Foundation. Состоявшееся в результате голосования удаление контролирующего модуля Sudo основатель Polkadot и директор Parity Technologies Гэвин Вуд назвал «поэтичным».
После голосования сеть Polkadot лишилась пометки «CC1» или «цепь-кандидат 1». Это ознаменовало переход к основной сети и начало третьей и четвертой фазы запуска.
27 июля 2020 года проект подвел итоги второго голосования валидаторов. Голосование определило, что один токен DOT должен содержать 10 млрд Planck – наименьших долевых единиц. Один старый DOT эквивалентен 100 новым. Web3 Foundation и Parity Technologies в голосовании не участвовали.
4 августа 2020 года разработчики Polkadot запустили тестовую сеть Rococo для внедрения шардинга с использованием парачейнов. Rococo предназначена для тестирования протоколов Polkadot, которые будут обеспечивать коммуникацию между шардами. В Rococo доступны три отдельных парачейна: «tick», «trick» и «track», причем разработчики смогут добавлять собственные параллельные цепочки.
Тестовая сеть поддерживает горизонтальную передачу сообщений и использует механизм консенсуса доказательства полномочий (Proof-of-Authority). Разработчики предупредили, что пока система нестабильна, и пообещали добавить в нее новый код для подготовки к полноценному запуску основной сети.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости и опросы.
ForkLog
Автор: ForkLog