Основные принципы DFINITY
Что такое DFINITY?
Внимание! Статья устарела и ждет обновления.
DFINITY — проект, направленный на создание децентрализованной облачной блокчейн-инфраструктуры для интернета нового типа.
Разработчики стремятся реализовать первоначальные цели Ethereum по созданию «мирового компьютера». Основатели называют проект «безумной сестрой Ethereum», «интернет-компьютером» и «облаком 3.0», а также рассчитывают, что DFINITY составит конкуренцию Google Cloud и Microsoft Azure.
Блокчейн-инфраструктура проекта призвана упростить разработку новых программных систем, снизить затраты на сохранение и защиту информации, а также обеспечить конфиденциальность пользовательских данных.
Предполагается, что «интернет-компьютер» будет поддерживать множество различных приложений, как корпоративных, так и предназначенных для индивидуальных пользователей. Новая публичная вычислительная среда будет также задействована для хостинга социальных сетей, мессенджеров, поисковых сетей и т. д.
Кто и когда создал DFINITY?
Основатель и главный научный сотрудник DFINITY Foundation и проекта Internet Computer — Доминик Уильямс. Он является выпускником Королевского колледжа Лондона, серийным предпринимателем, занимается теоретическими исследованиями и практическими разработками в области распределенных вычислений.
В 2012 году Уильямс поселился в Пало-Альто, Калифорния. Одним из самых крупных его проектов стала игра MMO [Massively Multiplayer Online] с миллионами пользователей. Уильямс разработал для нее инновационную серверную технологию с горизонтальным масштабированием.
В период разработки компьютерных игр его заинтересовала идея сторонников Ethereum о создании «мирового компьютера». В 2013 году Уильямс полностью посвятил себя изучению блокчейна.
К 2015 году в центре внимания Уильямса оказалась модель с акцентом на генерацию случайных чисел и использование пороговой криптографии в децентрализованной сети. Он дал этому концепту название DFINITY (от Decentralized Infinity — «децентрализованная бесконечность») и создал простой веб-сайт проекта. Впоследствии Уильямс создал базовую архитектуру «интернет-компьютера» и фреймворк для размещенного на нем ПО.
В том же году состоялся публичный анонс проекта DFINITY. В октябре 2016 года в швейцарском Цуге была зарегистрирована некоммерческая организация DFINITY Foundation , занимающаяся развитием проекта.
В настоящее время команда DFINITY насчитывает 180 человек. В нее входят бывшие разработчики из Alphabet и Uber, а также доктора наук из Йельского университета. Исследовательские центры DFINITY Foundation расположены в Пало-Альто, Сан-Франциско и Цюрихе. Отдельные группы разработчиков работают в Японии, Германии, Великобритании и в нескольких штатах США.
В феврале 2017 года проект провел первый краудсейл токена. По его итогам было привлечено 3,9 млн швейцарских франков .
Год спустя DFINITY привлек
$61 млн от венчурных фондов Andreessen Horowitz и Polychain Capital.
В августе 2018 года DFINITY Foundation провел закрытую продажу токенов для аккредитованных инвесторов, собрав $102 млн . Раунд финансирования возглавило криптовалютное подразделение Andreessen Horowitz (a16z). Также участниками раунда стали Polychain Capital, SV Angel, Aspect Ventures и Multicoin Capital. Цена одного токена составила $4,18 , а монеты на общую сумму в $35 млн были распределены между представителями сообщества посредством эирдропа.
Изначально релиз минимально жизнеспособного продукта (MVP) был запланирован на первый квартал 2019 года. Однако в декабре 2018 года представители проекта заявили, что работа над «урезанной» версией может замедлить прогресс в создании полноценного продукта, и отложили запуск.
- В ноябре 2019 года стартовала первая фаза развития проекта под названием Copper. На этом этапе была запущена альфа-версия набора для разработки ПО ( SDK ) и опубликована техническая документация языка смарт-контрактов Motoko.
- 23 января 2020 года стартовала вторая фаза — Bronze. Проект продемонстрировал открытую децентрализованную версию социальной сети для поиска и установления деловых контактов LinkedIn под названием LinkedUp, работающую на децентрализованном «интернет-компьютере» DFINITY.
- В июне 2020 года проект открыл интернет-компьютер сторонним разработчикам в рамках фазы Tungsten. Также DFINITY представил «открытую альтернативу сервису TikTok» под названием CanCan.
- 30 сентября 2020 года стартовала четвертая фаза развития проекта под названием Sodium. DFINITY запустила систему управления протокола, призванную стать последним элементом перед публичным релизом децентрализованного интернет-компьютера. Network Nervous System (NNS) представляет собой «алгоритмическую систему управления, включающую независимые дата-центры». В ее основе лежит токен проекта ICP. Вместе с запуском системы управления разработчики объявили о создании Beacon Fund — специального фонда в размере $14,5 млн для инвестиций в компании и индивидуальных предпринимателей, создающих решения на базе DFINITY. Управление Beacon Fund, поддерживаемого Andreessen Horowitz, взял на себя хедж-фонд Polychain Capital.
- 18 декабря 2020 года проект провел «решающий начальный этап децентрализации» интернет-компьютера, запустив альфа-версию основной сети. Блокчейн был развернут на стандартизированных «узловых машинах», переданных под управление NNS. Фаза получила название Mercury.
- Генезис-блок Mercury запустили 7 мая
NNS начала выпускать служебные токены ICP . С их помощью пользователи могут генерировать «нейроны» и принимать участие в управлении сетью, голосуя за новые предложения. Этому предшествовал запуск 30 марта бета-версии основной сети Mercury .
- Кто управляет проектом DFINITY?
Проектом управляет сообщество пользователей, голосующее по вопросам обновлений, экономической политики и развития DFINITY.
Сбором средств на развитие проекта и проведением эирдропов занимается DFINITY Foundation .
- Какие технологические особенности DFINITY?
Канистры [ Canisters ]
Канистра — это вычислительный блок, позволяющий приложению оставаться изолированным от среды. Он хранит информацию о текущем состоянии программы, а также о предыдущих событиях, пользовательских взаимодействиях и изменениях состояния.
Open Internet Service
Open Internet Service — технология, применяемая в «интернет-компьютере». Код встроен в саму «ткань» интернета, что позволяет сервису работать автономно, опираясь на поддержку со стороны пользователей.
Когда разработчик хочет создать Open Internet Service, он передает контроль над своими канистрами токенизированным канистрам под публичным управлением, которые отвечают за обновления и конфигурацию. Далее процессом руководят NNS , открывая возможность голосовать и принимать решения касательно его кода, политики и функций.
Open Internet Service может маркировать общедоступные функции (например, API ) как «постоянные». В этом случае, канистры не могут переписывать такие общедоступные функции. Обновление может привести к понижению качества функционала, который предоставляет канистра, аннулируя API . В этом случае система управления Internet Computer вносит изменения в систему управления Open Internet Service . Они остаются в силе до восстановления ожидаемого функционала.
Постоянные API позволяют разработчикам создавать сервисы, которые полагаются на данные или функционал, предоставляемые другими сервисами. При этом они свободны от платформенного риска — зависимости от API технологических компаний.
- Например, когда платформа LinkedIn отозвала доступ к своему API у тысяч компаний, те в одночасье утратили все свои данные и источник аутентификации.
- Open Internet Service функционирует, не имея владельца и поддерживая постоянный допуск к «коду» для пользователей.
- Последние могут его использовать без опасений утратить или лишиться к нему доступа.
Motoko
Motoko — новый язык программирования, разрабатываемый DFINITY Foundation наряду с SDK . Он призван помочь широкому кругу разработчиков создавать и поддерживать в Internet Computer веб-сайты, корпоративные системы и интернет-сервисы.
DFINITY Foundation стремится максимально оптимизировать Motoko для новой среды. Internet Computer способен поддерживать любое количество различных фреймворков.
Организация также работает над SDK , поддерживающим языки программирования Rust и C. Предполагается, что таких наборов средств разработки будет множество.
Циклы [Cycles]
Циклы [ CYCLEs ] — это вычислительные ресурсы, позволяющие осуществлять операции в Internet Computer. Все канистры потребляют ресурсы в виде циклов для маршрутизации сообщений и сохранения данных.
Канистры поддерживают баланс счета для оплаты коммуникации, вычислений и хранения данных их приложениями. Стоимость обработки данных выражается в единицах циклов.
Циклы отражают чистую стоимость операций и таких ресурсов, как физическое оборудование, стойко-место, энергия, устройства памяти и пропускная способность. Иначе говоря, единица цикла представляет стоимость выполнения одной инструкции WebAssembly.
Благодаря лимиту на количество потребляемых канистрой циклов платформа не позволяет вредоносному коду истощать ресурсы. Относительная стабильность операционных расходов также позволяет, например, легко спрогнозировать количество циклов для обработки миллиона сообщений.
Циклы аналогичны «газу» в Ethereum и «кредитам» в AWS, но имеют дополнительные сценарии использования применительно к данным, вычислению и выполнению операций. Их модель также предусматривает технологические подводные камни — например, растущую стоимость использования.
Нейрон [ Neuron ]
Нейроны являются частью системы под названием Blockchain Nervous System (BNS), также известной, как Network Nervous System (NNS).
BNS подобна децентрализованной автономной организации (ДАО) — любой участник сети может предложить изменения в экономическую политику или обновление, за что платит комиссионный сбор. Голоса за предложения рассматриваются нейронами , которые контролируют операторы.
Вес голоса определяется количеством токенов в стейке и периодом работы нейрона. Операторы нейронов получают вознаграждение за рассмотрение голосов, этот процесс называется «мыслительным майнингом». Если владелец нейрона не уверен в своей экспертизе, он может изменить конфигурацию нейрона, который начнет «следовать» за нейроном с более опытным владельцем. Механизм «следования» гибок, нейрон может «следовать» одному или нескольким нейронам в зависимости от типа голосования. Пользователи могут также «растворять» свои нейроны и конвертировать их в циклы для вычислительных операций.
ICP
Токен ICP используется в качестве обеспечительного взноса и позволяет участвовать в управлении проектом. Он также может выступать в качестве обеспечения, связывающего клиентское ПО или приватные облачные сети DFINITY с публичной сетью. Токены ICP служат вознаграждением для операторов нейронов, участвующих в голосованиях по вопросам работы сети. Сумма вознаграждения пропорциональна количеству токенов в стейке нейрона. В дальнейшем токены будут использоваться для работы децентрализованных приложений, а ICP будут сжигаться для создания новых циклов.
Chain Key Technology
Технология Chain Key используется в DFINITY для обеспечения безопасности и устойчивости сети. Она использует специальные ключи, которые обеспечивают защиту от атак и позволяют сети работать в условиях цензуры. Открытый ключ в 48 байт делает старые блоки ненужными , повышая скорость работы интернет-компьютера . Технология позволяет финализировать транзакции , обновляющие состояние смарт-контрактов за 1-2 секунды .
Internet Computer разделяет выполнение функции смарт-контракта на две категории — вызовы-запросы и вызовы-обновления . Финализация вызовов-обновлений занимает 1-2 секунды .
Вызовы-запросы работают иначе: любые изменения, которые они вносят в состояние (в данном случае, в страницы памяти канистр), списываются после осуществления. Это позволяет выполнять вызовы-запросы за миллисекунды .
Subnet
Subnet — это блокчейн в сети Internet Computer, который способен интегрироваться с другими блокчейнами, увеличивая свою производительность. Network Nervous System объединяет ноды независимых дата-центров, которые создают сабнеты, используемые для хостинга канистр.
Сабнеты прозрачны по отношению к коду канистры и ее пользователям — разработчики и пользователи просто взаимодействуют с Internet Computer. При этом ICP-протокол безопасным и прозрачным образом дублирует данные и вычисления в нодах сабнета на глубинном уровне.
В отличие от традиционных блокчейнов, децентрализацию данных и вычислительных процессов контролирует протокол. Формирование пулов (как в PoW и PoS-блокчейнах ), а также нод-валидаторов с большим количеством токенов в стейке , создающих дополнительные блоки (как в PoS-блокчейнах), невозможно.
Прямое взаимодействие с сабнетами и между самими сабнетами осуществляется благодаря Chain Key Technology .
Network Nervous System
Система управления сетью (NNS) — это автономное ПО, которое регулирует все процессы в экосистеме Internet Computer — от экономики до сетевой структуры.
NNS встроен в саму сеть и является частью системы протоколов, объединяющих вычислительные возможности нод по созданию блокчейна.
NNS является автономным мастер-блокчейном с открытым ключом для валидации транзакций ICP.
NNS предлагает владельцам служебных токенов ICP голосовать за расширение сети путем добавления сабнетов или интеграции новых нод.
Механизм порогового ретранслятора
Пороговый ретранслятор — это инновационный механизм валидации, который позволяет масштабировать возможности вычисления и хранения данных.
Механизм порогового ретранслятора состоит из четырех уровней:
- Нотариальный уровень , который обеспечивает клиентам и внешним наблюдателям быструю финализацию и защиту от атак со стороны злоумышленников и Сибиллы.
- Уровень блокчейна , который формирует цепь из подтвержденных транзакций посредством Probabilistic Slot Protocol, управляемый Variable Random Function.
- Variable Random Function ( VRF ) — псевдослучайная функция, управляющая процессом выбора временных производителей блока, используя BLS подпись ( Boneh-Lynn-Shacham ).
DFINITY гарантирует, что ни один участник сети не установит выход очередного случайного выбора. Шансы индивидуального майнера стать членом комитета и вычислять блоки пропорциональны количеству токенов в стейке. Тому или иному блокчейну DFINITY приписывается определенный «вес». Он зависит от ранга майнеров, предлагающих блоки в блокчейне. На основе этого веса делается выбор между конкурирующими блокчейнами.
- идентификационный уровень , обеспечивающий регистрацию всех клиентов.
ActorScript — нативный язык программирования DFINITY, призванный упрощать управление состоянием приложения для программистов посредством так называемой ортогонально устойчивой среды, в которой активным программам не требуется отзывать или сохранять свое состояние.
Все контракты ActorScript компилируются в инструкции WebAssembly , чтобы виртуальная машина DFINITY могла выполнять логику работающих в сети приложений. Преимущество использования стандарта WebAssembly в том, что его поддерживают все основные браузеры, а различные языки программирования можно компилировать в Wasm (не только ActorScript).
Как развивается DFINITY?
- В январе 2021 года Доминик Уильямс сообщил о существовании дорожной карты проекта, рассчитанной на 20 лет. Однако этот документ пока не опубликован.
- В феврале 2021 года в Женеве зарегистрировали Internet Computer Association — еще одну организацию, призванную развивать проект наряду с DFINITY Foundation. Она будет поддерживать форум для стейкхолдеров сообщества (независимых дата-центров и финансовых партнеров) и способствовать их координации.
- DFINITY Foundation планирует увеличить количество разработчиков со 150 до 300 к концу 2021 года.
- 17 марта 2021 проект открыл предварительную регистрацию участников запуска Mercury — последней из пяти вех на пути к запуску Internet Computer.
- После успешного запуска генезис-блока сети Mercury нативный токен проекта Internet Computer (ICP) оказался в листингах ведущих биткоин-бирж и вошел в топ-5 криптоактивов по рыночной капитализации.