Оглавление
- Смарт-контракт как угроза безопасности блокчейн-стартапа +27
- Проблемы безопасности смарт-контрактов
- Потенциал блокчейна и смарт-контрактов
- Что собой представляет хайп на смарт-контракте?
- Смарт-контракт как угроза безопасности блокчейн-стартапа
- Сделаем аккаунты умными
- История
- Что такое Смарт-контракт?
- Как устроен “умный” контракт и для он вообще нужен?
- Как работают смарт-контракты
- Мнения экспертов о BSC
- «Сквозные» технологии
- Особенности TON смарт-контракта «Hello World»
- Применение умных контрактов
- Плюсы и минусы смарт-контрактов
- Инструкция по инвестированию, вводу и выводу средств в хайп-проектах на смарт-контрактах
Смарт-контракт как угроза безопасности блокчейн-стартапа +27
- 13.06.18 09:09
•
discovan
•
#412559
•
Хабрахабр
•
•
3800
Информационная безопасность, Solidity, Блог компании Solar Security
Смарт-контракты Ethereum, если верить официальному сайту, выполняются «в точности так, как запрограммированы, без какой-либо возможности простоя, цензуры, мошенничества или вмешательства третьей стороны». Сегодня я попробую разобраться, так ли всё радужно на самом деле, рассмотрев некоторые проблемы, с которыми пользователи смарт-контрактов сталкиваются на практике.
В конце статьи я резюмирую свои размышления краткой инструкцией по написанию безопасных смарт-контрактов.
Проблемы безопасности смарт-контрактов
Речь пойдёт о проблемах, с которыми в итоге сталкиваются разработчики смарт-контрактов, а не о безопасности самой платформы (хотя немного и о ней). Условно разделим эти проблемы на следующие типы:
- проблемы в коде смарт-контракта;
- проблемы в процессе разработки;
- проблемы в языке;
- проблемы в концепции.
1. Проблемы в коде смарт-контракта
Под проблемами в коде смарт-контракта здесь я подразумеваю такие проблемы, которые решаются редактированием .sol-файла. Это, в частности:
- Известные уязвимые конструкции (например, ).Пример из жизни: re-entrancy, или, шире, нарушение паттерна Checks-Effects-Interactions — даже широко известные (и ранее проэксплуатированные) уязвимости продолжают встречаться в новых контрактах.
- Авторские уязвимые конструкции (в частности, ошибки в логике кода).Пример из жизни: MultiSig-кошелёк, который на самом деле не MultiSig. Для того чтобы подписать транзакцию и перевести средства, необходимо количество подписей владельцев кошелька, равное . При этом для того чтобы поменять (например, на единицу, чтобы дальше самому подписывать транзакции), достаточно подписи только одного из владельцев:
- Неудачная архитектура.Пример из жизни: попытка имплементировать в рамках одного контракта и токен, и кошелёк, и хранилище ключей. Контракт получается чрезмерно усложнённым, код сложно поддерживать, аудировать, модифицировать. В итоге страдает и безопасность.
- Низкое качество кода.Пример из жизни: контракты с разными отступами, произвольными переходами на новую строку и пробелами. Код трудно читать, а значит, снова страдает безопасность. При том, что для Solidity уже есть линтеры (Solium, Solhit).
Проблемы в коде непосредственно приводят к атакам и потере средств. Хорошая новость в том, что проблемы в коде можно выявить в процессе аудита и устранить
При этом важно понимать, откуда они берутся, чтобы избежать их в дальнейшем. Поэтому переходим к следующему пункту
2. Проблемы в процессе разработки
Проблемы в коде обусловлены в первую очередь неправильно выстроенным процессом разработки. Казалось бы, разработка ПО — дело давно изученное, с устоявшимися best practices. Тем не менее, молодость области смарт-контрактов, непропорционально большие деньги и хайп приводят к тому, что люди по тем или иным причинам пренебрегают стандартными процедурами, что часто приводит к серьёзным проблемам. Из самого типичного стоит упомянуть:
3. Проблемы в языке
Добавляет дёгтя сам язык Solidity. Изначально он был создан скорее для того, чтобы его могли быстро освоить большое количество людей, чем для того, чтобы на нём было удобно писать безопасные смарт-контракты. Вот лишь некоторые его особенности, которые мешают безопасности:
- Множественное наследование, , / — всё это запускает код не из текущего исходника, а значит, снижает читаемость и, как следствие, безопасность кода.
- Checks-Effects-Interactions pattern — если конструкции, нарушающие CEI, небезопасны, то почему не запретить их (и многие другие) просто на уровне языка?
- Вызывая другой контракт, можно внезапно попасть в его fallback-функцию с неожиданными последствиями.
Понятно, что проект Ethereum развивается, и невозможно всё учесть заранее. Но в итоге разработчики вынуждены помнить о многих особенностях и пользоваться , чтобы сделать свой смарт-контракт безопасным.
4. Проблемы в концепции
Однако самая серьёзная проблема ещё глубже — в том, что многие недостаточно хорошо понимают, для чего смарт-контракты нужны, что они могут, чего не могут и как работают. В худшем случае это приводит к тому, что смарт-контракт:
-
Не смарт:
- Плохо написан — делает то, что написано, но не то, что задумано.
- Сильно завязан на backend и/или frontend — а этот код уже не смарт-контракт, он выполняется обычным образом, и его выполнение полностью контролирует администратор сервера.
-
Не контракт:
- Не фиксирует обязательства сторон — например, ICO продаёт свои токены за ETH, но токены по сути являются фантиками, т.к. не налагают на того, кто их выпустил, никаких ограничений или обязательств.
- Допускает односторонние изменения — и получается, что одна из сторон может менять контракт уже после его подписания.Пример из жизни: владелец контракта может произвольно менять капитализацию, курс и продолжительность продажи токена:
-
Не нужен:
- Смарт-контракт добавили не потому, что он был технически необходим, а в попытках придумать, что бы сделать на смарт-контрактах, и оседлать волну хайпа;
- Пытались придумать, как к существующему продукту прикрутить смарт-контракты.
Потенциал блокчейна и смарт-контрактов
Будущий потенциал смарт-контрактов огромен. Несмотря на то, что текущие приложения этой технологии все еще используются в довольно небольшом масштабе, чрезвычайно масштабные приложения возможны, поскольку мы продолжаем прогрессировать. Умные контракты, на самом фундаментальном уровне, являются соглашениями. Например, бизнес на самом фундаментальном уровне – это просто набор соглашений, заключенных в прошлом, заключаемых в настоящее время и подлежащих заключению в будущем. Продажи клиентам, согласования между сотрудниками, покупки у поставщиков и другие расходы потенциально могут быть автоматизированы на блокчейне с помощью интеллектуальных контрактов.
Последней формой автоматизации предприятий с помощью умных контрактов является создание полностью автоматизированных предприятий, которые являются примером DAO (распределенной автономной организации). Все процессы и бизнес-операции полностью автоматизированы, а сама организация работает без вмешательства человека. Сам фактический бизнес был бы просто набором умных контрактов. Хотя DAO существуют сегодня, большинство из них очень малы и ограничены по объему. Для того чтобы DAO работала в больших масштабах, технология блокчейна должна была бы быть более интегрированной в общество, и должна была бы существовать более высокая степень автоматизации общества. Полностью автоматизированные правительства и общества – это то, что находится за пределами возможностей ДАО. Автоматизированное правительство будет похоже на DAO, за исключением того, что в этом случае государственные службы автоматизированы по сравнению с бизнес-процессами.
Что собой представляет хайп на смарт-контракте?
хайпы на смарт-контрактах
- Админ не управляет проектом на смарт-контракте, он лишь создает алгоритм и делает открытым код, чтобы независимые аудиторы могли провести его проверку. Если аудит кода прошел успешно, то хайп признается честным.
- Инвесторы могут наблюдать за наполнением кассы. У хайпа на смарт-контракте имеется только один эфириум-кошелек и, как любой адрес в системе, его можно просматривать в обозревателе.
- Администрация заранее прописывает распределение средств. Как правило, около 80% уходит на выплаты инвесторам, остальное же используется на рекламу, вознаграждение админу и прочие плюшки.
- Хайп на смарт-контракте работает до полного завершения средств на счету (в идеале). Ситуации, когда админ забрал деньги и скрылся, быть не может.
Хайп-проекты на смарт-контрактах: плюсы и минусы
Хайпы на смарт-контракте
- Неподконтрольность админу. Бесспорный плюс, который и отличает хайп-проект на смарт-контракте от обычного проекта. Админ отказывается от владения контрактом и не может как–то влиять на его работу. Ну и, конечно же, он не может соскамить хайп, присвоив себе кассу. В итоге проект народный, а управу остается лишь его раскручивать, тем самым увеличивая свой заработок от вознаграждения.
- Надежность системы. Блокчейн Эфириума защищен лучше, чем штаб–квартира Пентагона, а значит, и смарт-контракт, который на нем работает, не поддается взломам и провокациям. Криптографически защищенной системе не страшен никто.
- Полная прозрачность. Если в традиционном хайпе нам не остается ничего, как верить той статистике, которую любезно «рисует» для нас админ, то с хайпом на смарт-контракте дела обстоят иначе. Все транзакции в блокчейне просматриваются и, используя etherscan.io, каждый желающий может наблюдать, как наполняется (или опустошается) кошелек проекта. Это позволит не только видеть, как обстоят дела у конкретного хайпа, но и сделать вывод – стоит сунуться туда со своим депозитом или нет.
- Распределение средств. В коде смарт-контракта заранее прописывается, сколько и куда пойдет – ситуации, когда админ начнет тратить на рекламу бешенные бюджеты, просто быть не может. С одной стороны, действия админа не приведут к закидону, с другой – у хайпа будет плавное и грамотное развитие.
- Хайп на смарт-контракте полностью стабилен. Если вы входите в проект с процентной ставкой 3% бессрочно, то не стоит бояться того, что в одно прекрасное утро админу вздумается изменить эти условия.
Нечестный смарт-контракт. Администрация хайп-проекта на смарт-контракте может схитрить и сделать проект в лучших канонах смарт-контрактов, но оставить себе возможность вывода всей кассы. В таком случае проект будет работать ровно до тех пор, пока админ не решит всех побрить и вывести деньги на свой кошелек
Именно поэтому важно инвестировать только в те проекты, которые прошли аудит, показавший, что дыр и ошибок в коде нет.
Проект без развития. Смарт-контракт предполагает то, что все условия хайп-проекта должны быть прописаны заранее
Если админ не предусмотрел чего-либо, то в будущем никаких апгрейдов быть не может, а значит, у проекта на смарт-контакте попросту не будет развития. В традиционном хайпе именно развитие помогает админу держать проект на плаву, поэтому без такой возможности работа фонда может быть очень краткосрочной.
Очень важен опыт админа. Раскручивать нетрадиционный для хайп-индустрии проект, да еще и с ограниченным бюджетом, может быть очень непросто. Если за дело берется новичок, то нет гарантии, что он сумеет грамотно распределять рекламный фонд и разумно закупать рекламу. Не последнюю роль играет и разработка маркетинга, ведь процентные ставки должны быть оправданными, а не выбраны наугад.
Полная прозрачность хайп-проектов на смарт-контрактах – это не только бесспорный плюс, но и недостаток. Конечно, видеть реальную динамику вкладов здорово, ведь инвестор может сделать правильные выводы о том, стоит входить или нет. С другой стороны, даже маленький отток инвестиций может привести к панике, а ведь в хайпах вполне естественно, что в некоторые дни вкладывают меньше (например, выходные или праздники).
И если традиционный хайп переживает такие моменты незаметно для вкладчиков, то в проекте на смарт-контракте это может вызвать настоящую панику, которая с легкостью может привести проект к скаму.
Смарт-контракт как угроза безопасности блокчейн-стартапа
Что же в итоге? Хотели модно, безопасно, блокчейн, а получаем дорогой неподдерживаемый код, который угрожает безопасности и вообще не нужен. Хотели, чтобы наши смарт-контракты выполнялись «в точности так, как запрограммированы, без какой-либо возможности простоя, цензуры, мошенничества или вмешательства третьей стороны», и в итоге они действительно выполняются так, как написаны — только написаны они с уязвимостью. И нам остаётся лишь помахать ручкой своим средствам. Ну или сделать хардфорк (тем самым вообще-то дискредитировав саму исходную идею), если из-за уязвимости потеряли деньги в том числе создатели Ethereum.
Сделаем аккаунты умными
Постепенно мы пришли к концепции смарт-аккаунтов, которые предназначены для решения в первую очередь простых задач. Их идея очень похожа на Bitcoin Script: к аккаунту могут быть добавлены дополнительные правила, которые определяют валидность исходящей транзакции. Главными требованиями для смарт-аккаунтов были:
- Максимальная безопасность. Практически каждый месяц можно встретить новости о том, что была найдена очередная уязвимость в типовых контрактах Ethereum. Нам хотелось такого избежать.
- Отсутствие необходимости в газе, чтобы комиссия была фиксированной. Для этого скрипт должен выполняться за предсказуемое количество времени и иметь достаточно жесткие ограничения по размеру.
Прежде чем перейти к техническим деталям реализации и написания контрактов, обозначим некоторые характеристики блокчейна Waves, которые будут важны для дальнейшего понимания:
- В блокчейне Waves на данный момент существует 13 различных типов транзакций.
- В блокчейне Waves не входы и выходы (как в Bitcoin), а аккаунты (как, например в Nxt). Транзакция выполняется от имени одного конкретного аккаунта.
- По умолчанию корректность транзакции определяется текущим состоянием блокчейна и валидностью подписи, от имени которой отправляется транзакция. JSON-представление транзакции выглядит достаточно просто:
Так как у нас в блокчейне уже есть разные типы транзакций, мы решили, что не будем делать отдельную сущность в виде смарт-аккаунта, а добавим новую транзакцию, которая превращает обычный аккаунт в умный. Любой аккаунт может стать смарт-аккаунтом с измененными правилами валидации транзакций, для этого аккаунт должен просто отправить транзакцию типа , которая содержит скомпилированный контракт.
В случае смарт-аккаунта, контракт является правилом валидации для каждой _исходящей _транзакции.
История
Идея умных контрактов появилась гораздо раньше, чем блокчейн и криптовалюты — в 1996 году. Ее предложил известный американский ученый и криптограф Ник Сабо, описав смарт-контракт как “компьютеризированный транзакционный протокол, который исполняет условия договора”.
Согласно концепции Сабо, умные контракты представляют собой цифровые протоколы для передачи информации, которые работают на основе математических алгоритмов и автоматически выполняют транзакции после выполнения установленных сторонами условий.
Но в 1996 году уровень развития технологий не позволял этой идее воплотиться в жизнь. И только появление технологии блокчейн и первой криптовалюты биткоин послужило основой для разработки смарт-контрактов. Однако, возможностей биткоин-сети на тот момент было недостаточно.
Блокчейн стал основой для заключения “умных” контрактов
Широкое использование смарт-контрактов стало возможным благодаря блочной платформе Ethereum, которая по-прежнему остается одной из самых распространенных. Виталий Бутерин, создатель Эфира, позволил разработчикам создавать приложения, не запуская собственный блокчейн.
Первые умные контракты имели задачу формализации наиболее простых взаимоотношения, состоящих из небольшого количества условий. Со временем их сложность и функциональность расширялась, и теперь о самоисполняющемся соглашении говорят как об одной из наиболее впечатляющих правовых инноваций нашего времени.
Что такое Смарт-контракт?
Смарт-контракт (Smart Contract, или Умный контракт) — это специальный алгортим, созданный на децентрализованной технологии блокчейн, служащий для заключения и поддержания коммерческих договоров.
Каждый участник такого договора может быть уверен, что его права не могут быть нарушены, — это просто невозможно сделать в рамках блокчейна.
Проще говоря, умный контракт — это прописанные в электронном виде условия между двумя сторонами. В качестве платёжного средства используется криптовалюта, а предметом такого договора может быть что угодно:
- ценные активы;
- недвижимость;
- деньги;
- товары.
Как устроен “умный” контракт и для он вообще нужен?
Что такое смарт контракт
Смарт-контракт – это компьютерный алгоритм, в основе работы которого лежит технология блокчейн. Программные обеспечения такого рода предназначены для передачи какой-либо информации. Принцип работы основан на отслеживании и обеспечении исполнения обязательств.
Смарт – означает “умный”
Историческая справка
Считается, что смарт-контракты берут своё начало с 1996 года, когда программист Нико Сабо прописал прописал принцип работы этого программного обеспечения. Однако возможности воплотить задуманное в реальность на тот момент не существовало.
После появления первой криптовалюты биткоин, которая была создана в 2008 году на базе блокчейн, появились предпосылки к созданию смарт-контрактов. И уже в 2013 году принцип этого программного обеспечения реализуется на практике, благодаря разработке платформы под названием Ethereum.
В настоящее время большинство площадок работают по типу смарт-контрактов.
Принцип работы смарт контракта в блокчейне
Смарт-контракты представляют собой компьютерный код, в котором прописаны все условия обмена между сторонами. Сделка заключается на базе блокчейн, а её объектом может служить любой актив. В качестве сторон могут выступать как физические, так и юридические лица. Количество участников не ограничено.
После осуществления сделки смарт контракт выполняет транзакцию, гарантируя соблюдения условий.
Плюс смарт контрактов в том, что они гарантируют пользователям полную анонимность и высокий уровень безопасности.
Главная особенность смарт-контрактов, что они могут работать исключительно с активами, которые находятся в цифровой экосистеме.
Основные преимущества смарт контракта
Надёжность.
В процессе сделки нельзя самостоятельно внести какие-либо данные, что защищает её от удаления или фальсификации.
- Высокая скорость осуществления сделки, так как процесс полностью автоматизирован.
- Использование смарт-контрактов не подразумевает вмешательства третьих лиц, что минимализирует риски появления ошибок.
- Минимальный процент комиссии.
Немного о минусах
Существенным минусом смарт-контрактов является отсутствие правового регулирования со стороны государства.
Еще один немаловажный недостаток интеллектуальных контрактов, в том, что участник сделки ни при каких условиях не может отказаться от неё.
Однако смарт-контракты постоянно улучшаются, а, значит, существует возможность, что в скором времени этот недостаток будет устранён, путём внедрения на платформы разработок, позволяющих заключать дополнительные соглашения.
Типы смарт-контрактов
Сегодня смарт-контракты разделены на три категории:
- Полностью автоматизированные
- С бумажной копией
- На бумажном носителе с частью в программном коде
Большинство смарт-контрактов сегодня проводится с помощью последнего типа. Также ведется разработка технологии сложных смарт-контрактов на блокчейне.
Заключение
Таким образом, смарт-контракты являются альтернативой проведения коммерческих сделок. Простота и автоматизация процесса – главное преимущество таких платформ. Пока рано говорить о том, что интеллектуальные контракты плотно войдут в нашу жизнь, но предпосылки к этому уже есть.
Как работают смарт-контракты
Умные контракты основаны на технологии блокчейн. Это распределенный реестр, децентрализованная система сделок, чье существование поддерживает сеть компьютеров по всему миру. Блокчейн позволяет пользователям, например, осуществлять транзакции без банков или любых других финансовых инстанций (переводить деньги, совершать платежи), а также передавать материальные ценности (недвижимость, товары) от одного пользователя другому без посредников.
Подтверждение осуществления сделки при смарт-контракте совершается на многих компьютерах, при этом происходит постоянная сверка данных (каждая новая сделка ложится в цепочку предыдущих, формируя блоки цепи блокчейн, и при сверении данных каждый раз учитываются все блоки и все прошлые сделки). Именно поэтому невозможно вмешаться в сделку и перекроить ее условия. Информация еще и зашифрована. Так что стороны договора могут быть уверены, что все условия будут соблюдены.
Принцип работы блокчейна и смарт-контрактов
- Вы хотите произвести транзакцию. Эта транзакция пересылается в компьютерную сеть равноправных узлов (они называются нодами).
- Сеть нод подтверждает транзакцию и статус пользователя.
- Транзакцией считается перевод средств в криптовалюте, передача информации, в том числе и контрактов.
Криптовалюта – цифровые деньги, которые создаются и хранятся в блокчейне. Самой известной криптовалютой является Биткоин. Криптовалюта не имеет внутренней ценности (ее нельзя обменять на золото), существует только в электронном виде и хранится децентрализовано в сети (то есть, не эмитируется центральным банком).
- После подтверждения транзакция объединяется с другими транзакциями и формирует новый блок цифрового реестра, который занимает уникальное место в цепочке блокчейна и не поддается изменению. Тогда транзакция считается завершенной.
Итак, код умного контракта выполняется в момент, когда приходит транзакция или сообщение. Это можно сделать со своего аккаунта, отправив транзакцию, или через другой смарт-контракт, который прислал сообщение. Код не имеет доступа к Интернету.
Умные контракты реагируют лишь на транзакции. Основатель Эфириума поясняет работу умных контрактов так: актив или валюта переводятся в программу, после этого она начинает следить за выполнением условий контракта. Как только они будут выполнены, продавец получает деньги, а покупатель товар. Работу умных контрактов можно сравнить с автоматом продаж. Бросаешь монетку и получаешь товар без посредников, без помощи третьих лиц.
Пример кода смарт-контракта
Это образец кода, который написан на блокчейн-платформе Ethereum. Эфириум дает неограниченные возможности для работы с умными контрактами. Хотя есть и другие платформы, где можно написать смарт-контракт. Кто пишет коды? Любой участник сети может запустить написание кода за небольшую плату (Gas). Писать контракты можно и самостоятельно, но для этого нужно разобраться в компьютерных языках Script и Тьюринг (для Эфириума).
Где заключается смарт-контракт
Заключаются smart-контракты на различных блокчейн-платформах. К ним относятся:
- Bitcoin — первая криптовалюта, но возможности написания умных контрактов на ней очень ограничены;
- Side Chains — в этом блокчейне возможности для умных контрактов более расширены, чем в Биткоин;
- NXT — открытая онлайн-платформа с ограниченным количеством смарт-контрактов, которые пишутся по шаблонам блокчейна. Создать уникальный контракт нет возможности;
- Ethereum — открытая онлайн-платформа, в которой можно написать любой смарт-контракт, но за него нужно заплатить криптовалютой данного блокчейна;
- Также можно заказать разработку смарт-контрактов у профессиональных программистов.
Мнения экспертов о BSC
Глава Alameda Research и биржи криптодеривативов FTX Сэм Бэнкман-Фрид в серии твитов поделился мнением об экосистеме Binance Smart Chain и ее перспективах.
Бэнкман-Фрид добавил, что изначально не был создан даже кошелек для новой экосистемы. Разработчики «заставили работать BSC при помощи MetaMask».
По мнению Бэнкмана-Фрида, большинству пользователей интересно доходное фермерство, а не децентрализованная автономная организация.
Он уверен, что Binance удалось создать «идеальную» платформу для фарминга дохода.
Эксперт убежден, что BSC привнесла конкуренцию в децентрализованные финансы, вовсе не лишая эту сферу будущего.
В заключение Бэнкман-Фрид назвал неотъемлемые характеристики «выигрышной» DeFi-экосистемы.
Аналитик The Block Ларри Чермак убежден, что BSC не представляет угрозы для Ethereum в долгосрочной перспективе.
Из главных недостатков BSC аналитик отметил «офигеть какую» централизацию и что «все финансируется Binance». К преимуществам новой экосистемы Чермак отнес значительные ресурсы компании Чанпэна Чжао. Основная причина хайпа вокруг BSC — широкие возможности для максимизации прибыли.
По мнению Чермака, появление платформы для «DeFi-гемблинга» было неизбежным, поскольку многих новичков индустрии оттолкнули высокие транзакционные издержки Ethereum.
«Сквозные» технологии
Так называемыми сквозными технологиями являются, по словам представителя Минкомсвязи России, блокчейн, большие данные (Big Data), искусственный интеллект, виртуальная и дополненная реальность, беспроводные технологии, робототехника и сенсорика, интернет вещей (речь идет о предметах, оснащенных технологиями, позволяющими этим предметам взаимодействовать между собой – например, холодильник может быть оснащен технологиями по заказу продуктов питания с учетом доходов владельца), квантовые и новые производственные технологии. Именно такой перечень был определен ныне утратившей силу программой «Цифровая экономика», на смену которой принята действующая нацпрограмма, не содержащая при этом такого перечня. «Сквозная» цифровая технология определяется как часть технологического процесса производства товаров, оказания услуг и выполнения работ, представляющая собой совокупность процессов и методов поиска, сбора, хранения, обработки, предоставления и распространения информации, обеспечивающих в ходе хозяйственной деятельности по производству (поставке) товаров, оказанию услуг и выполнению работ:
- рост результативности, точности или иных значимых характеристик технологического процесса;
- повышение качества или иных значимых характеристик производимых (поставляемых) товаров, оказываемых услуг и выполняемых работ, в том числе за счет сокращения брака;
- снижение издержек при производстве (поставке) товаров, оказании услуг и выполнении работ (п. 2 Правил предоставления субсидий из федерального бюджета на государственную поддержку программ деятельности лидирующих исследовательских центров, реализуемых российскими организациями в целях обеспечения разработки и реализации дорожных карт развития перспективных «сквозных» цифровых технологий).
Значимым шагом на пути к развитию «сквозных» технологий в рамках законодательства стало принятие Федерального закона от 18 марта 2019 г. № 34-ФЗ «О внесении изменений в части первую, вторую и статью 1124 части третьей Гражданского кодекса Российской Федерации», который вступил в силу с 1 октября текущего года. Напомним, что указанный закон ввел в Гражданский кодекс понятие цифровых прав и ряд положений, касающихся их оборота, а также нормы о совершении юридически значимых действий с помощью электронных или иных технических средств и о «самоисполняемых» сделках – смарт-контрактах.
Цифровыми правами признаются названные в таком качестве в законе обязательственные и иные права, содержание и условия осуществления которых определяются в соответствии с правилами информационной системы, отвечающей установленным законом признакам. Осуществление, распоряжение, в том числе передача, залог, обременение другими способами или ограничение распоряжения цифровыми правами возможны только в информационной системе без обращения к третьему лицу (). Цифровые права теперь поименованы в качестве объектов гражданских прав в .
дополнили положением о том, что условиями сделки может быть предусмотрено исполнение возникающих из нее обязательств сторонами при наступлении определенных обстоятельств без направленного на исполнение обязательства отдельно выраженного дополнительного волеизъявления сторон путем применения информационных технологий, определенных условиями сделки. Речь как раз и идет о так называемых «самоисполняемых» сделках – смарт-контрактах.
Особенности TON смарт-контракта «Hello World»
Выполнение функции смарт-контракта происходит так, что выполнение каждой команды байт-кода, расходует определенное количество «газа»: такая система нужна для предотвращения массовых вызовов функций смарт-контрактов из других аккаунтов, направленных специально на перегрузку и отказ в обслуживании системы (в обиходе DDoS). Таким образом функций смарт-контрактов выполняются за счет вызывающего аккаунта, для этого ему необходимо передать определенное количество средств для оплаты вызова функции (зависит от тела функции), в противном случае (когда недостаточно средств) вместо выполнения функции вызывающий аккаунт получит отчет об ошибке.
Как видно из примера нашего «Hello World», первой инструкцией мы выставляем ; это и есть обращение к API виртуальной машины TON. Таким образом мы сообщаем смарт контракту, что необходимо выполнить данную функцию даже в том случае если аккаунт не профинансировал требуемый вызов функции, а функция будет вызвана за счет средств на балансе аккаунта смарт-контракта (как и пользовательские аккаунты, у смарт-контрактов имеется похожий счет).
Так как «газ» для смарт-контрактов служит средством защиты от спам-атак, он требует финансовых затрат, выраженных в криптовалюте blockchain-сети. Cледовательно, вызов tvm.accept(); расходующий средства со счета смарт-контракта не очень-то и выгоден с точки зрения предоставления услуг (в большинстве случаев). Чтобы сбалансировать расходы и определить есть ли необходимость выполнять смарт контракт за счет баланса аккаунта самого смарт-контракта или же возложить расходы на вызывающий аккаунт, можно воспользоваться инструкцией require().
Инструкция (требование) позволяет задать условия, только при выполнении которого начнется выполнение функции смарт-контракта. Например, мы можем перед вызовом tvm.accept(); добавить требование require( == ); которое не допустит вызов функции смарт-контракта, если публичный ключ отправителя смарт-контракта не соответствует ключу аккаунта самого смарт-контракта.
Пока я думаю для первой статьи хватит. Давайте сделаем так. Если читателям данная тема будет интересна я буду писать тут статьи про смарт-контракты и взаимодействие с ними из JavaScript, а так же отвечать на вопросы. Буду рад любым замечаниям, поправкам и напутствиям. А пока расскажу, где можно найти информацию по данной теме самостоятельно.
Применение умных контрактов
Возможности применения этих технологий вышли за пределы того, что предсказывали десять лет назад. Индустрию страхования уже сейчас можно преобразовывать под устройство умных контрактов и структуру if>then: если вы не платите взносы, страховка на вас не распространяется; если вы не заявляете о страховых случаях, размер вашего взноса снижается, и вы можете претендовать на бонус; если с вами случается страховой случай, вы получаете выплату.
В индустрии страхования умные контракты будут полезны и страховым компаниям, и их клиентам. При нынешней системе на рассмотрение даже элементарных случаев уходят недели из-за бюрократии и административных проволочек, при этом страхователь тратит на это свои деньги. Умные контракты в страховании будут лучше всего работать при определении четких параметров для выплаты – к примеру, если вы заявляете о неблагоприятных погодных условиях, которые плохо сказались на вашем бизнесе. Когда-нибудь вы проснетесь и увидите, что уже получили выплату, даже не зная, что страховой случай наступил.
Видео по теме:
Пример использования умных контрактов:
Материалы по теме:
Плюсы и минусы смарт-контрактов
Основные преимущества:
- Отсутствие посредников – вы никому не платите процент за транзакцию или предоставление услуг.
- Отсутствие человеческого фактора – все данные хранятся в распределенном реестре, заинтересованное лицо не может их изменить.
- Возможность получить более выгодные условия, сэкономить время – не придется идти к юристу или в банк за подтверждением сделки.
- Вопросы решаются автоматически. Как только система посчитает пункты контракта выполненными – происходит обмен активами.
- Это абсолютно прозрачный и безопасный способ обмена.
- Как и любая программа, система смарт-контрактов не застрахована от ошибок и багов. Опечатка в коде – и транзакция либо будет отменена, либо уйдет не по тому адресу.
- Мало специалистов, которые могут создать умный контракт и прописать все условия сделки.
- Недоверие со стороны участников. Криптовалюты – явление новое и малоизученное, не все готовы принять технологии, созданные для этой сферы.
- Потеря ключей к кошельку. Если в банк можно прийти с документами и восстановить доступ к счету или открыть новую карту, то в случае потери ключей от кошелька, вы сделать ничего не сможете.
Конечно, здорово, что смарт-контракты действуют по программе без привлечения третьих лиц. С другой стороны, с людьми проще договориться. Рассмотрим ситуацию: банковская система зависла и не пропустила ваш платеж. Человеку можно позвонить и перенести сделку на завтра. Система же рассмотрит невнесение оплаты как нарушение условий контракта, и сделка будет либо отменена, либо придется заплатить штраф.
Инструкция по инвестированию, вводу и выводу средств в хайп-проектах на смарт-контрактах
хайп-проект на смарт-контрактехайп-проект на смарт-контрактеэфириум-кошельковкриптовалюту
- В подавляющем большинстве случаях регистрация в хайп-проектах на смарт-контрактах отсутствует. Нужно перейти на страницу проекта, скопировать адрес смарт-контракта и пополнить скопированный счет через свой кошелек Ethereum. Обязательно выставляем цену и лимит газа. Цену газа смотрите на сайте выбранного вами проекта, так как у каждого хайп-проекта на смарт-контракте по этому поводу, свои требования. В поле «Данные» для получения автобонуса указывается кошелек пригласителя. Подробный пример показан на скриншоте ниже.
хайп-проекта на смарт-контракте
- Инвестиция в хайп-проект на смарт-контракте осуществляется путем отправки монет на адрес кошелька смарт-контракта.
- Для отправки вы можете использовать только личный кошелек для эфира, от которого имеете приватные ключи: , TrustWallet, Metamask, , Mycrypto. Ни в коем случае не используйте для этого кошелек биржи и не производите отправку монет напрямую через кошелек обменника. В противном случае прибыль от депозита будет получать кто-то другой, а не вы.
- Отправка эфира всегда производится с комиссией, каждый проект устанавливает свою цену на GAS.
- Вывод в проекте на смарт-контракте может быть автоматическим, если это прописано его условиями, или ручной. Последний осуществляется путем создания запроса через кошелек, с которого был внесен депозит. Чтобы получить прибыль с проекта просто отправьте 0 ETH на адрес смарт-контракта проекта.
- В большей части таких проектов имеется партнерская программа, условия получения от нее дохода также специфические. Так как реферальных ссылок в данном случае быть не может, то вознаграждение за привлечение аплайн получит только в том случае, если при создании депозита реферал пропишет его адрес кошелька в дополнительном поле «Data». В этом случае реферал, как правило, автоматически получит кэшбэк.
хайп-проектах на смарт-контрактах