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

Давид Григорян
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. Но я бы советовал не затачиваться только на блокчейн, а посмотреть, как он работает со всем остальным. Потому что на самом деле блокчейн — очень абстрактная вещь, как и вообще фондовый рынок. Поди пойми, что там происходит. На это люди жалуются со времён «тюльпаномании» в Амстердаме. Ничто не ново, этого не нужно стыдиться.
 Все
                                Все
                             Истории
                                        Истории Дизайн
                                    Дизайн Код
                                    Код Геймдев
                                    Геймдев Бизнес
                                    Бизнес Маркетинг
                                    Маркетинг Управление
                                    Управление Кино
                                    Кино Музыка
                                    Музыка Проектная фотография
                                    Проектная фотография Развитие
                                    Развитие Здоровье
                                    Здоровье Деньги
                                    Деньги Образование
                                    Образование EdTech
                                    EdTech Корп. обучение
                                    Корп. обучение Блог Skillbox
                                    Блог Skillbox Глоссарий
                                        Глоссарий Спецпроекты
                                        Спецпроекты Профориентация
                                        Профориентация 
                                     
			 
                     
     
                                     
                                     
                                     
                                    