**Глоссарий** *Владелец(owner, O)* - peer, владелец криптокошелька и средств *Злоумышленник(robber, R)* - peer, вымогатель, пытающийся с помощью угроз и насилия в реальной жизни вынудить владельца сделать перевод средств с кошелька владельца на кошелек злоумышленника *Защитник(defender, D)* - peer, которому доверяет владелец и которого желает уведомить владелец о действиях злоумышленника. *Подпись(S)* - электронная подпись *Аварийный секретный ключ(emergency secret key, ESK)* - ключ, которым владелец подписывает транзакцию, если считает, что имеет место вымогательство со стороны злоумышленника. *Аварийный членский ключ(emergency member key, EMK)* - ключ, которым D подтверждает что транзакция подписана ESK. *Основной закрытый ключ(Primary private key, PPK)* - ключ, которым владелец подписывает транзакцию во всех остальных случаях. *Основной членский ключ(primary member key, PMK)* - ключ, которым D подтверждает что транзакция подписана PPK. *Администратор, админ(admin, A)* - peer, способный отличить подпись ESK от PPK. *Открытый ключ владельца(owner public key, OPK)* - идентификатор, адрес владельца, кошелек, аналог публичного ключа в биткойне. В случае с групповой подписью это групповой публичный ключ. *Секретный ключ админа(admin secret key, ASK)* - ключ, которым A расшифровывает подпись O и отличает подпись ESK от OPK. *Транзакция(transaction, T)* - транзакция. Функционал подписи двумя разными ключами, подписи которыми невозможно отличить для всех peer'ов кроме админа можно получить с помощью [групповой подписи](https://en.wikipedia.org/wiki/Group_signature). Сейчас нужно выбрать схему, которая может быть использована в варианте децентрализованного A. [Статья со ссылками на схемы подписей](https://www.researchgate.net/publication/284819226_Group_Signatures_in_Practice) **Список статей со схемами подписи** 1. [Group Signatures in Practice](https://www.researchgate.net/publication/284819226_Group_Signatures_in_Practice) - не подходит для DA и CA, нет GPK. Содержит список схем. 2. [Efficient group signature schemes for large groups](https://link.springer.com/chapter/10.1007/BFb0052252) - подходит для CA. 3. [Separability and Efficiency for Generic Group Signature Schemes](https://www.semanticscholar.org/paper/Separability-and-Efficiency-for-Generic-Group-Camenisch-Michels/9be7a72a2839237d355b51162c7b8f8fc2dc6b47) - ничего не понятно 4. [Efficient Revocation in Group Signatures](https://www.researchgate.net/publication/2554976_Efficient_Revocation_in_Group_Signatures) - то же самое, что в 2, но с возможностью отзыва члена из группы. Не разбирался как работает отзыв, т.к. это не обязательно 5. [A STUDY ON EFFICIENT GROUP-ORIENTED SIGNATURE SCHEMES FOR REALISTIC APPLICATION ENVIRONMENT](https://www.researchgate.net/publication/2554976_Efficient_Revocation_in_Group_Signatures) - схемы нет. 6. [Ogawa, K., Ohtake, G., Fujii, A., Hanaoka, G.: Weakened anonymity of group signature and its application to subscription services](https://www.researchgate.net/publication/270441383_Weakened_Anonymity_of_Group_Signature_and_Its_Application_to_Subscription_Services) - бесплатной статьи нет 7. [An r-Hiding Revocable Group Signature Scheme: Group Signatures with the Property of Hiding the Number of Revoked Users](https://www.researchgate.net/publication/263443894_An_r-Hiding_Revocable_Group_Signature_Scheme_Group_Signatures_with_the_Property_of_Hiding_the_Number_of_Revoked_Users) - в основном про отзыв. 8. [A Practical and Provably Secure Coalition-Resistant Group Signature Scheme](https://www.researchgate.net/publication/221354922_A_Practical_and_Provably_Secure_Coalition-Resistant_Group_Signature_Scheme) **Требования к подписи для варианта децентрализованного A** - подпись ESK и PPK может различить только admin - наличие APK # **Вариант централизованного админа(то на что сейчас хватает знаний)** ## **Глоссарий для варианта СA** *Открытый ключ группы(Group public key, GPK)* *Закрытый ключ группы(Group secret key, GSK)* ## **Camenisch, J., Stadler, M.: Efficient group signature schemes for large groups.Lecture Notes in Computer Science 1296 (1997) 410–424** - В этой схеме D и A это один peer(одно и то же). - D создает пару ключей GPK и GSK. GPK имеет роль OPK для O, GSK - ASK. - O создает две пары ключей (EMK,ESK) и (PMK,PPK), вносит их в группу отправляя EMK и PMK D(возможно скрытно, в обход блокчейна, возможно открыто). - O оставляет в блокчейне запись о том, что все транзакции O должны быть направлены на подпись D перед отправкой в блокчейн. Так D может узнать, что T подписана ESK и имеет место аморальный грабеж O. - Теперь все исходящие транзакции от O должны быть отправлены на подпись D перед встройкой в блокчейн. Только D может понять каким ключом была подписана транзакция. Для всех остальных разницы нет. **Проблемы** - только один D на O. - проблемы ниже можно решить если установить глубину подписи(T от O проверяет D1, T от D1 проверяет его D2, и.т.д. Но это увеличивает сложность транзакций и если можно будет устанавливать глубину R всегда будет ставить 1) - сговор D и R. - атака R на D перед атакой на O. - сговор D и O чтобы обмануть peer'а не R(у O никто не вымогает, он решил обмануть другого peer сговорившись с D)(решается лимитом на отмену транзакции в 24 часа, после этого срока транзакцию отменить нельзя, даже если она была подписана ESK) **Вопросы** - EMK и PMK можно хранить открыто, т.к. для вскрытия подписи все равно требуется ASK? - разделение ролей - как доказать криптографически что D имеет ASK, связять его с OPK D. - зачем нужны member certificate - `An obvious (and for the second scheme simple) extension would be to assign the different roles of the group manager to different entities, i.e., to a membership manager, who is responsible for adding new members to the group, and to a revocation manager, who is responsible for opening signatures. The functionality of these managers can also be shared among several entities. The realization is straightforward.` # **Вариант децентрализованного админа(DA)(вариант максимум)** ## **Глоссарий для варианта DA** **Аварийный групповой ключ(Emergency member key, EMK)** - ключ, пара к ESK, но его связь с OPK и ESK не должна быть установлена. Используется A для различения подписи ESK от PPK. **Открытый ключ админа(admin public key, APK)** - ключ, идентификатор админа. Идея его использования в том, что peer, который смог подобрать закрытый ключ к APK становится децентрализованным A и может посмотреть кем подписаны все текущие транзакции. После этого он строит новый блок, и уведомляет всех D для текущих транзакции о том грабят ли O. Пока подпись с таким примитивом не найдена(возможно такой и нет). **Тезисы** - A должен представлять из себя пару ключей(APK, ASK) - O должен представлять из себя ключи(OPK, PPK, ESK, EKID) - S = f(T, APK, PPK или ESK)(что должна принимать функция создания подписи) - Должен существовать сложный алгоритм(майнинг) получения из APK->ASK - Должна быть функция генерации APK, например от текущего времени или от хэша предыдущего блока **Алгоритм генерации блока при децентрализованном админе** - Каждые n секунд в сети меняется APK(информация открытая, генерируется по алгоритму) - Все транзакции, которые желают быть в следующем блоке должны быть подписаны с помощью этого APK - Майнеры начинают подбирать ASK, чтобы иметь возможность создать следующий блок - Параллельно идет процесс формирования вспомогательного блока с помощью какого-либо механизма консенсуса, куда собираются транзакции подписанные текущим APK - Peer, который нашел ASK из APK создает следующий блок в котором будут содержаться транзакции подписанные APK **Черновик** *Закрытый ключ защитника(defender secret key, DSK)* *Открытый ключ защитника(defender public key, DPK)* Может хранится открыто в блокчейне как связь DPK-EMK для установления какого D стоит уведомлять при подписи T конкретным ESK. При раскрытии связи с PPK будет установлена связь OPK-DPK, что может привести к физической атаке на D. Может быть хранить в секрете связь OPK-DPK не обязательно. **Проблемы** - DA после вскрытия ASK может выложить в обход блокчейна информацию о том аварийные ли транзакции были в блоке, тем самым подставив всех O в опасности. Защититься от этого можно только защищенным кодом, который невозможно вскрыть и увидеть ASK(основной минус схемы DA) -