Сайт работает в режиме только на чтение.

Genesis Moscow Conference 2017. Дмитрий Мешков, Research fellow & Scorex project developer, IOHK. #4

Дмитрий Мешков

Research fellow & Scorex project developer, IOHK

https://iohk.io/

Привет всем.

Я Дмитрий Мешков. Хочу вам рассказать про Эрго. Комплексно о дизайне криптовалют. Про общую идею Эрго. Зачем вообще нужна криптовалюта. Обсудим проблемы блокчейна. И расскажу о конкретном решении, которое предлагает Эрго всем указанным проблемам.

Идея

Начну с идеи. Представлю себя, свою команду. Мы занимаемся проектом Scorex. На самом деле, мы стараемся закрыть дырку между теорией и практикой в области криптовалюты и блокчейна. То есть, с точки зрения теории у нас есть крутые алгоритмы с доказанной безопасностью, новыми фичами, анонимностью и всеми делами. На практике всё сложнее. Многие крутые на бумаге идеи оказываются непрактичными. Они требуют высокой синхронности сетей, каких-то минимальных задержек, и так далее. В Scorex мы попытались приблизить теорию к реальности.

Какое-то количество исследовательских идей мы уже реализовали. Научились решать проблемы. Scorex был фреймворком для прототипирования. На Scorex уже работают две криптовалюты. В Waves в фундаменте изначально был Scorex, сейчас они, правда, переходят на свои рельсы. Классический эфириум тоже был построен на Scorex. Там, опять же, совершенно другие принципы, смарт-контракты, proof-of-work. Но важно, что они основаны на Scorex.

Мы решили запустить собственную криптовалюту и назвали ей Эрго. Смысл здесь в том, чтобы приблизить качество практических валют к теоретическому максимуму.

Недостатки существующих блокчейн систем

Криптовалют много и у всех свои недостатки. Даже те, которые считаются безопасными сегодня, скорее всего окажутся небезопасными завтра, когда они приобретут большую популярность. В руках опытного хакера всегда найдётся какая-либо уязвимость.

Мы попытались найти большой комплекс научных идей, на базе которых можно разработать масштабируемую, удобную, защищённую криптовалютную систему.

Первым делом хочу рассказать о недостатках существующих блокчейн систем, а также ответить на вопрос зачем новая криптовалюта.

Низкая производительность

Первая известная проблема блокчейна - это проблема низкой производительности. Две-три транзакции в секунду - это очень низкий уровень. Все блоки уже переполнены, огромное количество транзакций находится в пуле необработанных. Комиссионные уже высокие при нынешних ценах на биткоин, порядка 5 долларов за каждую транзакцию. Это характерно для других криптовалют в меньшей степени, но даже там часто бывает комиссия в 1 доллар.

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

Можно пытаться использовать блокчейн в B2B-приложениях, но если ваш проект будет быстро развиваться, то ограничения по пропускной способности будут бутылочным горлышком.

Ограничения умных контрактов

Вторая проблема связана с умными контрактами. В биткоине тоже есть умные контракты, то есть можно к выходам применить скрипты, указав что такой-то биткоин может быть потрачен только после определённой даты. Можно использовать принцип множественной подписи. Это, в целом, нормально работающий инструмент.

Но важно понимать, что список инструкций сильно ограничен, жёстко прописан в системе. Это не самый эффективный подход в реализации такого рода функционала. Развитие системы таким образом ограничено.

Плюс, есть языки вроде Solidity, в нём прописание контрактов более широкопрофильное, более широкого применения. Но и здесь есть свои ограничения. То, что в эфириуме называется ограничение по газу, газолимитом. Интересно, что лимит этот не фиксированный, а плавающий. То есть, во время DDOS-атак лимит газа уменьшается майнерами достаточно сильно.

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

Что касается языков этих умных контрактов, бывает достаточно трудно оценить скорость выполнения контракта. Мы помним историю, когда почти на месяц была ограничена производительность системы как раз силой DDOS-атак.

Это проблема, несмотря на то, что вычисления более дешёвые. Чем больше возможностей тем больше уязвимостей. В DAO на самом деле была дыра в Solidity.

Состояния

Последняя проблема связана с состояниями блокчейна. У нас постоянно растёт и состояние и сам блокчейн. И нет никакого предела этому росту. То есть, нам нужен слепок системы на тот или иной момент времени, состояния с данными кто чем владеет, грубо говоря.

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

Если же система уже большая, это создаёт определённые трудности для майнеров. Потому что state всё время сидит в памяти. Без этого вы не сможете быстро валидировать транзакции.

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

В 2015 году был 6-битный форк, ранее для валидации достаточно было совпадения с двумя или с тремя блоками.

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

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

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

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

Эрго

Наконец, хочу рассказать о решении от Эрго. Как именно мы собираемся эту проблему решить. Начну с общей идеи.

Идея

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

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

В общем, майнеры не могут в этой системе вводить какие-то некорректные транзакции, это, всё-таки двухсторонняя система: майнеры генерируют пруфы и клиенты эти пруфы проверяют.

RollerChain

Сначала я расскажу про дизайн полных узлов.

Первая идея - это идея RollerChain, концепция господина Чепурнова, который является одним из сооснователей нашей платформы. Эту идею мы сейчас реализуем.

Общая идея такая: далеко не обязательно хранить полностью блоки в полноценных узлах. Достаточно последней цифры блока плюс весь заголовок. В чём-то это похоже на используемую систему и в эфириуме, и в биткоине. Только там ниже уровень безопасности. Потому что там нужны альтруистические ноды для хранения всех блоков, а в RollerChain это не так.

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

В биткоине ваши выходы фиксируются в state навсегда, платно. Один раз платите и информация хранится всегда. Нездоровая ситуация, на мой взгляд. Мне кажется, было бы правильнее ввести какую-то плату за это, в формате за гигабайт в месяц, может за время обработки. Какая-нибудь система расчёта нужна.

Таким образом, можно контролировать и размер state. Дополнительно поддерживать более активных пользователей, которые тратят больше вычислительных ресурсов. Опять же, эта система позволяет возвращать потерянные монеты в экономику. И, ещё очень важно, предсказуемость вознаграждения майнеров. Что больше обеспечит надёжность валюты.

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

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

Итак, мы видим дерево Меркла или хеш дерево. Причём, хеши отдельные достаточно короткие, буквально 32 байта.

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

PoPoW

Следующая идея про light-ноду это идея PoPoW, то есть доказательство доказательства работы. Это идея Аггелоса Киаиаса.

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

Это обеспечивает высочайшую скорость инициализации и поддерживает возможность проверки и подтверждения между различными цепочками таким образом можем продемонстрировать наличие или валидность какой-то транзакции в соседней цепочке. Это даёт возможность использовать Sidechain протоколы.

Таким образом у нас появляется возможность обеспечить высочайший уровень защиты пользовательским кошелькам. И, таким образом, отменить спрос на веб-кошельки. Для этого требуется, буквально, 3 килобайта данных.

Производительность

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

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

Мы не верим в наличие какой-то волшебной палочки решения проблем с пропускной способностью, но объединяя существующие решения, мы приходим к очень приличному приросту производительности. Bitcoin-NG позволяет вам по максимуму иметь около 1000 транзакций в секунду в целом по цепочке, но использование оффчейн-протоколов вроде Lighting позволяет ещё на три порядка, до 1 миллиона транзакций в секунду поднять скорость обработки. А вот Sidechain с proof-of-work позволяет одновременно обрабатывать одни и те же токены в нескольких блокчейнах параллельно, что ещё больше поднимет производительность.

Aspen

Ещё один важный компонент нашего решения - это наша база данных. Я упоминал Bitcoin-NG, но, по факту, это уже следующий его подвид. А именно Aspen.

Если вы сервисер и вы собираетесь внести какие-то данные в блокчейн, вы это делаете, скажем, в одну подцепь. И, таким образом, вам нужно просто скачать ключевой блок, который содержит буквально одни только заголовки коротенькие, чуть ли не по 80 байт. С точки зрения использования базы данных блокчейн гораздо удобнее для пользователя.

Мы разделяем чейны. Одна цепочка для данных, другая для денег. Потому что они по разному используются разными участниками.

Статус работ

Здесь показан текущий статус нашей исследовательской работы. Мы уже провели прототипирование, приступили к разработке и RollerChain и ADS. Экономическая модель пока только описана на бумаге. Aspen совсем недавно был официально представлен. И транзакционный язык Elang (Эрголанг) в основном существует только на бумаге, мы приступаем только к разработке прототипа. В ближайшее время будем уделять этому много времени и сил.

Это основные мои выводы.

Объединяя эти различные увлекательные направления исследования, мы можем:

  • получить определённый контроль над размером состояния;
  • контролировать сколько нам нужно пространства для хранения;
  • обеспечить соблюдение всех требований безопасности по полным нормам даже на смартфонах;
  • обеспечить использование качественных умных контрактов с поддержкой криптографии.

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

Мы рассчитываем, что таким образом мы построим действительно децентрализованную сеть с высокой пропускной способностью.

Спасибо за внимание.

Будем рады сотрудничеству с вами.

Здесь наши контакты.


Вопросы и ответы

Спасибо. А теперь можете рассказать за 30 секунд, чтобы понял рядовой пользователь?

Если вам нужно будет много транзакций проводить, вам не придётся днями ждать подтверждения транзакций. Комиссия ниже. Вы получаете возможность лучше контролировать свои деньги с мобильного телефона, вам не нужно будет запускать полноценную ноду со своего ноутбука и не нужно доверяться внешним кошелькам вроде blockchain.info.


Вы сказали, что ваша система вернёт в экономику потерянные монеты. Что это означает: будет какой-то срок службы монет или будет какая-то другая логика заложена?

В рамках нашей модели можно брать комиссию с каждого выхода в Эрго. Например, 1 сатоши в год. Мне кажется, что 30 сатоши в год будет достаточно для компенсации потерянных денег. Если вы активный пользователь системы, для вас это копейки.

Помните, как в 2015 году резко вырос state под воздействием DDOS-атаки? Также, вспомните, как ддосили эфириум осенью. Использовали тот же самый инструмент: увеличение размера state. В новых условиях такие атаки станут практически невозможны. На самом деле для вас, как для рядового пользователя ничего не поменяется.


Когда у вас всё выйдет live?

Непростой вопрос. Надеюсь, подробная документация будет готова к концу лета, соответственно в production всё пойдёт тогда. Прототипы к этому моменту должны быть готовы. Наверное, за полгода, начиная с сентябрь, мы всё доведём до ума.

Если хотите к нам в команду - пишите. Если хотите профинансировать - пишите.

Спасибо большое Дмитрию за выступление.

genesismoscowconferenceблокчейнбиткоинergoiohk
8
3.773 GOLOS
0
В избранное
andrex
Блокчейн. Биткоин. Финтех. Инвестиции
8
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (0)
Сортировать по:
Сначала старые