Часть 2. Дэн Лаример о EOS, операционной системе на блокчейне. Конференции Consensus 2017, Нью-Йорк, 22 мая. Теперь на русском.
Продолжение первой части видео презентации Дэн Лаример о EOS, блокчейн платформе асинхронных смарт контрактов.
Сначала видео целиком, а потом текстовая часть, посвящённая токенам EOS и ответам команды EOS на вопросы из зала.
Давайте теперь поговорим о токенах EOS. Это то, что интересует всех больше всего.
EOS токены никогда не расходуются. В EOS нет комиссий. Вместо этого, если вы владеете токенами и вкладываете их в контракт, вы получаете доступ к ресурсам, пропорционально вашей доли.
![](https://img.golos.io/proxy/http://i.imgsafe.org/0440563c82.jpg)
Например, если у вас есть один процент токенов EOS, вы можете использовать 1% от общей ёмкости всей сети. И пока вы используете сетевое хранилище, вы не можете вернуть свои токены EOS до тех пор, пока вы не освободите хранилище. Вы также можете пропорционально потреблять пропускную способность и вычислительные ресурсы сети. Это очень похоже на то, как это работает в STEEM. Пользователи постят и голосуют, и им никогда не приходится платить за что-либо, что они делают на STEEM. У пользователей EOS также есть право голоса, пропорциональное количеству токенов, чтобы выбирать производителей блоков, а также контролировать то, как распределять эмиссию новых токенов. Новые токены возникают из-за пятипроцентной инфляции и эта пятипроцентная инфляция - это как раз пример Конституции, когда все договорились, что инфляция не будет превышать этот уровень. Но она может быть меньше, так как вы можете контролировать её, например, через контракт, который уничтожает часть токенов.
Первым делом держатели токенов могут выбрать три смарт-контракта, три аккаунта или бизнеса, которые будут получать долю эмиссии пропорционально количеству отданных за них голосов. Точно так же, как вы переизбираете производителей блоков, вы голосуете за первую тройку, которая получит финансирование, пропорционально отданным за них голосам.
![](https://img.golos.io/proxy/http://i.imgsafe.org/0448c8d3b3.jpg)
Каждый из этих смарт контрактов может быть простым контрактом, который уничтожает поступающие токены или это может быть административный аккаунт, но что самое интересное, им может быть децентрализованное приложение, такое как STEEM, например, которое потенциально распределяет полученные средства тысячам людей каждый день в соответствии с коллективным бюджетом и децентрализованным алгоритмом бюджетирования. Тут есть огромная гибкость. Сейчас биткоин и Ethereum ежегодно сжигают электричества на три миллиарда долларов. Мы просто берем эти потенциальные ресурсы и перенаправляем их на нужды сообщества.
Так как все получают выгоду - то кто за это платит? Если вы владеете всего одним процентом сети, и если вы платите за рекламу всей сети, то вы должны получать стократную прибыль от своих инвестиций, чтобы просто работать на уровне самоокупаемости. У большинства людей это не получится. Поэтому очень важно для сообщества иметь возможность оплачивать вещи, которые приносят пользу всем.
И если делать это децентрализованным образом, вам никогда не придется беспокоиться о том, что у блокчейна закончится финансирование, пока у него есть хоть какая-то рыночная капитализация и люди, заинтересованные в его продвижении.
Я работаю с отличной командой. Вы встречались с Бренданом в начале доклада, но за EOS стоит огромная команда. Все люди с большим опытом, многие крупные игроки нашей отрасли работают с нами, включая Ли, Бо и Брока Пирса. И у нас есть много партнеров, которые уже в деле: BitFinex, Yunbi, Blockchain Capital и другие.
![](https://img.golos.io/proxy/http://i.imgsafe.org/03cf264e18.jpg)
Так что это большой проект в котором много действительно профессиональных участников, и, конечно же, мы хотим вовлечь всех вас в создание EOS - отличной платформы для всех.
Мы потратили довольно много времени, обсуждая EOS с венчурными капиталистами. Мы получили много отзывов, прежде чем решились презентовать этот проект вам. Мы работали с Blockchain Capital, мы работали с Fenbushi, которую здесь представляет Бо Шен. И мы очень рады презентовать вам наш проект.
Мы сделали это, мы потратили очень много времени на это и нам бы хотелось обсудить это в интерактивном диалоге с сообществом и существующими игроками, чтобы двигаться вперёд в интересах всех.
Слово тебе, Брок – хочешь что-нибудь добавить?
![](https://img.golos.io/proxy/http://i.imgsafe.org/0457a7a670.jpg)
Брок Пирс: Да. Знаете, для всех из нас кто был вовлечён - это было захватывающее время. Я очень счастлив, что был причастен к EOS как лично, так и через Блокчейн Кэпитал. Я настоятельно рекомендую всем посетить наш стенд, пообщаться с командой и послушать о чём говорят другие. Вчера мы спонсировали открытие конференции, а сегодня у нас будет большая вечеринка - так что приходите и поговорите с одним из нас. И ещё у нас сзади лежит большая куча футболок для всех желающих.
Ответы на вопросы из зала
Привет. Отличная презентация, спасибо. Вы сказали, что нет газа – как тогда всё работает?
Газ - это концепция, согласно которой вы каждый раз измеряете сколько именно нужно произвести вычислений для исполнения контракта и если у вас используется газ, он является частью консенсуса, что означает, что каждый должен согласиться с тем, какое количество газа потребляется контрактом. Вы значительно уменьшаете возможности оптимизации, ограничивая её строгой последовательностью инструкций, которые все должны выполнять одинаково, даже если у вас будет возможность использовать связанные списки, массивы или что-то похожее.
Поэтому у нас есть производители блоков. Производители блоков могут использовать счётчик времени если они решат включить транзакцию в блок, которая, очевидно, уже завершена, если они чувствуют, что транзакция исполняется в разумные сроки.
Другой способ - вы можете использовать все транзакции. Если транзакция исполняется - она исполняется. Если нет - то нет.
Всё отдаётся на усмотрение производителей блоков, которые для принятия окончательного решения могут использовать любые субъективные метрики.
Есть виртуальные машины или песочницы, они периодически сверяют часы, чтобы проверить, не слишком ли долго исполняется код и если так, то они прерывают его. Так что есть ограничения на то, как долго может исполняться код.
Но фактический расчет количества исполняемых инструкций не является частью консенсуса. Это уже вопрос конкретной реализации и каждый производитель блоков может делать это по-своему. Если у одного производителя блоков код запускается, то другой производитель блоков тоже попробуют его запустить. Конечно, если он не свалится в бесконечный цикл - в таком случае они отклонят его и блок будет помечен как плохой и не будет принят.
Вообще говоря, все производители блоков это доверенные высокопрофессиональные публичные люди, у которых есть финансовые стимулы для включения транзакции, так как они получают оплату за обработку транзакций. И если они не будут включать в блоки законные разумные транзакции, люди снимут с них голоса и они выпадут из списка производителей блоков. Проголосуют за новых производителей, а эти потеряют свой источник дохода. Так что пользователи избавлены от оплаты комиссий - покрытие расходов ложится на плечи всего сообщества. Да, это реально большое изменение в том, кто платит.
У меня вопрос, ребята, делали ли вы симуляцию возможных векторов атак? Очевидно, что делегаты могут быть подвержены атаке, чтобы заставить их отклонить все блоки, пока они не обнаружат, что идёт атака на сеть. Может есть какие проблемы в случае массивной параллельной атакой. Может вы уже предвидели это и придумали, как помешать таким атакам?
Существует несколько типов атак. Есть спам атаки, которые предотвращаются алгоритмом ограничения пропускной способности, его мы уже обсуждали. И есть атаки на логику. В идеале, все влияющие на ценность операции имеют встроенную задержку по времени исполнения, так что есть запас времени после начала атаки. И когда пользователь обнаружит атаку, у него есть шанс своевременно прореагировать.
Это как разница между деньгами в вашем кошельке и на банковском счёте. Если вы потеряете бумажник - вы потеряете все деньги, что были в нём. Но люди носят с собой не очень много нала. Но если попытаются снять деньги с вашего банковского счёта, вы получите уведомление и вы можете успеть отменить списание и тут есть дополнительные меры безопасности.
Идея в том, что при написании контрактов, я надеюсь, будет уделяться достаточно внимания, чтобы предупреждать людей что что-то пошло не так. И у сообщества всегда есть возможность, и это одна из задач "Условия предоставления услуг" - это согласие каждого уважать в первую очередь фактические права людей на собственность, а не ставить код во главу угла. Код - это всегда несовершенная реализация намерений сообщества. Конечно, код - это на много, много порядков лучше любых юридических документов, которые у нас есть сейчас. И код устраняет большинство возможных споров ещё до того, как они произойдут.
Вы знаете, когда люди вместе работают над созданием новой структуры по управлению правами собственности, им не нужно, чтобы была возможность украсть токены и быстро вывести их на биржу, особенно когда у вас слишком много участников, чтобы сделать откат.
Такие вещи, конечно, будут случаться, но как в случае с The DAO, когда была медленная атака, если бы была задержка по времени, то что произошло можно было бы предотвратить. Поэтому использование фактора времени в качестве одного из компонентов системы безопасности критически важно при разработке ваших приложений. И с EOS это сделать очень просто.
Я вот что хочу спросить. Одно из основных отличий Ethereum от EOS, ну по крайней мере как я это понял, состоит в том, что в Ethereum все инструкции обрабатываются всеми нодами в одном и том же порядке. В EOS они обрабатываются параллельно и как вы можете быть уверены, что при этом они исполнятся в нужном порядке? Например, одна нода может исполнять код быстрее, а другие ноды будут отставать от неё. Нет ли здесь возможности для потенциальной атаки?
Всё правильно. Каждый аккаунт работает параллельно, а окончательная последовательность как что исполнять прописывается в блоке. Производитель блоков получает всё и может иметь под своим управлением целый класстер компьютеров. И можно один контракт исполнять на одном узле, а другой контракт - на другом узле - производитель блоков самостоятельно распределяет нагрузку, а потом аггрегирует результат и говорит: вот готовый блок.
Все остальные получают блок и они уже уверены, что всё можно запускать параллельно. Так что они запускают всё параллельно, без каких-либо блокировок. Поэтому вам не нужно беспокоиться о том, чтобы ваш код исполнялся на одном узле, а не на другом, потому как в блоке уже есть определённый порядок исполнения.
На самом деле, вы можете запустить всё последовательно в одном потоке, если хотите. Но вы можете запускать всё параллельно и вам гарантировано отсутствие конфликтов.
Это очень круто, серьёзно.
Дэн: Спасибо.
Можете ли рассказать поподробнее, как децентрализованы производители блоков и как они конкурируют друг с другом?
Конечно. Всем производителям блоков выплачивается одинаковая награда за блок. Производители блоков сами себе устанавливают размер этой оплаты из общего пула в пять процентов, а всё, что не идёт на оплату производителям блоков - распределяется на другие нужды.
Если производители блоков проголосуют чтобы забрать себе весь пул наград, сообщество может решить, что это слишком жирно и избрать других людей. Они снимут голоса с этих и отдадут их тем, кто предложит более разумную оплату. Это означает, что производители блоков должны получать от сообщества достаточно денег, чтобы покрыть стоимость содержания своих датацентров.
Каждую минуту у нас есть 21 производитель блоков - 20 производят блок каждую минуту и ещё один выбирается случайно пропорционально количеству отданных за них голосов. Так что у всех есть шанс иногда произвести блок, но люди из списка ТОП-20 гарантированно производят блок каждую минуту и за это они получают оплату, достаточную для покрытия расходов на содержание датацентра с оптоволоконными линиями связи, гигабитными каналами друг с другом и производительными вычислительными кластерами.
Им также нужно прислушиваться к рынку, конкурируя за голоса и предоставлять услуги чтобы это было выгодно для них, потому что они ещё являются управляющим органом всей сети.
Они коллективно управляют и следят за сетью и реагируют на возникающие проблемы, поэтому им нужно работать вместе от имени людей, голосовавших за них.
Поэтому они не конкурируют друг с другом, за исключением того факта, что они конкурируют с людьми, которые не делают свою работу.
Вне списка ТОП-20 всегда есть конкуренция со стороны людей, которые хотят занять ваше место, но как только вы вошли в этот список, вы все работаете в одной команде, совместно развивая платформу. Если вам нужен пример из жизни, как EOS работает - изучите STEEM, изучите BitShares - это более ранние реализации и по ним есть очень много публикаций, как именно работает механизм делегированного подтверждения доли, как работают бесплатные транзакции в STEEM, как работает система управления доступом. Мы улучшили эту систему, добавив параллелизм и обобщим те вещи, которые доказанно работают.
И в этом разница в подходах - мы сначала создали децентрализованные приложения и затем уже обобщили их, а не пытались сделать что-то глобальное, а потом думать как оно будет работать.
![](https://img.golos.io/proxy/http://i.imgsafe.org/0462952dab.jpg)
Каковы технические требования к датацентрам для тех, кто хочет стать производителем блоков? Может там нужны фермы на видеокартах для больших вычислений или ещё что?
Эти требования растут по мере развития системы. STEEM и BitShares могут работать на обычном интеловском восьмиядерном процессоре, почему нет. Так что в ближайшей перспективе всё это будет работать на инстансах в Амазон EC2, обслуживая STEEM и BitShares и всё остальное на очень простой ноде.
К тому времени, когда эта штука масштабируется, технология, вероятно, будет развиваться. Я не знаю, как будут выглядеть центры обработки данных и кластеризации, но это то, что может развиваться со временем, и вам не нужно все это сразу здесь и сейчас.
У производителей блоков есть стимул увеличивать свои мощности и мы ожидаем что их поддержит большинство разработчиков приложений. Как я уже говорил ранее, у нас есть свой философский взгляд на то, кто всё это оплачивает. Представьте, что у вас есть сайт и каждый посетитель вашего сайта отправляет микро платёж в Амазон, чтобы компенсировать стоимость хостинга за вас. Именно так и работают блокчейн приложения.
Разработчик приложения должен покрыть расходы на сервер и всё остальное, а пользователи должны иметь возможность использовать эти ресурсы бесплатно. Если разработчик знает, как это можно монетизировать, то это очень похоже на традиционную бизнес модель, в которой блокчейн это просто децентрализованные EC2 инстансы со смарт контрактами. Бизнес модели те же самые.
Что происходит, когда у вас есть доля токенов системы, скажем, вы владеете 1% ресурсов. У каждого держателя токенов есть финансовая заинтересованность голосовать за людей, которые добавляют ценность системе.
Изначально в системе будет избыток ресурсов и люди будет делегировать вам свои ресурсы и все приложения будут бесплатными для использования. Даже держатели нод не станут беспокоиться о возмещении своих расходов и будут предоставлять вам свои ресурсы, если только вы не злоупотребляете этим.
И вся фишка заключается в том, что если вы начинаете злоупотреблять - Окей, хорошо, мы заберём у вас бесплатные ресурсы и вам теперь придётся покупать их и у вас будут ограничения в зависимости от того, как много ресурсов вы купили.
Но это также даёт огромные возможности по масштабированию по мере необходимости и всегда есть стимул для масштабирования. Так что со временем люди поймут, как запускать это на графических видео картах, потом на кластерах и так далее. Так что идея заключается в том, что когда мы запустим - это будет однопоточная система, но затем вы можете перейти к многопоточности без необходимости хардфорка, так как изначально все данные и дизайн подразумевают возможность параллельной обработки.
Если я разработчик - где мне изучить как писать такие контракты? Вы сказали, что это похоже на Lua - есть ли у вас статьи об этом и где?
У меня был пост на STEEM. Если вы перейдёте на сайт STEEM или на сайт EOS точка ио, то там есть ссылки на все ресурсы и есть пример кода контракта. Кое-что всё ещё находится в стадии разработки, но в конце недели мы планируем опубликовать наш репозитарий на Гитхабе.
Да, там вся документация есть по ссылкам. Но если вы хотите изучить язык - посмотрите на Wren, wren.io. Это язык, который мы использовали первоначально, потому что это легкий высокоскоростной скриптовый язык и его легко запускать в безопасной песочнице.
Чтобы я ещё рекомендовал сделать - это подписаться на нашу рассылку на нашем сайте, чтобы быть в курсе всех новостей и обновлений.
Если вы разработчик, мы очень хотим услышать ваше мнение, чтобы сделать EOS лучшей платформой, которая соответствует вашим потребностям.
Потому что как только у нас начнётся длительный период тестирования, мы хотели бы получить обратную связь и убедиться, что у нас действительно получается создавать нужные приложения.
Можете ли вы пролить немного света на масштаб экономики EOS? Я имею в виду, что вы упомянули, что 1% токенов будет стоить 3 миллиарда долларов. Это простая математика, можно посчитать общую стоимость, на мой взгляд это слишком дорого. Сколько нужно на самом деле платить? И если это не фиксированная цена, то тогда если ваш бизнес будет уменьшаться, то что тогда - затраты всех участников сообщества неожиданно вырастут? Как это работает?
Эти три миллиарда на самом деле просто ссылка на то, сколько мы уже платим за майнинг биткоинов и эфира.
Так что если вы разделите эту сумму, а на самом деле она даже ближе к трём с половиной миллиардам. Если вы разделите её на дни и на количество транзакций в день, которые фактически проводятся в этих сетях - вы получите оценку от одного до пяти долларов за транзакцию. Это откуда взялись эти цифры. А теперь немного подробнее о том, как работает наш метод.
У нас вы просто арендуете ресурсы у других участников или вы можете купить часть ресурсов сети и продать их обратно, когда они вам будут уже не нужны. Вы не ограничены тем, что вот это компьютер пользователя и у вас есть 1% его мощности. Здесь столько ресурсов, что вы можете делать любые приложения. Биткоин, Ethereum, STEEM, BitShares - все вместе используют только крошечный процент ресурсов сети. Поэтому, когда у вас есть изобилие вычислительной мощности, производственные затраты снижаются практически до нуля и все приложения становятся бесплатными.
Если вы разработчик и у вас есть необходимость в ресурсах, но нет денег, чтобы купить их, но у вас есть хорошее приложение - вокруг полно людей, у которых есть деньги, но нет разработчиков. И они вам скажут - эй, я дам тебе нужные ресурсы, потому что твоё приложение увеличивает стоимость токенов. И ещё тут невозможна ситуация, когда цена на токены поднялась и у вас сразу выросла стоимость комиссий. Потому что это совершенно разные вещи. Ваши токены - это процент сети, которым вы владеете и он абсолютно не зависит от цены на токены. Это значит, что вам не нужно беспокоиться, что капитализация системы неожиданно вырастет в два раза, токены подорожают вдвое и теперь все ваши пользователи должны платить в два раза больше, а вы на это не рассчитывали. Так что хорошо, что эти вещи отделены друг от друга.
Я думаю, люди понимают, что у нас масштабируемая экономика. Когда вы ограничены масштабами системы, цены могут очень сильно вырасти. И кто захочет платить по пять долларов за транзакцию, если только это не крупная финансовая сделка? Вы не станете платить пять долларов за лайк в социальной сети, так ведь? Это просто не имеет смысла.
Так что вопрос масштабирования является критичным компонентов массового использования блокчейн технологий.
И я действительно верю, что абсолютно любое веб-приложение можно запустить на блокчейне и получить преимущества от того, что приложение работает на блокчейне
Потому что все приложения получают входные данные от пользователя, изменяют базу данных и показывают пользователю результат. И всё это можно делать на блокчейне, на EOS. Если вы знаете, как создавать веб-приложения, вы точно сможете сделать это на нашей платформе. Спасибо. Спасибо вам всем за участие.
Ссылки по теме доклада:
Lmax - Форекс биржа, на которой все клиенты, как маркет-мейкеры и брокеры, так и частные лица торгуют на одинаковых условиях. Является самой быстрой в мире Форекс площадкой.
Lua - Скриптовый язык программирования, по возможностям, идеологии и реализации ближе всего к JavaScript, однако отличается более мощными и гораздо более гибкими конструкциями. Получил известность из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.
Wren - Скриптовый язык программирования, используется в качестве прототипа языка написания смарт контрактов в EOS.
Официальный блог EOS на STEEM.
Официальный репозитарий EOS на GitHub.