
Интервью вышло в июне 2023 года. Оценки рынка и планы проектов указаны на тот момент.
Я учился в ВШЭ на факультете компьютерных наук, но окончил только три курса. Учёба пришлась на хайп вокруг крипты и блокчейна. Потом мне предложили работу, и я решил сфокусироваться на ней, а не на учёбе. До этого, ещё на третьем курсе, я успел побывать на двух стажировках: в Google и Яндексе. Ещё я два раза был в полуфинале ACM ICPC NEERC по Северо-Западному региону. Это помогло попасть в Google и лучше разбираться в том, чем я занимаюсь сейчас.
Самая первая работа в крипте была в LATOKEN, дальше Harmony, где я занимался инжинирингом протокола, потом THORChain.
После этого я ушёл в DeFi. Был CTO в проекте Prosper, который мы с ребятами позже продали. На какое-то время ушёл разработчиком в Windranger Labs, в отделение, которое занималось DeFi-тулами, например Governance Framework, и коллаборациями с другими проектами.
Я работал во всех сферах web3 и во всём, что связано с децентрализацией и распределёнными системами. Разрабатывал блокчейн, PoW и PoS, функциональность стейкинга, тестировал разные решения.
После Prosper я ещё поработал в BitDAO: занимался проектами, связанными с NFT, писал бэкенды и смарт-контракты для аукционов. Но в разработке DeFi гораздо интереснее. Проекты с NFT больше про маркетинг, потому что сами покупки и продажи не работают через обычные ордера маркетмейкеров.
Мне предложили вакансию Solidity-разработчика, и я подумал, что это очень неплохой вариант. Процедура была стандартная, с собеседованием. В 1inch очень компетентная и солидная команда. Я работаю с ними уже полгода и до сих пор многому у них учусь.
1inch изначально агрегирует все ордера по ценам. Поэтому у ордеров, которые мы выбираем, меньше всего арбитража. Но, конечно, на арбитраже можно найти пул с самой низкой ценой и продать подороже.
1inch работает с разными аудиторами. У меня лично был опыт работы с CertiK и Least Authority. Самые дорогие и труднодоступные аудиторы в OpenZeppelin, но они и самые крутые.
Сейчас 1inch занимает очень важное место в DeFi. И хотя к OpenZeppelin сложно попасть даже за деньги, с 1inch они работают. Ещё есть MixBytes: там дешевле, но аудиторы тоже хорошие. 1inch работал и с ними.
Сейчас в индустрии проблема с секьюрными бриджами. Когда вы хотите перекинуть токен из одного чейна в другой, токены приходится держать в каком-то контракте. Если чейн мудрёный или централизованный, риск взлома большой. У блокчейна структура очень жёсткая с точки зрения токеномики, криптографии и консенсуса, а у бриджа механизмы защиты, как правило, разорваны между чейнами.
Но есть и довольно робастные бриджи, правда, устроены они сложно. Например, Rainbow Bridge: его пытались взломать, но все попытки провалились. Так устроен механизм трансфера: вы не сможете быстро перевести деньги, например, между Ethereum и Near так, чтобы они на 100% законфермились, потому что переводы можно челенджить.
Есть несколько валидаторов, которые собирают стейт с Near или Ethereum и отправляют его в соответствующие чейны: из Ethereum в Near и обратно. Так в каждом чейне есть контракт, в котором публикуется стейт противоположного чейна.
Тут такая зависимость: валидаторы, которые пушат стейт блокчейна, могут быть плохими, но если их штук 20, велика вероятность, что всё будет более децентрализовано и правильно, ведь им придётся договариваться. Rainbow Bridge у Near довольно близок к децентрализации.
Бриджей вообще очень много, и они разных типов. Например, Klaytn Bridge. Есть отдельные бриджи у Avalanche и Binance. Все они работают по-разному: какие-то суперцентрализованные, а какие-то, как Rainbow Bridge, близки к децентрализации. У L2-блокчейнов, например Arbitrum, Optimism или zkSync, бриджи заточены под определённый принцип: все они жёстко построены именно под L2-решения.
Когда стартапы набирают разработчиков, джунов они чаще всего обходят стороной. Руководство очень редко решает взять джуна. Обычно хотят опытных, которые готовы сразу давать результат.
С опытом CTF можно пробоваться на позиции джуна и мидла. Не бойтесь спамить откликами, если вам правда важно получить работу. Цепляйтесь за любую возможность. Даже если позиция будет малооплачиваемой, вы наберёте опыт, и вам будет легче расти. В любом случае это лучше, чем сидеть и долбить теорию. К тому же вы будете получать фидбек и понимать, что получается, а что нет.
Самое простое и важное, что нужно иметь, это опыт. Понимание кода и архитектуры, способность решать специфические задачи приходят с опытом. Например, база данных: она может быть децентрализованной, иметь больше или меньше реплик. Нужно на практике понимать эти трейд-оффы. Без опыта в чём-то разобраться сложно.
Да, может помочь ChatGPT, но в общих чертах. Всё набивается на практике: один раз напишешь базу данных или сервер и начнёшь понимать, как это работает.
У сеньора больше практики, поэтому он сделает эти задачи быстрее и лучше. Вот и всё. Требования к нему другие: он должен уметь строить оптимальную архитектуру, объяснять менеджеру, как работает продукт, разработать и реализовать архитектуру компонента и ещё сдать всё это в срок.
Могут быть подводные камни, например детали по секьюрити. В Solidity это встречается особенно часто. И всё это нарабатывается практикой. Это не значит, что джун не справится с такими задачами. Просто у него не набита рука на контракты и узкие моменты в секьюрити, поэтому справляться он будет менее эффективно, а может, вообще не будет понимать разницу между теми или иными решениями.
Разработчику важно понимать криптографию, это база. Тот же zero-knowledge, на котором построен zkSync. На уровне дексов ZK используется меньше, но разбираться в нём всё равно лучше.
Это знание не так распространено в индустрии: всё-таки это сложные алгоритмы, одни из самых сложных в крипте. В принципе, Merkle proof тоже ZK-proof. Только ZK надо подстраивать под разные кейсы, и реализовать технологию можно многими способами.
Но практики всё ещё нет: сложно придумать неочевидный юзкейс с ZK, кроме как тупо масштабируемый чейн. Да, могут быть механизмы, которые компонуют свопы в одну транзакцию. Но опять же: какая будет компоновка и зачем делать это в своём протоколе, если уже есть zkSync?
Если вы придумали какой-то юзкейс с ZKP, то нужно делать стартап, потому что это хайп.
Я думаю, все Solidity-разработчики должны писать на JS, а именно на TypeScript. Между JS и Solidity есть разница в фичах языков, хотя на фундаментальном уровне всё одинаково. TypeScript стал стандартом, его нужно знать, чтобы писать тесты. Есть фреймворк Foundry, который позволяет писать тесты исключительно на Solidity. 1inch в некоторых случаях им пользуется, и сейчас стоит вопрос, переедем ли мы на него полностью.
Разумеется, если хочешь стать сеньором, надо понимать, какие контракты будут работать со стороны фронтенда и бэкенда. Есть приложение, с которым нужно работать и разбираться, что в нём будет работать эффективно.
Если хочется копнуть в разработку на Ethereum глубже, есть Vyper. Он становится всё популярнее, но основным языком на Ethereum пока остаётся Solidity.
Знать Python тоже полезно, потому что Vyper очень близок к Python по стилистике, синтаксису и фичам.
У меня был опыт собеседований Solidity-разработчиков, когда я работал в Prosper. Нам не нужен был прям глубоко погружённый разработчик, но я всё равно смотрел на знание блокчейнов. На собеседованиях часто спрашивают не только про Solidity, но и про то, как работают блокчейны.
Знакомство с блокчейнами в плане разработки лучше начинать с базы: PoW, PoS, в чём между ними разница, как работает EVM. Эта база поможет понимать и все изменения, которые происходят с Solidity. Ещё лучше разбираться во внутреннем устройстве того же Ethereum, например в MEV. Полезны и основы алгоритмов computer science и оптимизации.
Изначально кроссчейны основаны на атомик-свопах, которые появились ещё до Ethereum. Эта техника держится на криптографии: обе стороны генерируют секреты и с их помощью обмениваются залоченными транзакциями, а потом, когда приходит время, средства можно разлочить. На Ethereum можно свопать через смарт-контракты, они поддерживают любую логику.
THORChain очень крутой проект. По структуре трейдинга он похож на Uniswap, с кривой ликвидности. Там есть внутренние пулы, привязанные к RUNE, нативной валюте THORChain: BTC/RUNE, ETH/RUNE и т. д.
Для более-менее корректной работы с BTC и ETH в THORChain разработали специальный механизм. Он работает на пороговых подписях, и речь не о мультисиге, а о Threshold ECDSA. Разница в том, что в мультисиге, в отличие от Threshold ECDSA, подписи генерируются асинхронно: каждый участник мультисига добавляет свою подпись, и она разрастается в размере.
В THORChain наоборот: участники должны собраться вместе и сгенерировать одну подпись. Так THORChain проще завести кошельки для ETH и BTC, которыми будут управлять валидаторы сети. Значит, за эти ключи и кошельки может отвечать больше людей. Они могут стейкать RUNE в тех же пулах, и если они отберут у вас деньги, их можно будет наказать. Это гораздо лучше, чем хранить деньги на одном Binance, например. Получается более распределённая система.
zkSync и zkSync 2.0 должны стать прорывом хотя бы потому, что юзерам не нужно ждать свои деньги после того, как они завели их в L2. Консенсус в zkSync строится даже не по транзакциям, а по данным, которые пойдут в транзакцию. В роллапах у вас есть пруфы того, что транзакция выполнена правильно, и нужно только проверить, что данные и стейт тоже правильные. Это тоже консенсус. Следующий шаг в том, чтобы сделать эту процедуру трастлесс. За zkSync точно стоит наблюдать.
Также стоит следить за любыми чейнами, например Polkadot и Near: там довольно робастные и хайповые продукты, и на практике они более качественные. И, конечно, за выходом новых протоколов и дексов в DeFi.
Кроме zkSync, есть Aztec Network, более комплаенсная версия Tornado Cash. Только это отдельный чейн, который позволяет добавлять privacy layer. Он очень перспективный. StarkWare тоже перспективные. Они утверждают, что отдельно опубликуют ZK-технологию, которая позволяет валидировать и доказывать ZK-proofs из миллиона транзакций, и что у них невероятно большой скейлинг.
Сейчас в web3 появляется всё больше интересных и технологичных L2-чейнов, круче, чем Harmony и Avalanche.
Честно говоря, я не вижу фундаментальных причин, почему рынок сейчас должен расти. Память о скандалах прошлого года ещё не стёрлась. Когда это произойдёт, люди начнут активно заходить в крипту и на рынки.
Я считаю, что будущее за zkEVM. Есть даже отдельный стартап, который делает виртуальную машину на ZK, и если подумать, какие возможности это может дать, становится очень интересно. По идее, любой распределённый компьютинг сможет работать на ZK. Но пока это всё спекуляции.
У Bitcoin всё ещё большая капитализация и активное использование блокчейна. Но, на мой взгляд, взрыва Ordinals не будет. В Bitcoin сложно программировать NFT, и там нет такой трастлесс-системы, а в Ethereum вариантов очень много. NFT же про удобство и фан, а в Bitcoin это реализовать сложнее, и по качеству получится хуже.


