Прошлым вот этим временем в прошлом году я ещё спорил с людьми — «Проверять логику, запуская её вне WASM-сandbox? Это что, самому себе яму копать?». Тогда я только что дочитал один разбор постфакта по какой-то цепочке: её “выпотрошили” из‑за уязвимостей в смарт‑контрактах, и в голове крутилось одно — «чем меньше кода, тем безопаснее».
Большая бочка с клювом по точкам откупа: у BTC ещё есть куда расти?
Потом взялся сам и запустил ноды Dusk — и понял, что всё не так просто.
Я полистал их тестовый код из Piecrust, а ещё специально сходил поискал ту самую, на которую несколько раз ссылались, статью по производительности — там измеряли потери WASM по сравнению с нативным кодом на разных наборах инструкций; в криптографических сценариях просадка доходила до 255%. Подумай сам: подписи BLS, zk‑доказательства — что из этого не ест вычисления как большой гурман? Каждая транзакция интерпретируется в WASM — по сути, ты ездишь 25 литров на 100 км, а на заправке хозяин улыбается во весь рот, пока твой кошелёк первым не выдерживает.
Поэтому они делают операции частого крипто‑счёта как host function и напрямую вызывают нативную реализацию. Смысл, если по-простому, такой: на частых маршрутах не ставь заграждений, а редкие дорожки проверяй строго.
Риск, конечно, есть: доверительный периметр с «всего WASM-сandbox» сдвигается к «в этих нескольких строчках C кода нет ли ошибки, ведущей к проблемам». Раньше это было чувство безопасности уровня физической изоляции, теперь — всё упирается в то, насколько аккуратно держит руки инженер. Я отдельно залез на официальный сайт в их уголок и достал отчёт аудита за 2024 Q3 — по крайней мере, на тот момент тестировали те граничные случаи, которые хотя бы не взорвались. Но в любом случае такие баги никогда не “вылавливают” — их кормят данными, которые кто-то специально подготовил. И в какой-то день кто-то может подкинуть безупречно сфабрикованное доказательство, триггернуть переполнение целого в host function, за которым никто толком не следил… брр, такой кадр я пока не хочу увидеть своими глазами.
Но если гнаться за «на 100% безупречно», то давай не играть в публичные сети — проще вернуться и написать софт для одного компьютера. Люди в Dusk считают по другой бухгалтерии: проблему производительности — «сегодня», а вопросы безопасности — «завтра ещё можно закрыть». Я проработал в нодах три года и видел, что цепочки умирают в девяти случаях из десяти из-за того, что gas слишком высокий и ими никто не пользуется; и ещё — из-за атак, которые просто обнуляют всё сразу, но я не сталкивался с этим на собственном опыте.
Так что теперь у меня позиция менее жёсткая. Раньше, когда мы с друзьями ели, я упрямо говорил «давай ещё понаблюдаем», а вернувшись — молча обновил версию ноды до самой свежей. Проекты, которые делают дырку в песочнице, немного — Dusk среди них. #dusk $DUSK @Dusk
Большая бочка с клювом по точкам откупа: у BTC ещё есть куда расти?
Потом взялся сам и запустил ноды Dusk — и понял, что всё не так просто.
Я полистал их тестовый код из Piecrust, а ещё специально сходил поискал ту самую, на которую несколько раз ссылались, статью по производительности — там измеряли потери WASM по сравнению с нативным кодом на разных наборах инструкций; в криптографических сценариях просадка доходила до 255%. Подумай сам: подписи BLS, zk‑доказательства — что из этого не ест вычисления как большой гурман? Каждая транзакция интерпретируется в WASM — по сути, ты ездишь 25 литров на 100 км, а на заправке хозяин улыбается во весь рот, пока твой кошелёк первым не выдерживает.
Поэтому они делают операции частого крипто‑счёта как host function и напрямую вызывают нативную реализацию. Смысл, если по-простому, такой: на частых маршрутах не ставь заграждений, а редкие дорожки проверяй строго.
Риск, конечно, есть: доверительный периметр с «всего WASM-сandbox» сдвигается к «в этих нескольких строчках C кода нет ли ошибки, ведущей к проблемам». Раньше это было чувство безопасности уровня физической изоляции, теперь — всё упирается в то, насколько аккуратно держит руки инженер. Я отдельно залез на официальный сайт в их уголок и достал отчёт аудита за 2024 Q3 — по крайней мере, на тот момент тестировали те граничные случаи, которые хотя бы не взорвались. Но в любом случае такие баги никогда не “вылавливают” — их кормят данными, которые кто-то специально подготовил. И в какой-то день кто-то может подкинуть безупречно сфабрикованное доказательство, триггернуть переполнение целого в host function, за которым никто толком не следил… брр, такой кадр я пока не хочу увидеть своими глазами.
Но если гнаться за «на 100% безупречно», то давай не играть в публичные сети — проще вернуться и написать софт для одного компьютера. Люди в Dusk считают по другой бухгалтерии: проблему производительности — «сегодня», а вопросы безопасности — «завтра ещё можно закрыть». Я проработал в нодах три года и видел, что цепочки умирают в девяти случаях из десяти из-за того, что gas слишком высокий и ими никто не пользуется; и ещё — из-за атак, которые просто обнуляют всё сразу, но я не сталкивался с этим на собственном опыте.
Так что теперь у меня позиция менее жёсткая. Раньше, когда мы с друзьями ели, я упрямо говорил «давай ещё понаблюдаем», а вернувшись — молча обновил версию ноды до самой свежей. Проекты, которые делают дырку в песочнице, немного — Dusk среди них. #dusk $DUSK @Dusk