Так что же будет дальше? На примере DOGE мы убедились, как на самом деле просто выпустить собственную валюту, а совсем недавно разработчик биткойна Мэтт Корралло создал сайт coingen.io, единственная цель которого – позволить пользователям быстро создавать клоны биткойнов или лайткойнов с несколько измененными параметрами. Даже с ограниченным на сегодняшний день набором опций сайт оказался довольно популярным и, несмотря на комиссию в 0,05 BTC, подарил жизнь сотням валют. Как только Coingen позволит пользователям добавлять майнинг на основе proof of excellence и передавать часть эмиссии определенной организации или фонду, а также расширит возможности индивидуального брендинга, вполне возможно, на наших глазах появятся уже тысячи криптовалют. Оправдают ли они наши надежды? Станут ли они децентрализованным и демократичным способом объединять наши средства и поддерживать общественные проекты и инициативы, ведущие человечество к лучшему будущему? Может, да, а может, и нет. Но почти каждый день на свет появляется новая криптовалюта, приближая нас к ответу на этот вопрос.
Ethereum: криптовалюта следующего поколения и децентрализованная платформа для приложений
В минувшем году все чаще и чаще можно было услышать о так называемых протоколах «Bitcoin 2.0». Эти альтернативные блокчейны, вдохновленные биткойном, стремятся предложить на основе той же технологии более широкую функциональность, чем просто валютные операции. Впервые эта идея была реализована в неймкойне – созданной в 2010 году биткойноподобной валюте для децентрализованной регистрации доменных имен. Недавно появились цветные монеты (colored coins), позволяющие пользователям создавать собственные валюты на основе биткойна, и продвинутые протоколы вроде Mastercoin, Bitshares и Counterparty с функциями финансовых деривативов, сберегательных кошельков и децентрализованного обмена валют. Однако все существующие на сегодня протоколы имеют слишком узкую специализацию: как правило, это наборы конкретных функций для конкретных отраслей или приложений, чаще всего финансового характера. Но сегодня группа разработчиков – и я в их числе – решила подойти к этому с другой стороны и создать максимально универсальную криптовалютную сеть, на основе которой любой сможет разработать специализированные приложения практически для любых целей, которые только можно себе вообразить. Мы назвали ее Ethereum.
КРИПТОВАЛЮТНЫЙ ПРОТОКОЛ НАПОМИНАЕТ ЛУКОВИЦУ…
В дизайне многих криптовалютных протоколов второго поколения прослеживается общая идея: протокол, как и интернет, работает лучше при разделении на слои. Если развить эту мысль, протокол биткойна можно представить как своего рода TCP/IP для криптовалютной экосистемы, а протоколы следующего поколения создаются поверх биткойна. То же самое мы наблюдали с TCP в качестве общего базового слоя и созданными поверх него SMTP для электронной почты, HTTP для веб-страниц и XMPP для чатов.
До сих пор этой модели придерживались в основном три протокола: цветные монеты, Mastercoin и Counterparty. Принцип работы протокола цветных монет очень прост. Сперва пользователь приписывает определенным биткойнам конкретное значение и таким образом создает цветные монеты. Например, если Боб – эмитент золота, он может пометить некий набор биткойнов и сказать, что каждый сатоши в нем стоит 0,1 грамма золота и подлежит обмену по соответствующему курсу. Затем протокол отслеживает эти биткойны через блокчейн, и таким образом всегда можно вычислить, кто владеет ими прямо сейчас.
Mastercoin и Counterparty в некотором роде более абстрактны. Они используют блокчейн Bitcoin для хранения данных, так что по сути их транзакция – это транзакция биткойна, но протоколы интерпретируют их совершенно иначе. Например, можно провести две транзакции Mastercoin, в первой отправив 1 MSC, а во второй – 100 000 MSC. Но с точки зрения пользователя Bitcoin, который не знает принципов работы протокола Mastercoin, обе они будут выглядеть как маленькие транзакции по 0,0006 BTC; метаданные Mastercoin кодируются в выходах транзакций. Затем, чтобы определить текущий баланс Mastercoin, клиенту потребуется выполнить поиск транзакций Mastercoin в блокчейне биткойна.
Мне довелось лично пообщаться со многими создателями цветных монет и протокола Mastercoin и принять участие в развитии обоих проектов. За два месяца исследований и совместной работы я понял, что все плюсы идеи создания высокоуровневых протоколов поверх низкоуровневых теряются из-за существенных недостатков в ее реализации, что может помешать этой идее вырасти в нечто большее.
И дело не в том, что сама задумка плоха. Задумка отличная, и реакция сообщества лишний раз доказала, насколько это востребовано. Причина скорее в том, что используемый протокол – биткойн – просто не очень подходит на роль базы для надстройки других протоколов. Это не делает биткойн ненужным или менее революционным изобретением: как протокол для хранения и передачи ценности он прекрасен, но в качестве низкоуровневого протокола – далеко не так эффективен. Если сравнивать его с другими протоколами, он похож не на TCP, поверх которого можно построить HTTP, а скорее на SMTP, который хорошо справится с конкретной задачей (для SMTP это работа с электронной почтой, а для биткойна – с деньгами), но едва ли подойдет в качестве основы для чего-либо еще.
Эта проблема объясняется конкретным свойством биткойна – его масштабируемостью. Сам по себе биткойн масштабируем ровно настолько, насколько это возможно для криптовалюты. Даже если размер блокчейна перевалит за терабайт, протокол под названием Simplified Payment Verification (SPV, «упрощенная проверка платежей»), описанный в вайтпейпере биткойна, позволит «легким клиентам» с пропускной способностью и объемом памяти всего в несколько мегабайт спокойно отслеживать прохождение транзакций. Однако с цветными монетами и Mastercoin эта возможность исчезает. Причина кроется в следующем: для определения цвета цветной монеты SPV будет недостаточно, и потребуется проследить весь ее путь вплоть до происхождения, на каждом этапе выполняя упрощенную проверку. Иногда обратное сканирование экспоненциально, и с протоколами метакойнов вовсе невозможно что-либо узнать без проверки каждой отдельной транзакции.
Именно эту проблему намерен решить Ethereum. Он задуман не как швейцарский нож с сотнями функций для удовлетворения любых потребностей, а как более совершенный базовый протокол, который заменит биткойн в качестве основы для других децентрализованных приложений, предложит им больше рабочих инструментов и позволит в полной мере использовать преимущества масштабируемости и эффективности Ethereum.
КОНТРАКТЫ НА ЧТО УГОДНО
Пока Ethereum еще разрабатывался, возрос интерес к финансовым контрактам на базе криптовалют. Основным типом контракта был «контракт на разницу цен» (CFD): в нем две стороны соглашаются внести некоторую сумму денег, а затем получить деньги в пропорции, которая зависит от стоимости некоторого базового актива. Например, Алиса вносит $1000, Боб – столько же, а через 30 дней блокчейн автоматически возвращает Алисе $1000 плюс $100 за каждый доллар, на который за это время выросла цена LTC/USD, а Бобу отправит оставшуюся сумму. Эти контракты позволяют людям спекулировать на активах с высоким кредитным плечом или, наоборот, защищать себя от волатильности криптовалют, избегая рисков без какого-либо централизованного обмена.
Однако сейчас ясно, что контракты на разницу цен – лишь одна из имплементаций более глобальной идеи: контрактов по формуле. Недостаточно, чтобы контракт умел только брать у Алисы $x, у Боба $y, а затем возвращать Алисе $x + дополнительные $z за каждый доллар, на который подорожал данный актив. Он должен также уметь вернуть Алисе сумму, рассчитанную по любой математической формуле. Такая возможность позволит заключать контракты произвольной сложности. Если формула будет допускать любые входные данные, такие универсальные CFD можно использовать даже для p2p-игр. Чтобы выпустить CFD, Алисе нужно будет создать контракт, отправить на него криптовалюту на $1000 и дождаться, пока Боб примет контракт, также отправив транзакцию на $1000. Затем включится запрограммированный таймер, и через 30 дней они смогут отправить на контракт небольшую транзакцию, чтобы снова его активировать и разблокировать средства.