Как выбрать правильную платформу для работы со смарт-контактами и на что стоит обратить внимание в первую очередь? Майкл Малдерс, блокчейн-разработчик в компании The Ledger, ответил на эти и многие другие вопросы в своем анализе самых перспективных из существующих платформ для смарт-контрактов, а также рассмотрел будущие проекты, которые помогут не только разработчикам, но и обычным бизнесам в работе со смарт-контрактами.

Малдерс выбрал семь платформ: Ethereum, Hyperledger Fabric, NEM, iOlite, Neblio и Lisk, так как по мнению эксперта они представляют крипторынку инновационные решения, являются комплексным сервисом или же универсальны при использовании. Однако, стоит отметить, что на данный момент на рынке успешно развивается огромное количество подобных платформ.

Как выбрать правильную платформу?

Ethereum — проверенный выбор

Используя платформу Ethereum, можно не сомневаться в ее работе. Ethereum — это Золотой Стандарт мира смарт-контрактов, а платформа имеет самую крупную рыночную капитализацию среди конкурентов. Также большая часть токен-сейлов происходит на данной платформе с использованием токенов стандарта ERC-20.

Однако, у данного стандарта есть несколько серьезных недостатков, которые в прошлом уже приводили к масштабным потерям. Причиной тому служит тот факт, что стандарт ERC-20 предполагает два этапа проведения транзакции с токеном:

 transfer(): Отправка токенов на чей-то адрес.

 approve() + transferFrom(): Депозит токенов в смарт-контракт.

Но что если при выполнении команды transfer() токены случайно были отправлены в смарт-контракт? Данная транзакция пройдет и будет одобрена, однако смарт-контракт принимающей стороны ее не распознает.

«Например, если отправить токены на контракт децентрализованного обменника, то контракт получит эти токены, но обменник не добавит их на ваш баланс. Более того, если такой контракт не сможет реализовать функцию экстренного вывода токенов, то в таком случае будет невозможно вернуть свои средства, которые будут безвозвратно утеряны. Из-за этого бага экосистема Ethereum уже потеряла миллионы долларов».

О такой проблеме написал разработчик нового стандарта ERC223, известный на Reddit и GitHub как Dexaran. Именно он впервые известил криптосообщество Ethereum о вышеупомянутой проблеме и предложил стандарт ERC223 как ее решение. Также для разработчиков Ethereum в ноябре 2017 года был представлен стандарт ERC777. Краткое сравнение этих стандартов:

 ERC223 — данный улучшенный стандарт предлагает решение проблемы ERC20, где пользователи могут ошибочно использовать одну из двух функций для отправки монет и заменить ее единственной transfer(), которая в случае некорректной транзакции будет выдавать ошибку и отменять ее, таким образом защищая средства всех сторон. Фокусируется на безопасности.

 ERC777 — этот стандарт решает такие проблемы ERC20, как отсутствие механизмов обработки транзакций. Фокусируется на массовой адаптации.

Очевидно, что сообществу Ethereum еще только предстоит разработать и внедрить новые стандарты для безопасных и улучшенных токенов.

NEM

Одно из ключевых преимуществ платформы NEM — высокая масштабируемость сети. В то время как Ethereum проводит порядка 15 транзакций в секунду, блокчейн NEM может обрабатывать до 4000 транзакций за тот же промежуток времени. Фонд NEM приложил колоссальные усилия, чтобы пользователи платформы могли не волноваться о технических проблемах. Но несмотря на то, что NEM быстрее, надежнее и проще в использовании, Ethereum предлагает более широкие возможности для программирования и запуска DApps.

Главное различие между двумя платформами заключается в том, что Ethereum использует смарт-контракты на блокчейне, в то время как NEM работает непосредственно с кодом блокчейна. По мнению некоторых участников крипторынка, это делает платформу менее децентрализованной, однако этот метод имеет множество преимуществ в виде высокого уровня безопасности, легких обновлений, высокой скорости проведения транзакций и более легкого кода.

По словам Nemario, пользователя Reddit, код смарт-контракта можно обновить в любой момент, без внесения изменений в работу блокчейна. Но невозможно выполнить обратные транзакции, что делает платформу NEM менее децентрализованной. Однако право использования мультиподписей и смарт-активов минимизирует последствия данной проблемы.

Благодаря системе смарт-активов, представленной в виде приложений по управлению данными, на платформе NEM пользователи могут создать токены, информационные записи и системы голосования всего за пару кликов. В то время как целевая аудитория Ethereum — это компании, планирующие запуск собственных внутренних сетей в ближайшие 5−10 лет, клиенты NEM — это компании, которым нужно простое, быстрое и безопасное решение уже сейчас.

Hyperledger Fabric

Разработчики Hyperledger Fabric (HLF) любят называть смарт-контракты платформы «чейн-кодом». HLF — это проект, основанный Linux Foundation в 2015 году для разработки и внедрения блокчейн-сетей для корпоративных нужд. В связи с чем предлагаемые решения HLF отличаются гибкостью, необходимой для работы с бизнесами, чего не предлагают другие платформы.

В Hyperledger Fabric используется язык программирования Go, соответственно, и все смарт-контракты платформы поддерживают данный язык. Одним из ключевых преимуществ данного языка является высокая скорость компиляции. По мнению Малдерса, этот фактор существенно облегчает написание чейн-кодов.

Четыре наиболее важные функции чейн-кодов:

 PutState: Создание новых активов или обновление существующих.

 GetState: Возвращение актива.

 GetHistoryForKey: Запрос на историю внесенных изменений.

 DelState: Удаление актива.

Стоит отметить, что функция DelState не удаляет/редактирует блок. HLF используют базу данных состояний для хранения ключей и их значений. Функция DelState удаляет ключ и его значение из базы данных состояний, при этом не меняя блоки в цепочке. Сам процесс удаления ключа и его значения будет сохранен в виде транзакции на блокчейне.

Более того, доступ к истории ключа может быть получен даже после того, как ключ был удален. Для этого существует функция GetHistoryForKey(), в ходе которой также добавляется индикатор IsDeleted к удаленному ключу. Таким образом, можно создать ключ, удалить его, а потом восстановить, при этом функция GetHistoryForKey() будет отслеживать все действия.

Смарт-контракты Stellar

Смарт-контракты платформы Stellar (SSC) существенно отличаются от смарт-контрактов Ethereum. Они не являются полными по Тьюрингу и используются для осуществления договоренностей между несколькими сторонами, чьи действия подкреплены транзакциями. Для сравнения:

Так, в Stellar cреднее время подтверждения  транзакции — 5 секунд, а в Ethereum — 3.5 минуты. В Stellar незначительная цена транзакции — .00001 XLM ~= $0.0000002. 100,000 транзакций на Stellar стоят один цент, комиссия за вычисления не взимается. В то время как в Ethereum она зависит от сложности транзакции, ее скорости и курса ETH и сейчас составляет порядка $0.008. Что касается возможностей, то в Stellar для инструкции по разработке смарт-контрактов есть Stellar Developer Guide, описывающий возможности и абстракции. Ethereum имеет безграничные возможности. А безопасность децентрализованной сети Stellar обеспечивается любой нодой с Stellar Core, и каждый пользователь может подтверждать транзакции. Для повышения уровня безопасности пользователи могут сами выбирать валидаторов. Более того, атомарные транзакции Stellar состоят из простых и декларированных операций, что ведет к более высокому уровню безопасности и облегчает аудит. В Ethereum любой пользователь может подтверждать транзакции. Функций для выбора валидаторов не предусмотрено. А программирование полных по Тьюрингу контрактов затрудняет аудит кода и повышает уязвимость.

SSC могут быть написаны на любом языке, для которого сообщество Stellar предоставит API, — JavaScript, Python, Golang, PHP и так далее. Так, смарт-контракты Stellar на PHP выглядят следующим образом. SSC являются набором транзакций, объединенных и выполняемых благодаря разнообразным ограничениям. В открытой документации Stellar описывают все ограничения, которые могут быть использованы для создания SSC. Например:

 Мультиподписи — схема реализации электронных подписей, предполагающая участие различных сторон в транзакции. Все стороны для достоверности предоставляют свои ключи и подписывают транзакцию для ее выполнения.

 Группировка/ Атомарность — благодаря данной функции, транзакция может включать сразу несколько операций. Атомарность гарантирует, что если группа операций будет отправлена на включение в сеть и одна из операций будет отклонена, то все операции в группе будут отклонены.

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

 Временные рамки — являются временными ограничениями, в течение которых транзакция считается действующей. Благодаря этой функции в SCC можно работать с конкретными временными промежутками.

Перспективные платформы, находящиеся в разработке

iOlite — проект, позволяющий легко создавать смарт-контракты

Платформа iOlite стремится помочь в массовой адаптации смарт-контрактов, для чего пользователям будущей платформы будет доступен движок, умеющий распознавать естественный язык и преобразовывать его в код смарт-контракта. iOlite станет идеальным решением для тех, кто не хочет учить различные языки программирования, но стремится использовать смарт-контракты.

Проект iOlite основан на исследовании, проведенном в Стэнфордском университете, где был изобретен FAE (Fast Adaptation Engine), который позволяет преобразовывать обычный язык в любой желаемый программный код, используемый в смарт-контрактах. FAE — это не просто переводчик, это движок, нуждающийся в постоянном развитии и помощи контрибьюторов, в роли которых выступают разработчики и эксперты смарт-контрактов. Они помогают в определении структур языковых выражений. Более того, данные структуры привязаны к смарт-контрактам. Движок работает с огромной базой данных, содержащей эти структуры, и находит подходящую для составления смарт-контракта. Как только определенная структура использована в контракте, внесший ее в базу данных контрибьютор получает вознаграждение в токенах iOlite. Таким образом, развитие iOlite напрямую зависит от участия сообщества, которое поддерживает FAE. А FAE, в свою очередь, помогает им в применении машинного обучения, которое необходимо для быстрой адаптации новых структур.

На данный момент iOlite Labs фокусируется на смарт-контрактах Ethereum и языке программирования Solidity. Трэвис Бирн из команды iOlite объяснил:

«Не только программисты, знающие такие языки, как Python, C, JavaScript и другие, могут моментально использовать свои знания для того, чтобы написать смарт-контракты, но и обычные люди, без какого-либо специального образования могут использовать такие языки, как английский, для того чтобы приступить к разработке. iOlite сможет убрать существующие технические препятствия для работы со смарт-контрактами».

Neblio — блокчейн для бизнеса

Цель Neblio — интегрировать блокчейн-сети в существующие корпорации и компании посредством API восьми наиболее используемых программных языков. Таким образом, любой разработчик сможет работать с блокчейном, при этом не являясь экспертом распределенных сетей.

Для работы Neblio предоставляет пользователям кошелек на Raspberry Pi (одноплатный компьютер) для хранения и стейка токенов.

Сам кошелек может быть установлен одной командой после закачивания его исходного кода. Благодаря стейку и работе ноды пользователь повышает безопасность собственного кошелька через PoS-алгоритм, а взамен количество токенов в стейке возрастает на 10%. Однако нет необходимости постоянно держать Raspberry Pi включенным. Neblio позволяет уходить в оффлайн на 7 дней, в то время как токены все равно будут продолжать работать и повышать стейк. А благодаря технологии QuickSyncwhich, которая позволяет синхронизировать ноду с сетью в течение одной минуты, Raspberry Pi всегда будет оставаться обновленным и соответствовать последним версиям сети.

Lisk -сайдчейны

Платформа Lisk не занимается разработкой смарт-контрактов, вместо этого она обеспечит взаимодействие с системами смарт-контрактов, такими как Ethereum, через виртуальную машинную интеграцию. Lisk — это не система смарт-контрактов, а специализированная блокчейн-система.

Другим преимуществом платформы Lisk является алгоритм консенсуса Delegate PoS, который позволяет сети работать быстрее, одновременно с этим повышая ее уровень безопасности. Также вся экосистема Lisk построена на языке программирования  JavaScript, что значительно упрощает работу с платформой обычным разработчикам.

В заключении

Выбор платформы для работы со смарт-контрактами в первую очередь зависит от целей и нужд каждого пользователя. Однако, в любом случае для оценки потенциальной платформы стоит рассмотреть такие аспекты, как SDK, наличие необходимой документации и выбор предложенных инструментов.