Консенсус в Polkadot, Часть 1: Введение
Эта серия статей будет дискуссией о безопасности и консенсусе Polkadot. В заглавной статье мы определим некоторые термины, прежде чем вдаваться в детали того, как создаются блоки в Polkadot.
Алгоритмы консенсуса помогают компьютерной сети работать как один компьютер. На практике это означает, что почти каждый компьютер в сети должен согласовать некоторое начальное состояние, а затем согласовать последовательность детерминированных операций с начальным состоянием, чтобы они достигли одного и того же конечного состояния.
В то время как блокчейны привносят некоторые интересные инструменты в эту область, эта проблема координации не является чем-то новым. Она возникла в аэрокосмической отрасли, где компьютеры на спутниках или шаттлах могут вести себя произвольно в космосе. Представьте, что у вас есть сеть бортовых компьютеров, и вы хотите знать, в каком направлении движется ваш самолет. Это не должно иметь значения, какой компьютер в сети вы спрашиваете, вы всегда должны получить один и тот же ответ.
Какое это имеет отношение к блокчейну? Мы хотим, чтобы сеть компьютеров подтверждала некую ценность. Это значение может быть балансом счета, результатом голосования или результатом исполнения смарт-контракта.
Фактически, некоторые ранее существовавшие алгоритмы консенсуса напоминали блокчейны. В лекции 2001 года профессор MIT Barbara Liskov рассказала о пакетных транзакциях для повышения Practical Byzantine Fault Tolerance (PBFT), задолго до того, как появился Биткойн.
“Представьте себе очень загруженный компьютер, который получает запрос за запросом, за ним еще запрос; на самом деле он не запускает протокол для каждого запроса. Вместо этого он собирает пакет запросов, и выполняет один протокол для всей группы. … На самом деле не обязательно, чтобы каждый отправлял ответ клиенту. Это нормально, если все, кроме одного, отправляют дайджесты ответа, потому что этого будет достаточно, чтобы клиент мог сказать, есть ли у него идентичные ответы.”
PBFT предоставил набор правил для согласования изменений состояния — даже пакетами (читай: блоками).
Нарушение консенсуса в блокчейне
В распределенной системе, такой как блокчейн, вам нужно ответить на несколько вопросов:
-
Кто может предложить следующее изменение?
-
Какой набор изменений является финальным?
-
Что случится, если кто-то нарушит правила?
Важно различать эти понятия и дать ответы на них на ранней стадии, потому что многие протоколы консенсуса в блокчейне объединяют их в одно понятие. Proof of work, например, использует доказательство, чтобы выбрать автора блока; самую длинную цепь, чтобы решить, какая цепь является окончательной; и стоимость создания этого доказательства, чтобы наказать в случае нарушение правил. В Polkadot на все эти вопросы отвечают отдельно.
Неблокчейн системы по-прежнему отвечают на эти вопросы. Например, можно предположить, что все компьютеры работают с одним и тем же программным обеспечением. В большинстве случаев это нормально. Если Boeing делает самолет, можно с уверенностью предположить, что они программируют все компьютеры на нем.
Однако в публичной сети, мы не можем сделать такое предположение. Блокчейны позволяют нам отбросить некоторые из наших сетевых предположений, используя экономику. Все консенсусные системы имеют понятия "хорошего” и "плохого" поведения. Внутренние экономические свойства блокчейнов позволяют нам вознаграждать хорошее поведение или наказывать за плохое поведение. PoS сеть использует экономику как прямое средство достижения консенсуса.
Безопасность в блокчейн системе — это мера сложности нарушения консенсуса. В сети proof of authority, безопасность — это сложность получения контроля над власти. В proof of work безопасность — это стоимость приобретения и использования достаточной хеш мощности, чтобы создать более длинную цепочку. И в proof of stake безопасность — это объем активов в стейкинге, и риск их потери.
Члены Parity Technologies и Web3 Foundation разработали и внедрили библиотеку алгоритмов для решения проблем консенсуса и безопасности. В этой серии мы начнем с GRANDPA, нашего алгоритма финализации. Затем мы перейдем к BABE, нашему движку по созданию блоков, и обсудим, как мы добавляем блоки в цепочку. Наконец, мы закончим дискуссию о том, как мы используем экономику для обеспечения безопасности GRANDPA и BABE
Данная статья является переводом на русский язык официальной статьи с веб-сайта Polkadot, ранее опубликованный Natali.
Original published in December 18, 2019, "Polkadot Consensus Part 1: Introduction"
by Joe Petrowski
Research Analyst, Parity Technologies”
Мы также рекомендуем ознакомиться c lightpaper Polkadot на русском языке.
Polkadot Russian Community (Полкадот Россия и страны СНГ)
0 comments