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?
Каністра — це обчислювальний блок, що дає змогу додатку залишатися ізольованим від середовища. Він зберігає інформацію про поточний стан програми, а також про попередні події, користувацькі взаємодії та зміни стану.
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 — нова мова програмування, що розробляється DFINITY Foundation разом із SDK. Вона покликана допомогти широкому колу розробників створювати і підтримувати в Internet Computer веб-сайти, корпоративні системи та інтернет-сервіси.
DFINITY Foundation прагне максимально оптимізувати Motoko для нового середовища. Internet Computer здатний підтримувати будь-яку кількість різних фреймворків.
Організація також працює над SDK, що підтримує мови програмування Rust і C. Передбачається, що таких наборів засобів розробки буде безліч.
Cycles [CYCLEs] — це обчислювальні ресурси, що дозволяють здійснювати операції в Internet Computer. Усі каністри споживають ресурси у вигляді циклів для маршрутизації повідомлень і збереження даних.
Каністри підтримують баланс рахунку для оплати комунікації, обчислень і зберігання даних їхніми додатками. Вартість обробки даних виражається в одиницях циклів.
Цикли відображають чисту вартість операцій і таких ресурсів, як фізичне обладнання, стійко-місце, енергія, пристрої пам’яті та пропускна здатність. Інакше кажучи, одиниця циклу представляє вартість виконання однієї інструкції WebAssembly.
Завдяки ліміту на кількість споживаних каністрою циклів платформа не дозволяє шкідливому коду виснажувати ресурси. Відносна стабільність операційних витрат також дає змогу, наприклад, легко спрогнозувати кількість циклів для обробки мільйона повідомлень.
Цикли аналогічні "газу" в Ethereum і "кредитам" в AWS, але мають додаткові сценарії використання стосовно даних, обчислення і виконання операцій. Їхня модель також передбачає технологічні підводні камені — наприклад, зростаючу вартість використання.
Нейрони є частиною системи під назвою Blockchain Nervous System (BNS), також відомої, як Network Nervous System (NNS).
BNS подібна до децентралізованої автономної організації (ДАО) — будь-який учасник мережі може запропонувати зміни в економічну політику або оновлення, за що платить комісійний збір. Голоси за пропозиції розглядаються нейронами, які контролюють оператори.
Вага голосу зумовлена кількістю токенів у стейку та періодом, протягом якого нейрон функціонує. Оператори нейронів отримують винагороду в токенах за розгляд голосів. Цей процес іменується "розумовим майнінгом" — thought mining.
Якщо власник нейрона вважає, що в нього немає достатньої експертизи для голосування зі складних питань, він має право змінити конфігурацію нейрона. Оновлений нейрон починає "слідувати" за нейроном з більш досвідченим власником.
Механізм "слідування" вирізняється гнучкістю: залежно від типу голосування (з питань економіки, політики, апгрейдів клієнтів тощо) нейрон може "слідувати" одному нейрону або кільком. Також користувачі можуть "розчиняти" свої нейрони, вивільняючи токени всередині нейронів, і конвертувати їх у цикли для здійснення обчислювальних операцій.
Службовий токен ICP (раніше відомий як DFN) використовується як засіб забезпечувального внеску (наприклад, у стейкінгу), даючи змогу брати участь в управлінні проєктом. Також він може виступати як забезпечення, що дозволяє клієнтському ПЗ або приватним хмарним мережам DFINITY зв’язуватися з публічною мережею.
Токени ICP слугують винагородою для операторів нейронів, які беруть участь у голосуваннях з питань роботи мережі. Сума винагороди пропорційна кількості токенів, стейкованих у нейроні.
Надалі токени забезпечуватимуть роботу децентралізованих додатків за аналогією з газом в Ethereum. ICP спалюватимуть для створення нових циклів.
Chain Key Technology
Chain Key Technology — це відкритий ключ у 48 байт, який робить старі блоки непотрібними, підвищуючи швидкість роботи інтернет-комп’ютера. Технологія дає змогу фіналізувати транзакції, що оновлюють стан смарт-контрактів за 1-2 секунди.
Internet Computer розділяє виконання функції смарт-контракту на дві категорії — виклики-запити і виклики-оновлення. Фіналізація викликів-оновлень займає 1-2 секунди.
Виклики-запити працюють інакше: будь-які зміни, які вони вносять у стан (у даному випадку, у сторінки пам’яті каністр), списуються після здійснення. Це дає змогу виконувати виклики-запити за мілісекунди.
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 складається з чотирьох рівнів:
- нотаріальний рівень, що забезпечує клієнтам і зовнішнім спостерігачам гарантії швидкої фіналізації, а також унеможливлює атаки з боку майнерів-зловмисників і атаки Сібілли;
- рівень блокчейна, який формує ланцюг із підтверджених транзакцій за допомогою 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 криптоактивів за ринковою капіталізацією.