Follow

- ALternative Free Identity System.
Это очень компактная система DNS на базе блокчейна.

Основные свойства системы:
1. Блокчейн мал, не содержит криптовалюты, не требует постоянного майнинга.
2. Блокчейн позволяет парсить блоки, проверять их валидность, оставлять из них нужную информацию в локальной базе (sqlite) и отбрасывать блоки, оставляя только свежий кусок заданной высоты.
3. Сложность майнинга динамическая, после каждого блока с новой информацией (не изменения старой) поднимается примерно на 75%, потом снижается каждую минуту, возвращаясь к номиналу за 15 минут.
4. Для консенсуса по длине цепи после каждого блока с информацией добавляются пустые блоки самим намайнившим последний инфоблок и добровольцами.
5. Чтобы не раздувался блокчейн за счёт пустых блоков, майнинг новых инфоблоков осуществляется "вразрез" блокчейна, ветками. То есть, блок майнится сразу за последним инфоблоком, а ноды примут его вместо цепочки пустых блоков, отбрасывая их.
6. Ради приватности будет применяться метод одуванчика - когда отсылается блок, он с 50% вероятностью отсылается только одной ноде, а не всем сразу. То есть, он может сделать несколько скачков по разным нодам, потом какая-нибудь нода на его пути разошлёт его всем своим пирам. Таким образом, сложно будет вычислить с какого IP начал распространяться блок.
7. Изначально будет поддерживаться одна зона - .ygg. Чтобы добавить новые их придётся намайнить. Первая зона, вполне возможно, будет тоже намайнена в самом Genesis-блоке. Сложность майнинга зон будет выше, чем у доменов. При майнинге зоны указывается "стоимость" майнинга доменов в будущей зоне. Потом владелец зоны сможет изменить стоимость, но только в сторону удешевления.

· · Web · 1 · 0 · 0

Система разрабатывается на языке Rust. В качестве GUI используется библиотека web-view, которая использует системный веб-браузер для отображения веб-интерфейса в удобном окошке.
Способ запуска из командной строки и в фоновом режиме тоже планируется.

Show thread
@Revertron я уже по этому описанию вообще сомневаюсь, что это будет работать. По крайней мере придется решать много проблем.

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

В твоем случае можно взять блокчейн до любого желаемого места (до регистрации нужного имени), и переписать всю информацию после зарегистрировав то же имя и направив на желаемый адрес. Как предполагается эту ситуацию выявлять. Для эффективности атаки можно сгененировать PoW суммарно, чтобы оно обходило основную цепь по суммарной сложности. И будут разные узлы рассылать конфликтующие цепи, как среди них определять основную? Может не стоит экономить на пустых блоках, а сделать время блока с приемлемо долгим (3.5 минуты, например). Только нужно как-то мотивировать узлы на нахождение в майнинге, а это сложно в сети без криптовалюты. Еще можно глянуть на подход FlyClient, там вроде как описывается реализация для ультралегких клиентов.

Без производства новых блоков в общем-то я не знаю блокчейнов среди криптовалют. Разве есть проекты на DAG: IOTA, Nano, где это попытались сделать. Но с первым пришлось подпирать систему централизованным координатором, про второй много не знаю и вообще не считаю такой подход надежным.

> метод одуванчика - когда отсылается блок, он с 50% вероятностью отсылается только одной ноде, а не всем сразу.

Это хорошо, хотя и не понимаю, зачем это для Yggdrasil, где нет сокрытия IP. И разве Dandelion не всегда рассылает транзакции через stem? Имеет ли смысл экономить на этом при небольшом трафике.

@scx А смотри, в пункте 5 я написал как блокчейн будет "закрываться".

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

@Revertron да, но после этих закрывающих пустых блоков будут длительные периоды простоя, неактивности. Потом вот получает узел цепь, которая обрывается неделю назад. Это никто не пытался регистрировать имена все это время, или же он видит не все?

@scx Очень хороший вопрос, но тут есть один прикол - централизация, о которой не думают ;)
Все новые узлы ведь должны знать куда подключаться, у них в конфигах есть список начальных нод, с которых они получают основную инфу о состоянии блокчейна и списки пиров сети.

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

@scx Так тут получается примерно как с PoA - больше доверия начальным узлам. Фиг его знает, кто там ещё в сети шарится :)

@Revertron ты исходишь из предположения "атакующий должен переделать работу честных узлов", обычно в блокчейнах предположение "атакующий должен обогнать честные узлы по скорости генерации блоков". Последнее более жесткое предположение и оно требует от 51% хэшрейта сети. А если новые блоки постоянно производиться не будут, то переписывать можно будет с куда меньшим процентом общего хэшрейта.

@scx Я уточню - ты имеешь ввиду, что в таком блокчейне можно будет попытаться продвинуть свой вариант цепи через довольно большой промежуток времени?
Я думаю о том, что бы всё же как-то запретить рассылать конфликтующие блоки через какое-то короткое время, например через 15 минут.

Sign in to participate in the conversation
Mastodon on ZHub

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!