Недавно Дэн Нотштейн из blocktrades.us опубликовал на Steem пост о изобретении DPOS. Прочитав его, я решил добавить к сказанному и свои мысли.
За прошедшие годы DPOS заметно развился, и вместе с ним моё понимание картины. В частности, между Bitshares 1.0, 2.0, Steem и EOS существуют огромные различия, но при этом все они считаются DPOS.
В начале я пытался решить целый ряд разнообразных задач:
- Кто должен получать право произвести следующий блок?
- Каково правило выбора форка?
- Как будет продвигаться блокчейн, если все, кроме одного производителя блоков, остановили свою работу?
- Сколько производителей действительно необходимо?
- Как воспрепятствовать ситуации, когда один производитель идёт на конфликт с другим, игнорируя его блоки?
Все эти вопросы достаточно сложны, но, возможно, самым сложным для BitShares была задача минимизации возможностей для микрофоркинга с целью получения прибыли. Это уникальное свойство некоторых бирж, где фронтраннинг в стакане ордеров может создать финансовый стимул для изменения порядка блоков.
Самым большим нововведением DPOS стали не выборы, проводимые среди держателей токена, а процесс, посредством которого избранные производители достигали консенсуса. Это различие ускользнуло почти ото всех.
Данный процесс включал осознание того, что форк с наибольшим количеством валидаторов будет расти быстрее, чем форк с меньшим числом, поскольку к определённому временному интервалу приписан только один производитель.
Следующим нововведением стал процесс, в котором производители перетасовывались случайным образом. Это предотвращало разрывы и удерживало от столкновения производителей, идущих друг за другом.
Именно тогда я понял, что мы можем генерировать криптографическое доказательство двойного производства блока, чтобы наказывать нарушителей за любую попытку создать секретный форк.
Этот процесс достижения консенсуса среди набора известных валидаторов и был по-настоящему ключевым. Процесс их избрания был простым отражением систем корпоративного управления, где акционеры выбирают совет директоров.
EOSIO – не DPOS
Базовое программное обеспечение EOSIO использует конвейерную византийскую отказоустойчивость вкупе с набором избранных производителей. Процесс выборов схож с таковым в BitShares, однако способ достижения консенсуса по сути совсем иной. Критическим отличием является концепция окончательности. BitShares не хватает окончательности, так же, как и Биткоину.
В результате пристального наблюдения за BitShares в действии я осознал несколько вещей:
- 101 производитель – это слишком много для обдуманного и взвешенного голосования. В итоге побеждает рациональное невежество.
- Безопасное случайное перемешивание – это перебор, достаточно псевдослучайного перемешивания, которое не зависит от содержимого блока. (BitShares 2.0)
- В STEEM я представил концепцию ротации 21-го заверителя. Она препятствует тому, чтобы они вызывали простои, при этом обеспечивая высокую степень устойчивости к цензуре за счёт максимизации количества людей, получающих возможность произвести блок.
- Желание поддерживать межчейновую коммуникацию подразумевает, что нам нужна окончательность, а также простой способ следовать за набором производителей в лёгком клиенте. Это означает минимизацию частоты смены набора производителей и обеспечение того, что все изменения вступают в силу только по достижении окончательности.
В процессе этой эволюции мы создали систему управления в рамках чейна, которая своей прозрачностью заменила непрозрачное внешнее управление. Мы получили возможность использовать преимущества от укрепления доверия к тем, кто занимает выборные позиции. Немного этого доверия позволяет EOS использовать производителей блоков как CPU оракулов, а также ввести "бесплатные" транзакции на Steem и EOS.
Мир блокчейнов породил множество алгоритмов консенсуса и управления. Я всецело поддерживаю наличие широкого спектра вариантов, сосредоточив свои силы на создании лучшей платформы для разработки, предназначенной для высокопроизводительных баз данных общего назначения на основе детерминированных вычислений.
Оригинал поста: ЗДЕСЬ