Код
#Интервью

Кто такой блокчейн-разработчик и как им стать

Чем занимается блокчейн-разработчик, какие навыки от него требуются и какое будущее у криптовалют. Продолжение интервью с Давидом Григоряном.

Иллюстрация: Colowgee для Skillbox Media

Давид Григорян


CTO и сооснователь французской компании Dfns, инвестор и советник в банках. Восемь лет опыта разработки в финтехе, среди прочего в Deutsche Bank.


Работал в Сан-Франциско, Стокгольме, Лондоне, Франкфурте, Куала-Лумпуре, а сейчас — в Париже. За свою жизнь основал четыре компании, одну из которых продал Ubisoft.


Чем занимаются блокчейн-разработчики

— Давид, чем занимаются блокчейн-разработчики и какие направления есть в этой сфере?

Самое базовое направление — разработка новых блокчейнов, которые выходят ежемесячно или хотя бы ежеквартально. Кроме того, уже существующие нужно оптимизировать, делать новые протоколы — например, для биткоина недавно анонсировали протокол Lightning, ускоряющий маленькие транзакции в Ethereum.

То есть разработчики создают децентрализованные сети — обычно на С, С++, Go или Rust. Это относительно низкоуровневые языки, поэтому там участвует много людей с опытом работы над обычными email-серверами или телекомом.

Ещё одно направление — умные контракты, smart contracts. Чтобы этим заниматься, нужно понимать, как работает блокчейн, и разбираться в финансах: у человечества тысячелетний опыт работы с облигациями, акциями и различными инструментами, и сейчас мы их перепридумываем на блокчейне.

— Ты сказал, что каждый месяц выходит новый блокчейн. Что там ещё можно изобретать и в чём между ними разница?

Бывает всякое. Например, Билли Маркус из IBM и Джексон Палмер придумали Dogecoin просто по приколу, но люди не поняли шутки и решили вложиться серьёзно.

Опять же — ты, наверное, слышал о форках, когда один блокчейн разветвляется на несколько. Это случается, если нет консенсуса и какая-то группа майнеров говорит: «Мы с вами не согласны, поэтому уходим».

Есть так называемое confirmation time — время подтверждения: я отправил тебе деньги, но мы ждем ещё десять блоков, чтобы никто никуда не ушёл. После подтверждения мы знаем, что у тебя точно есть деньги, не было форка.

Надо понимать, что децентрализованные системы — это колоссальная бюрократия. Они даже медленнее государств. Чтобы их создать, нужно согласие огромного количества людей, у которых совершенно разные интересы. Иногда люди устают ждать и спорить, поэтому говорят: «Fuck it. Я сделаю собственный коин, с блэкджеком и куртизанками».

Так что большинство блокчейнов созданы на базе других, с добавленными или, наоборот, устранёнными фичами. Часто они появляются по принципу «я тоже хочу». Так родился, например, PolkaDot.

Stellar сделали, потому что у создателей есть концепт Oracles — внешнего финансового института, который может публиковать свои продукты на блокчейне. То есть ты можешь поставить его в custody и сказать: «У меня есть 10 тысяч акций Amazon и Apple, я хочу легко их вам пихнуть». Причём Stellar очень быстрый: мы делали свой совместимый со Stellar форк, выкинули всё лишнее и добились скорости в районе полутора миллионов транзакций в секунду.

Ещё сейчас в большой моде ESG, потому что многие начали думать об экономии электричества. В последнее время появляется много идей в этой сфере.

Думаю, большинство из этих блокчейнов умрёт, но я не удивлюсь, если через десять лет у нас будет 50 разных блокчейнов.

Как разрабатывают блокчейны

— Кто имеет право контрибьютить в биткоин? Как принимаются окончательные решения об изменении технологии?

— Когда ты подсоединяешься к блокчейну, это означает, что у тебя есть какое-то приложение, которое умеет делать три вещи: майнить валюту, совершать и валидировать транзакции. Допустим, ты придумал новую идею и закоммитил код. Кому-то твоя идея понравилась, и он откомпилировал майнер-версию 1.1. Но тебе нужно, чтобы остальные майнеры согласились работать именно с твоей версией. То есть коммитить код недостаточно: требуется консенсус в остальных приложениях, чтобы все сказали: «да, мы хотим работать с этим».

Отправлять транзакции легко: это всего лишь текст. Проблема в том, как эту транзакцию потом будут записывать в кошелёк, как — майнить следующий блок и как ты будешь получать деньги за майнинг блоков с транзакциями других людей. Сейчас, например, идут дебаты насчёт Ethereum 2.0, в котором меняют логику майнинга с proof of work на proof of stake. Закоммитить код недостаточно — нужно, чтобы большинство майнеров, которые инвестировали деньги в видеокарты, согласились с изменениями.

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

— Если ты работаешь с Ethereum Virtual Machine — это в основном Solidity, к сожалению. Вообще, у меня есть теория о мазохизме программистов. Когда-то мы выбрали JavaScript, чтобы с ним мучиться. В 1970-е были нормальные языки программирования, но для работы на Linux выбрали Bash. То же самое и с Solidity — это достаточно хреновый язык, чтобы программисты продолжали его использовать.

Я бы посоветовал учить Wasm — по сути, это тот же Rust. Его поддерживают всё больше блокчейнов — например, PolkaDot и Cosmos.

Опять же, Ethereum — конечно, крупнейший блокчейн, но есть и другие. Например, Tezos, в который я по ошибке вложил слишком много денег. На нём писали контракты на С++. А в Stellar придумали собственный язык, который позволяет достаточно легко создавать смарт-контракты.

— В блокчейн-разработке используют какие-нибудь проприетарные решения?

— Да, не так много, но их используют. В первую очередь это R3 Corda и Hyperledger. Если говорить о фреймворках, есть Trufflesuite от ConsenSys. Это фреймворк для теста твоих контрактов. У них есть тулзы, которые позволяют тестировать и разрабатывать контракты вне блокчейна, потому что у блокчейна своя скорость. Не всегда хочется ждать две минуты, пока опубликуешь свой контракт, и это стоит денег: даже для теста нужны виртуальные деньги, их тоже нужно как-то майнить.

Например, на Rinkeby нужно затвиттить свой адрес, поставить ссылку на твит, и тебе дадут 18 виртуальных Ethereum. Но иногда заканчиваются даже виртуальные Ethereum, а тебе нужно публиковать контракт.

Как стать блокчейн-разработчиком

— Какие навыки требуются программисту, который хочет войти в блокчейн-разработку?

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

Нужно понимать, что, если мы делаем банковское приложение, в худшем случае мы можем сказать: «Ой, у нас дыра в безопасности, выключаем все серверы». С блокчейнами такой номер не пройдёт. Так что всегда полезно иметь в штате человека, который понимает, как делать infosec audit своего кода или своей команды. Например, в прошлом месяце кто-то потерял 120 миллионов из-за ошибки в контракте, и такое происходит сплошь и рядом.

Помимо этого, нелишним будет представление, как всё тестировать и как вообще работает RESTful-интерфейс. Любая операция чего-то кому-то стоит, даже если это просто вознаграждение майнерам. Поэтому от людей требуется намного больше ответственности. Я вижу небольшой откат к 1990-м, когда программисты были ещё и немного аналитиками. Это потом начали распределять: «У нас будет аналитик, будет бизнес-аналитик, ты делаешь только бэкенд, ты делаешь только фронтенд».

Но в целом всё несложно. Большинство смарт-контрактов и DeFi намного легче, чем любой фронтенд-сайт с какой-нибудь анимацией.

Я бы ещё, наверное, посоветовал чуть-чуть подучиться финансам, понять, как они работают. Хотя, конечно, это то ещё удовольствие. Есть книжки от Financial Times, которые даже в руки брать страшно. Но что делать.

Хотя можно создавать приложения в интернете, которые подсоединяются к блокчейну. Надо просто понимать, как он работает, познакомиться с теорией. Можно пойти, например, на SushiSwap: у них есть какой-то бэкенд, можно сделать что-нибудь для аналитики. У тебя есть приложение-кошелёк MetaMask, которое встраивается в браузер Chrome, ты приходишь на SushiSwap, коннектишься, и всё работает.

Отдельная тема — NFT. Это те же коины, которые присоединяются к каким-то off-chain assets. Я вижу интересные вещи в играх. Можно купить у Ubisoft NFT на оружие в играх: в Call of Duty — на автомат, в Warcraft — на супермеч и так далее.

Но ещё хочу предупредить: в 1960-е было такое понятие, как database company. То есть когда базы данных были новыми, некоторые компании говорили: «Мы поставили себе базу данных, теперь мы database company». Нечто подобное теперь с блокчейном: «О, мы запихнули где-то блокчейн, поэтому мы — blockchain company» :)

— На взгляд тебя как СТО, станут ли в будущем востребованы разработчики, специализирующиеся именно на блокчейнах?

— Думаю, да. Скорее всего, сфера вырастет раз в пять в следующие несколько лет. Между 2017-м и 2020-м был период Crypto Winter, когда всё упало. Мы его пережили. Если посмотреть на валовой продукт блокчейна Европы и Америки, ты можно увидеть, что мы ещё много можем съесть. В коммерческом секторе развитие будет колоссальным.

С чего начать изучение блокчейн-разработки

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

— Я сделаю рекламу своему другу Роберту Эллису. Он написал книжку, которая называется Blockchain Maturity. Там рост блокчейна сравнивается с ростом интернета и на основании этого делаются прогнозы. Эта книжка 2017 года, вроде бы: можно посмотреть, где Роберт оказался неправ, будет интересно.

Есть ресурс Crypto Zombies, сделанный по образцу CryptoKitties. Был в 2017-м такой публичный NFT, когда ты мог купить котёнка, потом скрестить его с другим и получить новых котят. А здесь ты сам делаешь зомби, потом скрещиваешь их с котятами, и у тебя получается зомби-версия котят. Онлайн-туториал там прикольный, называется Crypto Zombies Loom Network.

Можно посмотреть, чем занимается ConsenSys. У A16z есть крипторесурсы. Её создатели Andreessen Horowitz — одна из самых известных американских инвестиционных компаний. Это чуваки, которые сделали Netscape и первый cloud.

Есть хороший подкаст Blockchain Insiders. Он выходит раз в две-три недели, в нём говорят о применении блокчейна в разных индустриях. Это может быть интересно, особенно если человек ищет работу. Ещё беседуют с технарями, которые рассказывают о конкретных имплементациях контрактов или блокчейнов. И у этих же авторов есть подкаст Fintech Insider — для тех, кому интересен финтех.

По технической части у ConsenSys есть куча библиотек и для теста, и для разработки смарт-контрактов Ethereum. Но я бы советовал не затачиваться только на блокчейн, а посмотреть, как он работает со всем остальным. Потому что на самом деле блокчейн — очень абстрактная вещь, как и вообще фондовый рынок. Поди пойми, что там происходит. На это люди жалуются со времён «тюльпаномании» в Амстердаме. Ничто не ново, этого не нужно стыдиться.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована