Прошлой ночью я перебросил тестнетный DUSK в DuskEVM и задеплоил небольшой контракт — в основном чтобы просто посмотреть, как транзакция проходит весь конвейер от начала до конца. Подтвердилось быстро. Естественно, я решил, что всё готово — включение появилось, транзакция закрылась, и можно дальше.
Оказалось, что здесь это не одно и то же, и этот разрыв важнее, чем звучит. DuskEVM работает как роллап: сиквенсер сначала включает вашу транзакцию в L2-блок, затем батчер отдельно публикует эти данные в DuskDS, и только после того, как commitment’ы состояния и fault proof’ы связываются обратно, транзакция действительно “финализируется”. Включение происходит по одним часам. Финализация — по другим. Мой кошелёк показал confirmed в момент первого события, а не второго.
Напомнило про проверку в банке у стойки. Кассир выдаёт вам квитанцию сразу, как только принимает её — ощущается как “готово”. Но реальные деньги между банками не двигаются, пока они не “пройдут клиринг” за кулисами по собственному графику, независимо от того, что написано в квитанции.
Теперь понятно, почему Dusk так жёстко проводит эту границу — учитывая, для чего именно эта сеть построена. Регулируемая площадка, перемещающая реальные ценные бумаги, не может считать “выглядит подтверждённым” и “является финализированным” взаимозаменяемыми — документация прямо говорит, что любое перемещение стоимости между DuskEVM и Dusk L1 должно проверяться напрямую по статусу протокола или кошелька, а не выводиться из того, сколько времени прошло.
Стоит уточнить, что это был тестнет — тайминги на мейннете могут выглядеть иначе, когда всё полностью запустится.
Но всё равно возвращаюсь к мысли: для сети, ориентированной на расчёты уровня MTF, этот разрыв между inclusion и settlement со временем “прячут” для конечного пользователя, или же регулируемым финансам как раз нужно, чтобы этот разрыв был виден намеренно?
#dusk $DUSK @Dusk #DUSK
Оказалось, что здесь это не одно и то же, и этот разрыв важнее, чем звучит. DuskEVM работает как роллап: сиквенсер сначала включает вашу транзакцию в L2-блок, затем батчер отдельно публикует эти данные в DuskDS, и только после того, как commitment’ы состояния и fault proof’ы связываются обратно, транзакция действительно “финализируется”. Включение происходит по одним часам. Финализация — по другим. Мой кошелёк показал confirmed в момент первого события, а не второго.
Напомнило про проверку в банке у стойки. Кассир выдаёт вам квитанцию сразу, как только принимает её — ощущается как “готово”. Но реальные деньги между банками не двигаются, пока они не “пройдут клиринг” за кулисами по собственному графику, независимо от того, что написано в квитанции.
Теперь понятно, почему Dusk так жёстко проводит эту границу — учитывая, для чего именно эта сеть построена. Регулируемая площадка, перемещающая реальные ценные бумаги, не может считать “выглядит подтверждённым” и “является финализированным” взаимозаменяемыми — документация прямо говорит, что любое перемещение стоимости между DuskEVM и Dusk L1 должно проверяться напрямую по статусу протокола или кошелька, а не выводиться из того, сколько времени прошло.
Стоит уточнить, что это был тестнет — тайминги на мейннете могут выглядеть иначе, когда всё полностью запустится.
Но всё равно возвращаюсь к мысли: для сети, ориентированной на расчёты уровня MTF, этот разрыв между inclusion и settlement со временем “прячут” для конечного пользователя, или же регулируемым финансам как раз нужно, чтобы этот разрыв был виден намеренно?
#dusk $DUSK @Dusk #DUSK