Pages:
Author

Topic: POA (Proof Of Auction). Новый алгоритм консенсуса. - page 2. (Read 2198 times)

legendary
Activity: 2744
Merit: 1588
Внес изменения в сам алгоритм. Теперь он стал более проще и надежней. Также показано, как будет отбиваться атаки спама транзакций. Все решения и сам алгоритм в первом посте, который я исправил.
legendary
Activity: 2744
Merit: 1588
Вижу что некоторых заинтересовал данный алгоритм. В первом своём описании я применил максимально упрощенный и наиболее понятный вариант. К сожалению в том упрощении, мне пришлось убрать из описания мемпул транзакций. Мемпул транзакций очень важен, т.к. он позволяет убрать атаку бесконечной комиссии. Это когда хакер "рисует" у себя и своей ботсети нужные транзакции, а потом формирует из них блоки по очень большим ценам.

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

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

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



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

Quote
Форк цепочки блоков bitcoin — состояние, когда в сети существуют и продолжают рассчитываться одновременно две версии цепочки блоков.

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

В алгоритме консенсксу PODA форков нет, т.к. нет возможности возникнуть таким ситуациям. Вот механика:

У всех Блокмейкеров есть минута, чтобы договориться посредством торговли. Цены Блокмейкеры всегда выставляют две.
Внутри каждой цены есть очередь из Блокмейкеров указавщих эту цену. Например, на тридцатой секунде объявляется, что по цене 900 найдены 10 человек. Торги не останавливаются, т.к время ещё есть. Однако теперь, торговать можно будет только от цены 901 и выше. Если там не будет потом желающий по окончании времени, то засчитывается цена 900.

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




legendary
Activity: 2744
Merit: 1588
Как будет производиться эмиссия и распределение монет?

Это не совсем область алгоритма консенсуса, это больше к области создания криптовалюты. Алгоритмы консенсуса в основном влияют на формирования самих блоков в блокчейне.
legendary
Activity: 2156
Merit: 1132
Как будет производиться эмиссия и распределение монет?
legendary
Activity: 2744
Merit: 1588
Господа спасибо за отзыв. Однако я увидел у вас вопросы, которые возникли из за непонимания некоторых моментов.

1)
Quote
Дайте определение LIQ, а то неясно коммиссия пользователя иcходя из комиссии...это как понять?

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

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

Письмо это транзакция, плата - это комиссия. После того как у вас скопилось 1000 писем вы должны будете идти на площадь, где каждую минуту приезжает курьер и забирает почту только одного почтальона. Когда вы приходите на площадь вы видите других почтальонов и все они хотят в эту минуту, чтобы курьер забрал именно их почту. В реальном мире вы двинулись бы вперед и пробовали бы силой пробиться к курьеру, кому-то начали бить лицо, кто-то вам. Но тут люди цивилизованные, а потому так это не решается. Поэтому вы говорите примерно следующие:"Господа, кто согласиться пропустить мою почту плачу сразу 900 сатоши 10 человекам. Однако, если кому-то нужно более срочно, чем мне, то готов поддержать за 95сататош (в цене это будет 950сатош, т.к. требуется 10 человек поддержки).

А теперь вот и ответ, что такое LIQ. Как только курьер принял у кого-то почту, LIQ принимает значение платы за одно письмо в этой почте. LIQ10 соответственно, это значение среднеарифмитическое, платы за одно письмо успешной почты у последних 10 курьеров.


2)
Quote
И что помешает сделать несколько кошельков и делать транзакции самому себе?

А теперь про сделать кошельки и отправлять самому себе. Вам понадобиться минимум 11 аккаунтов. Это в эквиваленте 1100$ (цена для зрелой системы, на начальном этапе должно быть меньше) залога, для занятия этим. Чтобы учавствовать в торговле понадобиться по 1000 транзакций, с минимально рекомендуемой комиссией. А это значит 11*1000=11000 транзакций с минимально рекомендуемыми комиссиями.

Смысл этих действий, которые не приносят прибыли? Кроме того ведь можно добавить небольшое отчисление в фонд развития сети. Это всё больше технические решения, которые не сильно влияют на сам алгоритм.


3)
Quote
вот именно, если комсы небольшие то таким путем вся хитрая конструкция падает.

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


4)
Quote
Мое мнение что будущее не столько за переводами, но скорее за умными контрактами, здесь не понятно как применить ваши рассуждения.


Умные контракты работают на блокчейне, он здесь тоже есть. Только здесь не решают математическую задачу консенсусом POW, а торгуются за блок, как на бирже методом PODA.









sr. member
Activity: 728
Merit: 252
Не совсем понял следующие моменты:

1) POS - как я полагаю учитывает не только наличие кошелька но и его содержимое. Не считаю отмеченное слабым местом.
2) Дайте определение LIQ, а то неясно коммиссия пользователя иcходя из комиссии...это как понять?
3) Мое мнение что будущее не столько за переводами, но скорее за умными контрактами, здесь не понятно как применить ваши рассуждения.

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


И что помешает сделать несколько кошельков и делать транзакции самому себе?

вот именно, если комсы небольшие то таким путем вся хитрая конструкция падает.
newbie
Activity: 54
Merit: 0
Не совсем понял следующие моменты:

1) POS - как я полагаю учитывает не только наличие кошелька но и его содержимое. Не считаю отмеченное слабым местом.
2) Дайте определение LIQ, а то неясно коммиссия пользователя иcходя из комиссии...это как понять?
3) Мое мнение что будущее не столько за переводами, но скорее за умными контрактами, здесь не понятно как применить ваши рассуждения.

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


И что помешает сделать несколько кошельков и делать транзакции самому себе?
full member
Activity: 138
Merit: 100
Не совсем понял следующие моменты:

1) POS - как я полагаю учитывает не только наличие кошелька но и его содержимое. Не считаю отмеченное слабым местом.
2) Дайте определение LIQ, а то неясно коммиссия пользователя иcходя из комиссии...это как понять?
3) Мое мнение что будущее не столько за переводами, но скорее за умными контрактами, здесь не понятно как применить ваши рассуждения.

Но идея интересная т.е. вместо доказательство работы (наличие вычислительных мощностей) и доказательства доли (суммы в кошелке) использовать доказательство транзакции т.е. роль в системе начинают играть  те кто делает большее кол-во транзакций.
legendary
Activity: 2744
Merit: 1588
Это новая и исправленная версия данного алгоритма. В тех частях камнем преткновения был мемпул, а именно если размещать его на сервере Блокмейкера, то он может быстро рисовать себе транзакции, забивать ими блоки и повышать максимально цену комиссии. Чтобы этого не допустить в полной версии был независимый мемпул.

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


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

Алгоритм 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%сети.

Вот примерно так.

Большая благодарность всем кто прочитал!

С уважением
Дмитрий Будяков

Pages:
Jump to: