Назад

CryptoNote

CryptoNote — протокол прикладного уровня, на основе которого построено семейство анонимных криптовалют, наиболее известными из которых являются Bytecoin и Monero. Анонимность в CryptoNote реализована за счёт использования кольцевых подписей (скрывают отправителя) и одноразовых адресов (скрывают получателя).

Протокол разработан в 2012 году разработчиком (или группой разработчиков) под псевдонимом Николас ван Саберхаген. Его математическая составляющая и мотивация описаны в статье «CryptoNote Whitepaper». Bytecoin, запущенный летом 2012 года, был первой криптовалютой, основанной на этой технологии. Позже несколько команд запустили свои сети, взяв за основу код Bytecoin.

Технология CryptoNote использует базу транзакций в виде цепочки блоков, похожую на базу BTC. База также защищена от модификации методом proof-of-work на основе хеша. Но в CryptoNote время вычислений в большей степени зависит от скорости произвольного доступа к памяти, чем от скорости выполнения простых математических операций. Алгоритм включает в себя:

  • Keccak и функцию губки
  • аналогичный, используемому в алгоритме Scrypt, буфер размером 2MB, к которому выполняется произвольный доступ на чтение и на запись;
  • 64-битные операции умножения;
  • вычисление раунда шифрования AES;
  • ополнительные хеш-функции: BLAKE, Grøstl, JH, Skein.

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

Транзакции в CryptoNote похожи на транзакции в BTC: каждая транзакция означает смену владельца указанного количества единиц. Несколько исследователей указывают на то, что на основе цепочки блоков BTC можно идентифицировать принадлежности некоторых BTC-адресов. Для затруднения такого рода анализа в технологии CryptoNote используются одноразовые адреса в качестве адресов получателя и кольцевые подписи, указывающие одновременно на право распоряжаться одним из выходов, формирующих заданную сумму, но не позволяющие определить, каким именно из перечисленных выходов воспользовался отправитель.

Транзакции, подписанные кольцевой подписью, ссылаются на несколько других транзакций в цепочке блоков. При этом не требуется, чтобы все перечисленные транзакции были адресованы данному отправителю. С точки зрения наблюдателя, такая транзакция с равной вероятностью может использовать в качестве входа любую из транзакций, на которые она ссылается. Чем большее количество ссылок на предыдущие транзакции включено в кольцевую подпись, тем больше неопределённость и тем больше размер самой подписи. От размера транзакции зависит комиссия сети за её включение в блок. Отправитель может выбирать между снижением комиссии и увеличением анонимности. Этот подход к анонимности может быть описан как пассивный децентрализованный миксинг.

Выходы транзакций отправляются на одноразовый адрес, который генерируется из реального адреса отправителя и случайного ключа транзакции. Получатель сможет вычислить необходимый для распоряжения полученным закрытый ключ из своего закрытого ключа и того же случайного ключа, указанного в теле транзакции. С точки зрения наблюдателя, несколько транзакций в пользу одного и того же адреса будут выглядеть как отправленные на разные адреса, не имеющие между собой ничего общего.