Так как разные ноды принадлежат разным владельцам, то их честность действительно может быт под вопросом. Тут я вижу две ситуации:
1. На узле-гаранте есть база данных, в которой содержится информация о каждой ликвидной монете, необходимая для подтверждения ее ликвидности. Если владелец узла-гаранта оказался неблагонадежным, он может слить эту базу данных в общественный доступ. Это означает, что на сервере узла-гаранта нельзя хранить информацию, по которой можно было бы получить приватные ключи от ликвидных монет. Это решается так называемыми односторонними функциями, которые используются в электронно-цифровой подписи и шифровании. В момент, когда регистрируется новая монета, с клиентского устройства узлу-гаранту отправляется два поля: message1 и message2. В поле message2 содержится подписанное клиентским устройством при помощи электронно-цифровой подписи сообщение. В поле message1 содержится открытый ключ (из пары произвольно выбранных клиентским устройством ключей) для проверки ЭЦП в поле message2. Открытый ключ в поле message1 хранится не в открытом, а в зашифрованном, при помощи симметричного шифрования, виде. Симметричный ключ, которым зашифровано содержимое поля message1 это и есть приватный ключ монеты. Он хранится только на клиентском устройстве и посторонним лицам передается только один раз - в момент оплаты этой монетой. В момент оплаты монета становится неликвидной, а на ее сумму продавец регистрирует новую монету, ключ от которой теперь хранится только у него. Таким образом, если база данных утечет в сеть, то по содержимым полей message1 и message2 невозможно будет получить приватный ключ монеты. Но имея приватный ключ монеты, не составит труда расшифровать содержимое поля message1 и с его помощью проверить подписанное сообщение в поле message2. То есть проверить, действительно ли этот приватный ключ от этой монеты, или нет.
2. Когда монета принимается к оплате, клиентское устройство продавца отправляет узлу-гаранту приватный ключ принимаемой монеты. В этот момент, владелец узла-гаранта может перехватить приватный ключ и пополнить монетой свой баланс. Чтобы этого избежать используется следующий механизм. Клиентское устройство продавца передает узлу-гаранту приватный ключ в запаролированном виде, узел-гарант, к которому подключилось клиентское устройство рассылает этот зашифрованный ключ остальным узлам-гарантам (не менее 50% от общего количества узлов). Узлы-гаранты подписывают сообщение от клиентского узла, каждый своей ЭЦП и отправляют обратно. Клиентское устройство проверяет ЭЦП узлов-гарантов, так как открытые ключи от подписи каждого узла находятся в открытом доступе. После чего клиентское устройство отправляет в сеть пароль от приватного ключа. Таким образом приватный ключ оказывается у всех узлов гарантов одновременно. На время этих операций монета как бы блокируется и если один из узлов попытается использовать полученный приватный ключ в своих целях, то он будет сразу же пойман и отключен от сети другими узлами.
У меня была похожая идея, только с сохранением адресов и трансформацией приватных ключей. Ваша идея в теории выглядит как будто неплохо. В деталях надо копаться.
Не совсем понял про "ликвидность" монеты. Может быть вы имели в виду валидность? Ликвидность - это способность валюты к сбыту, она относится ко всей валюте в целом. А у вас каждая монета ликвидна по - своему).Как устроена сеть в целом? Есть ли у неё блокчейн или какая - либо блокчейнподобная система? Она создана специально под розничную торговлю или я ошибаюсь? Какие вы видите возможные векторы атак на свою систему? Что , если узлы будут в сговоре?
Идея подкупает прежде всего предлагаемой легкостью обмена монетами внутри сети. Без мобильного приложения нельзя показать процесс так сказать во всей красоте, но когда будет - можно будет записать ознакомительное видео. Если вкратце: человек заходит на сайт, перечисляет по указанному на сайте адресу эфиры, и указывает на странице сайта свой эфирный адрес (с которого ушла оплата) и e-mail; когда блокчейн Эфириума часа через три соизволит перевести деньги, на электронную почту, указанную на сайте, придет письмо с QR-кодом монеты; человек берет телефон, устанавливает на него приложение, открывает им файл-вложение из письма - монета в телефоне; берет второй телефон, устанавливает приложение, на первом телефоне выбирает монету и жмет Оплатить, вторым телефоном фотографирует QR-код с экрана первого телефона - монета во втором телефоне; на втором телефоне выбирает монету и жмет Оплатить, первым телефоном фотографирует QR-код с экрана второго телефона - монета во первом телефоне. Сейчас такое можно проделать только с консольной программой для Windows и Linux. Она оперирует не графическим представление монеты, а текстовым, что не так наглядно.
Насчет валидности вы правы, имелась в виду именно валидность. Сосредоточился на тексте и не заметил, что использую не тот термин.
Сеть условно можно разбить на два протокола: протокол взаимодействия узла-гаранта с клиентским узлом и протокол взаимодействия узлов-гарантов между собой. План такой: сначала внедряется протокол первого типа, где сеть имеет всего один узел-гарант, затем усилия переключаются на реализацию протокола второго типа и полноценный запуск децентрализованной сети. Эдакий плавный старт. Сейчас протокол второго типа существует только в теории, я его частично описал в предыдущем посте.
Блокчейн мне увы не нравится, поэтому я бы от него при первой возможности отказался бы. Если у кого украли средства, так блокчейн помочь уже не может, зато все видят твои транзакции. Ну не странно ли? В денежных делах должно быть все наоборот. Плюс огромный объем данных и низкая скорость. В общем, блокчейн это не решение проблемы, а создание множества новых.
Насчет розничной сети вы частично правы. Но зарождалось все изначально в другом виде и для торговых автоматов, которые могли бы работать без купюро и монетоприемников. В принципе любой бизнес без кассовых аппаратов мог бы принимать монету к оплате: такси, мелкие торговые точки и т.д. Нужен только мобильный телефон, без всяких считывателей банковских карт. Транзакция мгновенная.
Основной возможный вектор для взлома это подбор приватного ключа полным перебором (например если все существующие майнинговые пулы бросить на такой взлом, то это может быть осуществимо), но уже сейчас у меня есть на примете несколько еще не внедренных методов борьбы с этим. Других атак во время работы сети только на одном узле нет, не считая конечно взлома физического сервера на котором будет работать узел-гарант, но заполучить средства в этом случае злоумышленник не сможет, так как на сервере нет приватных ключей от монет и нет учетных записей пользователей. Как быстро засечь такой взлом тоже есть идеи. При работе сети на нескольких узлах-гарантах это отдельная тема, для нее еще не время, все зависит от проработки межузлового протокола.
Теоретически все узлы не должны быть в сговоре, так как это бизнес, их владельцы зарабатывают на комиссии. Каждый узел-гарант выставляет размер комиссии за обслуживание и клиентский узел может выбрать к кому подключиться. Это позволит рынку регулировать процент комиссии. Но этот вопрос открыт к обсуждению.