Это называется Linkable Spontaneous Anonymous Group Signature (LSAG).
Ниже я описываю EC-реализацию LSAG, называемую связываемой кольцевой подписью.
Кольцевая подпись доказывает, что владелец закрытого ключа одного из набора объявленных открытых ключей подписал сообщение, но невозможно узнать, кто это сделал. Это называется двусмысленностью подписанта.
Это может быть расширено до концепции «связываемой кольцевой подписи». Кольцо подписывается таким образом, что «образ ключа» также объявляется как часть подписи. Образ ключа представляет собой скалярное умножение закрытого ключа подписывающей стороны на открытый ключ, созданный путем извлечения точки из хэша открытого ключа подписывающей стороны. изображение ключа = закрытый ключ * hash_to_ec_point (открытый ключ)
. Конструкция кольцевой подписи доказывает, что образ ключа формируется из одного и того же закрытого и открытого ключа, принадлежащего реальному подписывающему лицу, при этом наблюдатель не может сказать, кому принадлежит образ ключа.
Реальный подписывающий может доказать, что он был настоящим подписывающим лицом, предоставив подпись (например, простую подпись Шнорра), доказывающую, что он знает закрытый ключ для образа ключа, который был объявлен как часть исходной связываемой кольцевой подписи.
Пример реализации см. в разделе «Подписи Back’s Linkable Spontaneous Anonymous Group (bLSAG)». Я включил алгебру ниже, выдержки из От нуля до Монеро раздел 3.4.