Post
Topic
Board Идеи
Re: Децентрализованные наличные
by
coin256
on 27/12/2017, 13:17:53 UTC
В моем случае проверка электронная. Когда монета регистрируется в узле-гаранте, ему передается электронно-цифровая подпись, а ключ от подписи хранится у владельца монеты. Когда владелец передает монету продавцу, продавец получает приватный ключ монеты и передает его узлу-гаранту, который пытается при помощи этого ключа проверить цифровую подпись, которая хранится на узле-гаранте с момента регистрации монеты. В этот момент монета аннулируется, и регистрируется новая, на такую же сумму. Такое перерождение нужно для того, чтобы получить новый приватный ключ, который теперь будет знать только продавец (владелец новой монеты), так как в момент сделки купли/продажи ключ от старой монеты становится известен более чем одному человеку - и владельцу и продавцу услуги. Это конечно не тот вариант, который вы описывали в первом посте, когда у каждой монеты/купюры срок жизни может быть очень долгим.
Не совсем понятно, как будет гарантироваться "честность" узлов - гарантов
Так как разные ноды принадлежат разным владельцам, то их честность действительно может быт под вопросом. Тут я вижу две ситуации:

1. На узле-гаранте есть база данных, в которой содержится информация о каждой ликвидной монете, необходимая для подтверждения ее ликвидности. Если владелец узла-гаранта оказался неблагонадежным, он может слить эту базу данных в общественный доступ. Это означает, что на сервере узла-гаранта нельзя хранить информацию, по которой можно было бы получить приватные ключи от ликвидных монет. Это решается так называемыми односторонними функциями, которые используются в электронно-цифровой подписи и шифровании. В момент, когда регистрируется новая монета, с клиентского устройства узлу-гаранту отправляется два поля: message1 и message2. В поле message2 содержится подписанное клиентским устройством при помощи электронно-цифровой подписи сообщение. В поле message1 содержится открытый ключ (из пары произвольно выбранных клиентским устройством ключей) для проверки ЭЦП в поле message2. Открытый ключ в поле message1 хранится не в открытом, а в зашифрованном, при помощи симметричного шифрования, виде. Симметричный ключ, которым зашифровано содержимое поля message1 это и есть приватный ключ монеты. Он хранится только на клиентском устройстве и посторонним лицам передается только один раз - в момент оплаты этой монетой. В момент оплаты монета становится неликвидной, а на ее сумму продавец регистрирует новую монету, ключ от которой теперь хранится только у него. Таким образом, если база данных утечет в сеть, то по содержимым полей message1 и message2 невозможно будет получить приватный ключ монеты. Но имея приватный ключ монеты, не составит труда расшифровать содержимое поля message1 и с его помощью проверить подписанное сообщение в поле message2. То есть проверить, действительно ли этот приватный ключ от  этой монеты, или нет.

2. Когда монета принимается к оплате, клиентское устройство продавца отправляет узлу-гаранту приватный ключ принимаемой монеты. В этот момент, владелец узла-гаранта может перехватить приватный ключ и пополнить монетой свой баланс. Чтобы этого избежать используется следующий механизм. Клиентское устройство продавца передает узлу-гаранту приватный ключ в запаролированном виде, узел-гарант, к которому подключилось клиентское устройство рассылает этот зашифрованный ключ остальным узлам-гарантам (не менее 50% от общего количества узлов). Узлы-гаранты подписывают сообщение от клиентского узла, каждый своей ЭЦП и отправляют обратно. Клиентское устройство проверяет ЭЦП узлов-гарантов, так как открытые ключи от подписи каждого узла находятся в открытом доступе. После чего клиентское устройство отправляет в сеть пароль от приватного ключа. Таким образом приватный ключ оказывается у всех узлов гарантов одновременно. На время этих операций монета как бы блокируется и если один из узлов попытается использовать полученный приватный ключ в своих целях, то он будет сразу же пойман и отключен от сети другими узлами.