Смотри, если разработчик сейчас думает, переходить в блокчейн-экономику или нет. Вот ТОП-3, что бы ты посоветовал делать? Начать делать не в плане проекта, а с самим собой это сделать?
1. Ну во-первых, я рекомендую почитать именно то, как все работает. То есть понять, как работает Bitcoin — это просто обязательно. Там нет ничего сложного. Даже можно не въезжать, как работает UTXO. Важно понять именно то, как работает абстракция биткоина, что там майнеры делают. Потому что есть огромное количество заблуждений, даже у людей, которые являются программистами/разработчиками, а они не понимают, как работает биткоин. И они имеют различные догадки, что там сеть биткоина, она имеет огромную мощность. Они говорят: «а что, если они там пароли перебирают какие-то». Ну то есть у человека нет понимания, что происходит, то есть нет такого-то понимания экономики, модели этого проекта биткоина. Потому что за перебор пароля тебе никто столько не заплатит, сколько тебе заплатят за майнинг биткоина. То есть сейчас раз в 10 минут в сети Bitcoin появляется блок, вознаграждение за него — 12,5 BTC (допустим, по текущему курсу это порядка $ 80 000, каждые 10 минут $ 8 000 дарятся всем майнерам). Значит, за сутки они сколько зарабатывают. И так далее: можно рассчитать, сколько майнеры мира зарабатывают за месяц именно биткоинов. Вот эти работающие фермы — это бизнес. А он дает какой-то там постоянный им доход, и если ты им говоришь какой-то пароль перебирать на этом же оборудовании, надо сразу посчитать, сколько им придётся за это заплатить. Ни меньше, чем если бы они майнили биткоин. Они, конечно, с радостью переключатся на перебор твоих паролей каких-то, если ты им заплатишь больше. Ну раз в 10 минут, это все майнеры раз в десять минут, конечно, получают. Смотря какая ферма. Можно посчитать фактически, сколько ферма зарабатывает. Если заплатишь ей за перебор паролей своих на 20−40 процентов больше, чем она сейчас зарабатывает, то она, конечно, переключиться на твою задачу, но не до такой степени, что все майнеры мира будут там какой-то пароль твой перебирать. Вполне возможно создание таких сервисов на смарт-контрактах, где публикуется зашифрованный пароль, и тебе говорится, что тот, кто найдёт, тому вот и выплатим сумму (в смарт-контракте лежит), это без проблем.
2. Я так предполагаю, если человек собирается входить в эту сферу, наверное, он пойдёт в смарт-контракты. Но, конечно, не уверен. Он может попытаться в разработку блокчейна пойти. Ну не знаю, мне тут сложнее оценить. То есть я могу сказать, что разработка смарт-контрактов — она, в принципе, не очень сложная. То есть тебе нужно просто познакомиться с языком, со стандартной библиотекой, которой нет. Это не шутка, к сожалению. А вот есть библиотеки, которые в принципе можно будет считать стандартными когда-нибудь. Например, Open ZeppelinSolidity библиотека. Вот нужно, в том числе, почитать, как она устроена, чтобы потом не велосипедить, а просто взять какие-то готовые вещи из неё. Я, кстати, не очень люблю, когда встречаю код на смарт-контрактах, и там человек написал всё с нуля. Хочется сказать: «А зачем ты потратил реально какие-то недели времени, чтобы это всё написать? Оно уже всё есть. Ты просто вот возьми вот эти классы готовые там, отнаследуйся от них, и все. Зачем ты несколько месяцев это писал, потом ещё аудит надо делать вот на всё это».
В смарт-контрактах есть такая хорошая черта — это же самые библиотеки OpenZeppelin, они разрабатывают такие смарт-контрактики, которые точечно применяются. Ты потом можешь от них ото всех отнаследоваться и такую композицию создать (там множественное наследование используется). И оно разруливает, оно превращается во время компиляции в линейное наследование. Это тоже нужно понимать. Потому что люди думают, что у них множественное наследование, значит, у них несколько родителей может быть и так далее. Там это не так на самом деле. Оно выглядит так, но на деле это не так. Нужно с этим знакомиться тоже. Вот и в целом там различные какие-то аспекты поведения, они пишутся отдельными смарт-контактами, которые можно каждый по отдельности покрыть тестами. Доказано, что там тесты есть. Доказано, что вот эти все компоненты по отдельности работают. Ты так собираешь, дописываешь какой-то свой код, либо туда же, либо отдельно его тоже наследуешь, либо еще каким-то образом реагируешь. Вот и получаешь смарт-контракт, в котором ты написал не так много, а большая часть — она уже написана и взята откуда-то. И тебе проверять уже не так много. Нет стольких возможностей облажаться. Потому что, если ты облажаешься в смарт-контракте, это может быть очень печально. А вот собственно все истории, когда кто-то облажался в смарт-контракте, они очень печально звучат. В итоге это потерянные деньги.
3. Наверно, это криптография. То есть нужно разобраться с тем, как работают эти цифровые подписи, эллиптические кривые. Вот это не очень сложно. То есть, смотря на каком уровне пытаться это изучить. Как работает эллиптическая криптография — это не очень сложно. Это займет какую-нибудь неделю, несколько дней. Зависит от подготовки человека. Но нужно понимать, чем кодирование отличается от шифрования, что такое симметричное, асимметричное, иметь представление, что в блокчейне всё публичное. Если ты какое-то поле делаешь приватным, это не значит, что ты защитишь значение, которое там лежит. Просто большая часть людей не смогут его посмотреть. Ну кому надо, смогут. Всё это все равно хранится. Чтобы ты понимал, что все вычисления в смарт-контракте — они доступны всем. И все значения всех переменных. Если ты пытаешься каким-то образом через смарт-контракт организовать какой-то защищенный канал данных, чтобы пользователи обменивались, и это не было всем видно, что именно они передают, для этого нужно какие-то способы шифрования использовать.