Как VRF Polkadot достигает случайности, чтобы перетасовать валидаторы? - PullRequest
0 голосов
/ 16 октября 2019

В отличие от Ethereum, который использует RANDAO (возможно, улучшенный с помощью VDF), в Polkadot, проверяемая случайная функция (VRF) используется для перетасовки валидаторов и выбора потенциальных блоковых предложений для определенных слотов. Откуда берется случайность, т. Е. Как она работает конкретно?

1 Ответ

0 голосов
/ 16 октября 2019

Проверяемая случайная функция - это функция, которая в псевдокоде может быть выражена следующим образом:

(RESULT, PROOF) = VRF(SECRET, INPUT)

То есть для некоторого секретного и некоторого ввода (который может быть открытым), результатом являетсякортеж RESULT и PROOF, где PROOF может использоваться внешними наблюдателями для проверки законности VRF RESULT.

Другими словами, выполнение "броска VRF" приводит к случайномучисло и доказательство того, что вы получили это случайное число, а не просто выбрали его.

Каждый слот (примерно каждые 6 секунд), каждый валидатор будет запускать функцию VRF. SECRET будет их ключом VRF, специальным ключом, который будет использоваться только для этого, генерируемым валидатором и хранящимся в секрете. INPUT - это либо конкретное значение из блока генезиса, если в цепочке существует менее 2 эпох, либо хэш всех VRF-результатов за последние 2 эпохи.

Как только валидатор выполнил VRFRESULT сравнивается со значением THRESHOLD, которое определяется протоколом. Если RESULT меньше, чем THRESHOLD, валидатор является действительным кандидатом, предлагающим блочное предложение, для этого слота. В противном случае валидатор пропускает этот слот.

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

...