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

Natali
Polkadot Network Russia
3 min readDec 23, 2019

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

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

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

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

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

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

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

Консенсус в блокчейне

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

  1. Кто может предложить следующее изменение?
  2. Какой набор изменений является финальным?
  3. Что случится, если кто-то нарушит правила?

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

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

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

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

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

Если хотите поддержать автора, номинируйте DOT валидатору

https://polkadot-cc1.subscan.io/waiting/16PVNBGgWd6PzkzERZcjqWdXnKYBX6YSWNKY7svMYzG5XuEo

Не знаете как, присоединяйтесь к Telegram(Ru): t.me/PolkadotRu и мы вам расскажем.

Чтобы получить доступ к исходной статье, посетите официальный английский блог Polkadot.

--

--