Что нужно учитывать при разработке смарт-контрактов
Нужны ли смарт-контракты вашему бизнесу. Международная девелоперская компания Merehead, специализирующаяся на разработках, представила краткий перечень критериев, которые помогут понять, будут ли полезны распределительный реестр и смарт-контракты вашему бизнесу.
У смарт-контрактов есть ограничения. Если вы пришли к выводу, что вашему бизнесу не обойтись без смарт-контрактов, вам нужно более детально изучить этот вопрос. В частности, понять, что у смарт-контрактов есть ограничения. Речь о следующих вещах:
- Смарт-контракты следует применить лишь к тому, что можно полностью выполнить в цифровой среде (блокчейне). Если в контракте нужно прописать или взять к сведению что-то вне этого мира, лучше использовать другое решение.
- Они действуют исключительно на основании конкретных фактов — объективных истин, а не субъективных суждений.
- Выполняются в форме «if/else или if/then». Например, если произошло событие A, тогда запускаем действие №1, если произошло событие C, тогда запускаем действие №3.
- Алгоритм контракта должен быть простым и исключать сложные дискретные функции и вероятности.
- Контракты не могут оперировать реальными активами, лишь их «цифровыми» сертификатами.
Смарт-контакты могут быть «плохими». Исследователи из Великобритании и Сингапура обнаружили, что около 35 000 существующих контрактов уязвимы для хакерских атак. Поэтому во время разработки и после нее нужно уделить особое внимание тестированию конечного продукта, так как любая ошибка или уязвимость может привести к потере денег и ресурсов — ваших или клиентов.
Где искать компанию по разработке smart контрактов
Назовем самые популярные площадки по поиску исполнителей для задач по программированию: - LinkedIn. Социальная сеть, заточенная под поиск и установление деловых контактов. Обязательно заведите аккаунт на этой площадке и используйте LinkedIn Recruiter (платная услуга, но есть триал-период) для поиска компании по разработке смарт-контрактов. Не помешает поискать разработчиков и на тематических страницах LinkedIn Groups.
Clutch.co и Goodfirms.co. Порталы с информацией о самых популярных компаниях-разработчиках. На первом сайте список включает 131 компанию, на втором — 177. На этих сайтах можно прочесть отзывы о компаниях и ключевую информацию об условиях сотрудничества с ними.
Blocktribe.com. Ресурс, где заказчики публикуют задания для блокчейн-разработчиков. Есть удобный фильтр, который отсеивает кандидатов по уровню профессионализма и опыта.
Upwork. Фриланс-платформа для поиска и найма разработчиков в том числе и блокчейн. Работает с 2003 года и считается одной из самых популярных в мире.
Toptal. Главный конкурент Upwork с подобным функционалом и целями. Кандидаты на Toptal проходят собеседование, тестирование, тестирование по кодированию в режиме реального времени, а также выполняют макетное задание продолжительностью около 30 часов.
Менее популярные площадки. DREAM, Codementor.io, Xbtfreelancer.com, Cryptojobslist.com, Crypto.jobs, Blocktribe.com, Beincrypto.com, Coinality, BountyOne. Стоит также поискать разработчиков в социальных сетях Facebook, Instagram, Twitter, Google+, StackExchange и на китайских Qzone, Weibo и Renren. Профессиональные компании занимаются активностью в социальных сетях, чтобы привлечь потенциальных заказчиков. А еще они, как правило, имеют аккаунты на форуме Bitcointalk — создайте соответствующую тему и ждите откликов.
Merehead.Если Вы не хотите приключений на свою голову и желаете получить и наладить связь с компанией, которая понимает Вас с полуслова - попробуйте Merehead. Мы не только поймем Вас, но и предложим лучшие варианты внедрения и реализации смарт-контрактов.

TokenFest — ежегодное двухдневное мероприятие, посвященное токенизации бизнеса
На сайте Meetup.com предсталена информация о событиях (лекции, конференции, пресс-конференции и прочее), затрагивающих тематику блокчейна и смарт-контрактов. Поскольку разработчики — главная целевая аудитория подобных мероприятий, вполне вероятно, что вы найдете нужных людей именно там. О местных блокчейн-событиях можно узнать в специальном разделе сайта CoinDesk.
Кого искать во время предварительного отбора
Выбор компании-разработчика смарт-контрактов во многом похож на выбор компании-разработчика традиционного программного обеспечения. Как и обычное ПО, блокчейн и смарт-контракты пишут на Java, JavaScript, C++, C #, Python, Node.JS, Perl, Golang и нескольких других языках программирования. Тем не менее есть несколько моментов, которые характерны лишь для блокчейн-разработчиков.
Во-первых, выбранная вами команда должна разбираться в специфических технологиях и инструментах. Например, если речь о смарт-контрактах на блокчейне Ethereum, нужно понимание принципов работы с EVM, EBaaS, PaaS, IoT, децентрализованными технологиями, P2P-сетями, механизмами консенсуса и несколькими другими инструментами. 
Сравнение платформ для создания смарт-контрактов (Источник: GitHub)
Во-вторых, нужно проверить, обладает ли компания-разработчик необходимыми знаниями и опытом создания того вида контракта, который вам нужен, причем на том блокчейне, который вы выберете. Например, если вам нужен контракт для купли-продажи недвижимости, тогда нужно выбирать тех, кто уже такое делал, а не тех, кто создал лучший в мире смарт контракт в разработке платформы кредитования. И третий критерий первичного отбора — модель аутсорсинга. Как правило, при разработке смарт-контрактов выбирают одну из следующих моделей:
- Фиксированная цена. Подходит для заказчиков с ограниченным бюджетом. Нет гибкости, то есть возможности вносить изменения в проект после начала разработки. Исполнитель делает лишь то, что оговорено в условиях договора о найме.
- Captive Unit. Компания-разработчик нанимает, обучает и администрирует команду программистов. Заказчик лишь задает цель и платит зарплату. Оптимально для запуска сложных проектов. 3
- Профессиональная команда. Компания на аутсорсинге собирает команду программистов, которая соответствует специфике проекта и будет работать над ним как при создании, так и во время сопровождения конечного продукта. Оптимально для запуска сложного проекта, который нужно развивать и обслуживать после развертывания, например для запуска высоконагруженных приложений.
- BOT (Build — Operate — Transfer). Как следует из расшифровки названия, эта модель предполагает наем команды программистов, создание и запуск продукта, а затем его передачу третьей стороне.
Подходит для запуска проектов по франшизе, например если вы хотите развернуть сеть платежных сервисов в нескольких странах под своим брендом и этими сервисами будут управлять местные компании.
По каким критериям отсеивать оставшихся
После того, как вы провели первичное отсеивание, оставшиеся компании по разработке смарт-контрактов нужно изучить более детально, чтобы из них выбрать 3–5 кандидатов, с которыми можно будет провести собеседование и проверить их навыки с помощью специального тестирования. Изучать нужно следующие вещи:
- Портфолио. Изучите use cases кандидатов, обращая внимание на соответствие изначальной задачи и достигнутого результата, а также на время разработки, юзабилити и привлекательность конечного продукта.
- Комментарии и отзывы. Проверьте, что о кандидатах пишут в интернете: на страничках в социальных сетях, специализированных форумах и в отзывниках.
- География. Если вы хотите общаться напрямую и в рабочее время, команда исполнителей должна находиться примерно в вашей часовой зоне (± 3 часа). Важно также, чтобы вы разговаривали на одном языке без помощи переводчиков. Хорошим вариантом будут компании из России, Украины и Беларуси.
- Стоимость услуг. Как правило, исполнители указывают на своем сайте стоимость услуг по разработке разных видов смарт-контрактов. Убедитесь, что они соответствуют вашему бюджету.
- Законность. Работать нужно с компанией, которая зарегистрирована по всем правилам местного законодательства. К счастью, работая с компаниями из СНГ намного проще.
Как и о чем говорить во время собеседования
Время реакции. Скорость, с которой представители компании по разработке смарт-контрактов отвечают на приглашение на ваши собеседования, очень важна. Так, если это несколько часов (в рабочее время) — это отличный показатель, который говорит о наличии специального человека для связи с заказчиками. Если ответ пришел через один день — все нормально, если же на это ушло больше двух дней — стоит задуматься.
Видеосвязь. Общаться с кандидатами лучше посредством видеозвонка (Skype, Viber, Google Hangouts). Так вы сможете оценить человека, который с вами общается и попросить его провести видеоэкскурсию. Представитель должен быть хорошо одет, находиться в офисе или рабочем помещении и разбираться в программировании. Если заказ принимает секретарша — заканчивайте разговор и переходите к собеседованию со следующим кандидатом.
Во время видеоэкскурсии обратите внимание на количество персонала, наличие соответствующего оборудования и занятость людей. Если вам отказали в экскурсии, на это должна быть веская причина, например, программисты работают на аутсорсе. Если Вы решили нанять фрилансера, обязательно спросите о следующем:
- Контакты заказчиков, чтобы вы могли получить обратную связь. - Резюме проект-менеджера. Это человек, который будет курировать ваш проект, управлять командой кодеров и давать обратную связь о ходе разработки.
- Перечень парка устройств. Если это несколько макбуков и десять смартфонов — переходим к следующему кандидату.
- Участвовали ли они в open source разработке и/или конференциях. Это необязательно, но может помочь в выборе лучшего кандидата. Детали вашего проекта. Когда вы начнете говорить о вашем заказе, будет большим плюсом, если к разговору подключат кодера или проект-менеджера. В этом случае больше шансов на точную оценку вашего заказа: время разработки, стоимость, численность необходимой команды и тому подобное.
При этом чем больше вам задают вопросов, тем лучше. Если вас просто выслушают и укажут время с ценой — лучше попробовать с другой командой. В случае найма компании дело обстоит намного профессиональнее - компании как Merehead публикуют свое портфолио и кейсы, поэтому все гораздо проще.
Как провести тестирование кандидатов
Если после собеседования вы не убедились в компетентности компании по разработке смарт-контрактов, ее можно протестировать на специальных сервисах. Лучшие из них таковы:
- TestDome. Предоставляет образцы реальной работы, большую библиотеку краткосрочных тестов, защиту от мошенничества и возможность добавлять к тестам отдельные конкретные вопросы. - Devskiller. Отличается от предыдущей площадки собственной защитой от мошенничества, которая проверяет работу кандидатов по антиплагиату и ID-трекеру. Кроме того, здесь можно провести онлайн-тестирование с записью сеансов кодирования.
- Codility.com. Проводит состязания по программированию среди кандидатов и проверяет их на соответствие бренду заказчика.
- Saberr. Делает упор на проверку психологических, культурных и этических аспектов команды. Это важно, если вы создаете и/или поддерживаете образ «этичной компании».
Кстати, штат компании Merehead включает в себя и тестировщиков QA которые специализируются исключительно на блокчейне и смарт-контрактах.