EOS. Технология

by @CryptoLamer

Может, это, как говорит твоя девчонка, по-быстрому и баиньки? ну вот смотри…

Всё, по коням за пивасом и спать, подписыв…

Ну ладно, ладно…

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

Тут мы более подробно поговорим именно о том из чего же состоит EOS и как это работает, и попытаемся понять, так есть ли уже блокчейн 3.0. или нам ещё придётся чего-то подождать?

Собственно все в курсе и я почти уверен, что для тебя не секрет, что EOS, а наверно уже правильное говорить EOSIO — это первая операционная система на блокчейне. И прочитав около 30 статей на эту тему хочется отметить, что Лаример продумал всё.

Решение проблем масштабируемости и скорости транзакций.

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

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

Лаример не стал придумывать то, что и так работало отлично и засунул в EOS свой Graphene. Таким образом в тесте на одном узле удается достигать 10к транзакций. Как мы с тобой узнали бро, Graphene позволяет особом образом сжимать данные транзакций, укатывая их в блоки меньшего размера, что в совокупности с DPoS даёт те самые 10к. Однако в EOS масштабируемость гибридная. Во-первых, вертикальная — чем мощнее оборудование, тем больше пропускная способность сети. Во-вторых, горизонтальная — т.е. каждый узел способен распараллеливать процесс обработки одного и того же контракта, приложения и т.п. Тем самым в теории скорость и пропускная способность сети ограничивается только теоремой Шеннона для каналов связи, т.е. вообще никак не ограничивается. Главное, чтобы ресурсов хватало.

Виталик постарается сделать эфир многопоточным, на основе технологии шардинга. Однако, как справедливо отмечает автор вот этого поста https://steemit.com/blockchain/@dantheman/a-better-approach-to-turing-complete-smart-contracts. Даже шардинг не гарантирует бесконечной масштабируемости. Почему? Всё просто, если добавить в сеть два контракта, которые вынуждены общаться между собой со скоростью, превышающие вычислительные пределы одного узла в сети Эфира(20 транзакций в секунду), то получится

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

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

Нулевые комиссии

Это тебе не ДАГовское: «Эй, слышь? Ты чо такой дерзкий? Какой отправить, сначала две подтверди, потом одну отправь, да!»

Тут всё гораздо изящнее. Давай взглянем на Эфир. Там для исполнения каждой инструкции необходимо заплатить определённую суммы, которую мы с тобой называем газом. Виртуальная машина эфира считает во сколько обойдётся исполнение каждой инструкции в контракте, и если видят, что газа для исполнения контракта чья-то жидовская морда подзажала (а мы то друг друга знаем), то исполнения контракта отклонится. Как говорится…

Соответственно если строить биржу или социалку на основе эфира, где минимальная транзакционная комиссия составила бы 1 цент, то посчитай сколько баксов в год будут стоить все твои лайки. А если сеть переполнится, и цена газа возрастёт? К тому же газ — это часть консенсуса сети эфира, а это значит, чтобы перейти на другое средство подсчета, нужно что???

В EOS всё построено на модели владения. Все транзакции абсолютно бесплатны. Так как это работает? Всё завязано на доля владения. Доля токенов EOS даёт тебе гарантированный процент от пропускной способности сети. Т.е. не важно насколько занята вся остальная сеть, если у тебя 1% от всех токенов

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

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

Однако есть, ИМХО, один недостаток для разрабов, но о нём чуть ниже.

Но не означает ли отсутствие комиссий возможность заддосить сеть, как ддосили Сашу Грей в лучшие годы?

Защита от DdoS

И сразу спойлер: Нет, не означает.

Обратимся к эфиру и биткойну. Помнишь как по осени перед несостоявшимся segwit2X кто-то вливал огромные средства, чтобы наводнить сеть битка кучей пустых транзакций с достаточной комиссией, чтобы твои все переводы лежали в попе мира 5-7 дней (Где злорадно хихикает один Роджер Вер). Ну или вспомни опять же, как во время любого хайпового ICO, твои 5$ с 2Gwei и 21к Gas не собираются никуда уходить 5-7 часов.

Так вот в EOS спаммеру не получится заддосить сеть, просто потому что у него есть только право на определенную часть пропускной способности в зависимости от доли владения. Т.е. атака возможно в каком-то отдельном приложении, если такое позволяет сама архитектура приложения, но никак не в самой сети.

Таким образом у сети EOS появляется одно важное свойство для его токенов. Ценность токена отделена от стоимости транзакции. Какая бы цена не было у токена, важна остается доля. Это хорошо с точки зрения защиты от DDoS и обеспечния высоких скоростей для приложений. Но с другой стороны при росте цены токена каждому новому приложению придётся тратится всё больше, чтобы получить свою долю в пропускной способности сети. А так ли уж это здорово и выгодно для разработчика?

Консенсус и Конституция

Именно о DPoS, о том почему он является BFT, почему при данном алгоритме консенсуса не возможен хардфорк, и почему также о претензиях к нему со стороны Виталика и мнению Дэна подробнее в части 3.

Здесь я остановлюсь на основных моментах. Итак люди выбирают 21 производителя блоков, мощь твоего голоса зависит от доли владения токенами EOS. Количество блоков, которое можно производить блок продюсеру пропорционально доле его голосов. Остальное в части 3. Воть

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

Ну и самое главное

Операционная система

То, чего собственно не хватает разработчикам на Эфире. Сеть Ethereum — это вещь в себе. Это нейтральная платформа для всех приложений. Т.е. грубо говоря, если все децентрализованные сервисы стриминга видосов дам с PornHub не могут просто взять и использовать какие-то общие наработки. Эфир требует много разных приложений для повторного использования кода. И вот EOS, безусловно выигрывает, так предоставляет разработчикам простой набор SDK c общим функционалом. Т.е. так как многим приложениям нужны одни и те же функции: реализация криптографических и коммуникационных инструментов, EOS их предоставит абсолютно всем.

Восхитительно смотрится внутри ларимеровской софтины

Система управления аккаунтами и доступом к ним.

Во-первых, как и в STEEM и в Bitshare, в EOS аккаунты привязаны к именам, а не к адресам, что проще и удобней. Кроме того каждому аккаунту можно присвоить права доступа и набор ключей для аккаунта. Комбинирую их можно даже делегировать права управления аккаунтами. Строить иерархические структуры прав доступа. Нагляднее это выглядит в социальных сетях. Т.е. например, мои любимым Криптошерлокам не придётся прикидывать друг другу текст поста для публикации и проверки. Т.е к одному аккаунту привязаны 10 человек с одинаковыми правами доступа. Один пост можешь выкинуть на предварительную оценку, второй редактировать, третий перепроверить и запостить. И не нужно создавать 10 аккаунтов и делить права. Это крайне удобно для разработчика.

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

А главное в этой системе

И даже аккаунт теперь можно легко восстановить и вернуть под своё управление. Для это тебе всего лишь нужен

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

Смарт-контракты в EOS

Смарт контракты в Ethereum публикуются в виде скомпилированного байт-кода, который обрабатывается интерпретатором. В блокчейне хранится ассемблерный код, который не сильно удобен обычно среднестатистическому кодеру для чтения

Т.е. людям приходится заново забивать код, компилировать и проверять, выдаёт ли “скомпилированный код” те данные, которые ожидаются от исходного кода. Исходный код сети не известен, а это не позволит своевременно устранять ошибки. А вот в EOS в блокчейне публикуется самоисполняющийся код. Кроме того, распараллеливание операций предполагает, что блокпродюсеры смогут оценивать логику работы приложений и запускать отдельные процессы параллельно. Подробнее читай тут: https://steemit.com/eos/@eosio/implementing-a-hypothetical-currency-application-on-eos

Я могу и дальше продолжать этот текст дополняя его и делегированием мощностей, и возможностью выполнения смарт-контрактов виртуалки эфира, и атомарные транзакции между аккаунтами, и модульная архитектура с частичной оценкой состояния блокчейна, заморозка аккаунтов, система хранения данных по типу storj или sia, только дисковое пространство оплачивать не надо(всё пропорционально твоей доле) и даже организация выезда стриптизерш на дом твоему лучшему другу на день рождения(но это не точно). Все эти крутые штуки уже просто не влезают в пост. Ты можешь со всем этим ознакомиться, прочитав белую бумагу проекта https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md

Ты меня спросись: «Ну и кому это всё надо?»

Во-первых, тебе и мне для получения халявы. Аэйрдроп eosDAC — очень хитровые*анную систему, позволяющую тебе, мне и любому Лёне Голубкову стать частью одного большого блок продюсера, мы с тобой пережили. А вот здесь https://www.eosdrops.io/ ты можешь посмотреть, какая ещё халява ждёт впереди всех обладателей EOS.

К тому же совсем недавно три крупных проекта заявили о переходе на EOS для реализации своих разработок.

Во-первых, ещё в февраля Bitfinex заявили о разработке DEX на движке EOS http://goo.gl/2qwmo4 для решения проблем масштабируемости Ethfinex.

Во-вторых, гейминговая платформа WAX https://medium.com/wax-io/worldwide-asset-exchange-development-update-wax-platform-base-technology-selection-and-more-7f280b90a371

Ну и добивает Виталю хуком справа Insights https://medium.com/@InsightsNetwork/why-eos-over-ethereum-for-insights-network-7521aa4f7076

Но Ламер не был Ламер, если бы не нашёл кусочек Г. в тазу с бриллиантами.

https://medium.com/@suchi.blackwing/cryptocurrency-code-review-eos-2b655a1b038c

Тут один талантливый итальянский прогер анализирует открытые для изучения на github коды различных проектов. Обязательно к ознакомлению. Анализировал он тот самый недавно вышедший Dawn 3.0. И вот его вердикт: «Код хороший, слегка запутан, но как только вникаешь в его структуру, то всё становится ясным. Очень бы хотел оценить пропускную способность ноды, но все как то запутанно на данный момент, кроме того я не сохранил мой автогенерированный пароль(shame on you, Andre), так что в любом случае, я вне системы. А переустановка займёт ещё кучу времени.

Есть ощущение что код не отполирован. Через пару недель я собираюсь взглянуть на код подробней, чтобы провести независимый тест снова. И я всё ещё не вижу доработок в плане выполнения многопоточности. Поэтому это всё еще блокчейн 1.0.»

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

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

Ну а пока на этом всё. Побежал дальше…

Кстати, а Который час?

Любитель крафтового,

@CryptoLamer

P.S. Если тоже ничего не успеваешь, то просто подпишись на t.me/CryptoLamer и будь в курсе всего самого прикольного, что происходит на блокчейне!

3 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четырнадцать + 1 =

Back to Top