Ранее сообщалось, что нулевая фаза Эфириума 2.0, которая активирует переход на Proof-of-Stake (PoS), должна стартовать 3 января 2020 года. В рамках подготовки к историческому обновлению, Бутерин информирует пользователей и разработчиков приложений о том, чего ожидать от сети в следующем году.
Пять статей в блоге Бутерина, посвященных проблемам и давним неизвестным о сети Ethereum 2.0, стали очень популярны в сообществе криптовалют. Вот основные выводы из замечаний основателя Эфириума.
1. Перемещение ETH между блокчейнами может стать возможным в краткосрочной перспективе
Исходя их существующего дизайна Эфириума 2.0, вероятно, пройдут годы, прежде чем старый блокчейн Эфириума на PoW будет полностью объединен с новой сетью на PoS. В это время перевод ETH между двумя блокчейнами будет невозможен.
Это связано с тем, что дополнительная сложность создания «двустороннего моста», по словам разработчика Ethereum 2.0 Престона Ван Луна (Preston Van Loon), представляет угрозу безопасности для обеих сетей.
«Мы предполагаем сценарий, в котором один блокчейн был испорчен другим, и нам пришлось бы осуществить хардфорк для отката изменений. Или же вариант с появлением уязвимости, когда кто-то сможет выпускать неограниченное количество ETH», - сказал Ван Лун.
Активация функции передачи монет между сетями требует безопасного метода обеспечения синхронизации сети PoW относительно точности заявок в сети PoS.
«Предполагается, что в первые несколько месяцев работы сети Эфириум 2.0 у нее будет ограниченное количество валидаторов транзакций, и потенциально она будет иметь более низкую безопасность, чем нынешняя цепочка Эфириум 1.0», - сказал Бен Эджингтон (Ben Edgington), инженер Consensys. «Это потенциально обеспечивает вектор атаки. Если кто-то захочет получить бесплатные деньги в цепочке Эфириум 1.0, он может попытаться атаковать цепочку Эфириум 2.0 и затем убедить Эфириум 1.0 принять эти монеты», - сказал Эджингтон.
В недавнем сообщении в блоге Бутерин предлагает два возможных способа создания «моста» между двумя блокчейнами. Он признает, что «оба эти предложения потребуют неотложных мер по исправлениям на стороне Эфириума 1.0, если в Эфириуме 2.0 возникнут проблемы».
Чтобы уменьшить такие риски, Бутерин предлагает периоды голосования, позволяющие «вмешательству человека» отменить передачу монет из сети Эфириум 1.0. Эти предложения пока остаются просто теорией. Другие разработчики Эфириума 2.0, например, Дэнни Райан (Danny Ryan), представили аналогичные решения для создания безопасного «моста» между двумя сетями.
На данный момент группа не добавила планы по созданию «моста» к дизайну дорожной карты для Ethereum 2.0.
2. Пройдут годы до объединения Эфириума 1.0 и Эфириума 2.0
Beacon chain – это «сердце» новой сети на базе PoS. Этот блокчейн будет действовать как центральный командный центр для получения данных о подтвержденных транзакциях от подчиненных мини-блокчейнов (также называемых шардами) в сети Ethereum 2.0.
На первом этапе шарды будут запущены для связи с существующей Beacon chain. На втором этапе разработчики развернут среды выполнения для различных типов децентрализованных приложений (dapps) в каждом сегменте.
После этого вся инфраструктура Эфириума 2.0 будет сконфигурирована таким образом, чтобы существующая основная сеть Эфириума могла безопасно и надежно полностью объединиться с новой сетью. Эджингтон предполагает, что переход ко второму этапу может занять три-четыре года.
«Эфириум 1.0 и Эфириум 2.0 могут работать параллельно и продолжать существовать в этой конфигурации столько, сколько нам захочется... Это не критично».
Критически важна безопасность активов в текущей сети Эфириума. Исследователь блокчейна Михайло Бьелич (Mihailo Bjelic) говорит, что сложная система, такая как Ethereum 2.0, не должна заменять существующую сеть Ethereum, пока разработчики не будут уверены в ее надежности.
«Лучше никогда не запускать Ethereum 2.0, если это небезопасно», - сказал он. «Ответственное решение, если вы не можете обеспечить безопасность системы - просто отказаться от нее».
Во второй статье Бутерин говорит, что по его задумке переход, если и когда он произойдет, будет плавным.
«Если вы разработчик приложения или пользователь... изменения и проблемы, которые вы испытываете, будут весьма незначительны. Существующие приложения будут работать без изменений», - пишет Бутерин.
3. Запросы данных в блокчейне Эфириума подорожают
Разработчики Dapp, запрашивающие и получающие доступ к данным из новой сети Эфириума, столкнутся с повышенными транзакционными издержками. Но Бутерин дает совет об ограничении проблем в связи с ростом операционных расходов.
«Если вы разработчик, вы можете устранить наибольшую часть проблем из-за изменений в стоимости газа, предварительно убедившись, что вы не пишете приложения с высокими размерами свидетелей, т.е. измерьте общий размер слотов хранения + контрактов + кодов контракта, к которым обращаются за одну транзакцию, и убедитесь, что они не слишком велики», - пишет Бутерин.
Увеличение стоимости происходит из-за изменений в том, как транзакции Эфириума хранятся в сети PoS.
«В Ethereum 2.0 не фиксируется текущее состояние… Я могу хранить информацию о состоянии, в котором я заинтересован, локально, или найдутся поставщики услуг, такие как Infura, которые специализируются на этом. Идея заключается в том, что возникнет рынок, на котором люди будут хранить данные от имени других», - отмечает Эджингтон.
4. Эфириум потеряет способность выполнять транзакции атомарно
Возможно, это наиболее важное нововведение для разработчиков dapp: следующая крупная итерация сети устранит способность транзакций в Эфириума происходить атомарно.
Разработчики больше не смогут выполнять транзакции между различными приложениями, так что в случае сбоя одной транзакции весь ряд транзакций может быть немедленно восстановлен. Сегодня это возможно только в Эфириуме, потому что все dapps работают в единой, совместно используемой сети.
Ethereum 2.0 будет разбивать загрузку транзакции на разные шарды. Теоретически dapps, создающие новые транзакции Эфириума, также будут разделены и размещены в разных сетях шардов. Это вводит новую динамику для выполнения транзакций в блокчейне Эфириума таким образом, что сеть одного шарда не может мгновенно узнать полное состояние другой сети.
«Если я выполняю транзакцию в Shard 1, а затем хочу осуществить транзакцию в Shard 2, потребуется целый блок, прежде чем Shard 2 узнает, что произошло в Shard 1», - сказал Эджингтон.
По словам Эджингтона, это привносит «уровень сложности» в программирование децентрализованных приложений.
«Базы данных делают это постоянно. Существуют механизмы блокировки, чтобы я мог временно заблокировать интересующие меня ресурсы и раскрыть их позже, когда я уверен, что все произошло», - сказал Эджингтон.
Михайло Бьелич сказал, что эта «асинхронная связь» - отраслевой стандарт в компьютерных системах и сетях в целом.
«Таким образом проще рассуждать и предполагать любые возможные векторы атак или недостатки в коде», - сказал Бьелич. Однако он отметил, что разработчикам dapp понадобится время, чтобы адаптироваться:
«Каждый раз, когда появляется новая парадигма разработки возникает кривая обучения, и разработчикам это не нравится».
Действительно, некоторые в сообществе Эфириума обеспокоены негативным влиянием, которое это изменение окажет на сочетаемость, или, как Бутерин описывает в своей записи, «способность разных приложений легко общаться друг с другом».
«Утрата атомарности отбросит назад многих разработчиков и затруднит привлечение криптовалютных трейдеров», - написал Лой Луу (Loi Luu), генеральный директор платформы Kyber Network, в ответ на сообщение в блоге Бутерина.
По словам Дитера Ширли (Dieter Shirley), главного технолога стартапа по созданию игр на блокчейне Dapper Labs, будет сложнее управлять крупномасштабными децентрализованными приложениями, требующими пропускной способности нескольких шардов.
«Перемещение токенов между шардами - не проблема… Но если говорить о чем-то вроде CryptoKitties – это гораздо более масштабная история», - сказал он. «Шардинг не делает их работу невозможной, он просто усложняет ее».
5. Пропускная способность Эфириума 2.0 будет в два раза меньше изначально запланированной
Пятая статья Бутерина об Ethereum 2.0 предполагает резкое сокращение общего количества шардов при запуске. Первоначально предполагалось, что новая сеть будет иметь 1024 шарда, но Бутерин недавно предложил всего лишь 64. По его словам, главным преимуществом будет более быстрая и простая связь между сегментами в Ethereum 2.0.
«Это обеспечивает достаточную функциональность, чтобы дать пользователям возможность хранить монеты в шардах, использовать эти монеты для отправки комиссий за транзакции и перемещать эти монеты между шардами так же легко, как они перемещают их внутри одного сегмента», - написал Бутерин.
По словам Эджингтона, это уменьшило бы бремя межсегментной связи для разработчиков приложений.
«В предыдущем дизайне Ethereum 2.0, если Shard 1 хотел знать статус Shard 2, он должен был ждать 64 слота, что составляет примерно шесть с половиной минут. В соответствии с новым дизайном шарды смогут узнавать о состоянии друг друга в пределах одного слота, то примерно за шесть секунд», - сказал Эджингтон.
По словам Бьелича, это также уменьшит количество проблем в сети Ethereum 2.0 в целом.
«Вы берете на себя такой операционный риск в виде запуска 1024 шардов, которые еще не были испытаны в бою», - сказал Бьелич. «Интуитивно проще с 64 сегментами, потому что это гарантирует передачу меньшего количества сообщений между шардами в сети».
Но общая пропускная способность Эфириума 2.0 с самого начала будет значительно снижена.
«Мы ориентируемся примерно на половину пропускной способности транзакций по сравнению с прежним дизайном», - сказал Эджингтон.
Разработка Эфириума 2.0 продолжается
Ethereum 2.0 все еще находится в стадии разработки, и, как отмечают другие разработчики, слово Виталика Бутерина - не закон.
«Если Виталик публикует что-то, это не обязательно будет реализовано. Он делает это для стимуляции дискуссий в сообществе», - сказал Зак Коул (Zak Cole), основатель и генеральный директор стартапа Blockchain Whiteblock. «Это помогает информировать всех и понимать, что именно происходит».
У Коула есть оговорки относительно предложений, недавно выдвинутых Бутерином, включая идею создания промежуточного «двустороннего моста» между двумя блокчейнами.
«Мне это кажется довольно рискованным», - сказал Коул. «Это потребует дополнительных изменений в цепочке ETH 1.0. ... Я не думаю, что мы должны связываться с цепочкой ETH 1.0».
Разногласия между исследователями и постоянные изменения направления не волнуют Бьелика. Обычное состояние любого сложного программного обеспечения - это вечная эволюция.
«Не существует окончательной версии программного обеспечения. Всегда вносятся изменения», - сказал он.
Тем не менее, Коул сказал, что важно иметь общее представление о том, «как будет выглядеть будущее».
«Вы не начнете строить небоскреб без проекта. Вы не начнете строить первый этаж, пока не будете уверены, как будет выглядеть последний этаж», - сказал он.
Ван Лун заключил, что успешное развитие блокчейна требует хорошей коммуникации между исследователями и разработчиками приложений.
«Неопределенность порождает страх», - сказал он. «Виталик вынес из Devcon, что нам нужно начинать обсуждать эти идеи чаще и последовательнее».