? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

Geekless.Blog

Follow in NewsfeedFollowing

Latest comments:

Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

Предложение по реализации в ZeroNet системы petname на основе сети доверия

on Feb 14, 2018 · 5 min read

Petname — система имён, отвечающая всем трём требованиям треугольника Zooko: глобальная, безопасная, легко запоминаемая.

Petname systems are naming systems that claim to possess all three naming properties of Zooko's triangle - global, secure, and memorable. Software that uses such a system can satisfy all three requirements. Such systems can be used to enhance security, such as preventing phishing attacks. Unlike traditional identity systems which focus on the service provider, Petname systems are decentralized and designed to facilitate the needs of the enduser as they interact with multiple services. (c) en.wikipedia.org/wiki/Petname

Так называемый треугольник Zooko утверждает о невозможности реализации системы имён (системы адресации), в которой имена отвечают всем трём условиям:

  • Глобальные, т.е. единообразно разименовываемые всеми участниками.
  • Безопасные, т.е. имя невозможно подменить.
  • Легко запоминаемые, т.е. состоящие из осмысленных слов, а не криптографических идентификаторов.

Децентрализованные petname-системы претендуют на удовлетворение всех трех условий. Однако глобальность таких систем достаточно условна. Имена можно рассматривать как глобальные, если мы заренее условились отталкиваться от единого источника имён, но в этом случае система становится преимущественно централизованной, и ухудшается условие безопасности. Можно считать, что система позволяет выбирать между глобальностью и безопасностью в широких пределах, в зависимости от потребностей конкретного пользователя.

Далее изложены соображения о реализации децентрализованной адресной книги для ZeroNet, которая совмещает в себе резолвер доменных имён и средство управления рейтингом пользователей. В перспективе реализация такого механизма позволит отказаться от использования Namecoin в качестве источника доменных имён (или сделать его лишь одним из множества потенциальных источников, использовать который или нет — пользователь решает сам) и решить проблему централизованности id-провайдеров, а также проблему централизованного управления user-generated контентом на сайтах (цензором контента, который попадет к пользователю, будет сам пользователь, а не владелец сайта, на котором идёт общение).


Описание системы

  • Любой пользователь сети может формировать свою адресную книгу приватно или публично. Если книга публична, другие пользователи могут использовать её как источник информации для своих адресных книг. Публичная книга может находиться на любом ресурсе, подконтрольном пользователю: как на собственном зайте, так и в виде темы на форуме, комментария в блоге и т.п.

  • Адресная книга может содержать ссылки на другие адресные книги. Результаты из связанных книг объединяются по некоторому алгоритму с целью получить итоговую базу данных с доменными именами и рейтингами, которая затем используется участником сети на своем компьютере. (Глубина анализа ограничена некоторым значением, чтобы не вызвать случайный или злонамеренный отказ в обслуживании.)

  • Резолвер работает следующим образом: В первую очередь используются данные из локальной книги на компьютере. Если в ней нет нужной информации, используются данные, собранные из линкованных книг. Если данные из линкованных книг содержает конфликт имён, пользователь уведомляется об этом. (После чего может либо добавить нужную запись в локальную книгу, либо решить, что не доверяет никакому из вариантов противоречивых данных и отказаться от посещения проблемного доменного имени.) Этот механизм требует реализации плагина к ZeroNet, или, возможно, доработки ядра.

  • При загрузке данных (таких как темы и комментарии на форуме) ZeroNet отфильтровывает пользователей, которые не имеют необходимого рейтинга, и не загружает их данные на компьютер. Этот механизм требует доработки ядра.

Пример адресной книги

Пример адресной книги приводится в виде plain text файла с комментариями, поясняющими потенциальные возможности системы. Реальный формат хранения может отличаться, например, это может быть json — в данный момент, на этапе обсуждения концепции, формат не имеет существенного значения.


# Доменные имена, назначенные пользователем:
domain zeroid.bit 1iD5ZQJMNXu43w1qLB8sfdHVKppVMduGz
domain id.kaffie.bit 1KH5BdNnqxh2KRWMMT8wUXzUgz4vVQ4S8p
domain Blog.ZeroNetwork.bit 1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8

# В качестве имени домена можно использовать любую строку,
# которая содержит допустимые символы и не является биткойн-адресом:
domain ru.zerotalk 1Apr5ba6u9Nz6eFASmFrefGvyBKkM76QgE
domain lor.talks 1BpFtPez7mSiShtXfb4wPfMT1dZTuRybfZ
domain geekless.blog 1BLoGBTid3NhGu8ts3fAfHJprnbrH3wfTV

# Рейтинг доверия к пользователям, зарегистрированным у провайдера zeroid.bit:
user-rating-regexp ^.*@zeroid.bit$ 0.1

# Имя zeroid.bit резолвится по списку доменов, которые мы описали выше.
# Вместо человеко-читаемого домена мы могли бы указать bitcoin-адрес напрямую:
user-rating-regexp ^.*@1iD5ZQJMNXu43w1qLB8sfdHVKppVMduGz$ 0.1

# Рейтинг доверия может иметь значения от 0.0 до 1.0:
user-rating nofish@zeroid.bit 1.0
user-rating ishift@zeroid.bit 0.9
user-rating balancer73@zeroid.bit 0.9
user-rating geekless@zeroid.bit 0.9
user-rating kaffie@zeroid.bit 0.9
user-rating shouko@zeroid.bit 0.9

# Если провайдер не гарантирует уникальность имён (или мы не доверям его гарантии),
# мы можем указать конкретный ключ, сопоставленный имени.
# Например, провайдер kaffie.bit позволяет использовать любое имя любому пользователю сети.
# Но из всех, кто пользуется именем shouko, мы доверям только одному пользователю:
user-rating shouko@kaffie.bit:18GkKhDTQniChKDxcoDgmgrUd7KehaihpW 0.9

# Команда link позволяет указать другие адресные книги, которым мы доверяем:

# Будем максимально доверять книге, расположенной на домене Blog.ZeroNetwork.bit:
link all Blog.ZeroNetwork.bit 1.0

# Рейтинг доверия книге на домене geekless.blog — 0.9:
link all geekless.blog 0.9

# Книга не обязательно должна быть подписана ключами домена,
# она может быть подписана ключем идентификатора пользователя.
# Но в этом случае требуется указать сайт, где хранится книга,
# чтобы резолвер смог её найти.
# Для хранения адресной книги могут использоваться как специализированные
# сайты, так и обычные форумы, блоги и тому подобное.

# Например, если пользователь kaffie@zeroid.bit решит поделиться своей
# публичной книгой на своём хабе ZeroMe, ссылка на неё может
# выглядеть так:
link all kaffie@zeroid.bit at 12h51ug6CcntU2aiBjhP8Ns2e5VypbWWtv 0.9

# Слово all в примерах выше, означало, что нас в адресной книге интересуют
# как списки имён, так и рейтинги пользователей.
# Можно указать эти параметры раздельно:

link domains Blog.ZeroNetwork.bit 0.9
link user-ratings Blog.ZeroNetwork.bit 0.5

# В качестве источника доменного имени можно использовать непосредственно
# сами сайты, если их содержимое доступно локально:
# (об этом в следующем разделе) :
link domains auto 0.5

Анализ книг производится рекурсивно, пока не будет достигнут порог по уровню доверия, либо пока не будет достигнуто предельное значение глубины рекурсии. Рейтинг доверия к книге влияет на то в какой мере оценки из этой книги оказывают вклад в рассчитанные значения. В простейшем случае:

# Локальная книга:
link domains book1 1.0
link domains book2 0.1

# Книга book1:
user-rating example@zeroid.bit 0.9

# Книга book2:
user-rating example@zeroid.bit 0.2

# Итоговый рассчёт:
# 0.9 * 1.0 / (1.0 + 0.1) + 0.2 * 0.1 / (1.0 + 0.1) =
# 0.9 * 1.0 / 1.1 + 0.2 * 0.1 / 1.1 =
# 0.81818 + 0.01818 =
# 0.83636

Для доменов рассчёт рейтинга также производится. Варианты сопоставления имён, получившие рейтинг ниже некоторого порогового, молча отбрасываются, не участвуя в работе резолвера и не приводя к индикации конфликта.

Автоматический рассчёт доменного имени для сайта

Программное обеспечение анализирует содержимое главного файла content.json всех сайтов на компьютере пользователя:

  • Если в файле указано доменное имя, используется оно.

  • Если доменное имя не указано, то делается попытка сформировать доменное имя из заголовка сайта.

Полученные данные затем могут использоваться в адресной книге, как указано в примере выше. Если данные входят в противоречие с данными из других адресных книг, пользователь будет уведомлён об этом, как и в случае конфликтом имён в "обычных" (неавтоматических) адресных книгах.

В конечном счёте, сам пользователь решает, под каким доменом он желает видеть какой сайт. Он может учитывать как мнение участников сети, которым он доверяет, так и мнение авторов сайтов, но окончательный выбор остаётся за пользователем.

Что дальше

На основе изложенных идей будет разработан прототип системы в виде зайта, а затем — предложена интеграция с кодом ZeroNet.

2 Comments:

user_name1 day ago
Reply
Body
matiskynavon Apr 24, 2018
Reply

ну давайте подумаем. к примеру есть некий домен mail.biz Два человека попытаются в своих книгах зарегистрировать данное имя. Что должно произойти?

mikaelaon Mar 28, 2018
Reply

Я в последнее врем больше склоняюсь к тому, что никакого каталога имен не нужно. Это всегда будет общая база, общее состояние с вытекающего их этого недостатками. Будь все хоть трижды задецентрализованно, на ста блокчейнах, ничего принципиально лучше DNS не получится. Общие имена для всей сети это удобно, но с ростом сети будет все больше и больше проблем с этим.

Взять например неймкоин - база довольно большая, упрощенная верификация и легкие клиенты развиваются медленно, но допустим они будут. Все равно существует много проблем с этим. Касательно самой релизации, возможного управления и конфликты с вытекающими из этого, например, хардфорками. А помимо этого нет единства в таких системах, например есть Emercoin и ENS, blockstack, а регистрацию имен сейчас поддерживает любой уважающий себя блокчейн.

В ZeroNet ситуация похожая, либо становится популярная одна база - ZeroID, с присущими её проблемами, как централизация, либо развиваются альтернативы вроде ZeroVerse и KaffieID, и тогда проблемы с совместимостью - какие-то сайты требуют одних, какие-то других, и в итоге приходится держать все, довольно крупные базы имен в потенциале, с кучей мусорных заброшенных аккаунтов. А ещё есть проблемы надежности, в некоторых регистраторах легче подменить имена, возникают проблемы безопасности.

По мне, так лучше использовать аккаунты непосредственно на зайте. Я не вижу большого смысла, например, в использовании ZeroID на ZeroMe - где существует свой регистратор имен, довольно независимый. Возникает избыточность. Куда лучше, если бы была возможность непосредственно зарегистрировать аккаунт на зайте, и потом заполнить информацию профиля. Вроде того как на ZeroVoat. Тогда никаких внешний регистраторов имен не требуется.

В интернете тоже по большей части такой подход. Все не идут и не регистрируют аккаунты в DNS, обычно аккаунты регистрируются непосредственно на сайтах или привязываются к существующим, вроде популярных соцсетей. OpenID не нашел большой популярности.

Что же касается непосредственно имен сайтов - тут тоже нет большой необходимости в именах, а недостатки находятся довольно быстро. Здесь не следует непосредственно ориентироваться на опыт интернета, где имена исторически сопоставляются ipv4 адресам, это во многом требует отвязки имени от конкретного IP, но в случае, например, скрытых сервисов tor, где в роли адреса используется хеш публичного ключа - уже нет большого стремления внедрить систему имен, например, за 7 лет своего существования Namecoin не стал использоваться сколь-нибудь ощутимо для для имен сайтов в Tor. В ZeroNet Namecoin набрал некоторую популярность, но в основном по причине не очень хорошего трюка вроде предоставления копии имен имеющих отношения к ZeroNet, но такой подход ненадежен, и позволяет совершить подмену адреса для имени. Кроме того, много адресов зарегистрировано вовсе не владельцами сайтов - что оставляет возможнось владельца имени подменить адрес, все держится только на честном поведении и добрых намерениях, то есть работает только при низкой популярности ZeroNet.

В действительности - люди не так уж широко пользуются именами сайтов в интернете. По большей части это либо переход из закладок, или по ссылкам, или переход через поисковые системы. Нигде из этого нет большой необходимости в запоминаемых именах.

Но есть ещё одно использование запоминаемых имен, где не используются никакие системы их регистрации - например имена приложений.

This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More