Консенсус Polkadot, часть 1: Введение
Автор оригинальной статьи Джозеф Петровски
Переведено Natali
Эта серия статей будет описывать безопасность и консенсус Polkadot. В части 1 мы определим некоторые термины, прежде чем вдаваться в детали того, как создаются блоки в Polkadot.
Алгоритмы консенсуса помогают компьютерной сети работать как один компьютер. На практике это означает, что почти каждый компьютер в сети должен согласовать некоторое начальное состояние, а затем согласовать последовательность детерминированных операций с начальным состоянием, чтобы они достигли одного и того же конечного состояния.
В то время как блокчейны привносят некоторые интересные инструменты в эту область, эта проблема координации не является чем-то новым. Она возникла в аэрокосмической отрасли, где компьютеры на спутниках или шаттлах могут вести себя произвольно в космосе. Представьте, что у вас есть сеть бортовых компьютеров, и вы хотите знать, в каком направлении движется ваш самолет. Это не должно иметь значения, какой компьютер в сети вы спрашиваете, вы всегда должны получить один и тот же ответ.
Какое это имеет отношение к блокчейну? Мы хотим, чтобы сеть компьютеров подтверждала некую ценность. Это значение может быть балансом счета, результатом голосования или результатом исполнения смарт-контракта.
Фактически, некоторые ранее существовавшие алгоритмы консенсуса напоминали блокчейны. В лекции 2001 года профессор MIT Barbara Liskov рассказала о пакетных транзакциях для повышения Practical Byzantine Fault Tolerance (PBFT), задолго до того, как появился биткойн.
“Представьте себе очень загруженный компьютер, который получает запрос после запроса, за ним еще запрос; на самом деле он не запускает протокол для каждого запроса. Вместо этого он собирает пакет запросов и выполняет один протокол для всей группы. … На самом деле не обязательно, чтобы каждый отправлял ответ клиенту. Это нормально, если все, кроме одного, отправляют дайджесты ответа, потому что этого будет достаточно, чтобы клиент мог сказать, есть ли у него идентичные ответы.”
PBFT предоставил набор правил для согласования изменений состояния — даже пакетами (читай: блоками).
Консенсус в блокчейне
В распределенной системе, такой как блокчейн, вам нужно ответить на несколько вопросов:
- Кто может предложить следующее изменение?
- Какой набор изменений является финальным?
- Что случится, если кто-то нарушит правила?
Важно различать эти понятия и дать ответы на них на ранней стадии, потому что многие протоколы консенсуса в блокчейне объединяют их в одно понятие. Proof of work, например, использует доказательство, чтобы выбрать автора блока; самую длинную цепь, чтобы решить, какая цепь является окончательной; и стоимость создания этого доказательства в качестве наказания за нарушение правил. В Polkadot на все эти вопросы отвечают отдельно.
Неблокчейн системы по-прежнему отвечают на эти вопросы. Например, можно предположить, что все компьютеры работают с одним и тем же программным обеспечением. В большинстве случаев это нормально. Если Boeing делает самолет, можно с уверенностью предположить, что они программируют все компьютеры на нем.
В публичной сети, однако, мы не можем сделать такое предположение. Блокчейны позволяют нам отбросить некоторые из наших сетевых предположений, используя экономику. Все консенсусные системы имеют понятия "хорошего” и "плохого" поведения. Внутренние экономические свойства блокчейнов позволяют нам вознаграждать хорошее поведение или наказывать плохое поведение. PoS сеть использует экономику как прямое средство достижения консенсуса.
Безопасность в блокчейн системе — это мера сложности нарушения консенсуса. В proof of authority сети безопасность — это сложность получения контроля над authorities. В proof of work сети безопасность — это стоимость приобретения и использования достаточной хеш мощности, чтобы создать более длинную цепочку. И в proof of stake сети безопасность — это объем застеканных активов, и риск их потери.
Parity Technologies и Web3 Foundation разработали и внедрили библиотеку алгоритмов для решения проблем консенсуса и безопасности. В этой серии мы начнем с GRANDPA, нашего алгоритма финализации. Затем мы перейдем к BABE, нашему движку по созданию блоков, и обсудим, как мы добавляем блоки в цепочку. Наконец, мы закончим дискуссию о том, как мы используем экономику для обеспечения безопасности GRANDPA и BABE.
Чтобы получить доступ к исходной статье, посетите официальный английский блог Polkadot.
Telegram(Ru): t.me/PolkadotRu
From the blog
A Year in Parachains, Part 3: Data, ID, Privacy, Storage, & Infrastructure
Providing a brief overview of Polkadot's parachain landscape in its first full year since launch. Part 3: Data, ID, Privacy, Storage, and Infrastructure
Polkadot Staking Review: Impressive Stats, What’s New & What’s Coming
Since the launch of the Polkadot Staking Dashboard and nomination pools, participation in native staking has skyrocketed. These updates transformed how to stake on Polkadot.
A Year in Parachains, Part 2: System Chains, Smart Contracts, & Social Media
Providing a brief overview of Polkadot's parachain landscape in its first year since launch. Part 2: System Chains, Smart Contracts, & Social Media