Cordentity — это приложение Corda (CorDapp) позволяющее использовать возможности технологии Self Sovereign Identity (SSI) другим CorDapps. Другими словами, Cordentity = Corda + Identity.
Мы рады объявить, что теперь Cordentity является проектом Hyperledger Labs с открытым исходным кодом.
Мы разработали Cordentity, чтобы привнести в Corda возможности SSI, реализованные в Hyperledger Indy. Технология Hyperledger Indy основана на двух важных концепциях: DID (децентрализованные идентификаторы) и ABC (учетные данные на основе атрибутов или проверяемые утверждения).
В этом контексте Self Sovereign означает, что пользователь владеет учетными данными, представленными парой: публичный и приватный ключ, а так же Credentials, представляющими собой утверждения (набор атрибутов, таких как диплом об образовании, номер паспорта, мед. книжка и тому подобное), полученными и подписанными цифровой подписью от доверенных/авторитетных источников (например, паспортного стола, больницы, университета, банка и так далее). Все это хранится непосредственно у идентифицируемого владельца и передаётся другим участникам только при необходимости. Таким образом, удается совместить существующие авторитеты и «доверенные источники» (которые представлены публично известными DID) с гибким, масштабируемым и безопасным способом обмена информацией.
Можно использовать это сочетание технологий для решения многих задач, связанных с управлением цифровой идентификацией и проверкой учетных данных с сохранением конфиденциальности. Этот подход также соответствует требованиям GDPR и открывает приложениям, работающим с персональными данными (PII), новые возможности, которые было бы очень трудно внедрить другими способами.
Если посмотреть на круг задач, которые решает блокчейн-сообщество, то окажется, что большая часть связана с идентификацией и управлением учетными данными. Конечно, на самом базовом уровне, комбинации публичных/приватных ключей, используемые для подписи и проверки транзакций, определяют владельца цифрового актива. Тем не менее, как только мы попробуем добавить дополнительные атрибуты, например, возраст, национальность, банковскую или страховую информацию, то возникает необходимость в решении, которое обеспечивает лучшую защиту конфиденциальности, а также имеет возможности масштабирования. Хранить такие данные в неизменяемом реестре — не лучший вариант.
Другими словами, чтобы наиболее полно использовать возможности технологий децентрализации и смарт-контрактов, следует объединить функции SSI и проверяемых утверждений с технологией распределенных реестров и системами на основе блокчейна.
Вы можете сказать:
«Хорошо, это все отлично, но при чем здесь Corda?»
«Хорошо, это все отлично, но при чем здесь Corda?»
Рассмотрим, как работает большинство блокчейн-платформ и какие допущения делают при их проектировании. Большая часть проектировщиков таких платформ берут пример с Bitcoin . Bitcoin является системой узкой специализации, которая достигает согласованного состояния (в виде баланса Bitcoin или UTXO) путем последовательного выполнения всех зарегистрированных транзакций, которые были проведены после первичного блока. Я говорю об узкой специализации, чтобы подчеркнуть ключевую особенность блокчейн-систем: результатом децентрализованной, распределенной записи в отсутствии доверия является учет внутренних активов (например, биткоинов или эфира). Любые другие записи в блокчейне, например, хэши, внешние документы, события и так далее, — это просто записи, закрепленные в истории, но не подтвержденные каким либо бизнес- протоколом.
Очевидно, что для большинства корпоративных сценариев использования требуется совершенно другая система, которая с одной стороны позволит партнерам синхронизировать односторонние процессы и упростит обмен данными без центрального доверенного посредника, а с другой — будет делать это конфиденциально и выборочно.
Совершенно ясно, что узкоспециализированная система не подходит, потому что нужно обеспечить возможность без труда создавать произвольные «бизнес-протоколы», которые смогут в обязательном порядке обеспечивать надежный консенсус со сторонними системами и источниками авторитетных данных.
Corda — это как раз такая технология
Начав рассматривать преимущества verifiable claims (“проверяемых утверждений”), описанных выше, мы быстро поняли, что обмен утверждениями (подписанными цифровыми подтверждениями с набором атрибутов) и доказательствами (обезличенными комбинациями проверяемых цифровых подтверждений) с целью открыть банковский счет, сходить к врачу или, например, арендовать автомобиль и так далее, органично вписывается в идею потоков (англ. Flows) в Corda. Поток — это программный способ описания протокола исполнения транзакции между выбранным набором участников.
В этой парадигме утверждения, доказательства и идентификация владельца являются входными данными бизнес-процесса (представьте их как пункты инструкции или контрольный список), которым управляет движок распределенных смарт-контрактов Corda. Для формирования транзакций Потоки собирают подписи сторон и данные для проверки из связанных приложений Corda (это может быть код, который реализует бизнес-логику или другую функциональность на узлах Corda), включая те, что взаимодействуют с внешней инфраструктурой идентификации или проверяемых утверждений.
Для нас такая схема была очевидной, поэтому мы создали Cordentity, чтобы упростить создание приложений с бизнес-протоколами, которые применяют мощное сочетание технологий Corda и SSI.
Сила партнерства и открытого исходного кода
Как сказали наши партнеры из R3, мы не одиноки в нашем направлении — над данной проблемой сейчас работают и другие команды. Тем не менее, мы получили огромный фидбек, в том числе очень ценные комментарии от технической команды Corda и решили поделиться своими трудами с сообществом.
По случайному стечению обстоятельств, компания R3 собиралась запустить собственный Market Place и нам удалось стать партнером-хедлайнером на дебюте Marketplace Portal. Это дало нам дополнительную огласку и привлекло внимание к Cordentity, поэтому мы решили идти дальше.
После многочисленных обсуждений с командой Corda, мы пришли к выводу, что стоит опубликовать наш труд в сообществе Hyperledger (работающим над несколькими технологиями распределенных реестров и блокчейна, а также их базовыми элементами, в том числе Indy).
Проект Cordentity был добавлен в инкубатор Hyperledger Labs, его исходный код доступен на GitHub, так что мы очень рады и надеемся, что проект будет развиваться, в том числе с помощью блокчейн-сообщества.
Последнее мероприятие Hyperledger Global Forum в Базеле показало, что в сообществе есть множество проектов, которые начинают применять технологию Hyperledger Indy для решения продуктовых задач, и что появление Cordentity пришлось очень кстати. В конце концов, успех возможен только в том случае, если мы, как сообщество, упростим создание систем, решающих проблемы компаний, а также их внедрение. Сделать это будет несложно, если мы будем работать сообща, применять опыт друг друга и перенимать лучшие технологии, которые открывают новые возможности.
Автор: Evgenia_s5