Code
Price ($ US)
% day chg
% week chg
Mktcap ($ US)
BTC
3514.88831199
-3.63
-10.26
61.2b
XRP
0.3023205011
-4.57
-14.16
12.4b
ETH
91.6518478898
-5.87
-16.27
9.5b
XLM
0.1172183768
-6.54
-22.36
2.2b
USDT
1.0172452512
0.23
2.13
1.9b
BCH
105.692690505
-4.91
-34.24
1.8b
EOS
1.9752912953
-4.74
-25.28
1.8b
BSV
95.7061606141
-1.66
1.76
1.7b
LTC
24.8568313381
-6.3
-20.41
1.5b
TRX
0.0133076826
-3.58
-4.56
0.9b
ADA
0.0303059444
-5.65
-22.24
0.8b
XMR
44.6840981915
-7.93
-19.01
0.7b
XEM
0.0723006762
-3.95
-2.09
0.7b
MIOTA
0.2315462858
-6.3
-16.25
0.6b
BNB
4.7522722298
-3.1
-6.23
0.6b
DASH
69.2977126499
-7.82
-18.78
0.6b
ETC
3.9373338238
-4.84
-15.92
0.4b
NEO
6.1276432744
-7.08
-17.58
0.4b
ZEC
57.4046600885
-6.96
-20.22
0.3b
DOGE
0.0020948009
-1.2
-7.51
0.2b
MKR
323.982518751
-8.46
-16.95
0.2b
XTZ
0.3668838799
-10.25
-18.66
0.2b
VET
0.003830801
-6.92
-16.37
0.2b
TUSD
1.0232256744
0.48
1.04
0.2b
BTG
11.9427384887
-5.4
-30.67
0.2b
USDC
1.0249282152
0.77
1.44
0.2b
OMG
1.3251839384
-5.8
-9.49
0.2b
PAX
1.0154891305
0.15
0.62
0.2b
ZRX
0.3183146744
-7.38
-16.4
0.2b
BAT
0.138817918
-6.45
-16.96
0.2b

EOS vs Ethereum: консенсус, смарт-контракты, управление

15-06-2018 12

Ethereum является самой популярной платформой для запуска смарт-контрактов. Однако скоро состоится если не событие года в мире криптовалют, то, как минимум, этого полугодия: запустят основную сеть EOS — возможно, самого сильного конкурента Ethereum.

О том, как устроены блокчейны EOS и Ethereum, в специальном материале для ForkLog рассказал CEO Smartz Юрий Васильчиков.

Истоки появления EOS

Как многие помнят, Ethereum появился три года назад, а EOS запускается в этом году, однако новый блокчейн не возник из пустоты. EOS сделан на основании опыта, который разработчики получили с децентрализованной биржей BitShares и социальной блокчейн-платформой Steemit (сторонние разработчики создали ее русскоязычный форк — Golos).

В основе BitShares и Steemit лежит один движок — Graphene. Биржа BitShares появилась в 2014 году, то есть раньше, чем Ethereum. Соцсеть Steemit была запущена в 2016 году. По сути, в рамках проекта EOS ведется работа с, условно, третьим поколением движка. Капитализация EOS на данный момент составляет порядка $12 млрд, что говорит об интересе и доверии комьюнити.

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

Общее сравнение

Модель токена. В EOS и Ethereum модель токена (кто-то предпочтет назвать его коином) одинаковая — инфляционная. То есть токены довыпускаются для того, чтобы выдавать премии майнерам. Недавно Виталик Бутерин написал, что хочет убрать или снизить инфляцию в Ethereum, но пока она есть. В EOS прописана инфляция 5% в год — это заложено в алгоритм и, предположительно, останется без изменений.

Модель оплаты транзакций. Платность транзакций важна не только для мотивации блок-продюсеров aka майнеров, но и для защиты сетей от DDoS-атак и заспамливания. Это защита от условного бесконечного цикла в смарт-контракте, который мог бы «повесить» все майнерские машины.

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

В EOS транзакции условно бесплатные. Мы не платим за газ — его нет. Вместо него существует пропускная способность сети, так называемая bandwidth, которая выдается каждому пользователю в зависимости от доли в сети EOS, которой он обладает.

Если вам не хватает мощности сети, вы можете докупить токены EOS и запустить более сложные контракты. Допустим, у вас есть 100% производительности сети. Если вы держите 1% токенов EOS, то можете использовать 1% пропускной способности.

Ресурс, который потребляет смарт-контракт, высчитывается из трех параметров: процессорная вычислительная мощность, объем хранимых данных и используемая память.

Количество транзакций в секунду. В сети Ethereum на пике было примерно 15 транзакций в секунду. EOS обещает уже в июне от 1000 до 6000, а потом еще и масштабировать этот параметр.

В EOS всего 21 «майнер», то есть блок-продюсер. Они не майнят в том понимании, в котором майнят биткоин или Ethereum, это не Proof-of-Work (PoW).

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

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

Virtual machine. Ethereum использует собственную виртуальную машину EVM (Ethereum Virtual Machine), а EOS применяет открытый стандарт WebAssembly. Движок EOS считается более современным и универсальным.

Языки разработки. Языки для разработки смарт-контрактов в этих блокчейнах могут быть любыми. Главное, они должны компилироваться в EVM для Ethereum и в WebAssembly для EOS.

На практике в Ethereum преимущественно используется язык Solidity. Он проще в освоении, чем C++ и Rust, которые сейчас преимущественно используются для программирования под EOS. Это может измениться в будущем с появлением новых компиляторов, например из JS в WebAssembly.

Защита от DDoS. Как уже упоминалось, в Ethereum используется газ, а в EOS — bandwidth.

Модель аккаунтов. Аккаунт («адрес» в терминах EOS) в обеих сетях — пара ключей (публичный и приватный). В Ethereum модель плоская, то есть все адреса абсолютно равны и нет разделения доступов.

В EOS встроена иерархическая модель, почти как в операционных системах. Именно поэтому EOS-разработчики и преподносят ее как блокчейн-ОС. Основной аккаунт в EOS может управлять дочерними, выдавая им различные права доступа: на запись, на отправку определенных транзакций. При этом все аккаунты наследуются от аккаунтов блок-продюсеров («майнеров»). И поэтому у них очень большое влияние на сеть.

Модель взаимодействия смарт-контрактов. В Ethereum есть адрес смарт-контракта и транзакция. Используется плоская модель: и мы сами, и смарт-контракты могут посылать транзакцию.

В EOS для отправки транзакции (называемой тут «action») в смарт-контракт нужно сначала получить права («permissions») на запуск определенных транзакций. Это очень гибкая система в плане настройки доступов, безопасности, возможности обновления и т. д.

Разделение ресурсов. В Ethereum чтобы дать одному смарт-контракту доступ к ресурсам другого (хранилищу), нужно специально предусмотреть функцию delegate call.

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

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

Консенсус

Вид консенсуса. В Ethereum ограниченным ресурсом является вычислительная мощность майнеров — это известная модель консенсуса Proof-of-Work.

В EOS представлен алгоритм достижения консенсуса Delegated Proof-of-Stake — ограниченным ресурсом выступают голоса владельцев сети. Есть специально выделенные блок-продюсеры, за которых держатели EOS голосуют. Они закрывают блоки, выполняя полезную нагрузку.

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

В EOS только 21 блок-продюсер. Каждый избирается общим голосованием. Голосование может быть многоступенчатым — вы голосуете за кандидата, который может сам отдать голос за какую-то ноду, которая является кандидатом в блок-продюсеры.

Алгоритмический тип. В Ethereum вероятностный (probabilistic) алгоритмический тип консенсуса, то есть мы не знаем, какая нода и когда закроет следующий блок.

В EOS действует детерминистический (deterministic) тип алгоритма: точно известно, какая нода закрывает блок и когда. Ноды чередуются в строгом порядке, и время тоже строго определено.

Формирование блоков. В Ethereum в среднем формируется 0,03 блока в секунду — примерно 1 блок в 30 секунд.

У EOS — 2 блока в секунду.

Количество нод для закрытия блока и атак. В Ethereum достаточно всего лишь одной живой ноды, чтобы закрыть блок.

В EOS нужно 15 нод: 2/3 всех активных блок-продюсеров и еще одна нода.

Столько же (14+1) нужно для атаки, как и в атаке на Ethereum: 50%+1 (51%).

Транзакции как доказательство доли: Traded Average Price Options (TaPoS). TaPoS — это верификация цепи, когда в каждую транзакцию добавляется хэш предыдущего блока. В Ethereum такого нет.

В EOS это дополнительный уровень защиты. Если мы вдруг «переигрываем» блокчейн и что-то меняем, у нас меняется хэш предыдущих блоков и все транзакции в новом блоке становятся невалидными.

Управление сетью

Управление блокчейном Ethereum происходит вне сети (offchain). EOS управляется (onchain) путем долевого голосования всех держателей токена.

Предполагается, что управление сетью в EOS будет происходить с помощью отправки транзакций. Вы отправляете голосующую транзакцию, как бы свой голос, и хранимыми у вас EOS голосуете за решение о выборе блок-продюсера (БП) или о каких-то изменениях непосредственно в коде.

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

То же самое касается бана недобросовестных блок-продюсеров и делегирования голосов.

Награды и инфляция

За последние пару месяцев правила распределения наград между блок-продюсерами претерпели изменения. И скорее всего, они еще будут меняться. Актуальные данные можно узнать непосредственно из кода EOS.

На данный момент из 5% фиксированной годовой инфляции только 1/5 (20%) предназначена для вознаграждения блок-продюсеров. Остальные 4/5 (80%) идут в отдельный фонд, правила распределения которого пока недостаточно ясны, и мы оставим их за пределами данной статьи. Ранее предполагалось, что БП сами голосованием будут решать, какую часть направлять себе на вознаграждение, а какую – в фонд.

В свою очередь, 25% от той самой 1/5 части объема годовой инфляции получают активные блок-продюсеры, которые закрывают блоки (это топ-21 БП). Оставшиеся 75% — все блок-продюсеры, как активные, так и резервные, делят между собой в той пропорции, в которой они получили голоса.

Пока что экономический смысл этой системы не очень понятен. Есть вероятность, что после релиза EOS будет запущено сразу несколько сетей. Ведь кандидатов в блок-продюсеры уже зарегистрировалось более 180 — и все они предположительно будут претендовать на попадание в топ-21. А сами разработчики EOS не планируют запускать свой блокчейн, оставив это полностью на стороне сообщества.

Существуют дебаты на тему того, должны ли ноды оплачивать голоса своим избирателям. 5% инфляции EOS и даже 1% – это довольно большие деньги. При капитализации сети около $10 млрд (на момент публикации статьи), 1% — это сто миллионов долларов. У блок-продюсеров возникает экономический смысл привлекать голоса оплатой, но подавляющее большинство БП-кандидатов заявляет о том, что покупать голоса не будут и вообще это порочная практика, которой необходимо избегать. Не исключено, что эти заявления делаются, скорее, по юридическим причинам.

Заключение

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

На данный момент существует две сети, претендующие называться EOS-mainnet, ни в одной из которых за блок-продюсеров общая «явка» держателей на голосование не превысила 15% необходимые для начала полноценной работы сети. Предположительно, это произойдет в ближайшие дни или недели.

Скачивайте приложение ForkLog для Android-смартфонов!

Поделиться:
Источник: forklog.com