Что такое 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 декабря 2021 года проект провел «решающий начальный этап децентрализации» интернет-компьютера, запустив альфа-версию основной сети. Блокчейн был развернут на стандартизированных «узловых машинах», переданных под управление NNS. Фаза получила название Mercury. Генезис-блок Mercury запустили 7 мая. После этого NNS начала выпускать служебные токены ICP. С их помощью пользователи могут генерировать «нейроны» и принимать участие в управлении сетью, голосуя за новые предложения. Этому предшествовал запуск 30 марта бета-версии мейннета Mercury и еще раньше ее альфа-версии, до этого тестовых сетей – Bronze, Copper, Tungsten и Sodium. Кто управляет проектом 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 [CYCLEs ] — это вычислительные ресурсы, позволяющие осуществлять операции в Internet Computer. Все канистры потребляют ресурсы в виде циклов для маршрутизации сообщений и сохранения данных. Канистры поддерживают баланс счета для оплаты коммуникации, вычислений и хранения данных их приложениями. Стоимость обработки данных выражается в единицах циклов. Циклы отражают чистую стоимость операций и таких ресурсов, как физическое оборудование, стойко-место, энергия, устройства памяти и пропускная способность. Иначе говоря, единица цикла представляет стоимость выполнения одной инструкции WebAssembly. Благодаря лимиту на количество потребляемых канистрой циклов платформа не позволяет вредоносному коду истощать ресурсы. Относительная стабильность операционных расходов также позволяет, например, легко спрогнозировать количество циклов для обработки миллиона сообщений. Циклы аналогичны «газу» в Ethereum и «кредитам» в AWS, но имеют дополнительные сценарии использования применительно к данным, вычислению и выполнению операций. Их модель также предусматривает технологические подводные камни — например, растущую стоимость использования. Нейрон [Neuron] Нейроны являются частью системы под названием Blockchain Nervous System (BNS), также известной, как Network Nervous System (NNS). BNS подобна децентрализованной автономной организации (ДАО) — любой участник сети может предложить изменения в экономическую политику или обновление, за что платит комиссионный сбор. Голоса за предложения рассматриваются нейронами, которые контролируют операторы. Вес голоса обусловлен количеством токенов в стейке и периодом, в течение которого нейрон функционирует. Операторы нейронов получают вознаграждение в токенах за рассмотрение голосов. Этот процесс именуется «мыслительным майнингом» — thought mining. Если владелец нейрона считает, что у него нет достаточной экспертизы для голосования по сложным вопросам, он вправе изменить конфигурацию нейрона. Обновленный нейрон начинает «следовать» за нейроном с более опытным владельцем. Механизм «следования» отличается гибкостью: в зависимости от типа голосования (по вопросам экономики, политики, апгрейдов клиентов и т. д.) нейрон может «следовать» одному нейрону или нескольким. Также пользователи могут «растворять» свои нейроны, высвобождая токены внутри нейронов, и конвертировать их в циклы для осуществления вычислительных операций. ICP Служебный токен ICP (ранее известный как DFN) используется в качестве средства обеспечительного взноса (например, в стейкинге), позволяя участвовать в управлении проектом. Также он может выступать в качестве обеспечения, позволяющего клиентскому ПО или приватным облачным сетям DFINITY связываться с публичной сетью. Токены ICP служат вознаграждением для операторов нейронов, участвующих в голосованиях по вопросам работы сети. Сумма вознаграждения пропорциональна количеству токенов, стейкируемых в нейроне. В дальнейшем токены будут обеспечивать работу децентрализованных приложений по аналогии с газом в Ethereum. ICP будут сжигаться для создания новых циклов. Chain Key Technology Chain Key Technology — это открытый ключ в 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 Network Nervous System (NNS) — это автономное ПО, управляющее Internet Computer и регулирующее все процессы в экосистеме — от экономики до сетевой структуры. NNS размещен в самой сети и является частью системы протоколов, объединяющих вычислительные возможности нод по созданию блокчейна. NNS действует в качестве автономного мастер-блокчейна с открытым ключом для валидации транзакций ICP. NNS выносит на голосование предложения относительно расширения сети через добавление сабнетов или интеграцию новых нод. После этого владельцы служебных токенов ICP принимают соответствующие решения. Threshold Relay Threshold Relay — это инновационный механизм валидации, позволяющий масштабировать возможности вычисления и хранения данных. Threshold Relay состоит из четырех уровней: нотариальный уровень, обеспечивающий клиентам и внешним наблюдателям гарантии быстрой финализации, а также исключающий возможность атак со стороны майнеров-злоумышленников и атаки Сибиллы; уровень блокчейна, который формирует цепь из подтвержденных транзакций посредством Probabilistic Slot Protocol, которым управляет Variable Random Function; Variable Random Function (VRF) — псевдослучайная функция, управляющая процессом выбора временных производителей блока. Ключевым компонентом функции служит BLS подпись [Boneh-Lynn-Shacham]. С ее помощью DFINITY гарантирует, что ни один участник сети не установит выход очередного случайного выбора. Шансы индивидуального майнера стать членом комитета и вычислять блоки пропорциональны количеству токенов в стейке. Тому или иному блокчейну DFINITY приписывается определенный «вес». Он зависит от ранга майнеров, предлагающих блоки в блокчейне. На основе этого веса делается выбор между конкурирующими блокчейнами.идентификационный уровень, обеспечивающий регистрацию всех клиентов. ActorScript 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 Genesis — последней из пяти вех на пути к запуску Internet Computer. После успешного запуска генезис-блока сети Mercury нативный токен проекта Internet Computer (ICP) оказался в листингах ведущих биткоин-бирж и вошел в топ-5 криптоактивов по рыночной капитализации.