Ethereum: криптовалюта следующего поколения и децентрализованная платформа приложений




За прошедший год всё больше дискуссий разворачивалось вокруг так называемых протоколов «Биткойн 2.0» – альтернативных криптографических сетей, которые были вдохновлены Биткойном, но намерены использовать лежащую в его основе технологию для целей гораздо более широких, чем просто валюта.

Первоначально, некоторые из этих идей были реализованы на базе форков кода Биткойна, называемых также альткойнами. Самой ранней реализацией был Неймкойн, биткойн-подобная валюта, созданная в 2010 году, используемая для децентрализованной регистрации доменных имён. Совсем недавно мы увидели появление цветных монет (colored coins), которые позволяют пользователям создавать свои собственные валюты, как надстройку над существующим биткойн-протоколом, и более продвинутые протоколы, такие как Mastercoin, Bitshares и Counterparty, которые призваны обеспечить такие функции, как производные финансовые инструменты, сберегательные кошельки и децентрализованный обмен.

Однако до сих пор все протоколы, которые были изобретены, были узко специализированы, предлагая специфические наборы функций, ориентированные на конкретные отрасли или приложения, как правило, финансового характера. Сейчас группа разработчиков представляет проект, в основе которого лежит иной подход: криптовалютная сеть, которую планируется сделать как можно более универсальной и которая позволила бы каждому создавать поверх себя специализированные приложения, отвечающие практически любой цели, какую только можно было бы вообразить. Это проект «Эфириум» (Ethereum).

Криптографические протоколы подобны луковице
Одна общая черта философии дизайна многих криптовалютных протоколов 2.0 – идея того, что, как и в случае с интернетом, дизайн криптовалюты будет работать лучше, если протоколы будут разделены на различные слои. Согласно этой мысли, Биткойн понимается как что-то вроде TCP/IP для криптовалютной экосистемы, и другие протоколы следующего поколения могут быть построены поверх Биткойна так же, как это было с SMTP для электронной почты, HTTP для веб-страниц и XMPP для чатов – все они были построены поверх TCP в качестве общего базового слоя.

До сих пор тремя основными видами протоколов, которые последовали этой модели, были цветные монеты, Mastercoin и Counterparty. Принцип работы протоколацветных монет очень прост. Во-первых, для того, чтобы создать цветные монеты, пользователь помечает специальные биткойны как имеющие особое значение, например, если Боб является хранилищем золота, он может пометить некоторый набор биткойнов и сказать, что каждый сатоши представляет собою 0,1 грамма золота, подлежащий оплате (в золоте) с его стороны. Протокол затем отслеживает эти биткойны через блокчейн, и таким образом всегда можно определить, кто владеет ими в данный момент времени.

Mastercoin and Counterparty несколько более абстрактны. Они используют блокчейн Биткойна  для хранения данных, и таким образом транзакция Mastercoin или Counterparty является биткойн-транзакцией, но протоколы интерпретируют транзакции совершенно иным образом. Можно провести две транзакции Mastercoin, одну – отправив 1 MSC, а другую со 100 000 MSC, но с точки зрения пользователя Биткойн-сети, который не знает, как работает протокол Mastercoin, обе они будут выглядеть, как микропереводы по 0,0006 ВТС каждый; специфические метаданные Mastercoin кодируются в выходах транзакций. Затем клиенту необходимо произвести поиск транзакций Mastercoin по цепочке блоков Биткойна с целью определения текущего баланса MSC.

Я общался со многими разработчиками цветных монет и протокола Mastercoin и принимал активное участие в разработке обоих проектов. Тем не менее, за два месяца совместной работы и исследований я пришёл к выводу, что, несмотря на то, что сама идея создания протоколов высокого уровня поверх существующего похвальна, на сегодняшний день существуют фундаментальные недостатки в реализации, которые могут оказаться весьма сильным препятствием на пути роста этих проектов.

И дело не в том,  что идеи, лежащие в основе, плохи, идеи отличные, и реакция биткойн-сообщества является прекрасным доказательством того, что то, что они пытаются сделать, весьма востребовано. Скорее причина в том, что базовый протокол, поверх которого они пытаются построить свои протоколы, попросту не предназначен для этого. Из этого не следует, что Биткойн плох и не является революционным изобретением. В качестве передачи и хранения учёных единиц он великолепен. Однако в качестве протокола низкого уровня Биткойн является значительно менее эффективным и плохо сравним с протоколом TCP поверх которого можно построить HTTP. Скорее он похож на SMTP, который хорош для своей узкой задачи, но не рассчитан на использование в качестве основы для чего-либо ещё.

Специфическая проблема Биткойна сосредоточена в одном месте: масштабируемость. При этом сам Биткойн может считаться масштабируемой криптовалютой, даже если его цепочка блоков перевалит за терабайт, так как содержит в себе протокол «Simplified Payment Verification» (упрощёная проверка платежей), описанный еще в первоначальной статье Сатоши. Это позволяет создавать «лёгкие клиенты» небольшого размера, которые позволяют даже при небольшой пропускной способности канала надёжно определить прохождение сделки. С цветными же монетами и Mastercoin эта возможность исчезает. Причина заключается в том, что для того, чтобы определить, какого цвета монета, протокола SPV недостаточно и требуется проследить весь путь в обратную сторону до её генезиса. Иногда сканирование назад является экспоненциальным, и с протоколами метакойнов нет никакого способа узнать что-либо без полной обратной проверки каждой сделки.

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

Контракты – основа всего
В то время когда Эфириум разрабатывался, повышенный интерес вызывала тема финансовых контрактов на основе криптовалют; базовым типом контракта был «контракт на разницу цен» (CFD). В контракте на разницу две стороны соглашаются внести на депозит некоторое количество денег и затем изымают оттуда средства в пропорции, которая зависит от значения базового актива. Например, Элис вкладывает $1000, Боб – также $1000, и затем по истечении 30 дней блокчейн автоматически возвращает Элис $1000 плюс $100 за каждый доллар, на который выросла цена LTC/USD за этот период, а Боб получает оставшуюся сумму. Эти контракты позволяют людям спекулировать на активах, используя высокое кредитное плечо, или, наоборот, защитить себя от волатильности криптовалюты, захеджировать свою позицию без централизованного обмена.

На данный момент, однако, ясно, что контракты на разницу являются лишь частным случаем гораздо более общего понятия: контрактов по формуле. Вместо того, чтобы быть контрактом, где х$ Алисы, Y$ Боба, и к Элис возвращаются х$ плюс дополнительные $ за каждый $, на которые вырос данный актив, договор должен быть в состоянии возвратить средства на основе любой математической формулы и таким образом позволять создавать контракты произвольной сложности.

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





Эфириум развивает эту идею и продвигает её на шаг вперед. Вместо того, чтобы быть соглашением между двумя сторонами, которое имеет начало и конец, контракт в Эфириуме – это своего рода автономный агент, моделируемый блокчейном. Каждый контракт Эфириума имеет свой собственный внутренний программный код, и этот код срабатывает каждый раз, когда на данный контракт отправляется транзакция. Скриптовый язык имеет доступ к сумме транзакции, отправителю и дополнительным полям данных, а также к данным блока и своей собственной внутренней памяти в качестве входных данных, и может сам отправлять транзакции. Чтобы создать контракт на разницу цен, Элис должна будет создать соответствующий контракт и послать в него транзакцию на стоимость $1000, а затем ждать, когда Боб примет контракт, послав транзакцию, также содержащую $1000. Затем включится таймер контракта, и через 30 дней Элис или Боб смогут совершить символическую транзакцию на этот контракт, чтобы снова его активировать и разблокировать средства.

Помимо этого частного случая контракта на разницу цен, официальный документ Эфириума описывает многие другие виды транзакций, которые станут возможны с  использованием скриптового языка Эфириума, некоторые из которых включают в себя:
  • Эскроу с мультиподписью – арбитражный сервис в духе Биткойна, но с более сложными правилами. Например, не будет никакой необходимости для подписавшихся сторон обрабатывать частично подписанные сделки вручную; люди могут санкционировать асинхронный вывод, и транзакция будет завершена автоматически в тот момент, когда все участники её утвердят.
  • Сберегательные счета — одна интересная установка, работает следующим образом. Предположим, что Элис хочет отложить крупную сумму денег, но не хочет рисковать всем, в случае, если ее закрытый ключ будет потерян или украден. Она заключает договор с Бобом (как с не слишком надёжным банком), со следующими правилами: Элис разрешается снять до 1% в день, с одобрения Боба она может изъять любую сумму, а сам Боб может снять до 0,05% в день. Обычно Элис требуется небольшое количество за один раз, и если ей нужно будет больше, у неё есть возможность доказать подлинность своей личности Бобу и сделать вывод. Если закрытый ключ Элис будет украден, она обращается к Бобу и перемещает средства в другой контракт, прежде чем вор исчезнет с суммой, превышающей 1% её вклада. Если Элис теряет свой ​​закрытый ключ, Боб в конечном итоге будет в состоянии восстановить ее средства. И если Боб вдруг оказывается мошенником, Элис может вывести свои собственные средства в двадцать раз быстрее, чем он. Короче, здесь взято всё лучшее из традиционного банкинга, но при этом всё основано не на доверии, а на технологии.
  • P2P азартные игры – любой вид протокола P2P азартных игр  может быть реализован на базе Эфириума. Очень простой случай представляет из себя контракт на разницу на основе случайных данных, таких как хеш блока.
  • Создание собственной валюты – используя внутреннюю память Эфириума, вы можете создать полноценную новую валюту внутри Эфириума. Эти новые валюты смогут взаимодействовать друг с другом и иметь децентрализванную биржу и множество других передовых функций. 

В этом преимущество кода Эфириума: поскольку язык сценариев разработан таким образом, чтобы не иметь никаких ограничений, кроме как по комиссии системы, по существу, любой вид правил может быть закодирован внутри него. Можно даже управлять сбережениями целых компаний на блокчейне, по контракту, в котором сказано, что, например, требуется одобрение 60% нынешних акционеров компании для передвижения каких-либо её средств (и, возможно, 30% акционеров могут распоряжаться максимум 1% средств в день). Другие, менее традиционные для капиталистического мира, структуры также возможны; например, идея для демократических организаций – две трети членов группы должны быть согласны с тем, чтобы пригласить нового члена.

Помимо финансов
Финансовые приложения, однако, это очень небольшая часть того, что могут Эфириум и криптографические протоколы, построенные поверх него. В то время как финансовые приложения Эфириума – это та часть, которая изначально восхищает многих в криптографическом сообществе, в долгосрочной перспективе интересен вопрос, каким образом Эфириум сможет работать совместно с другими пиринговыми протоколами нефинансового характера. Одной из основных проблем, с которой сталкиваются  нефинансовые P2P протоколы, является отсутствие стимула — то есть, в отличие от централизованных некоммерческих платформ, у них отсутствует финансовая причина для участия. Бывают случаи, когда участие в некотором смысле является наградой само по себе; именно по этой причине люди продолжают писать программное обеспечение с открытым исходным кодом, вносить свой вклад в Википедию, высказывать свои замечания на форумах и писать сообщения в блогах. В контексте P2P протоколов, однако, участие – это зачастую не веселое развлечение во всех смыслах этого слова, в него нужно вложить большое количество ресурсов, позволяя, например, задачам работать в фоновом режиме расходуя процессорное время и заряд аккумуляторов на постоянной основе.

В течение долгого времени протоколы данных, такие как Freenet, могли предоставить каждому нецензурируемый хостинг статического контента; на практике, однако, Freenet работает очень медленно, и мало кто выделяет для него ресурсы. Все файлообменные протоколы страдают от одной и той же проблемы: хотя альтруизма обычно хватает для распространения популярных блокбастеров, он заметно убавляется, когда дело касается чего-то менее популярного. Таким парадоксальным образом, природа пирингового обмена файлами может фактически способствовать централизации развлекательной и медиа продукции, не препятствуя ей. Все эти проблемы, однако, потенциально могут быть решены, если мы добавим мотивацию – возможность для людей строить не только некоммерческие второстепенные проекты, но и бизнес, приносящий прибыль, благодаря участию в сети.
  • Мотивированное хранение данных – проще говоря, децентрализованный Dropbox. Идея в следующем: если пользователь хочет хранить информацию размером 1 Гб в сети, для этого будет построена структура данных, известная как дерево Меркле. Затем корень дерева вместе с 10 монетами будет заложен в контракт и файл будет загружен в другую специализированную сеть, которую будут прослушивать узлы желающие сдать в аренду место на своих жёстких дисках. Каждый день контракт будет автоматически выбирать случайную ветку (“left -> right -> left -> left -> left -> right -> left"), заканчивая блокировкой файла, и выдавать 0.01 монеты первому узлу этой ветки. Узлы будут хранить весь файл целиком, дабы максимизировать свой шанс на получение награды.
  • BitMessage и ТоrBitmessage является почтовым протоколом следующего поколения, который одновременно полностью децентрализован и зашифрован, что позволяет без опасений отправлять сообщения любому другому пользователю Bitmessage, не полагаясь на третью сторону, если не считать саму сеть. Тем не менее, Bitmessage имеет один большой недостаток юзабилити: вместо отправки сообщений на адреса электронной почты с нормальным обратным адресом типа «bob@gmail.com», программа оперирует сложными адресами Bitmessage, состоящими из 34 знаков (например, «BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash»). Контракт Эфириума предлагает решение: люди могут регистрировать свои имена при помощи специального контракта Эфириума, а клиенты Bitmessage могут запросить блокчейн Эфириума, чтобы получить адрес Bitmessage из 34 символов, анонимно привязанный к любому имени. Онлайн-сеть-анонимайзер Tor страдает от тех же проблем, и таким образом, также может извлечь выгоду из этого решения.
  • Системы удостоверений и репутации – как только вы зарегистрируете свое имя на блокчейне, следующий шаг логически очевиден: построить систему WOT (Web of Trust) на базе блокчейна. Сети доверия – это ключевая часть эффективной пиринговой коммуникативной инфраструктуры: вам нет нужды быть лично знакомым с человеком, к которому ведет данный публичный ключ, вам это попросту неинтересно – в первую очередь вас интересует, можно ли этому человеку доверять. Решение здесь – использовать социальные сети: если вы доверяете А, А доверяет Б и Б, в свою очередь, доверяет В, тогда имеется большая доля вероятности, что вы можете доверять В, по крайней мере, до определенных пределов. Эфириум может служить слоем данных для полностью децентрализованной системы репутаций – и потенциально, в конечном счете, стать полностью децентрализованным рынком.

Многие из вышеупомянутых приложений состоят из реальных P2P протоколов и проектов, которые уже достаточно хорошо разработаны – в этих случаях мы намерены установить партнерские отношения с как можно большим количеством таких проектов и помочь им финансированием в обмен на их вклад в экосистему Эфириума. Мы хотим помочь не только криптовалютному сообществу, но и вообще всему P2P сообществу вцелом, включая файлообмен, торренты, хранение данных и ячеистые сети (mesh networking). Мы знаем, что существует множество проектов, особенно в нефинансовой сфере, которые потенциально могут принести большую ценность для сообщества, но развитие которых не получает достаточной финансовой поддержки именно потому, что им не хватает возможности эффективно представить свою финансовую составляющую, и, быть может, Эфириум сможет решить эту проблему

Почему все эти приложения возможно построить поверх Эфириума? Ответ заключен во внутреннем программном языке криптовалюты. Здесь можно провести аналогию с интернетом. В далеком 1996-ом, в сети был только один HTML, и всё, что люди могли сделать — это создание статических веб-страниц на сайтах, вроде Geocities.  Тогда люди решили, что необходимо добавить возможность отправки форм в HTML, и так к HTML добавились формы.  Это было похоже на «цветные монеты» для веб-протоколов: пытаясь решить конкретную проблему, они делают это на базе слабого протокола, игнорируя общую картину. Вскоре, однако, был придуман Javascript, язык программирования внутри веб-браузера. И именно Javascript решил эту проблему: поскольку Javascript – универсальный. Будучи тьюринг-полным языком программирования, он может быть использован для создания приложений произвольной сложности; Gmail, Фейсбук и даже Биткойн-кошельки – все они созданы на этом языке. И это произошло не потому, что разработчики языка Javascript стремились дать людям Gmail, Фейсбук и Биткойн-кошельки, они просто создали язык программирования. Возможности того, что мы сможем сделать с языком, ограничиваются только нашим воображением. И вот именно этот дух мы хотим привнести в Эфириум. Эфириум не намерен ставить точку в области криптовалютных инноваций, он планирует стать их началом.

Дальнейшие инновации
Наряду со своей основной особенностью тьюринг-полноты, универсальный язык сценариев Эфириума также будет иметь ряд других усовершенствований по сравнению с существующими криптовалютами:
  • Сборы – контракты Эфириума будут регулировать последствия его тьюринг-полноты, предотвращая злонамеренные транзакции такие как «пожиратели памяти» и сценарии бесконечного цикла, путем введения платы за транзакцию на каждом вычислительном этапе выполнения сценария. Более дорогие операции, такие как доступ к хранению и криптографические операции, будут иметь более высокие сборы, а также будет отдельная плата для каждого элемента хранения, который составляет контракт. Чтобы у пользователей был стимул самим удалять контракты, в случае, если, контракт, например, сокращает объем памяти, взимается дополнительный, «негативный» сбор. Имеется специальная опция «SUICIDE», позволяющая аннулировать контракт и отослать все сбережения, а также все негативные сборы назад владельцу.
  • Алгоритмы майнинга – имеется большой интерес к созданию криптовалют, добыча которых устойчива к применению специализированной аппаратуры (ASIC'ов), что позволило бы обычным людям использовать оборудование без капитальных вложений и тем самым помогло бы избежать централизации. До сих пор основным «противоядием» был Scrypt, алгоритм добычи, который, однако, требует очень большого количества вычислительной мощности и памяти, и при этом его всё равно недостаточно, и уже есть компании производящие соответствующие специализированные устройства и для данного алгоритма. Мы предлагаем новый вариант майнинга: Dagger, прототип алгоритма «proof-of-work», (с ещё большими требованиями к памяти, чем у Scrypt), а также прототип алгоритма «proof of stake», такой как Slasher, которые способны решить вопрос майнинга полностью. В конечном счете, однако, мы намерены провести конкурс, подобный тем, которые определили стандарты для AES и SHA3, на который мы пригласим исследовательские группы из университетов по всему миру, чтобы разработать наилучший из возможных эргономичных аппаратных продуктов майнинг-алгоритма.
  • GHOST – это новый протокол распространения блоков, пионерами которого были Авив Зоар и Йонатан Сомполински. Он позволяет блокчейну работать с гораздо более быстрым временем подтверждения блока, в идеале в диапазоне 3-30 секунд, не сталкиваясь с вопросами централизации и высокой долей «работы вхолостую» – обычными проблемами форков с блоками быстрого подтверждения. Эфириум станет первой крупной валютой, которая интегрирует упрощенную одноуровневую версию GHOST в рамках своего протокола.

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

25 января на конференции в Майами планировалось запустить сбор средств, во время которого любой желающий сможет приобрести эфиры (ether), внутреннюю валюту Эфириума, в том числе, за биткойны, аналогично тому, как проходил сбор средств Mastercoin; однако, данный фандрейзинг не состоялся и на данный момент способ первоначальной покупки монет (если она вообще состоится) не определен.

Прежде чем вы приняли решение о том, чтобы «вложиться» в эфиры, следует заметить что существует важное различие по сравнению с биткойном и большинством других криптовалют: их эмиссия не ограничена. Модель «перманентной линейной инфляции» разработана таким образом, чтобы сделать эфир не подверженным ни инфляционным, ни дефляционным процессам; отсутствие лимита на выпуск имеет своей целью ослабление спекулятивных тенденций и имущественного неравенства – эффектов, сопутствующих существующим криптовалютам – но в то же время линейная, а не традиционно экспоненциальная, инфляционная модель будет означать, что эффективная ставка инфляции будет стремиться к нулю с течением времени. Кроме того, поскольку первоначальный выпуск валюты не будет начинаться с нуля, увеличение выпуска валюты в первые восемь лет на самом деле будет происходить медленнее, чем это было с биткойном, давая первоначальным участникам шанс получить значительную выгоду в среднесрочной перспективе.

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

Заглядывая в будущее
Поскольку Эфириум включает вычислительно универсальный язык, можно математически доказать, что он может сделать, по существу все потенциально возможное для биткойн-подобной криптовалюты на основе блокчейна. Но есть еще проблемы, которые протокол в его нынешнем виде оставляет нерешенными. Например, Эфириум не предлагает решения для фундаментальной проблемы масштабируемости для всех криптовалют на основе блокчейна – а именно, тот факт, что каждый полный узел (full node) должен хранить весь баланс и проверять каждую сделку. Концепции отдельного «дерева состояния» (state tree) в Эфириуме и «списка транзакций», заимствованные из Ripple, до некоторой степени смягчают это (положение вещей), но, тем не менее, никаких фундаментальных прорывов в этой области у нас пока нет. Для этого необходима технология, подобная «Secure Computational Integrity and Privacy» (SCIP) Эли Бен Сассона, которая в настоящее время находится в стадии разработки.

Кроме того, Эфириум не предлагает никаких улучшений в области традиционного «proof-of-work» майнинга со всеми его недостатками, или пока еще не подтвержденным и до конца не разработанным “proof of excellence” в стиле Ripple. Если окажется, что «proof of stake» или какой-либо другой алгоритм работы является лучшим решением, то будущие криптовалюты, смогут использовать его вместо нынешнего – например, алгоритмы, подобные MC2 и Slasher. Если суждено появиться Эфириуму 2.0, то именно в этих областях будут произведены улучшения. И в конечном счете, Эфириум является открытым проектом, и если проект получит достаточное финансирование, возможно, мы выпустим Эфириум 2.0 самостоятельно, перенеся остатки на первоначальных счетах в улучшенную сеть. Девиз нашей платформы: вы ограничены лишь вашим воображением.

Источник: habrahabr.ru/post/214305/