📝 История DPOS (Daniel Larimer)


image.png
Недавно Дэн Нотштейн из blocktrades.us опубликовал на Steem пост о изобретении DPOS. Прочитав его, я решил добавить к сказанному и свои мысли.

За прошедшие годы DPOS заметно развился, и вместе с ним моё понимание картины. В частности, между Bitshares 1.0, 2.0, Steem и EOS существуют огромные различия, но при этом все они считаются DPOS.

В начале я пытался решить целый ряд разнообразных задач:

  1. Кто должен получать право произвести следующий блок?
  2. Каково правило выбора форка?
  3. Как будет продвигаться блокчейн, если все, кроме одного производителя блоков, остановили свою работу?
  4. Сколько производителей действительно необходимо?
  5. Как воспрепятствовать ситуации, когда один производитель идёт на конфликт с другим, игнорируя его блоки?

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

Самым большим нововведением DPOS стали не выборы, проводимые среди держателей токена, а процесс, посредством которого избранные производители достигали консенсуса. Это различие ускользнуло почти ото всех.

Данный процесс включал осознание того, что форк с наибольшим количеством валидаторов будет расти быстрее, чем форк с меньшим числом, поскольку к определённому временному интервалу приписан только один производитель.
Следующим нововведением стал процесс, в котором производители перетасовывались случайным образом. Это предотвращало разрывы и удерживало от столкновения производителей, идущих друг за другом.
Именно тогда я понял, что мы можем генерировать криптографическое доказательство двойного производства блока, чтобы наказывать нарушителей за любую попытку создать секретный форк.
Этот процесс достижения консенсуса среди набора известных валидаторов и был по-настоящему ключевым. Процесс их избрания был простым отражением систем корпоративного управления, где акционеры выбирают совет директоров.

EOSIO – не DPOS

Базовое программное обеспечение EOSIO использует конвейерную византийскую отказоустойчивость вкупе с набором избранных производителей. Процесс выборов схож с таковым в BitShares, однако способ достижения консенсуса по сути совсем иной. Критическим отличием является концепция окончательности. BitShares не хватает окончательности, так же, как и Биткоину.

В результате пристального наблюдения за BitShares в действии я осознал несколько вещей:

  1. 101 производитель – это слишком много для обдуманного и взвешенного голосования. В итоге побеждает рациональное невежество.
  2. Безопасное случайное перемешивание – это перебор, достаточно псевдослучайного перемешивания, которое не зависит от содержимого блока. (BitShares 2.0)
  3. В STEEM я представил концепцию ротации 21-го заверителя. Она препятствует тому, чтобы они вызывали простои, при этом обеспечивая высокую степень устойчивости к цензуре за счёт максимизации количества людей, получающих возможность произвести блок.
  4. Желание поддерживать межчейновую коммуникацию подразумевает, что нам нужна окончательность, а также простой способ следовать за набором производителей в лёгком клиенте. Это означает минимизацию частоты смены набора производителей и обеспечение того, что все изменения вступают в силу только по достижении окончательности.

В процессе этой эволюции мы создали систему управления в рамках чейна, которая своей прозрачностью заменила непрозрачное внешнее управление. Мы получили возможность использовать преимущества от укрепления доверия к тем, кто занимает выборные позиции. Немного этого доверия позволяет EOS использовать производителей блоков как CPU оракулов, а также ввести "бесплатные" транзакции на Steem и EOS.

Мир блокчейнов породил множество алгоритмов консенсуса и управления. Я всецело поддерживаю наличие широкого спектра вариантов, сосредоточив свои силы на создании лучшей платформы для разработки, предназначенной для высокопроизводительных баз данных общего назначения на основе детерминированных вычислений.


Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Доступная торговля токенами EOS, Bitshares и Steem на платформе RuDex

Загрузите десктопное приложение с открытым исходным кодом RuDex


Comments 0