Pages:
Author

Topic: Анонимная криптовалюта. Часть 2. - page 2. (Read 1804 times)

hero member
Activity: 658
Merit: 536
Z-pay.io
Натыкался на вашу прошлую тему. В этой уже чуть больше понимания просматривается, прогресс есть, но до изобретения блокчейна (или реальной альтернативы), ещё работы много. )
Попробуйте посмотреть на свою модель глазами атакующего.
Попытайтесь зафлудить сеть, разветвлять на множество форков через временно изолированные подсети, наштампуйте дабл-спендов и одновременно бродкастите их с тысяч виртуальных нод.

Модель консенсуса (в текущем виде) ошибочна, тут нет смысла комментировать что-то конкретное.
Что значит 80-90% консенсус?))) Что остальные 20%? Орфан? Форк?
Зачем ещё хеш клиента??  Ну, подпишу я 500 разных  транз одним ключом, и каждую буду транслировать через отдельную виртуальную ноду с этим вашим уникальным "хешем клиента", и что? Какие 499 из них сеть должна будет отвергнуть? По какому принципу?
Как вы решите проблему уязвимости к атаке Сибиллы? https://en.m.wikipedia.org/wiki/Sybil_attack

Я не пришёл сюда с вами спорить, отвечать на вопросы мне не надо, это просто наводящие.
У вас куча конструктивной энергии, прекрасно, что вы пришли в крипту, рано или поздно что-то придумаете точно, с таким энтузиазмом.

legendary
Activity: 2744
Merit: 1588

Идея отличная (я, хоть сам и не анархист  Smiley, но все равно идея замечательная)!

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




Эта идея натолкнула меня на еще одну мысль. Может, стоит лучше так делать:

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

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

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

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

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

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





В таком случае и не обязательно делать один номинал. Номиналов может быть несколько.

Присутствие одного номинала, позволяет иметь следующие преимущества:

1. Все деньги одинаковы, нет приоритета для взлома и слежки.

2. У разных номиналов появляется проблема дать сдачу или заслать ровную сумму.

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





Майнинг и эмиссия - случайно выбранное число адресов со случайным номиналом выдается за каждый сгенерированный блок. random(MAX) меняется со временем в меньшую сторону. Ну и плюс, комиссия майнеру за запись транзакции о смене адресом пароля.

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

Как это будет осуществляться. Для начала давайте посмотрим на рисунок и вспомним, как у нас выращивается консенсус: вот такая ситуация будет примерно после 20 итераций, у сети состоящей из 10 пользователей


обратите внимание, что уже у многих пользователей сформировалась консенсусная цепочка из транзакций в одинаковом порядке:

06 09 04 01 07 03 05 02

Самая первая транзакция 06 - это транзакция пользователя с номером 6. А потому ему будет предоставлено право получить одну монету за формирование этого блока.

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

Повторяю нам майнеры не нужны, т.к. сеть и так хорошо находит консенсус.




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

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

Для того и создал тему, если не я то, кто-то другой создаст, как противодействие тупым законам.

Однако схема для меня обретает реальные черты. В настоящее время вижу такой вариант. Запускаем на начальном этапе Hamachi - это позволяет спокойно создавать p2p-подключения. А уже наша программа может работает по тому принципу, что я описывал.
sr. member
Activity: 728
Merit: 250
“A nexgen decentralized ride hailing ”
Вот как только российское правительство введет налоги на крипту, твоя идея-проект будет пользоваться мега спросом.
а пока удачи развивай проект у него есть будущее
legendary
Activity: 2744
Merit: 1588
Масштабировать будет превосходно, т.к. с количеством участников вырастит количество первых транзакций по которым считается хеш. Допустим у 10 можно считать по первым 5, у 100 уже можно считать по первым 40-50, у 1000 по первым 400-500 и так далее.

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

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

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

Вначале найти исчисление более крупного числа, для 15 это будет 100. Для 220 это будет 1000 и тому подобное. Если текущее число меньше половины до более крупного числа, в примерах это 15 меньше 50 для 100, 220 меньше 500 для тысячи. То тогда использовать для хеша 10% от половины крупного числа, т.е. для 15 использовать 5 первых транзакций, а если бы количество пользователей перевалило за 50, т.е. 51, то уже использовать 10% от 100 и это 10 первых транзакций.

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

Вот как пример допустим часть пользователей считает, что сейчас в сети 47-50 пользователей, другая часть 51-55. Таким образом у них будут разные хеши даже при полном консенсусе, т.к. одна группа считает хеш по первым 5 транзакциям, а другая по первым 10 транзакциям. Такая ситуация со временем исправиться, т.к. при обмене информацией обновляется карта сети и в зависимости от текущего количества, то изменит подсчет хеша та или иная группа.

legendary
Activity: 2744
Merit: 1588
Спасибо, поблевал.  Grin

Тоже полезно  Grin Grin Grin

Я именно и хочу совместить с мессенджером и возможно даже расширить его функционал. Деньги можно в автоматическом режиме передавать собеседнику по чату.

Однако функционал хочется расширить, что-то типа общего форума, где по разным хештегам можно находить определенные темы с названиями и там вести дискуссии.
full member
Activity: 364
Merit: 101
Вроде ваши рассуждения выглядят логичными. Конечно диалог в мессенджере это слишком сложно, но может быть какой то простой бот по типу как это реализовано в байтболле решит этот вопрос.
Теперь когда Вы постоянно соединяетесь с другими, Вы смотрите ихнии хеши и они ваши, т.к. обмениваясь с другими, Вы постепенно создаете карту у кого какой хеш есть и если Вы видите, что из 10 человек у 8 он одинаковый, то Вы можете спокойно эти первых 5 транзакций включать в блокчейн и говорить о новом блоке, остальные делают тоже самое. У кого не получилось данного хеша, обнуляют свой буфер с транзакциями и присоединяются к остальным, просто копируя ихний буфер.
Спасибо, поблевал.  Grin
legendary
Activity: 2744
Merit: 1588

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

2  Далее мне не понятно, что значит порог принятия консенсуса 80-90%. То есть платеж проходит с некоторой вероятностью или допускаются частичные коллизии? Как вообще это будет синхронизироваться при масштабировании сети? Вы пробовали промоделировать не пять узлов, а хотя бы миллион? С этими вот случайными соединениями не наступит ли просто хаос?

Пронумеровал вашу цитату, для лучшего ответа.

Ответ на п1.
Давайте представим такой диалог человеку, которому нужно (ЧкН) и продавца(П). Разговор в Телеграм:

ЧкН заходит в Телеграмм, заходит к продавцу и начинает чат, хоть и зашифровано, но для подстраховки помним о СОРМ:

ЧкН: Очень нужно, прямо сейчас.
П: Не вопрос, сколько?
ЧкН: Средненько?
П: понял. Стоит 50 анонимов.
ЧкН: почему дороже.
П: за срочность
ЧкН: хорошо, скидывай адреса
П: 17Qy623y1VF8atdkbKNUVE4S7pcmLP8Mcj
    N8Qy623y1VF8atdkbKNUVE4S7pcmLP8Mcj
    V7Qy623y1VF8atdkbKNUVE4S7pcmLP8Mcj
    и так остальные
ЧкН: как переведу всё отпишусь
П: ок

Или другой разговор:

Бабушка(Б) покупающая пиццу на дом, постоянно переводящая пенсию в нашу систему от воровства и государства. Заказывает у оператора(О):

О: Ваш разговор записывается для разрешения спорных случаев. В случае, если запись отсутствует, то признается полностью правота клиента. Домашняя пицца на дом слушаю!
Б: Внучка мне бы пиццу.
О: Вам какую?
Б: По деревенски люблю.
О: Стоимость пиццы составляет 10 анонимов.
Б: Хорошо
О: Ваш адрес?
Б: xxxx - такой-то
О: Ваш заказ пицца по деревенски на адрес xxxx. Правильно?
Б: Да
О: переводите деньги на эти адреса, просто их скопируйте и вставьте в кошелек, в разделе перевод, как только переведете ваш заказ тут же будет отправлен

Особой разницы нет, скопировать адреса и вставить их будет несложно.



Ответ на п2.

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

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

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

Масштабировать будет превосходно, т.к. с количеством участников вырастит количество первых транзакций по которым считается хеш. Допустим у 10 можно считать по первым 5, у 100 уже можно считать по первым 40-50, у 1000 по первым 400-500 и так далее.

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

Случайные подключения создают равномерную нагрузку на сеть, если этого не сделать и создать какие подключения по правилам, то Вы получите на себя ddos-атаку при огромном количестве пользователей.
full member
Activity: 364
Merit: 101
Я внимательно прочитал эту огромную портянку и вроде даже кое-что понял.
Quote
В отличие от предыдущей схемы я поменял создателя транзакций, теперь это отправитель. Всё просто, если человек должен заплатить Вам деньги, то это его проблемы, как он сделает перевод. Вас волнует только поступили деньги или нет, а потому сам смысл двойной траты не имеет логического значения. Ну не будет же сам себе отправитель мешать отправлять деньги. Но это не значит, что нет контроля и проверки транзакций.
Получается при таком подходе отправитель должен быть более заинтересованной стороной в успешном переводе. Думаю это сильно ограничивает область применения такой криптовалюты, в сочетании с упором на анонимность первое что приходит в голову это торговля наркотиками, типа наркоман хочет купить дурь и он пойдет на некоторые хлопоты, чтобы организовать платеж. В других ситуациях обычно продавец более заинтересован получить деньги, чем покупатель их потратить.

Далее мне не понятно, что значит порог принятия консенсуса 80-90%. То есть платеж проходит с некоторой вероятностью или допускаются частичные коллизии? Как вообще это будет синхронизироваться при масштабировании сети? Вы пробовали промоделировать не пять узлов, а хотя бы миллион? С этими вот случайными соединениями не наступит ли просто хаос?
legendary
Activity: 2744
Merit: 1588
Про консенсус хочется поподробнее сейчас. А вообще не все делают сейчас по принципу победителя, IOTA имеет без блокчейна механизм (сейчас разбираюсь что и как) и вот еще нашел p2p сеть поверх физической, заявлена анонимность, все дела: http://netsukuku.freaknet.org - достаточно старый проект, есть инфа по-русски в том числе, на хабре в частности.


Проект netsukuku достаточно интересен, но мне кажется будущее уже за беспроводными Mesh-сетями.

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

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

| id | хеш-адрес отправителя | хеш-адрес получателя| хеш-подпись отправителя | хеш-адрес вашего клиента | хеш-подпись вашего клиента |

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

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

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

Итак Вы видели структуру транзакций, но чтобы мне было Вам наглядней объяснить, я принял следующие сокращения: устройство 1 с именем User1(тоже упрощаем имя для лучшей наглядности) имеет в буфере обмена свою какую-то транзакцию, для наглядности я обозначил её 01.

И так устройство 1 имеет транзакцию 01 и так далее до десяти. Так как условный пример я приводил на 10 устройствах.

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


Предлагаю обратить внимание на транзакции User01 и User03. В отличие от других у них только 2 одинаковые для них транзакции 03 (транзакция User3) и 01 (транзакция User1). Если отбросить всю остальную сеть, то для них консенсус уже наступил, т.к. они имеют у себя полностью одинаковые блоки со своими транзакциями в определенном порядке.

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

Таким образом, чтобы образовалась такая последовательность транзакций 03 01 нужно чтобы User1 подключился к User3 и если они в буфере будут иметь только свои транзакции, то образуется такая последовательность.

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

legendary
Activity: 2744
Merit: 1588
Идея хорошая, но только ее практическая реализация вскроет все трудности и недостатки. Всю эту сеть можно будет отследить изнутри, зная механизм ее работы.

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

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

Решения есть различные, можно просто впихнуть сервера или сделать сеть на основе I2P. Это скорее уже именно сетевая часть, главное что логика не должна меняться, чтобы один пользователь мог подключиться к другому в случайном порядке.
full member
Activity: 518
Merit: 100
Идея хорошая, но только ее практическая реализация вскроет все трудности и недостатки. Всю эту сеть можно будет отследить изнутри, зная механизм ее работы.
newbie
Activity: 10
Merit: 0
Про консенсус хочется поподробнее сейчас. А вообще не все делают сейчас по принципу победителя, IOTA имеет без блокчейна механизм (сейчас разбираюсь что и как) и вот еще нашел p2p сеть поверх физической, заявлена анонимность, все дела: http://netsukuku.freaknet.org - достаточно старый проект, есть инфа по-русски в том числе, на хабре в частности.
legendary
Activity: 2744
Merit: 1588
русский прекрасен на скринах
а если тор прослушивает фбр, и автор нашел пруф на каком то полулевом сайте, значит ему можно доверять

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

Факты прослушки трафика в TOR имели место, имели. Больше вопросов особых нет, а Вы можете и дальше доверять мнению проверенных источников.

Странно, что есть еще люди которые верят в TOR. Удивили, честно!
legendary
Activity: 2744
Merit: 1588
Странно, что никто даже покритиковать не хочет.

Тогда покритикую я сам себя Grin

Основная трудность, которая возникнет на этапе реализации - это как не странно построение самой распределенной сети. Дело в том, что на сегодняшний день в стандарте IPv4 (это IP-адрес, который мы все привыкли видеть) закончились номера. Поэтому многие пользователи имеют так называемые серые адреса. Эти серые адреса выдает NAT - это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса.

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

Если по простому. То у Вас дома есть как бы своя локальная сеть, которая вам выдает свои внутренние ip-адреса, после прохождения NATa ваш ip-адрес меняется.

Существуют различные решения данной проблемы, вопрос лишь в том по какому пути пойти.
legendary
Activity: 2744
Merit: 1588
Блокчейн анонимной сети и логика передачи денег

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

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

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

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

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

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

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

Итак, какие достоинства анонимности мы получаем:

1.   Распределенная сеть, где все полностью равноправны.

2.   Постоянно изменяющиеся хэш-адреса у монет. Огромная трудность для анализа.

3.   Полностью приватные и анонимные платежи. Ведь теперь ключи можно посылать в зашифрованных сообщениях обычным текстом.

4.   Отсутствие комиссии.

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

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

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

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



Алгоритм консенсуса анонимной криптовалюты

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

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

Очень сильно напрашивается аналогия с рекомбинацией молекул ДНК:


Данный алгоритм не требует каких-то жестких рамок, например, ограничение по времени. Главное его достоинство, что консенсус формируется постепенно и чем больше времени проходит, тем на большее количество участников он распространяется.

Я на языке программирования С++ смог собрать небольшой эмулятор анонимной распределенной сети и посмотреть, как он будет взаимодействовать.

Вот так выглядит сеть в начальном состоянии:


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

Транзакции участников пронумерованы. Например, у участника с номером один User01, транзакция имеет вид 01, у участника номер два User02 транзакция имеет номер 02 и так далее.

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

Вот состояние сети после 5 итераций:


Прошу обратить внимание на формирование консенсуса у участников User2, User5, User7.


Вот состояние сети после 10 итераций, это новое моделирование, а потому и консенсус будет другой, но он станет больше. Смотрим:


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

А вот после 20 итераций:


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

Для формирования консенсуса всей сети нам не нужно её 100% значение, а потому можно урезать длины цепочек, а также снизить порог принятия консенсуса сети допустим до величины 80%-90%.

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

Это значит, что нам нужно формировать консенсус из количества транзакций примерно равному 50% от количества участников. Например, в нашем примере, консенсус будет формироваться только первыми 5 транзакциями, а остальная длина цепочки уже не важна.

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

Теперь эти первые 5 транзакций для которых мы считали хеш, начинаем использовать в нашем табличном блокчейне и производим там необходимые изменения.
legendary
Activity: 2744
Merit: 1588
В прошлой своей теме https://bitcointalksearch.org/topic/--1962101, я разрабатывал принципы на которых должна строиться полностью анонимная криптовалюта, однако, я потерпел неудачу, т.к. она оказалась настолько специфической, что под неё не подходил не один алгоритм консенсуса, даже тот, что придумал я.

А потому я продолжил свои изыскания и мне улыбнулась удача.

В итоге я получил анонимную криптовалюту со следующими достоинствами:

1) Анонимная распределенная сеть, подчеркиваю не децентрализованная, где есть узлы покрупнее, а именно распределенная, где все равны. Соединения только p2p.

2) Отсутствие комиссией.

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

4) В идеале хочу совместить с месенджером.

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

6) Номиналов нет, есть только один номинал и все.

Однако прежде, чем перейти непосредственно к самой криптовалюте. Я бы хотел пояснить некоторые вещи касающиеся анонимности.


Анонимны ли анонимные сети

Все мы привыкли к тому, что на разных источниках информации про анонимные сети всплывают такие названия TOR, I2P, BitTorrent, Gnutella и им подобные.
Однако читая разную информацию:

ФБР официально призналась в контроле над анонимной сетью Tor

Действительно ли браузер Tor обеспечивает полную анонимность?

Немного Tor/I2P/Tails/СОРМ-3

Почему Bittorent через Tor — плохая идея

А действительно ли I2P может обеспечить 100% анонимность. Короткий ответ: нет. Несмотря на то, что сама система продумана очень здорово, сдать владельца сервиса могут сами сервисы, которые хостятся в I2P. Простой пример — уязвимость в веб-приложении. Если суметь её проэксплуатировать до возможности выполнения команд, то есть большая вероятность выявить настоящий IP-адрес компьютера. Это не единственная опасность.

И так всё сводиться к тому, что даже самые анонимные сети не обеспечивают полной анонимности. Скажу более, если мы строим сеть, где используются только p2p соединения, то скрыть свой ip-адрес нереально, т.к. для того чтобы пользователи смогли соединиться между собой им нужно знать ip адреса.

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

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

В данном случае хорошим решением будет openVPN или двойной openVPN.


Основные принципы функционирования самой сети

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

Вот примерная схема сети:



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

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

Pages:
Jump to: