Я немного времени потратил на то, чтобы разобраться в стороне VM у Dusk, и честно говоря, именно там проект становится по-настоящему интересным.
Все говорят о Dusk из-за приватности. Но я снова и снова возвращался к тому, что лежит в основе: как именно цепочка выполняет код, не позволяя этому коду стать проблемой?
Вот тут и появляется Piecrust. Это среда исполнения для WASM, построенная вокруг одной простой идеи: смарт-контракты должны жить внутри очень контролируемого «ящика».
Звучит скучно. Пока не вспомнишь, что каждый контракт — это код, которому ты до конца не доверяешь. Он может быть с ошибками, злонамеренным или сделать то, чего разработчик никогда не ожидал.
Значит, виртуальная машина должна быть строгой. Границы памяти имеют значение. Вызовы имеют значение. То, к чему контракт вообще может обращаться, имеет значение.
Со временем Dusk тоже пришлось ужесточать эти вещи: исправления в части выхода за границы памяти, песочницы, алиасинга, повторного входа (reentrancy) и других глубоких проблем уровня выполнения.
Не то, что становится хорошим заголовком для крипто-новостей. Но именно то, на что я реально обращаю внимание.
Потому что приватность сильна лишь настолько, насколько сильна техника «под капотом».
Мне нравится в Dusk то, что среда исполнения не была спроектирована отдельно от уровня приватности. Контракты исполняются в WASM: виртуальная машина управляет окружением, а остальная часть стека занимается конфиденциальными транзакциями и доказательствами.
Разные компоненты, но они должны вести себя как единая система.
Dusk не ощущается как просто пересборка Ethereum с приватностью «поверх». Модель исполнения другая, а то, как устроены память контрактов и состояние, выглядит более целенаправленно, чем в привычной EVM-модели.
Вот почему меня заинтересовал Piecrust.
Не потому, что WASM звучит круто.
Потому что скучная часть обычно и есть там, где живет реальная инженерия.
Если Dusk станет серьезной финансовой сетью, в первую очередь заметят приватные транзакции. Очень немногие обратят внимание на то, как VM тихо и незаметно гарантирует, что все нижележащие компоненты ведут себя ровно так, как должны.
@Dusk #dusk $DUSK
Все говорят о Dusk из-за приватности. Но я снова и снова возвращался к тому, что лежит в основе: как именно цепочка выполняет код, не позволяя этому коду стать проблемой?
Вот тут и появляется Piecrust. Это среда исполнения для WASM, построенная вокруг одной простой идеи: смарт-контракты должны жить внутри очень контролируемого «ящика».
Звучит скучно. Пока не вспомнишь, что каждый контракт — это код, которому ты до конца не доверяешь. Он может быть с ошибками, злонамеренным или сделать то, чего разработчик никогда не ожидал.
Значит, виртуальная машина должна быть строгой. Границы памяти имеют значение. Вызовы имеют значение. То, к чему контракт вообще может обращаться, имеет значение.
Со временем Dusk тоже пришлось ужесточать эти вещи: исправления в части выхода за границы памяти, песочницы, алиасинга, повторного входа (reentrancy) и других глубоких проблем уровня выполнения.
Не то, что становится хорошим заголовком для крипто-новостей. Но именно то, на что я реально обращаю внимание.
Потому что приватность сильна лишь настолько, насколько сильна техника «под капотом».
Мне нравится в Dusk то, что среда исполнения не была спроектирована отдельно от уровня приватности. Контракты исполняются в WASM: виртуальная машина управляет окружением, а остальная часть стека занимается конфиденциальными транзакциями и доказательствами.
Разные компоненты, но они должны вести себя как единая система.
Dusk не ощущается как просто пересборка Ethereum с приватностью «поверх». Модель исполнения другая, а то, как устроены память контрактов и состояние, выглядит более целенаправленно, чем в привычной EVM-модели.
Вот почему меня заинтересовал Piecrust.
Не потому, что WASM звучит круто.
Потому что скучная часть обычно и есть там, где живет реальная инженерия.
Если Dusk станет серьезной финансовой сетью, в первую очередь заметят приватные транзакции. Очень немногие обратят внимание на то, как VM тихо и незаметно гарантирует, что все нижележащие компоненты ведут себя ровно так, как должны.
@Dusk #dusk $DUSK