Русская Википедия:CryptoNote

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

История

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

Эмиссия

Так же как и в Биткойн, майнеры получают награду за найденные решения. Но ступенчатая кривая выпуска, характерная для Биткойн, в CryptoNote заменена на плавную: награда уменьшается с каждым блоком. Это сделано для того, чтобы резкое изменение скорости выпуска монет не оказывала шокирующего влияния на их рыночную стоимость. Bytecoin и Monero используют разные параметры плавной кривой эмиссии. Разработчики DarkNote решили воспроизвести ступенчатую кривую, сокращая эмиссию в два раза каждый месяц.

Особенность алгоритма подтверждения работы

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

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

Эти нововведения усложняют создание специализированных процессоров для майнинга, массовое применение которых в сети Биткойн привело к тому, что владельцам обычных персональных компьютеров нет экономического смысла участвовать в майнинге. Разработка специализированного алгоритма подтверждения работы в CryptoNote ставит своей целью приблизиться к принципу «один процессор — один голос»Шаблон:Нет АИ.

Анонимность

Файл:CryptoNote blockchain analysis ambiguity.gif
Отслеживаемость платежей при использовании кольцевых подписей.

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

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

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

См. также

Примечания

Шаблон:Примечания

Шаблон:Rq Шаблон:Криптовалюты