Описание Internet Computer (IOU)
Internet Computer (ICP), созданный и запущенный DFINITY, позиционируется разработчиками, как «первый в мире блокчейн, работающий на скорости Интернета с неограниченной пропускной способностью».
По их словам он представляет собой третью крупную инновацию в области блокчейнов, наряду с Биткойном и Ethereum - компьютер с блокчейном, который масштабирует вычисления и данные смарт-контрактов, запускает их со скоростью Интернета, эффективно обрабатывает и хранит данные и предоставляет разработчикам мощные программные фреймворки.
О монете
Dfinity стремится изобрести новый Интернет, как общедоступный компьютер для размещения защищенного от взлома программного обеспечения и нового поколения открытых интернет-сервисов. Dfinity поддерживается такими компаниями, как Andreessen Horowitz и Polychain Capital.
Механизм консенсуса Dfinity состоит из четырех уровней. Первый уровень предоставляет зарегистрированного и устойчивого к Sybil идентичности клиента. На втором уровне находится децентрализованный выбранный случайным образом анкор. На третьем уровне находится блокчейн, управляемый выбранным случайным образом анкором посредством вероятностного механизма ранжирования лидеров.
Четвертый уровень представляет собой децентрализованного нотариуса, обеспечивающего временные метки и гарантии публикации, и несет полную ответственность за почти мгновенные транзакции. Уровни консенсуса Dfinity и другие ключевые аспекты можно представить в виде следующих категорий:
- Уровень идентичности
- Выбранный случайным образом анкор
- Уровень блокчейна
- Реестр
- Транзакция
- Наблюдение
- Пользователи
- Уровень нотариуса
- Уровни согласованного протокола
- Внешние участники
- Наблюдатели
- Новые клиенты
Уровни механизма консенсуса Dfinity
1. Уровень идентичности: обеспечивает реестр всех клиентов.
2. Уровень выбранного случайным образом анкора: обеспечивает источник случайности (VRF) для всех более высоких уровней, включая приложения (смарт-контракты).
3. Уровень блокчейна: строит блокчейн из подтвержденных транзакций через протокол вероятностных слотов, управляемый выбранным случайным образом анкором.
4. Уровень нотариального заверения: обеспечивает быстрое подтверждение блоков для клиентов и внешних наблюдателей.
Технологии
1-й уровень: удостоверения и реестр.
Активные участники сети Dfinity называются клиентами. Все клиенты в Dfinity зарегистрированы, т. е. имеют постоянные псевдонимы. Регистрация клиентов имеет преимущества по сравнению с типичными блокчейнами с проверкой работы, где невозможно связать разные блоки с одним и тем же майнером. Например, если для регистрации требуется гарантийный депозит, некорректно работающий клиент потеряет весь свой депозит, тогда как майнер в типичной цепочке блоков Proof-of-Work потеряет вознаграждениеза блок только во время неправильного поведения. В результате, штраф за ненадлежащее поведение может быть больше для зарегистрированных пользователей, чем не для незарегистрированных. Это особенно важно, поскольку блокчейны могут отслеживать неограниченное внешнее значение, которое превышает значение самого собственного токена. Более того, Dfinity поддерживает открытое членство, предоставляя протокол для регистрации новых клиентов через депозит с периодом блокировки. Подразумевается ответственность первого уровня.
2-й уровень: Выбранный случайным образом анкор. Выбранный случайным образом анкор. на втором уровне представляет собой несмещаемую, поддающуюся проверке случайную функция (VRF), которая создается совместно зарегистрированными клиентами. Каждый случайный выход VRF никем не может быть предсказан до тех пор, пока он не станет доступным для всех. Это ключевая технология системы Dfinity, которая основана на схеме пороговой подписи со свойствами уникальности и не интерактивности. Схема подписи BLS - единственная практическая схема, которая может предоставить эти функции, и Dfinity имеет специально оптимизированную реализацию построенной BLS.
Использование порогового механизма для создания случайности решает фундаментальную проблему «последнего участника».
Любой децентрализованный протокол для создания публичной случайности без порогового механизма проблематичен из-за того, что последний субъект в этом протоколе знает следующее случайное значение и может решить прервать выполнение протокола.
3-й уровень: разрешение блокчейна и форка. Третий уровень использует «протокол вероятностных интервалов» (PSP). Этот протокол ранжирует клиентов для каждой высоты цепочки в порядке, который детерминированно выводится из несмещенных выходных данных случайного маяка для этой высоты. Затем блокирующим предложениям назначается вес на основе ранга предлагающего, так что блоки от клиентов в верхней части списка получают более высокий вес. Форки разрешаются, отдавая предпочтение «самой тяжелой» цепочке с точки зрения накопленного веса блоков - очень похоже на то, как традиционный консенсус Proof-of-Work основан на максимальном накопленном объеме работы. Первое преимущество протокола PSP состоит в том, что ранжирование доступно мгновенно, что обеспечивает предсказуемое постоянное время блока. Второе преимущество состоит в том, что всегда есть один клиент с наивысшим рейтингом, который позволяет использовать однородную пропускную способность сети. Вместо этого гонка между клиентами будет способствовать использованию пакетов.
4-й уровень: нотариальное заверение и почти мгновенная завершаемость. Окончательность данной транзакции означает общесистемный консенсус о том, что данная транзакция была необратимо выполнена. Хотя для большинства распределенных систем требуется быстрое завершение транзакции, существующие технологии блокчейн не могут этого обеспечить. Dfinity использует новую блокчейн технику нотариального заверения на своем четвертом уровне, чтобы ускорить завершаемость. Нотариальное заверение - это пороговая подпись под блоком, созданным совместно зарегистрированным клиентом. В цепочку могут входить только нотариально заверенные блоки. Существуют альтернативы на основе 1RSA, но их недостаток состоит в непрактичности настройки пороговых ключей без доверенного дилера.
Кандидаты в блоки, которые представляются клиенту для нотариального заверения, клиент нотариально заверяет только кандидата с наивысшим рейтингом в соответствии с публично проверяемым алгоритмом ранжирования, управляемым случайным маяком.
Важно подчеркнуть, что нотариальное заверение не является консенсусом, потому что из-за неблагоприятного времени возможно нотариальное заверение более чем одного блока на заданной высоте. Это явно допускается и является важным отличием от других предложений с подтверждением ставки, которые применяют полное византийское соглашение в каждом блоке. Dfinity достигает своей высокой скорости и короткого времени блока именно потому, что нотариальное заверение представляет собой не полный консенсус. Однако нотариальное заверение можно рассматривать как оптимистический консенсус, потому что часто бывает так, что нотариально заверяется только один блок. Так ли это, можно определить после одного последующего блока плюс время реле. Следовательно, всякий раз, когда широковещательная сеть функционирует нормально, транзакция является окончательной в консенсусе Dfinity после двух нотариально заверенных подтверждений плюс время прохождения сети.
Нотариальное заверение в Dfinity - это не гарантия действительности, а скорее временная метка и подтверждение публикации. Этап нотариального заверения не позволяет злоумышленнику тайно построить и поддерживать цепочку связанных нотариально заверенных блоков. По этой причине Dfinity не подтвержен спланированным атакам майнинга или проблеме «ничего не поставлено на карту».
Пороговое реле и масштабируемость сети
Консенсус Dfinity разработан для работы в сети с миллионами клиентов. Чтобы обеспечить масштабируемость до такой степени, протоколы случайного маяка и нотариального заверения разработаны таким образом, чтобы их можно было безопасно и эффективно делегировать комитету. Комитет - это случайно выбранное подмножество всех зарегистрированных клиентов, использующее пороговый механизм (для безопасности), который, кроме того, не интерактивен (для эффективности). В Dfinity активный комитет регулярно меняется. После временного выполнения протокола от имени всех клиентов комитет передает выполнение другому заранее настроенному комитету.
Последовательность против доступности
Стоит отметить, что разбиение сети неявно обнаруживается Dfinity и обрабатывается консервативно. Это следствие случайной выборки комитетов. Если сеть разделяется на две половины более или менее одинакового размера, это автоматически заставит выбранный случайным образом анкор приостановиться в пределах нескольких блоков, так что ни одна из сторон не сможет продолжить работу. Выбранный случайным образом анкор автоматически возобновит работу после повторного подключения к сети. Если сеть разделяется таким образом, что один компонент значительно превышает половину сети, протокол может продолжаться в этом одном большом компоненте, но будет приостановлен во всех других компонентах. Разделение сети может произойти не только при прерывании связи. Другой важный и даже более реалистичный случай - это когда существует несколько реализаций клиента Dfinity, и они не согласны друг с другом из-за выявления ошибки. Dfinity идеально справляется с этим подобными ситуациями. Если есть два клиента, которые широко используются равномерно, и они начнут расходиться во мнениях, то оба клиента сделают паузу. Если имеется много равномерно распределенных клиентов, и один начинает не соглашаться со всеми остальными, тогда сеть, вероятно, продолжит работу, и только изолированный клиент приостановит работу.
Другие блокчейны плохо справляются с этим случаем, и возникновение такого события представляет для них реальную угрозу. Причина в том, что в этих цепочках слишком много внимания уделяется доступности, а не согласованности.
Детали протокола консенсуса
Роли. Одноранговая сеть Dfinity состоит из клиентов, соединенных широковещательной сетью, по которой они могут отправлять сообщения всем. Клиенты выполняют три активные функции:
(а) участвовать в децентрализованном случайном выборе анкора,
(б) участвовать в деятельности децентрализованного нотариуса,
(в) предлагать блоки.
Клиенты также наблюдают за блоками и строят собственное представление о финальной цепочке.
Комитеты и пороговое реле
Для улучшения масштабируемости, выбранные случайным образом анкоры и нотариус управляются комитетом. В небольшой сети комитетом могут быть все клиенты. В крупномасштабной сети комитет меньше, чем набор всех клиентов, и меняется от раунда к раунду (то есть от блока к блоку). Выбранный случайным образом анкор в одном раунде выбирает комитет для следующего раунда. Размер комитета настраивается на основе расчета вероятности отказа.
Рейтинг блоков
Протокол выполняется циклически, так что существует взаимно однозначное соответствие между номером раунда и положением (называемым высотой) в цепочке. В начале раунда r маяк случайности выдает новое, поддающееся проверке случайное значение и транслирует его в сеть. Случайный выходной сигнал маяка для раунда r, обозначенный ξr, определяет приоритетность всех зарегистрированных клиентов. Любой клиент может предложить блокировку, но более высокий уровень приоритета клиента означает более высокую вероятность того, что блок будет нотариально заверен и что создатели блока в следующем раунде.
Нотариальное заверение
Как только клиент видит действительный ξr, он объединяет транзакции, собранные от пользователей, в кандидата на блок и отправляет его нотариусу. Нотариус ждет в течение определенного постоянного времени (BlockTime), чтобы получить предложенные блоки. Затем нотариус запускает механизм ранжирования на основе случайного маяка, выбирает блок с наивысшим рейтингом, подписывает и транслирует его. Как только клиенты получают нотариально заверенный блок, они используют его для расширения своих копий цепочки блоков, тем самым завершая раунд r в своих соответствующих представлениях. Наконец, случайный радиомаяк передает ξr + 1, означающее начало нового раунда.
Децентрализованный выбранный случайным образом анкор
Протокол выбранного случайным образом анкора полностью децентрализован и управляется всеми клиентами в комитете вместе. Тем не менее, снаружи выбранный случайным образом анкор продвигается к раунду r + 1, увидев нотариально заверенный блок из раунда r. ведет себя как доверенная третья сторона. Подчеркнем, что комитету не нужно запускать протокол византийского соглашения для каждого выходного сигнала маяка. Вместо этого согласование каждого выходного сигнала маяка происходит автоматически из-за свойства уникальности нашей схемы пороговой подписи. Это объясняет, как случайный маяк может работать с такой высокой скоростью, и, таким образом, блокчейн Dfinity может достичь такого низкого времени блока.
Децентрализованный нотариус.
Как и в случае случайного маяка, нотариус полностью децентрализован и управляется всеми клиентами в комитете вместе, а его поведение в целом можно приравнять к доверенной третьей стороне. Однако, в отличие от выбранного случайным образом анкора, нотариус стремится согласовать текущий ввод - блок, а не псевдослучайное число. Для этого не существует «волшебной» криптографии, поэтому единственным вариантом будет полный протокол византийского соглашения. Но вместо этого нотариус Dfinity просто запускает оптимистичный протокол, который достигает консенсуса «при нормальной работе», хотя иногда может нотариально заверить более одного блока за раунд. Если это произойдет, алгоритм ранжирования цепочки Dfinity разрешит вилку, и окончательность будет достигнута в следующем нормальном раунде. Оптимистический протокол не интерактивен и быстр, поэтому нотариус может работать с той же скоростью, что и случайный маяк.
Возможный протол слота и нотариальное уведомление
Каждый раунд протокола проходит через этапы создания выходного сигнала выбранного случайным образом анкора (1), создания предложений блоков (2) и создания нотариальных заверений блоков (3). Поскольку более одного блока можно нотариально заверить, эти шаги сами по себе не обеспечивают консенсуса. Здесь вступает в действие протокол вероятностных слотов (PSP).
Основываясь на весе блока, PSP позволяет репликам решать, какую цепочку использовать, когда они предлагают новый блок. Со временем это приводит к вероятностному консенсусу по префиксу цепочки, где вероятность окончательности возрастает по мере того, как цепочке добавляется «вес».
Это аналогично цепочке доказательства выполнения работы, где вероятность окончательности увеличивается, чем больше «работы» добавляется к цепочке. Однако Dfinity не останавливается на достигнутом и не полагается на этот вероятностный тип окончательных решений. PSP используется только для того, чтобы направлять тех, кто предлагает блоки. Для окончательности Dfinity применяет более быстрый метод с использованием протокола нотариального заверения.
Предполагается что выбранный случайным образом анкор работает без сбоев и предоставляет всем репликам новое несмещенное случайное значение ξr в начале каждого раунда r.
На рисунке показано, как протокол чередуется между расширением цепочки блоков и расширением цепочки выбранных случайным образом анкоров, а также показано, как выбранный случайным образом анкор, предложивший блок и нотариус продвигаются синхронно. Следовательно, представим последовательность ξr заданной, не делая дополнительных предположений относительно нее. Модель угрозы предполагается для всех групп. Однако для описания и понимания протокола нотариального заверения достаточно предположить, что существует только одна группа, состоящая из множества реплик U и, что | U | > 2f (U).
Комментарии
Комментарии для сайта Cackle