Это серия, состоящая из нескольких частей, в которой подробно описывается бизнес-архитектура и техническая архитектура HUMAN Protocol, нового подхода к человеческому машинному интеллекту, который позволяет машинам напрямую запрашивать у нас данные, которые им необходимо улучшить.

Вы когда-нибудь мечтали о том, чтобы можно было достоверно связать произвольные данные с адресом эфириума?

Недавно мы открыли исходный код простой, но мощной служебной службы, которая позволяет вам привязать данные к вашему адресу Ethereum. Мы называем это эт-квстор. Нам нужен был способ, позволяющий владельцам адресов Ethereum публиковать и обменивать открытые ключи и другую информацию, имеющую отношение к безопасности, но его можно использовать для связывания любых произвольных данных с вашим адресом Ethereum.

Для нас это было важно для безопасной реализации ЧЕЛОВЕЧЕСКОГО протокола, на котором работает hCaptcha.com. Например, он позволяет тем, кто запрашивает работу в нашей системе (на которые ссылаются через адреса Ethereum), указать и повернуть ключ PGP в цепочке, чтобы использовать его для получения передачи информации вне сети.

Фон

Иерархические детерминированные кошельки (HD-кошельки), предложенные в BIP32, основаны на порождении дочернего ключа, где родительский ключ может детерминированно вычислять свои закрытый и открытый ключи. Каждый Ethereum-адрес кошелька представляет собой хэш открытого ключа Keccak-256 (также известный как SHA-3). Однако невозможно получить открытый ключ наоборот, если рассматриваемый адрес еще не подписывал транзакцию.

Доступ к публичному ключу адреса не только сложен, но и неудобен. Имеющиеся библиотеки требуют заранее довольно много знаний о криптографии. Простой поиск открытого ключа адреса может легко занять день или два для старшего инженера-программиста, особенно если не используются служебные инструменты, такие как ethereumjs-util.

Кроме того, использование открытого ключа адреса Ethereum для подписи данных, предоставленных пользователем, открывает возможности для атак с использованием известного и выбранного открытого текста. Ethereum не имеет встроенной концепции ротации ключей, поскольку адрес Ethereum - это просто последние 20 байтов хэша открытого ключа.

А как насчет ENS?

Ethereum Name Service (ENS) - это хорошо известный подход к созданию удобочитаемого способа адресации ресурсов. Первоначально мы рассматривали возможность использования «обратного ENS» для удовлетворения наших потребностей.

Хотя в ENS можно зарегистрировать открытый ключ в качестве адресного домена .eth , это не совсем то, для чего предназначен ENS. Свойства DNS в ENS делают его неудобным для использования в качестве системы ротации ключей. Что делать, если два разных адреса хотят временно связать один и тот же ключ со своими собственными адресами в одном и том же реестре?

Технически самым большим препятствием является то, что все библиотеки ENS предполагают, что вам нужно управлять своим собственным узлом. Вы не можете использовать поддержку библиотеки ENS, если хотите подписывать, создавать и отправлять транзакции с локальным закрытым ключом. Это исключает удобство использования http-провайдеров, таких как Infura или Quiknode, и требует огромного опыта в web3 для непосредственной работы с функциями контракта.

Решение

С нашим решением каждый адрес Ethereum может свободно хранить пары ключ-значение, привязанные только к его адресу. В HUMAN Protocol это обеспечивает эффективное использование и ротацию ключей шифрования.

Вот краткое описание API:

set (ключ, значение): вы автоматически привязываете пару ключ-значение непосредственно к своему собственному адресу Ethereum. Кто угодно может получить доступ к паре, но только вы можете ее изменить.

get (address, key): вы можете получить ранее сохраненное значение любого адреса Ethereum с правильным ключом.

Увлекаться

Наша реализация eth-kvstore в настоящее время работает в тестовой сети Ropsten и скоро будет развернута в основной сети, поскольку протокол HUMAN продвигается в своей дорожной карте. Более подробную информацию можно найти в нашем репозитории GitHub. Мы приветствуем любой вклад и хотели бы подробнее обсудить возможные варианты использования eth-kvstore.

Мы также ищем владельцев веб-сайтов для внедрения hCaptcha, реализации протокола HUMAN, на своих сайтах - если вы уже используете капчи и хотите получить компенсацию за свои усилия, зарегистрируйтесь на hCaptcha.com.