Pages:
Author

Topic: Алгоритм распределенного доверия - page 8. (Read 17887 times)

legendary
Activity: 2534
Merit: 1510
В процессе обсуждения этой темы, иногда появляются интересные мысли, которые приводят к улучшению первоначальной идеи или её дополнению. Поэтому все самые свежие дополнения и улучшения, будут появляться в этих двух постах вначале и иметь самую актуальную версию.


Алгоритм распределенного доверия. Часть 2.

Вся тема не влезла в один пост и поэтому вынужден продолжить вторую часть здесь.



Асинхронная таблица данных

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

/дата и время
/номер блока
/номер монеты или хеш номера монеты
/адрес владельца или же получателя, который становится текущим владельцем
/хеш или хеш-контейнер (в нем будут в виде хеша прописываются хеш всей транзакции, хеш смарт-контракта или хеш уникального цифрового актива)
/адрес отправителя
/электронная подпись отправителя

В сети будут только 2 типа устройств: ноды содержащие весь блокчейн или его большую часть и клиенты.

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

Примерная структура транзакции:

/дата и время
/номер блока
/номер монеты или хеш номера монеты
/адрес отправителя
/сумма перевода
/адрес получателя
/хеш всей транзакции (это будет храниться в таблице данных у нод, условно это и есть хеш-контейнер)
/электронная подпись отправителя
/подписи участников блока во время которого была проведена данная транзакция и голосов не меньше 55% от сети (это именно те самые ноды, что проголосовали за текущий блок и из их количества в этом блоке и набираются подписи)

Если Вы обратили внимание, то сама асинхронная таблица хранит немного данных. Когда приходит транзакция, то вначале проверяется свои данные, что есть по транзакции, потом владелец этого адреса может по требованию предъявить следующие данные:

- адреса всех подписывающих нод блока, на котором состоялась транзакция;

- не менее 55% подписей сети по этой прошедшей уже транзакции.

Если все верно, то транзакция одобряется нодой и рассылается дальше, как только набирается не менее 55% подписей по этой транзакции, каждая нода производит изменения в своей таблице:

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


Как видите в таблице в основном хранятся хеши тразакций, а основные данные должны находится у владельцев адресов, это они должны раскрывать данные, чтобы хеши этих данных совпали с тем, что есть в таблице.

Таким образом клиент хранит и предоставляет нодам для проведения транзакции следующую информацию, это блок последней транзакции (он обязан храниться, но не обязательно предоставляться, нода может для проверки использовать свои данные), далее информация, которая раскрывает хеш-контейнер, который храниться в таблице у ноды напротив данного адреса. И список подписей, которые заверили данную транзакцию.


Начальное распределение денег

Начальное распределение сделаем по-умному, а именно, типа smart airdrop.

Монеты всей суммы поделим на 3 части.

Часть первая, это авторитетная. Она раздается самым авторитетным людям в крипте либо на этом форуме.

Вторая, это полезная. Для тех кто сделал или готов сделать за монеты, что-то полезное.

Третья, аукционная. Оставшаяся часть, причем она самая маленькая по сравнению с двумя другими. То тут монеты продаются с аукциона.


Эмиссия денег и инфляция

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

Обычно он равен от 10 до 20. Что означает окупаемость от 10 до 20 лет. Всё что выше нет смысла рассматривать для долгосрочного владения.

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

И так начнем, чтобы заработать 100% от вложенного капитала, нам надо каждый год получать 7,178% и реинвестировать это в течение 10 лет.

Пусть у нас идеальная ситуация и каждый час создается один блок. За год создается 8760 блоков, где, чтобы получить 7,178% за год, надо на каждом блоке получать 0,00075% от суммы.


Таким образом у нас вознаграждение за создание блока и поддержание ноды онлайн составит 7,178% в год. Данное вознаграждение является наиболее максимальным и используется только при наборе минимального порога в 60% голосов сети.

Здесь используется адаптивный алгоритм в диапазоне 60%-100% голосов сети для создания блока и 55%-100% голосов сети для принятия транзакции.

Условно, если на этом блоке набрано всего 60% голосов и больше нет, то можно создавать блок, а для принятия транзакций всегда порог на 5% меньше, т.е. нижняя допустимая планка это 55%.

Основная суть данного нововведения, что у нас также будет изменяться вознаграждение. Оно будет меняться в диапазоне при 60% голосов в сети, участники создания блока получат из расчета 7,178% годовых, а при 100% голосов сети участники получат только 1%.

Таким образом алгоритм, создает экономические стимулы участников сети при их уменьшении повышенной наградой, что тем самым будет привлекать остальных.



Итог

Резюмирую, что таким образом мы смогли получить следующую сеть, где в блокчейне, блок, которого создается раз в час. Определяются активные участники сети, которые в сумме имеют 60% для создания блока и не меньше 55% для заверения транзакции голосов от всей сети. Также именно в блоке создаются новые деньги в виде вознаграждения (типа, как в майнинге) для всех участвующих в этом блоке.

После того, как блок создан, то теперь сеть становиться асинхронна. Для проведения любой транзакции, вначале проводиться блокировка по адресам, а потом простой сбор подписей, как только набирается по этой транзакции 55% голосов сети и выше, то запись об этой транзакции обновляется в таблице асинхронных данных.

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

Так же как побочный эффект здесь нет комиссий за проведение транзакций.

Использование только хеш-контейнеров в асинхронной таблице данных приводит нас к тому, что в хеш контейнерах можно хранить последнюю транзакции с актуальными балансами, смарт-контракты и уникальные цифровые активы.

Сами данные хранятся у пользователей, как блок блокчейна, при котором была проведена последняя транзакция (он обязан храниться, но не обязательно предоставляться, нода может для проверки использовать свои данные). Далее информация, которая раскрывает хеш-контейнер, который храниться в таблице у ноды напротив данного адреса. И список подписей, которые заверили данную транзакцию.







sr. member
Activity: 1498
Merit: 342
the Trend is Your Friend?
Первое - 10 уке -допустим 1уке=1btc, получим, что голосовать могут только те у кого 10btc, то есть меньшинство.

Четвертое - логично, но что помещает подобному владельцу раскинуть средства на разные кошельки?

Пока что так, остальное пытаюсь представить.

legendary
Activity: 2534
Merit: 1510
В процессе обсуждения этой темы, иногда появляются интересные мысли, которые приводят к улучшению первоначальной идеи или её дополнению. Поэтому все самые свежие дополнения и улучшения, будут появляться в этих двух постах вначале и иметь самую актуальную версию.


Алгоритм распределенного доверия. Часть 1.

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


Блокчейн

Разница между блокчейном и распределенной базой данных в децентрализации. И когда нам говорят, что криптовалюта и биткоин в частности плохо, а вот блокчейн классная технология, то это просто не имеет смысла.

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

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

Казалось бы вырисовывается классический POS, однако, надо делать по другому.
У нас будет один классический блокчейн, где вначале находится хеш, как в биткоине. Это чистый POW, этот хеш может найти любая нода и распространить в сеть. А вот чтобы не было форков, то его подписывают заверяющие ноды, такому блоку надо набрать минимум 60% голосов сети.

Это именно блокчейн  для заверяющих нод. По аналогии, он чем то напоминает MakerDAO, где есть разделение, на токен голоса (MKR) и сами деньги (DAI).

Также и здесь, в этом блокчейне не передаются деньги, а передаются голоса сети.

Таким образом каждую монету равную в 1 голос можно всегда отследить от самого стартового блока, как я уже сказал всего таких монет может быть только 100,000. Если какая-либо нода не голосовала с адреса уже скажем 1 месяц, то производится операция по удалению токена на этом адресе и отдача этого токена на адрес майнера. Таким образом даже если и будут теряться доступы к голосам сети, то с течением времени, эти голоса будут созданы вновь и распределены.

И так, мы получили создание хеша любым посторонним майнером (POW), где для исключения форка идет подписывание этого хеша голосами сети.

Такой блок создается раз в час.


Иерархия хеша

Как избежать форков блоков, можно ещё продумать. Например, ввести иерархию хеша. Условно есть 2 разных найденных хеша от 2 разных майнеров. Теперь их найденные хеши сравниваем с хешем предыдущего блока. У кого хеш будет совпадать или будет наиболее приближен к хешу предыдущего блока, тот блок и подписывают ноды и принимают.

А вот сами деньги и прочие транзакции рассылаются и заверяются по принципу обходного листа. Все заверяющие ноды, которые подписали текущий блок (не менее 60% сети) будут проверять и подписывать любую вашу транзакцию, что позволяет проводить транзакции совершенно асинхронно по принципу DAG в соответствующих блокчейнов, вот уже это использует нашу асинхронную таблицу данных.

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

Также используя POW и последующие подписи, для создания блока каждый час мы существенно увеличили надежность всей системы.

Таким образом мы и увеличили надежность(POW+ подписи) и оставили огромную скорость асинхронных транзакций (аналог DAG алгоритма).
Далее это заверяющий блока. Заверяющим данный блок, как уже было собрано 60% голосов сети, является тот же майнер, что и создал этот блок.

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


Принципы пересылки и хранения денег

Один кошелек должен управлять множеством счетов и на одном адресе у всех должна быть одинаковая сумма - это одна единица. Условно Вам надо передать сумму 150 Единиц, тогда со 150 ваших адресов передадутся на другие 150 адресов получателя сумма в 150 Единиц, по 1 Единице на каждом адресе.

Однако, это не совсем удобно. Ведь суммы могут быть, как очень большие так и очень маленькие, а потому я предлагаю ввести в некотором роде виды валют.

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

Так же и у меня, введем следующие обозначения:

1,000,000,000.000 000 000
    A     B    C    D    E     F


Таким образом:

1 монета A означает 1,000,000 обычных монет.

1 монета B означает 1,000 обычных монет.

1 монета C означает 1 обычную монету.

1 монета D означает 0.001 обычной монеты.

1 монета F означает 0.000 001 обычной монеты.

1 монета E означает 0.000 000 001 обычной монеты.


И так допустим нам надо передать сумму 55,045,100.245 567 340 тогда мы делаем вот что, передаем на счета получателя следующие монеты:

С 55 адресов отправителя передаются 55 монет A на 55 счетов получателя.

С 45 адресов отправителя передаются 45 монет B на 45 счетов получателя.

Со 100 адресов отправителя передаются 100 монет C на 100 счетов получателя.

С 245 адресов отправителя передаются 245 монет D на 245 счетов получателя.

С 567 адресов отправителя передаются 567 монет F на 567 счетов получателя.

С 340 адресов отправителя передаются 340 монет E на 340 счетов получателя.

Иногда нам понадобится делать размен монет, а именно у нас есть 1000 монет C и мы хотим их обменять на 1 монету B, тогда нам надо создать транзакцию в которой с 1000 наших адресов передаются 1000 монет C на 1 специальный счет, в котором они сжигаются и потом один счет в котором печатается 1 монета B.

Также и обратная ситуация, когда допустим у нас есть 1 монета B и мы хотим обменять её на 1000 монет C и нам надо нашу монету переслать на специальный счет для сжигания, плюс передать в транзакции список из 1000 счетов, на которые начисляться наши монеты.

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

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

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

Заверитель должен собрать от 60% голосов в сети и выше, пока он этого не сделает, сеть ждет блок и может функционировать на старом блоке. Забегу сразу вперед и скажу, что для любой транзакции в сети требуется одобрения из этого списка от 55% всей сети.

Таким образом у нас в блокчейне, в каждом блоке, все участники одобряют своей подписью номер блока и адрес заверителя.

Зачем нужен заверитель. Он как бы синхронизирует всю сеть по количеству участников. Ведь в одном месте могут быть одни участники, а в другом куда данные не добрались, то другие. И чтобы у всех был один список участников и появляется заверитель, который создаем блок по правилам и который включает в него от 60% голосов сети и выше.

Pages:
Jump to: