Это новая и исправленная версия данного алгоритма. В тех частях камнем преткновения был мемпул, а именно если размещать его на сервере Блокмейкера, то он может быстро рисовать себе транзакции, забивать ими блоки и повышать максимально цену комиссии. Чтобы этого не допустить в полной версии был независимый мемпул.
Однако я отказался от данной идеи и нашел превосходные решения, которыми и хочу с вами поделиться.
Сразу хочу предупредить, что я обычный простой человек, а потому буду объяснять просто и без всяких сложных формул.
Предлагаю вам свою идею, а именно новый алгоритм консенсуса. Данная идея появилась из за того, что у двух наиболее распространенных алгоритмов есть недостатки.
Алгоритм POW (доказательство работы) ведет к выведению простых пользователей из участия в системе и тем самым способствует централизации.
Алгоритм POS (доказательство доли) имеет слабые места в безопасности, когда пользователь может наделать множество аккаунтов и тем самым влиять на сеть.
Другие алгоритмы, типа использование дискового пространства, майнинг только на процессорах также не решит проблему, т.к. под это можно будет подстроиться, когда это станет выгодно.
Еще есть алгоритм POI (доказательство значимостью). Основная идея это построение рейтинга всех участников. Как работают разные рейтинговые сервисы и другие и как накручиваются там рейтинги вы также думаю знаете. У меня нет особого желания доверять рейтингам, особенно если это связано с деньгами.
Теперь давайте перейдем непосредственно к самому алгоритму. Будем двигаться снизу вверх или от простого к сложному.
Пользователь – это обычный человек вообще не понимающий или плохо понимающий, что такое криптовалюты и всё с этим связанное. Большинству из них требуется просто перевести деньги без всяких сложностей, быстро и главное надежно. Поэтому любые требование, в том числе и технического характера, к такому человеку минимальны.
Он просто заходит в свой аккаунт или приложение на телефоне. Вначале набирает номер счета на который, хочет перевести деньги. Как только он набрал номер счета, нажимает на кнопку ПРОВЕРИТЬ. Кнопка исчезает и ему показывается типо названия другого счета (эта информация добровольная, она служит лишь для того чтобы человеку понять не ошибся ли он номером счета). Ему высвечивается или ничего или что-то типа Магазин игрушек МИР. Далее он вбивает сумму и смотрит на раздел комиссии которую ему нужно ввести. Она имеет диапазон LIQ – LIQ10 или наоборот LIQ10 – LIQ. Выбирает комиссию из этого диапазона, вводит свой ключ вручную или выбирает файл для заверения транзакции и отправляет свой платеж. Если он вводит комиссию из этого диапазона, то у него появляется страховка, что если допустим в течении 4-х часов транзакция не прошла, то все его деньги возвращаются и выплачивается компенсация равная стоимости комиссии.
Пока особо не будет понятно, про LIQ, но тем не менее здесь поясню.
LIQ – среднеарифметическая комиссия для пользователя, исходя из комиссии по которой был создан текущий блок в блокчейне.
LIQ10 – среднеарифметическая комиссия для пользователя, исходя из комиссий по которым были созданы 10 последних блоков в блокчейне.
После того, как платеж отправлен. Пользователю напоминается:
1)Если в течении допустим 4-х часов, его транзакция не пройдет, то ему возвращается его сумма вместе с комиссией, а также в качестве компенсации дополнительно выплачивается сумма равная его комиссии. Это это страховка, если комиссия была не меньше рекомендуемой.
2) В случае обнаружение двойной траты, комиссия не будет возвращена.
3) Если Блокмейкер по своей инициативе выкидывает только одну вашу транзакцию или очищает весь накопитель транзакций сразу, то он также возвращает вам сумму платежа, комиссию, а также в качестве компенсации дополнительно выплачивается сумма равная его комиссии.
В данное случае можно также сделать интерфейс для продвинутых пользователей, которые бы смогли видеть какая заполненность накопителя транзакций у разных Блокмейкеров и их ограничения по комиссиям.
Блокмейкер – профессиональный участник децентрализованной сети. На его сервере или мощном компьютере находяться все блоки блокчейна полностью. Чтобы стать блокмейкером, необходимо:
1) Иметь оборудование и софт.
2) Внести залог в эквиваленте 100$ (постоянный, он может быть возращен только при закрытии, при отсутствии претензий со стороны сети).
3) Внести залог по всем комиссиям, по которым вы строите блог (величина переменная), а можно сразу двойной, чтобы не дергаться каждый раз. И потом повышать, если будет необходимость.
Как только транзакция была отправлена пользователем, то она в соответствии с условиями уровня входа по комиссиях попадает тому или иному блокмейкеру в накопитель транзакций. Совершается сверка со своим блокчейном на возможность транзакции, если все нормально, то транзакция остается в накопителе, если нет. То удаляется с сообщением о невозможности транзакции. Если комиссия не ниже рекомендуемой, то заключается смарт-контракт страховки.
Накопитель транзакций имеет емкость равное количеству профессиональных участников (Блокмейкеров), т.е. это целый блок блокчейна.
Как только накопитель транзакций становиться полным или выгодным по сумме уплаченных комиссий, то Блокмейкер выходит на акцион по построению блока.
Прежде чем Блокмейкер сможет начать выставлять свою цену, он проходит проверку у всех Блокмейкеров, которые в данный момент принимают участие в аукционе. Как только проверка Блокмейкера и его накопителя завершена, он может принимать участие.
Механизм ценообразования. У каждого Блокмейкера есть накопитель транзакций. Все комиссии, что есть в этом накопителе принадлежат ему. Допустим цена каждой транзакции составляет 1 сатоши, а наша вся сеть состоит из 1000 Блокмейкеров, а значит каждый накопитель транзакций должен содержать 1000 транзакций. Значит сумма, которую получит этот Блокмейкер равна 1*1000=1000 сатоши, за создание блока из его транзакций. 1000 сатош – это доход, а не прибыль. Так как из его дохода 60% раздается 60% Блокмейкеров. В данном конкретном случае. Из его 1000сатоши при создании блока заберется 600сатоши и по 1сатоши раздастся 600 Блокмейкерам в случайном порядке, однако за этот раз доход дважды никто не получит.
Таким образом механизм торгов становиться простым. В течении одной минуты(время примерное) Блокмейкеры выставляют цены, кто готов выставить цену больше, как только находиться самая высокая цена и заканчивается минута, то создается блок, который входит в блокчейн. В нашем случае Блокмейкер назначает цену в 600сатоши и если он первым её назначил, то следующий кто хочет должен уже назначить 1200сатоши.
Кроме того его максимальная цена должна быть ограничена экономическим смыслом, работать в убыток и без прибыли нельзя. А потому максимум, что можно сделать это поднять максимально так, чтобы лишить себя 99% прибыли. В нашем случае 1200сатоши данный Блокмейкер поставить уже не сможет.
После рассылки этого блока всем Блокмейкерам, происходит проверка и его принятие. Как только эта процедура закончена, то каждый освободившийся Блокмейкер начинает опрашивать других Блокмейкеров на готовность к работе. Уровень готовности должен быть от 60% (а может больше) предыдущего количества. Как только это произошло, то происходит продолжение работы сети.
А теперь внимание, те преимущества которые получаются при использовании данного алгоритма:
1) Емкость накопителя транзакций жестко привязана к количеству Блокмейкеров. Это значит, что при увеличении сети она автоматически маштабируется путем увеличения числа транзакций в каждом блоке.
2) Сильного роста комиссии не будет, так как с ростом транзакций может увеличиваться количество Блокмейкеров и количество транзакций в блоке. Т.е. теоретически при той же комиссии с пользователя может наблюдаться рост прибыли Блокмейкера за счет стоимости блока из увеличенного количества транзакций там.
3) Самое главное и ключевое решение, а именно защита от спама транзакциями и искусственного повышения стоимости комиссий. Даже, если все ваши транзакции и рисованные. Вы всё равно будете вынуждены делиться стоимостью комиссий со всего блока с 60% всей сети, а вот уже здесь не получиться избежать финансовых потерь. Кроме того пользователи видя, что их транзакции не проходят будут поднимать свои комиссии. И здесь вам уже придется сражаться со всей сетью, ведь метод построения блока аукционный, т.е. кто готов заплатить максимальную цену за построение блока 60%сети.
Вот примерно так.
Большая благодарность всем кто прочитал!
С уважением
Дмитрий Будяков