Майкл Малдерс, блокчейн-разработчик в компании The Ledger, проанализировал самые перспективные из существующих платформ для смарт-контрактов и рассказал на что стоит обратить внимание в первую очередь.
Ethereum — проверенный выбор
Используя платформу Ethereum, можно не сомневаться в ее работе. Ethereum — это Золотой Стандарт мира смарт-контрактов, а платформа имеет самую крупную рыночную капитализацию среди конкурентов. Также большая часть токен-сейлов происходит на данной платформе с использованием токенов стандарта ERC-20.
Однако, у данного стандарта есть несколько серьезных недостатков, которые в прошлом уже приводили к масштабным потерям. Причиной тому служит тот факт, что стандарт ERC-20 предполагает два этапа проведения транзакции с токеном:
- transfer(): Отправка токенов на чей-то адрес.
- approve() + transferFrom(): Депозит токенов в смарт-контракт.
Но что если при выполнении команды transfer() токены случайно были отправлены в смарт-контракт? Данная транзакция пройдет и будет одобрена, однако смарт-контракт принимающей стороны ее не распознает.
О такой проблеме написал разработчик нового стандарта 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 можно работать с конкретными временными промежутками.
В заключении
Стоит отметить, что на данный момент на рынке успешно развивается огромное количество подобных платформ.
Выбор платформы для работы со смарт-контрактами в первую очередь зависит от целей и нужд каждого пользователя. Однако, в любом случае для оценки потенциальной платформы стоит рассмотреть такие аспекты, как SDK, наличие необходимой документации и выбор предложенных инструментов.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram