Большинство систем работает на предположениях.
Вы предполагаете, что пользователь имеет право, потому что ваша база данных говорит об этом. Вы предполагаете, что транзакция следовала правилам, потому что ваш бэкэнд выполнил ее. Вы предполагаете, что учетные данные реальны, потому что они пришли из "правильного" источника. И большую часть времени это предположение верно, пока не станет неверным.
Вот тогда все становится некомфортно.
Потому что, когда что-то идет не так, вам остается только копаться в журналах, восстанавливать события и пытаться доказать то, что должно было быть доказуемым с самого начала. Это реактивно, беспорядочно и часто неубедительно. Система работала... но вы не можете показать, что она работала.
Это и есть разрыв, который пытаются заполнить аттестации.
В Sign аттестация не просто запись — это подписанное утверждение, привязанное к определенной структуре. Кто-то (или что-то) явно говорит: 'это правда', и подтверждает это подписью, которую можно проверить независимо. Это кажется простым, но меняет поведение систем.
Ты больше не полагаешься на внутреннее состояние как на источник правды. Ты создаешь переносимые, проверяемые утверждения, которые могут стоять самостоятельно.
И это значительно меняет динамику.
Во-первых, это снижает зависимость от централизованного контроля. Если утверждение можно проверить без запроса к твоей базе данных, тебе не нужно быть онлайн — или даже доверенным — чтобы другие могли это подтвердить. Доказательство существует вне твоей системы. Это тонкое, но важное разделение.
Это также делает системы более композируемыми.
Аттестация, выданная в одном контексте, может быть использована в другом без переинтерпретации. Если пользователь уже доказал свою правомочность где-то, зачем заставлять его повторять процесс? С аттестациями это доказательство может путешествовать. Не как необработанные данные, а как что-то уже проверенное и подписанное.
Конечно, это вводит другой вид ответственности.
Кто выдает аттестацию? Какие стандарты они соблюдают? Им можно доверять? Аттестации не устраняют доверие — они делают его явным. Вместо того чтобы скрываться за системами, доверие привязывается к идентифицируемым эмитентам и видимым записям.
И честно говоря, это лучшее предложение.
Потому что скрытое доверие — это то, откуда начинаются большинство проблем. Когда ты не знаешь, чему доверять, ты либо доверяешь всему, либо ничему — ни один из этих вариантов не масштабируется хорошо. Аттестации выносят это решение на поверхность. Ты можешь проверить источник, подтвердить подпись и решить сам.
Также стоит упомянуть, как это влияет на дизайн систем.
Когда ты знаешь, что каждое важное действие может понадобиться подтвердить позже, ты начинаешь строить по-другому. Ты думаешь о том, что должно быть записано, как это должно быть структурировано и кто должен это подписать. Это добавляет уровень дисциплины, которого большинству систем сейчас не хватает.
Не потому, что им все равно — а потому, что они не были созданы с учетом верификации.
Sign не требует совершенства, но подталкивает системы в этом направлении. Он дает разработчикам способ превратить предположения в нечто конкретное — нечто, что можно проверить, поделиться и повторно использовать без двусмысленности.
А в сфере, где 'доверяй мне' использовалось до такой степени, что это стало бессмысленным, это изменение стоит внимания.