Это буквально функция изменения состояния «банковской системы», уже описанной выше. Нужно только добавить в начало несколько строк кода с исходным шагом распределения валюты и учесть еще несколько нюансов – в идеале неплохо бы также добавить функцию, позволяющую сторонним контрактам запрашивать информацию о балансе произвольного адреса. Но в целом это всё. Основанные на Ethereum системы токенов, используемые как подвалюты, теоретически обладают другой важной функцией, недоступной для метавалют на основе биткойна: возможностью платить комиссии непосредственно в этой валюте. Реализовать это можно в контракте, поддерживающем баланс эфира, из которого он будет восполнять эфир, использованный для оплаты комиссий отправителю. Он будет пополнять этот баланс, собирая единицы внутренней валюты, забранные в качестве сборов, и перепродавая их на постоянно действующем аукционе. Таким образом, пользователям было бы необходимо «активировать» свои аккаунты с помощью эфира, но этот эфир можно использовать повторно, поскольку каждый раз контракт будет его возвращать.
ФИНАНСОВЫЕ ДЕРИВАТИВЫ И ВАЛЮТЫ СО СТАБИЛЬНОЙ ЦЕННОСТЬЮ
Финансовые деривативы – наиболее распространенное приложение смарт-контрактов и одно из простейших с точки зрения написания кода. Трудность реализации финансовых контрактов в том, что большинство из них предполагают отсылку к курсу валюты из внешних источников. Например, было бы здорово получить смарт-контракт, хеджирующий риски волатильности эфира (или другой криптовалюты) по отношению к доллару США, но для этого контракт должен знать актуальный курс ETH/USD. Простейший способ реализовать это – через контракт на «поток информации» из конкретного источника (например, NASDAQ), разработанный таким образом, чтобы этот источник мог при необходимости обновлять контракт и предоставил бы интерфейс, позволяющий другим контрактам отправлять сообщение этому контракту и получать в ответ значение курса ETH/USD.
При таких условиях хедж-контракт мог бы выглядеть следующим образом.
1. Дождаться, пока А «вложит в контракт» 1000 единиц эфира.
2. Дождаться, пока B «вложит в контракт» 1000 единиц эфира.
3. Записать в хранилище USD на 1000 эфира по курсу, рассчитанному контрактом на поток информации. Пусть это будет $x.
4. Спустя 30 дней разрешить A или B «реактивировать» контракт, чтобы переслать стороне А эфира на $x (по новому курсу, снова рассчитанному контрактом на поток информации) и остальное – стороне B.
Контракт такого типа был бы очень полезен в криптокоммерции. При обсуждении криптовалют часто возникает проблема волатильности; хотя многим пользователям и продавцам нужны безопасность и удобство работы с цифровыми активами, их вряд ли заинтересует перспектива за один день потерять 23 % своих сбережений. До настоящего времени бороться с этой проблемой обычно предлагали обеспечением криптоактивов привычными активами. То есть пользователь создает субвалюту, единицы которой имеет право выпускать и отзывать, и обеспечивает этой валютой любого, кто обеспечит его (офлайн) соответствующим количеством общепринятого актива (золота, доллара), а также даст гарантию в случае необходимости совершить обратный обмен. Этот механизм позволяет перевести любой обычный актив в криптоактив при условии, что эмитенту можно доверять.
Однако в реальности эмитенты не всегда заслуживают доверия, а банковская инфраструктура бывает недостаточно развита или слишком враждебна, чтобы предоставлять такие сервисы. Альтернативным вариантом могут стать финансовые деривативы. Здесь вместо эмитента, предоставляющего свою валюту в обмен на актив, действует децентрализованный рынок спекулянтов, которые делают ставки на повышение цены соответствующего криптоактива (например, ETH). В отличие от эмитентов, спекулянты не могут просто отказаться возвращать актив, поскольку их средства хранятся в хедж-контракте на эскроу-счете. Отметим, что второй подход все же не полностью децентрализован, поскольку нуждается во внешнем, требующем доверия источнике для информации о курсе, хотя даже при этом условии такой подход кажется куда лучше, поскольку требует меньше инфраструктуры (в отличие от денег, эмиссия информации о курсе валюты не требует лицензий и относится скорее к реализации права свободы слова) и уменьшает возможность мошенничества.
СИСТЕМЫ ИДЕНТИФИКАЦИИ И РЕПУТАЦИИ
Самый первый альткойн – неймкойн – был попыткой использовать блокчейн вроде Bitcoin для создания системы регистрации имен, где люди могли бы регистрировать свои имена в публичной базе данных наряду с другими данными. Самый известным кейсом стала система DNS, привязывающая доменные имена вроде «bitcoin.org» (или, в случае неймкойна, «bitcoin.bit») к IP-адресу. Другие возможные применения – email-аутентификация и потенциально более продвинутые системы репутации. Вот пример простого контракта, который осуществляет подобную систему регистрации имен в Ethereum:
def register(name, value):
if!self.storage[name]: