1) Необходима реализация на c# механизма распределённой генерации ключей с пороговой схемой K из N (аналогично схеме Шамира) на стандартных эллиптических кривых seсp256k1, но с возможностью выбора других при необходимости, например, Ed25519.
Есть примеры на Go и на Rust, их можно взять за основу.
Тут что-то тоже можно посмотреть
2) Так же необходимо тестовое приложение (в одном или раздельные), демонстрирующее работу протокола в составе мастер-узла и нескольких узлов-участников. Общедоступные данные можно публиковать в БД или на своё усмотрение.
Примерные этапы:
0. Определение общедоступных параметры и порядковых номеров от 1 до N.
1. Создание открытого ключа.
2. Генерация полиномов и раздача теней.
3. Проверка коэффициентов полиномов.
4. Подпись сообщения.
5. Распределенное дешифрование сообщения.
Должно быть продемонстрирована условно два состояния, успешный раунд генерации и не успешный, когда на этапе проверки, после обмена коммитментами, участники проверяют правильность коммитментов других участников и в случае обнаружения несоответствия, участник может быть исключен из процесса. В этом случае раунд генерации должен начаться сначала.