Смарт-контракт ano держит цепочку доверия платформы: кто кого признаёт вправе выпускать удостоверения.
Зачем он нужен. Удостоверение пайщика подписано ключом его кооператива. Одной этой подписи мало: она доказывает, что удостоверение выпустил обладатель ключа, но ничего не говорит о том, вправе ли он их выпускать. Без второго ответа любой, кто завёл себе аккаунт и ключ, выдавал бы удостоверения, неотличимые от настоящих. Заверение и есть второй ответ.
Три уровня, из них два заверяющих:
- АНО Кооперативная Экономика — корень. Заверяет операторов.
- Оператор — тот, кто эксплуатирует установку платформы. Заверяет кооперативы, которые обслуживает.
- Кооператив — выпускает удостоверения своим пайщикам.
Кооператив, поднявший установку себе сам, занимает оба нижних уровня разом: он и оператор, и кооператив. Кооператив, обслуживаемый чужой установкой, только нижний.
Чего контракт намеренно не делает:
- Не проверяет подписи. Формат подписи здесь тот же, что у удостоверения пайщика; вторая реализация проверки — вторая реализация, которая однажды разойдётся с первой. Подлинность устанавливает проверяющий, у которого единственная реализация и есть.
- Не решает, кому быть кооперативом. Реестр кооперативов живёт в регистраторе и отвечает на другой вопрос — кто зарегистрирован. Присутствие в реестре не даёт права заверять, а заверение не делает кооперативом.
- Не отзывает выданное. Подписанное заверение нельзя отподписать: оно уже у того, кому выдано. Поэтому у заверений короткий срок, а отзыв — это прекращение продления, см.
revoke.
- См. также
- components/contracts/cpp/lib/domain/table_ano_endorsements.hpp