btc
bch
eth

Ноды Эфириума

 

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

Ноды, сети и их параметры

Давайте попытаемся разобраться в принципах работы сети Эфириума, прибегнув к простой аналогии.  

Представьте себе коробку:

 

В коробку заносится какой-то объект. Внутри с ним совершаются разного рода манипуляции, после чего объект вынимают. Эта коробка – аналог ноды (или узла) сети.

Сеть – это вся совокупность соединённых между собой нод.

Параметры – это правила функционирования сети.

Другой пример: шредер для бумаги.

Теперь рассмотрим принцип работы простейшего измельчителя бумаги:

 

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

Пример устройства с несколькими входными каналами: тостер

Кухонный тостер имеет два входа:

  • Электричество
  • Хлеб

Схема работы тостера:

 

Обратите внимание: чтобы достигнуть ожидаемого результата (зажарить хлеб), тостеру необходимы оба ресурса.

Пример: телевизор

Усложним систему. Представим сложную сеть, использующую параметры. Пусть она состоит из телевизора с подключённой к нему аналоговой антенной. Представим также, что к нему подсоединены и PS4, и Xbox.

Схема такой сети:

 

Тут возникает проблема.

Доступ к одному из верхних узлов сети возможен только через телевизор. Было бы странным смотреть «Игру Престолов» и играть в FIFA18 одновременно. Здесь нам пригодятся параметры. Именно они делают каждый узел уникальным. Записываем в телевизор значения для каждого из допустимых каналов. Он будет работать со следующими условиями:

  • При нажатии на кнопку «0», включается обычное аналоговое ТВ
  • При нажатии на кнопку «1», подключается PS4
  • При нажатии на кнопку «2», подключается Xbox 

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

  • Диагональ экрана. Скажем, 55 дюймов.
  • Цвет корпуса. Например, серебристый.
  • Бренд. Sony TV.
  • Тип монитора. Плазменный экран.

Параметры помогли нам описать телевизор, превратив его из абстрактного во вполне конкретный плазменный серебристый SonyTV с диагональю в 55 дюймов.

Итак, повторим: 

  • Узлы (ноды) – отдельные компоненты сети. Принимают входной сигнал, совершают над ним манипуляции и подают на выход.
  • Сеть – совокупность соединённых между собой узлов.
  • Параметры – правила, определяющие свойства каждого узла.

Телекоммуникационные узлы и сети

Вся телекоммуникационная система построена на сетях и узлах. Интернет, голосовые звонки, SMS – всё это работает благодаря аккуратно выстроенной системе нод и сетей.

Зачем нам подобная сеть? 

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

Мы пользуемся телекоммуникационной сетью для достижения этой эффективности. Попробуем дать определение узлу в этом контексте.

Узел – это точка перераспределения или конечная точка (приёмник сигнала).

Пример. GSM-сеть.

Предположим, что Оксана хочет отправить Андрею SMS-сообщение. В таком случае происходит следующее:

  • Шаг 1: Оксана вводит текст сообщения и нажимает кнопку «Отправить». Сообщение посылается на базовую станцию (БС). Таких станций вокруг вас десятки. Роль БС – подключить вас к сети. Они схожи с официантами в ресторане. Вы поднимаете руку (т.е. отправляете SMS), привлекая их внимание.

 

  • Шаг 2: Контроллер базовых станций (КБС) удостоверяется в том, что все БС исправны, и в сети отсутствуют неполадки. Пользуясь аналогией с рестораном, КБС – менеджер заведения.

 

  • Шаг 3: Далее SMS пересылается с БС на мобильный центр коммутации (МЦК). Роль последнего – удостовериться, что данные пересылаются правильно и без задержек. В ресторане МЦК был бы шеф-поваром, принимающим заказы и распределяющим их между поварами. Он также вносит в некоторые блюда завершающие штрихи перед подачей.

 

  • Шаг 4: Теперь сообщение оказывается в SMS-центре (SMSC). Это как раз один из поваров. Информация хранится здесь до получения дополнительной информации об Андрее. Он получает эту информацию из источников наподобие реестра собственных абонентов (РСА) и реестра абонентов в роуминге (РАР). В этих двух базах содержатся все данные о сети. Они позволяют отследить отправителя и получателя, а также удостовериться в факте получения сообщения. Они проверяют, включен ли телефон Андрея и находится ли он в пределах зоны доступа. В случае невозможности принятия SMS, оно хранится в здесь в течение 6 часов, после чего удаляется. 

 

  • Шаг 5: Если Андрей доступен, SMSC передаёт сообщение обслуживающему его МЦК.  

 

  • Шаг 6: SMS пересылается на контроллер базовых станций.

 

  • Шаг 7: КБС отправляет послание на базовую станцию

 

  • Шаг 8: Андрей получает SMS от своей базовой станции.

 

Схема сети передачи SMS-сообщений:

 

P2P-сеть

Традиционные сети строятся по модели «клиент-сервер». Как они работают? 

В сети присутствует центральный сервер. Все желающие подключиться устройства могут послать ему запрос и получить желаемую информацию. В принципе, также работает и интернет. Если вы хотите найти что-то в Google, вы посылаете запрос на сервер компании. В свою очередь, тот возвращает вам результат. Это и есть система «клиент-сервер». Что же с ней не так?

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

Для борьбы с этими недостатками была разработана новая модель построения сетей. Такая сеть распределяет нагрузку между всеми её участниками [peers], и все они равноправны. В ней исчезает потребность в центральном сервере. Это и есть сеть peer-to-peer.

 

Изображение с InfoZones

 

Зачем людям peer-to-peer сети?

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

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

 

Изображение с Quora

Децентрализованный характер P2P-сети позволил совершить настоящую революцию в системе электронных платежей, став основой криптовалют.

Сети и узлы в криптовалютах

Рассмотрим структуру сети Эфириума. Это peer-to-peer сеть, и её участники (другими словами, узлы) не имеют специальных привилегий. Идея платформы в том, чтобы все пользователи были равноправны.

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

Все децентрализованные криптовалюты (в том числе BTC и ETH) построены по этому принципу, что продиктовано философией их создателей. Идея последних заключается в том, чтобы создать сеть без центрального органа управления, оказывавшего бы субъективное влияние на ценность валюты.

Каким же образом участники сети могут получать подтверждение того, что транзакции в ней действительно произошли? Здесь можно провести аналогию с тем, как распространяются сплетни. Предположим, что Илья отправил Даше 3 ETH. Ближайшие к нему узлы зафиксируют эту операцию и оповестят об этом своих соседей. Те же, в свою очередь, передадут этот факт еще дальше. В конце концов всё сообщество будет знать об этом.

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

  • Легкий клиент, котоый хранит только часть копии блокчейна
  • Полный узел, хранящий полную копию блокчейна
  • Майнер, который подтверждает транзакции в сети       

Давайте рассмотрим каждый пункт подробнее.

Легкий клиент

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

Полный узел

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

  • За «нахождение» одного блока выдаётся вознаграждение в 5 ETH;
  • Правильно проставлены подписи транзакций;
  • Транзакции и блоки записаны в корректном формате;
  • Исключены случаи повторного платежа одними и теми же монетами (double spending).

Полные узлы не только подтверждают транзакции, но и передают всю информацию остальным узлам.

Майнеры

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

Проблема масштабируемости Эфириума

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

Изображение с Etherscan

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

В мае 2017 года в Эфириуме было 25,000 узлов, а в блокчейне биткоина всего 7,000. А с апреля по май их число возросло на 81%.

Количество узлов в сети обратно пропорционально времени, необходимому на подтверждение транзакции. Консенсус достигается линейно. Предположим, что в сети 3 ноды – А, В и С. Сперва узел А проводит вычисления, подтверждая транзакцию. Далее то же самое делает компьютер В, и, наконец, С.  

В случае прибавления участника D возрастёт и затрачиваемое время.

Средняя пропускная способность Эфириума – 20 транзакций в секунду. Сравните это с цифрами 193 для PayPal и 1667 для Visa! 

Стоит отметить, что разработчики Эфириума считают платформу чем-то большим, чем механизмом распространения эфира (соответствующей криптовалюты). Их цель заключается в том, чтобы люди создавали децентрализованные блокчейн-приложения [DApps] на уровне Facebook и YouTube. Однако для её достижения жизненно важно разрешить проблему масштабируемости сети.

Для этого были предложены три решения:

  • Увеличение размера блока
  • Использование различных альткоинов
  • Шардинг

Увеличение размера блока

Подобное решение улучшит работу сети, позволив участникам помещать большее число транзакций в один блок. Однако оно вызовет и ряд проблем:

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

Использование разных альткоинов

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

  • Деление хэшрейта блокчейна нежелательно, ведь от него зависит степень защищённости системы от хакеров и её скорость.
  • Злонамеренным майнерам будет проще завладеть 51% сети и диктовать свои условия.

Шардинг

Ethereum-сообщество сошлось на шардинге как на компромиссном решении.

Представим сеть из нод А, В и С, которые должны верифицировать данные Т. Однако А, В и С не будут самостоятельно подтверждать весь объем информации Т, а разобьют его на 3 части – Т1, Т2 и Т3 (это и есть шарды). После этого А, В и С проведут работу с каждым шардом независимо. Таким образом, количество необходимого времени уменьшается экспоненциально.

Более подробно о шардинге читайте в нашей следующей статье.

Источник

 

 

Теги: Ethereum,ноды

Похожие материалы

Комментарии

Your browser is out of date!
Install the latest version of your browser.