Деталь Сумерек, к которой я снова и снова возвращался: блок может иметь подтверждение успешности и при этом ещё не быть финальным.

На первом чтении «Succinct Attestation» было проще.

поступило предложение.
проверка достигает сверхбольшинства голосов «Valid».
ратификация подтверждает это.
агрегированные подписи BLS доказывают кворум.

готово, так?

не совсем.

Раздел о постепенной финальности в Dusk разбивает блок на принятый, подтверждённый, подтверждённо-валидный (confirmed) и финальный.

если блок производится на итерации I > 0, когда у более ранней итерации всё ещё нет fail attestation, он может нести success attestation и при этом быть помеченным только как accepted.

потому что формулировка «комитет достиг кворума» звучит очень похоже на «этот блок не может исчезнуть».

в Dusk это разные утверждения.

неразрешённая более ранняя итерация всё ещё важна. если блок с меньшей итерацией позже достигнет консенсуса, fallback может заменить принятый блок и отбросить его последователей.

так что success attestation доказывает согласие.

но это не всегда доказывает, что цепочка уже закончила выбор.

подтверждённый (attested) блок либо приземлился на итерации 0, либо имеет fail attestations, покрывающие каждую более раннюю итерацию — значит, блок с меньшей итерацией не может заменить его напрямую. confirmed зависит от более поздних блоков. финальным становится только тогда, когда блок подтверждён (confirmed) и его родитель уже финален.

из-за этого «финальность за секунды» стала ощущаться не как одно событие, а как граница, которую приложение должно корректно прочитать.

приложение в Dusk — это не только вопрос о том, подписало ли консенсус что-то.

освободить залог?
признать передачу безопасности?
пусть другой контракт считает состояние необратимым?

возможно, это не заслуживает одинакового порога.

в большинстве случаев это, вероятно, происходит быстро. отлично

краевой случай — вот что меня интересует: блок выглядит успешным, приложение реагирует на него, а более низкая итерация всё ещё жива.

Dusk не скрывает эту брешь. он называет её.

accepted — это не финальность.

и как только я это заметил, мой вопрос по интеграции изменился.

не «успешно ли завершился консенсус?»

насколько необратимо это приложение должно ждать от Dusk, прежде чем оно начнёт действовать?

@Dusk $DUSK #Dusk $ACE $APR
SELECTIVE DISCLOSURE
0%
DUSKVM
0%
DUSK'S MOONLIGHT
100%
DUSK'S PHOENIX
0%
1 проголосовали • Голосование закрыто