Цель создания по-настоящему приватного и децентрализованного интернета становится ближе. С выпуском функции vetKeys в Internet Computer Protocol ($ICP) с этапом Niobium, у разработчиков теперь есть инструменты для создания новой волны надежных ончейн-сервисов, открывающих широкое поле для новых dapps.
Открытость блокчейнов — это большая сила, но она противоречит потребности в конфиденциальности во многих случаях использования. Это уже давно является предметом обсуждений в технологии блокчейн. Как отметил Kristofer Lund, Developer Evangelist в DFINITY Foundation, это было решающим фактором для многих. «Когда вы говорите с реальным человеком о создании приложения на блокчейне, — говорит он, — разговор прекращается в 100% случаев», как только они узнают, что их данные будут общедоступными. Для многих организаций, особенно тех, которые имеют дело с законодательством, таким как Общий регламент ЕС по защите данных (GDPR), это делает невозможным создание приложений на публичном блокчейне.
Теперь vetKeys предлагает ответ на эту проблему.
По сути, vetKeys — это «возможность создавать криптографические ключи в децентрализованной среде и безопасно передавать их пользователю», как выразился Kristofer. Он называет это «переломным моментом», потому что это решает проблему сохранения конфиденциальности информации в публичной сети.
Другими словами, vetKeys дает вам лучшее из обоих миров: вы можете использовать доверие и время безотказной работы публичного блокчейна, не делая все свои данные общедоступными. Он предоставляет разработчикам набор инструментов для сохранения конфиденциальности информации о пользователях, даже если она находится в прозрачной сети. Важно отметить, что это также позволяет обойтись без централизованной стороны для управления ключами.
Движущей силой этого является нечто, называемое verifiably encrypted threshold key derivation (vetKD). Чтобы увидеть, как это используется на практике, давайте рассмотрим пример безопасного процесса, который делает это возможным:
Эта настройка делает такие идеи, как identity-based encryption (IBE), практическими в использовании. Например, в зашифрованном чат-приложении обычно необходимо выполнить какой-то обмен ключами. Но с vetKeys, как объясняет Kristofer, «нам больше это не нужно, потому что я могу получить ваш открытый ключ, и мы просто используем ваше имя пользователя в качестве идентификатора».
С помощью vetKeys смарт-контракты в Internet Computer могут выступать в качестве привратников. Другими словами, они могут устанавливать правила для того, кто может получить ключ и когда. Это мощное сочетание vetKeys и canister предлагает разработчикам возможность создавать целый ряд новых приложений. Вот лишь несколько из них.
vetKeys позволяет создавать приложения для обеспечения исключительно личной конфиденциальности. Kristofer выделяет эту модель как «просто я получаю свой собственный vetKey и безопасно передаю его себе».
В этой модели вы можете создавать такие вещи, как безопасный ончейн-дневник, менеджер паролей или личный блокнот. Пользователь получает секретный ключ на основе своей уникальной личности, к которому может получить доступ только он. Это позволяет им шифровать свои самые конфиденциальные личные данные и хранить их в блокчейне с уверенностью, что они являются единственным владельцем ключа.
Это решает классическую проблему для dapps, которые обрабатывают конфиденциальные файлы: как пользователь может получить доступ к своим зашифрованным документам на разных устройствах, не ставя под угрозу свои ключи? Используя vetKeys для получения согласованного ключа на основе своей личности, пользователи могут безопасно получать доступ к своим собственным данным с любого устройства, что является важной функцией для управления документами с высоким уровнем безопасности.
vetKeys позволяет создавать системы, в которых пользователи могут общаться и обмениваться информацией с полной конфиденциальностью, а контроль доступа осуществляется ончейн.
Как указано выше, краеугольным вариантом использования является сквозной зашифрованный чат. Разработчик может создать dapp, где пользователь получает открытый ключ другого человека, просто используя его имя пользователя, пишет ему секретное сообщение и отправляет его. Человек, получающий сообщение, после того как он докажет, кто он, может затем получить свой собственный закрытый ключ, чтобы прочитать его. Canister выступает в качестве привратника, следя за тем, чтобы только нужный пользователь мог получить свой собственный ключ.
Эта функция открывает приложения, в которых информация раскрывается только по истечении определенного периода времени, и все это обеспечивается блокчейном.
Для аукционов или голосований может потребоваться, чтобы ставки держались в секрете, чтобы, как выразился Kristofer, «никто не мог воспользоваться знанием чужих ставок». С помощью vetKeys участники торгов могут заблокировать свои ставки, используя ключ, привязанный ко времени закрытия аукциона. Когда время истечет, canister может получить ключ, разблокировать все ставки одновременно и показать результаты.
Другим ключевым вариантом использования является переключатель мертвого человека. Например, журналист с конфиденциальной информацией может заблокировать ее ключом с таймером. Как описывает Kristofer, «каждые 24 часа им нужно заходить в интерфейс... нажимать кнопку, и они будут продлевать блокировку по времени». Если они этого не сделают, по какой-либо причине, таймер истечет, ключ можно будет найти, и информация будет раскрыта миру.
Для мира DeFi технология vetKeys предоставляет инструменты для создания приложений, защищенных от опережающих сделок и других форм манипулирования рынком.
Основной головной болью в DeFi является maximal extractable value (MEV). Поскольку большинство блокчейн-транзакций транслируются в общедоступную комнату ожидания до их подтверждения, участники могут видеть эту информацию и использовать ее для получения прибыли. Используя vetKeys для шифрования деталей сделки, эти участники ослепляются. Они не могут увидеть возможность в комнате ожидания, потому что содержимое транзакции хранится в секрете до тех пор, пока она не будет завершена в блоке.
Этот простой акт принудительной конфиденциальности закрывает весь этот путь эксплуатации, делая DeFi более справедливым.
vetKeys также позволяет создавать игры или любую систему, в которой результат должен быть случайным и доказуемо честным для всех участников.
Отличным примером является использование vetKeys в качестве verifiable random function (VRF). Это означает, что он может создавать результаты, которые не только случайны, но и могут быть проверены кем угодно, чтобы доказать, что они честны. Это является ключевым моментом для честных игр в казино, лотерей и редких предметов.
Эта технология дает смарт-контрактам собственную криптографическую «ручку» для подписи данных, позволяя им авторитетно взаимодействовать с другими блокчейнами или доказывать факты внешнему миру.
С помощью vetKeys canister может поручить узлам своей подсети создать стандартную подпись BLS, которая поддерживает агрегацию нескольких отдельных подписей в одну компактную подпись или может использоваться в протоколах с несколькими подписями.
Это превращает сам canister в децентрализованный подписант. Эта функция является ключевым строительным блоком для более взаимосвязанного и надежного мультичейн-мира, позволяя canister в Internet Computer подписывать транзакцию, которая затем отправляется в другую цепочку, или выдавать проверяемые ончейн-учетные данные пользователю, и все это без централизованных мостов.
Chain Fusion уже позволяет canister подписывать транзакции. Он использует другие схемы, а именно threshold ECDSA, Schnorr и EdDSA. С помощью vetKeys у canister теперь есть дополнительная схема подписи в их распоряжении, открывающая новые возможности для разработчиков.
Проекты в экосистеме $ICP уже изучают эти возможности, от безопасного обмена сообщениями и приложений для хранения файлов до новых форм децентрализованного управления.
Одним из примеров является OpenChat, чат-приложение, принадлежащее сообществу и работающее в Internet Computer. Как описывает Hamish Peebles, соучредитель OpenChat, «OpenChat будет поддерживать сквозное шифрование сообщений с использованием vetKeys. Используя vetKeys, если пользователь потеряет свое устройство, он сможет безопасно восстановить свой ключ шифрования и восстановить доступ к своим сообщениям. Это невозможно ни в одном другом зашифрованном сервисе обмена сообщениями».
Другой проект, интегрирующий vetKeys, — Diode.io. По словам Hans Rempel, генерального директора Diode.io, «с помощью vetKeys мы можем быстро хранить личные данные в canister, не создавая сначала внеполосные методы шифрования. Это позволяет нам быстро двигаться вперед, продолжая предоставлять нашим пользователям самостоятельное хранение, частные средства связи и коммуникации».
Dominic Letz, соучредитель и технический директор Diode.io, также подчеркивает ценность vetKeys для конфиденциальности пользователей. «Все данные, даже если они находятся в canister, полностью зашифрованы сквозным шифрованием. Мы не можем их прочитать, ребята из $ICP не могут их прочитать. На самом деле только владелец данных, только пользователи приложения, могут читать свои данные и расшифровывать их».
Эти примеры демонстрируют немедленную и практическую ценность vetKeys, и это еще не все.
Unleashing the power of vetKeys — first public demo and developer bounties
Хотя vetKeys открывает много дверей, разработчикам нужно мыслить по-новому, чтобы открыть их. Как предупреждает Kristofer, «если вы подойдете к этому с мыслью, что сможете создавать приложения так же, как и в Web2, то в конечном итоге вы построите их неправильно».
Необходимы новые способы строительства. Поскольку хранение данных и создание ключей имеют ончейн-затраты, приложения, которые обрабатывают большие файлы или нуждаются в очень частой смене ключей, должны быть спланированы с осторожностью. Успешные проекты будут использовать сильные стороны технологии, находя умные способы работы с возможностями, которые она предоставляет. Например, платный блог может создавать один новый ключ для всех своих постов каждый месяц, чтобы снизить затраты. Со временем, по словам Kristofer, «эти новые шаблоны проектирования появятся». Самое интересное, что эти возможности есть и ждут, когда разработчики воспользуются ими.
Важно отметить, где применяется гарантия конфиденциальности vetKeys. Он обеспечивает безопасность ваших данных вплоть до момента их разблокировки. Прямо сейчас, для обеспечения наилучшей безопасности, данные должны быть разблокированы только в веб-браузере пользователя. Как только смарт-контракт разблокирует данные, вы больше не можете предполагать, что информация является конфиденциальной. «Если вы расшифруете его в canister, — отмечает Kristofer, — то он снова окажется в открытом доступе».
Но это указывает на следующий большой скачок: Trusted Execution Environments (TEEs). С помощью TEE canister сможет разблокировать данные внутри безопасной, изолированной части узла, работать с ними и снова заблокировать их, не позволяя узлу увидеть необработанные данные.
Когда этот день наступит, Kristofer предполагает, что дверь откроется для «любых и всех обычных вариантов использования Web2 enterprise», чтобы работать с полной конфиденциальностью в публичном блокчейне.
Эра ончейн-конфиденциальности действительно началась. Пришло время начать строить.
Готовы ли вы начать строить с помощью vetKeys? Ознакомьтесь с Developer Docs для получения руководств и примеров.
Onchain Privacy in Action: A Guide to vetKeys Use Cases был первоначально опубликован в The Internet Computer Review на Medium, где люди продолжают разговор, выделяя эту историю и отвечая на нее.