Виталик Бутерин представил «дорожную карту» для квадратичного шардинга Эфириума

image1

«Убийца Ethereum – это Ethereum, китайский Ethereum – это Ethereum, тайваньский Ethereum – это Ethereum… 2.0», – этими словами Виталик Бутерин, изобретатель Ethereum, начал своё выступление на конференции BeyondBlock в Тайбэе, где он представил план достижения Эфириумом уровней масштабируемости платёжной системы Visa в течение следующих 3–5 лет.

Главными проблемами, с которыми сталкивается Ethereum, по мнению Бутерина, являются анонимность, безопасность и масштабируемость. «Проблема анонимности решена на 3/4», – сказал Бутерин, одевший на конференцию футболку с эмблемой Byzantium, последнего на данный момент хард-форка Ethereum.

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

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

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

main-eth-problems.png

Основные проблемы Ethereum

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

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

scalability-easy-solutions.png

Простые решения трилеммы масштабируемости, безопасности и децентрализации

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

Однако Ethereum стремится объединить в себе все эти свойства, не жертвуя ни одним из них. Одним из способов достичь этого могут быть решения второго уровня, такие как Plasma, Raiden или Lightning Network, но Ethereum также ставит перед собой задачу решить трилемму децентрализации, безопасности и масштабируемости на уровне основного блокчейна.

ethereum-scaling-aims.png

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

«Можем ли мы это сделать? Я думаю, можем», – говорил он, представляя первую и, можно сказать, базовую концептуализированную версию шардинга.

ethereum-sharding.png

«То, как я обычно описываю шардинг, это… Если очень простыми словами, то представьте себе блокчейн, в котором есть, скажем, сотня разных областей, универсов, и каждый из этих универсов – это пространство для отдельного аккаунта, – говорит Бутерин. –

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

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

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

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

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

Вот один из примеров того, что мы можем довольно легко разработать в ближайшем будущем. Представим, что мы сохраняем основной блокчейн, в который мы запишем контракт – он будет называться «менеджером валидаторов» – который будет поддерживать внутреннюю Proof-of-Stake (PoS) систему…

Менеджер валидаторов также отслеживает ряд шардов (фрагментов блокчейна) – скажем, 100 универсов. Во время каждого блока или цикла менеджер валидаторов присваивает случайному валидатору право создания следующего блока в каждом шарде…

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

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

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

То есть мы получаем своего рода разделение труда, в котором менеджер валидаторов действует как лёгкий клиент для каждого шарда».

eth-comparision-scaling-sharding.png

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

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

sharding-roadmap.png

Дорожная карта: 1. Реализация шардинга как «второго слоя» посредством контракта менеджера валидаторов; 2. Добавление двусторонней конвертируемости; 3. Перемещение коллаций шардов в основной блокчейн; 4. Добавление «жесткого связывания».

Согласно «дорожной карте», изложенной Бутериным, это будет доступно уже на ранних стадиях шардинга и будет реализовано на уровне протокола через «жёсткое связывание» (tight coupling).

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

«То есть за счёт применения жёсткого связывания валидность второго слоя становится условием для валидности первого, базового слоя, – объясняет Бутерин. – На этом этапе вся система шардинга будет иметь одинаковый уровень безопасности и будет полностью определяться хард-форками.

initial-eth-sharding.png

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

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

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

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

shards-new-address-space.png

Обратите внимание: шарды создают новое адресное пространство и не влияют на существующее адресное пространство. Это дает уникальную возможность вносить в протокол множество важных изменений без обратной совместимости!

К этим изменениям относятся увеличенное распараллеливание, более быстрая виртуальная машина Ethereum, бинарные деревья Меркла и клиенты без сохранения состояний.

Клиентов без сохранения состояний, т. е. шардинговые версии программ-клиентов для Ethereum, Бутерин описал так: «Вместо того, чтобы требовать от программ клиентов наличия состояний, мы будем требовать от отправителя транзакции предоставления своего рода доказательств Меркла для определённых частей состояний, к которым они обращаются».

stateless-clients.png

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

«Дорожная карта» реализации шардинга представляет собой первоначальное создание нового «универса» (или 100 универсов), практически не влияющее на основной блокчейн.

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

conclusions-sharding.png

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

Разработчики работают над новыми шардами, постепенно улучшая код, добавляя в шарды zk-SNARK и другие функции, увеличивая их способность к обмену данными и коммуникации, а затем постоянно совершенствуют их через относительно небольшие изменения.

Планируемые сроки реализации составляют 3–5 лет, то есть не ранее 2020 года. Но один из самых сложных аспектов, архитектура, похоже, уже находится на стадии стабильного концепта, так что, возможно, мы увидим прототипы уже к следующему году и первые альфа-версии в 2019 году или даже раньше.

А тем временем будет происходить переход к гибридному Proof-of-Stake/Proof-of-Work Эфириуму. Это само по себе тоже очень серьёзное обновление и, по оптимистичным оценкам, может быть подготовлено к лету.

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

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

Спрос на транзакции в сети Ethereum с прошлого года увеличился более чем в 10 раз, притом что сеть теперь способна обработать, в лучшем случае, лишь в 4 раза больше транзакций.

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

Источник



Рубрики:Виталик Бутерин, Сообщество, Ethereum, эфир

Метки:

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

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s