Занурення в технологію блокчейн: Децентралізована нецензурированная система доменних імен

Продовжуємо цикл статей, присвячених технології блокчейн. Минула стаття з серії «Секрети EmerCoin» завершилася коротким описом NVS (Name Value Storage) – розподіленим сховищем записів на базі блокчейна Emer. Подробиці про це ви дізнаєтесь у матеріалі нижче.



Цикл статей «Занурення в технологію блокчейн»
1. Серія матеріалів, присвячених технології Emer:
1.1. Секрети EmerCoin.
1.2. Децентралізована нецензурированная система доменних імен.
1.3. Loading…
2. Швидкі та безпечні транзакції.
3. Екосистема цифровий стоматології.
4. Loading…

Введення
Слід зауважити, що довіра до такого сховища (траст) забезпечується консолідованими зусиллями майнер, які добувають собі монети, і тим самим продають мережі сервіс по підтриманню трасту.

За основу NVS був узятий код Namecoin, в якому існує подібне сховище для підтримки розподіленої доменної зони *.bit. Але якщо сховище від Namecoin призначений тільки для обслуговування єдиної доменної зони, а для завантаження інших типів даних треба робити додаткові кроки, то NVS відразу було реалізовано як сховище даних загального призначення, використовуючи яке можна створювати різні розподілені сервіси.

Що таке emcDNS і навіщо він потрібний
Історично першим сервісом EmerCoin став сервіс доменних імен, схожий на emcDNS від Namecoin. По мірі зростання атак на класичну доменну систему як з боку криміналу, так і від локальних влади, такий сервіс стає все більш затребуваним. Детальніше про це можна прочитати тут.

Крім того, даний сервіс дозволять будувати високонадійні і стійкі відомчі мережі з децентралізованим управлінням, імунні до відмови в обслуговуванні централізованих DNS або подібним атакам DNS Spoofing.

В системі emcDNS доменної записом, як будь-який інший NVS-записом, може управляти тільки її власник, точніше – власник гаманця, в якому знаходиться цей запис. Тільки він може її змінити або видалити. Слід врахувати, що так як запис знаходиться в блокчейне, її копії знаходяться в кожному Emer-сайті. Тобто кожен вузол містить інформацію про всіх NVS-записах, включаючи і доменні. Це дозволяє робити пошук такого запису локально, не запитуючи зовнішні сервера, що призводить до високої швидкості вирішення доменних імен, так і до високої надійності і безпеки – ваш провайдер не дізнається, які сайти ви зараз шукаєте, особливо якщо доступ до сайтів буде по https.

Обговорюючи архітектуру системи, у EmerCoin відбувся цікавий діалог з розробниками традиційної спрямованості.— Вітаємо! Ви винайшли файл hosts!
— Так. У якомусь сенсі так і є. Але тільки наш файл hosts:
  • Однаковий на всіх машинах (майнеры гарантують це).
  • У ньому кожен рядок може змінювати тільки господар цієї строчки, і ніхто інший.

  • Змінена рядок швидко реплікується на інші машини.
  • У ньому є індекс для швидкого пошуку.


Відмінності від Namecoin
При проектуванні сервісу підхід Namecoin був переглянутий, і був внесений ряд поліпшень, які зробили цей сервіс більш привабливим і практичним. Розглянемо їх детально.

Кілька доменних зон замість однієї

Якщо Namecoin обслуговує тільки фіксовану доменну зону *.bit, аналогічний сервіс Emer дозволяє обслуговувати кілька зон одночасно, причому нові зони запроваджуються просто записом у config-file. Це відкриває можливості створювати на базі emcDNS власні «відомчі» доменні зони, які будуть розпізнаватися тільки відповідно сконфігурованими Emer-вузлами. В даний час система обслуговує чотири публічні доменні зони, доступні через сервера OpenNIC:

  • *.coin – основний альтернативний домен, в першу чергу пов'язаний з крипто-монетами та іншими грошима;
  • *.emc – домен для сервісів, пов'язаних з EmerCoin;
  • *.lib (від liberty library – для політичних рухів за все хороше, проти всього поганого) – для бібліотек різного вмісту;
  • *.bazar – для різних торговельно-обмінних сайтів.

Можливість задати термін оренди запису

На відміну від Namecoin, де термін оренди запису становить приблизно 200 днів, і її треба регулярно поновлювати, в NVS можна указати термін оренди, і він може становити століття. Більш довгий термін оренди буде коштувати дорожче, але ненабагато. Цей підхід дозволяє спростити адміністрування, і знижує ризик втрати контролю над записом, який можливий у разі закінчення запису і перехоплення її іншим користувачем мережі.

Можливість видалити запис

Крім можливості резервування запису на будь-який термін, в системі Emer існує можливість вимкнути запис до закінчення строку оренди. Namecoin подібним функціоналом не володіє.

Вбудований DNS server rfc1035

Система Namecoin підтримує тільки зберігання DNS-записів. Не існує механізму вилучення і передачі цих записів програмам-клієнтам в стандартному DNS-форматі. Наскільки відомо, для використання Namecoin необхідно дамп всю базу імен, і передавати її у користування класичного DNS-сервера, який здійснює пошук своїми механізмами і розсилає відповіді в стандартному форматі rfc1035, придатний для використання.

Кожен гаманець EmerCoin має вбудований DNS-сервер, який обробляє стандартні запити інтернет-формату rfc1035, і відповідає в тому ж форматі, який використовується у всьому Інтернеті. Це дозволяє говорити про справжню децентралізації доменної системи, коли кожен гаманець є DNS-сервером, а не тільки виділені сервера-шлюзи. Ця стандартизація також полегшує інтеграцію emcDNS з іншими підсистемами.

Управління поддоменами

Цей момент дуже важливий у «плоскої» доменній мережі, в якій відсутня деревоподібна структура серверів, які обслуговують ту чи іншу доменну зону. Розглянемо атаку типу «захоплення піддомену».

Уявімо, що відсутній механізм захисту або управління поддоменом, і існує сервер victim.emc. Власник домену створив ще одне ім'я, www.victim.emc, яке призначив на той самий сервер. Однак зловмисник може створити ім'я www1.victim.emc, і призначити його на свій шкідливий сервер. Формально, це два різних імені, які ніяк не пов'язані. Однак згідно з парадигмою побудови Інтернет-імен і класичної мережі DNS, користувач свою довіру до сервера victim.emc перенесе і на www1.victim.emc, внаслідок чого, наприклад, може «подарувати» зловмиснику свій пароль.

На момент аналізу коду Namecoin, не було механізму управління поддоменами. Тобто, для створення і управління поддоменами сайт повинен тримати власний NS-сервер, який і розв'язує ці піддомени. Всі записи доменів 3-го рівня даною системою просто ігноруються.

В системі emcDNS існують два правила:

1. Всі запити на доменне ім'я будь-якого рівня, крім «дозволених винятків», дозволяються як доменні імена другого рівня. Тобто, якщо запис victim.emc не містить винятків, запити до будь піддоменах будуть в ній вирішуватися як до victim.emc. Наприклад, запит на дозвіл імені hey.give.me.victim.emc буде повністю еквівалентний запитом на ім'я victim.emc.

Якщо в
value
імені вказаний спеціальний тег
SD
, то його значення інтерпретується як список дозволених винятків, які обслуговуються системою. Розглянемо в якості прикладу emcDNS-запис бібліотеки Флібуста:

"name" : "dns:flibusta.lib",
"value" : "A=81.17.19.227|SD=static,cn|TXT=Flibusta Library",

Тут ми бачимо тег
SD
, що містить два винятки –
static
,
cn
. Означає, що система emcDNS дозволяє імена static.flibusta.lib cn.flibusta.lib, а не редукувати їх до flibusta.lib. Записи цих імен також можуть містити тег
SD
, і таким чином, можна буде будувати довірені доменні імена будь-якого рівня. Не довірені записи будуть зредуковані імені другого рівня.

Корисні посилання про практичне застосування
1. В даний час, ця система доменних імен використовується поруч онлайн-бібліотек і торрент-трекерів. Детальніше можна дізнатися тут.
2. Короткий опис з прикладом і картинкою, як створити запис.
3. Повне ж опис системи.
4. Щоб стати клієнтом системи, можна підключитися до будь-якого сервера OpenNIC, або ж на своїй локальній машині, або в локальній мережі розгорнути шлюз у emcDNS. Інструкція про те, як підключити доменні зони emcDNS через OpenNIC. Цей спосіб не вимагає від вас установки ні гаманця EmerCoin, ні будь-яких зовнішніх програм або плагінів. Але недоліком цього способу є використання зовнішнього DNS-сервера, що частково дискредитує ідею повної децентралізації.
5. Опис інших способів підключення до системи, з повним функціоналом. Дивіться розділ Integration into a regular DNS tree. Рекомендовані рецепти полягають в тому, що в локальному комп'ютері або локальній мережі встановлюється гаманець EmerCoin, і створюється точка спряження, яка «змішує» доменні зони ICANN і emcDNS. Сполучення здійснюється за допомогою будь-DNS Cache програми. У прикладах наведено BIND, DNSMASQ, Acrylic.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.