Консенсус в Polkadot, Часть 1: Введение

Эта серия статей будет дискуссией о безопасности и консенсусе Polkadot. В заглавной статье мы определим некоторые термины, прежде чем вдаваться в детали того, как создаются блоки в Polkadot.

Алгоритмы консенсуса помогают компьютерной сети работать как один компьютер. На практике это означает, что почти каждый компьютер в сети должен согласовать некоторое начальное состояние, а затем согласовать последовательность детерминированных операций с начальным состоянием, чтобы они достигли одного и того же конечного состояния.

В то время как блокчейны привносят некоторые интересные инструменты в эту область, эта проблема координации не является чем-то новым. Она возникла в аэрокосмической отрасли, где компьютеры на спутниках или шаттлах могут вести себя произвольно в космосе. Представьте, что у вас есть сеть бортовых компьютеров, и вы хотите знать, в каком направлении движется ваш самолет. Это не должно иметь значения, какой компьютер в сети вы спрашиваете, вы всегда должны получить один и тот же ответ.

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

Фактически, некоторые ранее существовавшие алгоритмы консенсуса напоминали блокчейны. В лекции 2001 года профессор MIT Barbara Liskov рассказала о пакетных транзакциях для повышения Practical Byzantine Fault Tolerance (PBFT), задолго до того, как появился Биткойн.

“Представьте себе очень загруженный компьютер, который получает запрос за запросом, за ним еще запрос; на самом деле он не запускает протокол для каждого запроса. Вместо этого он собирает пакет запросов, и выполняет один протокол для всей группы. … На самом деле не обязательно, чтобы каждый отправлял ответ клиенту. Это нормально, если все, кроме одного, отправляют дайджесты ответа, потому что этого будет достаточно, чтобы клиент мог сказать, есть ли у него идентичные ответы.”

PBFT предоставил набор правил для согласования изменений состояния — даже пакетами (читай: блоками).

Нарушение консенсуса в блокчейне

В распределенной системе, такой как блокчейн, вам нужно ответить на несколько вопросов:

  1. Кто может предложить следующее изменение?

  2. Какой набор изменений является финальным?

  3. Что случится, если кто-то нарушит правила?

Важно различать эти понятия и дать ответы на них на ранней стадии, потому что многие протоколы консенсуса в блокчейне объединяют их в одно понятие. Proof of work, например, использует доказательство, чтобы выбрать автора блока; самую длинную цепь, чтобы решить, какая цепь является окончательной; и стоимость создания этого доказательства, чтобы наказать в случае нарушение правил. В Polkadot на все эти вопросы отвечают отдельно.

Неблокчейн системы по-прежнему отвечают на эти вопросы. Например, можно предположить, что все компьютеры работают с одним и тем же программным обеспечением. В большинстве случаев это нормально. Если Boeing делает самолет, можно с уверенностью предположить, что они программируют все компьютеры на нем.

Однако в публичной сети, мы не можем сделать такое предположение. Блокчейны позволяют нам отбросить некоторые из наших сетевых предположений, используя экономику. Все консенсусные системы имеют понятия "хорошего” и "плохого" поведения. Внутренние экономические свойства блокчейнов позволяют нам вознаграждать хорошее поведение или наказывать за плохое поведение. PoS сеть использует экономику как прямое средство достижения консенсуса.

Безопасность в блокчейн системе  —  это мера сложности нарушения консенсуса. В сети proof of authority, безопасность — это сложность получения контроля над власти. В proof of work безопасность — это стоимость приобретения и использования достаточной хеш мощности, чтобы создать более длинную цепочку. И в proof of stake безопасность — это объем активов в стейкинге, и риск их потери.

Члены Parity Technologies и Web3 Foundation разработали и внедрили библиотеку алгоритмов для решения проблем консенсуса и безопасности. В этой серии мы начнем с GRANDPA, нашего алгоритма финализации. Затем мы перейдем к BABE, нашему движку по созданию блоков, и обсудим, как мы добавляем блоки в цепочку. Наконец, мы закончим дискуссию о том, как мы используем экономику для обеспечения безопасности GRANDPA и BABE

Читайте часть 2: GRANDPA.

Данная статья является переводом на русский язык официальной статьи с веб-сайта Polkadot, ранее опубликованный Natali.

Original published in December 18, 2019, "Polkadot Consensus Part 1: Introduction"

by Joe Petrowski

Research Analyst, Parity Technologies”

Мы также рекомендуем ознакомиться c lightpaper Polkadot на русском языке.

0
3sPM3K…WueaD7Post author

Polkadot Russian Community (Полкадот Россия и страны СНГ)

0 comments

Polkadot Russian Community (Полкадот Россия и страны СНГ)