CryptoNote v2.0
Представленная здесь работа — это вайтпейпер CryptoNote v2.0 Николаса ван Сабергагена (2013), описывающий криптографические основы, на которых построен Monero. Это не специфичный для Monero вайтпейпер — Monero запустился в 2014 году как форк эталонной реализации CryptoNote (Bytecoin) и с тех пор значительно эволюционировал за пределы исходного протокола.
Введение
«Bitcoin» [1] представляет собой успешную реализацию концепции электронных денег p2p. оба профессионалы и широкая общественность оценили удобное сочетание публичные транзакции и proof-of-work как модель доверия. Сегодня пользовательская база электронных денег растет устойчивыми темпами; клиентов привлекают низкие комиссии и обеспечиваемая анонимность электронными деньгами, и торговцы ценят ее прогнозируемую и децентрализованную эмиссию. Bitcoin имеет эффективно доказал, что электронные деньги могут быть такими же простыми, как бумажные деньги, и такими же удобными, как кредитные карты. К сожалению, Bitcoin имеет несколько недостатков. Например, распределенная система природа негибка и не позволяет внедрять новые функции до тех пор, пока почти все пользователи сети не обновят свои клиенты. Некоторые критические недостатки, которые невозможно быстро исправить, отпугивают Bitcoin. широкое распространение. В таких негибких моделях эффективнее развернуть новый проект. вместо того, чтобы постоянно исправлять первоначальный проект. В этой статье мы изучаем и предлагаем решения основных недостатков Bitcoin. Мы верим что система, учитывающая предлагаемые нами решения, приведет к здоровой конкуренции среди различных электронных денежных систем. Мы также предлагаем собственные электронные деньги «CryptoNote», имя, подчеркивающее следующий прорыв в области электронных денег.
giriiş
“Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin birçok eksiklikten muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızla düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim.
Bitcoin Недостатки и возможные решения
2 Bitcoin недостатки и некоторые возможные решения 2.1 Отслеживаемость транзакций Конфиденциальность и анонимность являются наиболее важными аспектами электронных денег. Одноранговые платежи стремятся быть скрытыми от взглядов третьих лиц, что является явной разницей по сравнению с традиционными банковское дело. В частности, Т. Окамото и К. Охта описали шесть критериев идеальных электронных денег: который включал «конфиденциальность: связь между пользователем и его покупками должна быть неотслеживаемой». кем угодно» [30]. Из их описания мы получили два свойства, которые полностью анонимны. Модель электронных денег должна удовлетворять требованиям, изложенным Окамото. и Охта: Неотслеживаемость: для каждой входящей транзакции все возможные отправители равновероятны. Несвязываемость: для любых двух исходящих транзакций невозможно доказать, что они были отправлены на тот же человек. К сожалению, Bitcoin не удовлетворяет требованию неотслеживаемости. Поскольку все транзакции, происходящие между участниками сети, являются публичными, любая транзакция может быть 1 КриптоНота v 2.0 Николас ван Саберхаген 17 октября 2013 г. 1 Введение «Bitcoin» [1] представляет собой успешную реализацию концепции электронных денег p2p. оба профессионалы и широкая общественность оценили удобное сочетание публичные транзакции и proof-of-work как модель доверия. Сегодня пользовательская база электронных денег растет устойчивыми темпами; клиентов привлекают низкие комиссии и обеспечиваемая анонимность электронными деньгами, и торговцы ценят ее прогнозируемую и децентрализованную эмиссию. Bitcoin имеет эффективно доказал, что электронные деньги могут быть такими же простыми, как бумажные деньги, и такими же удобными, как кредитные карты. К сожалению, Bitcoin имеет несколько недостатков. Например, распределенная система природа негибка и не позволяет внедрять новые функции до тех пор, пока почти все пользователи сети не обновят свои клиенты. Некоторые критические недостатки, которые невозможно быстро исправить, отпугивают Bitcoin. широкое распространение. В таких негибких моделях эффективнее развернуть новый проект. вместо того, чтобы постоянно исправлять первоначальный проект. В этой статье мы изучаем и предлагаем решения основных недостатков Bitcoin. Мы верим что система, учитывающая предлагаемые нами решения, приведет к здоровой конкуренции среди различных электронных денежных систем. Мы также предлагаем собственные электронные деньги «CryptoNote», имя, подчеркивающее следующий прорыв в области электронных денег. 2 Bitcoin недостатки и некоторые возможные решения 2.1 Отслеживаемость транзакций Конфиденциальность и анонимность являются наиболее важными аспектами электронных денег. Одноранговые платежи стремятся быть скрытыми от взглядов третьих лиц, что является явной разницей по сравнению с традиционными банковское дело. В частности, Т. Окамото и К. Охта описали шесть критериев идеальных электронных денег: который включал «конфиденциальность: связь между пользователем и его покупками должна быть неотслеживаемой». кем угодно» [30]. Из их описания мы получили два свойства, которые полностью анонимны. Модель электронных денег должна удовлетворять требованиям, изложенным Окамото. и Охта: Неотслеживаемость: для каждой входящей транзакции все возможные отправители равновероятны. Несвязываемость: для любых двух исходящих транзакций невозможно доказать, что они были отправлены на тот же человек. К сожалению, Bitcoin не удовлетворяет требованию неотслеживаемости. Поскольку все транзакции, происходящие между участниками сети, являются публичными, любая транзакция может быть 1 3 Bitcoin определенно не обеспечивает «неотслеживаемость». Когда я отправляю вам BTC, указывается кошелек, с которого он отправляется. безвозвратно проштамповано на blockchain. Вопроса о том, кто отправил эти средства, не возникает. потому что их может отправить только тот, кто знает секретные ключи.однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов оспаривается [25], есть подозрение, что из него можно извлечь много скрытой личной информации. общедоступная база данных. Неспособность Bitcoin удовлетворять двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [28]: «Нулевая монета». Зерокойн использует криптографические односторонние аккумуляторы и доказательства с нулевым разглашением, которые позволяют пользователям «конвертируйте» биткойны в зерокоины и тратьте их, используя анонимное доказательство владения вместо явные цифровые подписи на основе открытого ключа. Однако такие доказательства знаний имеют постоянную но неудобный размер - около 30кб (исходя из сегодняшних лимитов Bitcoin), что делает предложение непрактично. Авторы признают, что протокол вряд ли когда-либо будет принят большинством стран. Bitcoin пользователей [5]. 2.2 Функция proof-of-work Создатель Bitcoin Сатоши Накамото описал алгоритм принятия решений большинством как «один ЦП-один голос» и использовал функцию ценообразования с привязкой к ЦП (двойной SHA-256) для своего proof-of-work схема. Поскольку пользователи голосуют за единый заказ истории транзакций [1], разумность и последовательность этого процесса является важнейшим условием для всей системы. Безопасность этой модели имеет два недостатка. Во-первых, для этого требуется 51% ресурсов сети. мощность майнинга должна находиться под контролем честных пользователей. Во-вторых, прогресс системы (исправление ошибок, исправления безопасности и т. д.) требуют, чтобы подавляющее большинство пользователей поддерживало и соглашалось с изменения (это происходит, когда пользователи обновляют программное обеспечение своего кошелька) [6].Наконец, это же голосование Механизм также используется для коллективных опросов о реализации некоторых функций [7]. Это позволяет нам предположить, каким свойствам должен удовлетворять proof-of-work. функция ценообразования. Такая функция не должна позволять участнику сети иметь существенное влияние. преимущество перед другим участником; это требует паритета между общим оборудованием и высоким Стоимость нестандартных устройств. Из недавних примеров [8] мы видим, что используемая функция SHA-256 в архитектуре Bitcoin этим свойством не обладает, поскольку майнинг становится более эффективным на Графические процессоры и устройства ASIC по сравнению с высокопроизводительными процессорами. Таким образом, Bitcoin создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов доспаривается [25], есть подозрение, что много скрытой личной информации может быть извлечено из общедоступная база данных. Неспособность Bitcoin удовлетворять двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [28]: «Нулевая монета». Зерокойн использует криптографические односторонние аккумуляторы и доказательства с нулевым разглашением, которые позволяют пользователям «конвертируйте» биткойны в зерокоины и тратьте их, используя анонимное доказательство владения вместо явные цифровые подписи на основе открытого ключа. Однако такие доказательства знаний имеют постоянную но неудобный размер - около 30кб (исходя из сегодняшних лимитов Bitcoin), что делает предложение непрактично. Авторы признают, что протокол вряд ли когда-либо будет принят большинством стран. Bitcoin пользователей [5]. 2.2 Функция proof-of-work Создатель Bitcoin Сатоши Накамото описал алгоритм принятия решений большинством как «один ЦП-один голос» и использовал функцию ценообразования с привязкой к ЦП (двойной SHA-256) для своего proof-of-work схема. Поскольку пользователи голосуют за единый заказ истории транзакций [1], разумность и последовательность этого процесса является важнейшим условием для всей системы. Безопасность этой модели имеет два недостатка. Во-первых, для этого требуется 51% ресурсов сети. мощность майнинга должна находиться под контролем честных пользователей. Во-вторых, прогресс системы (исправление ошибок, исправления безопасности и т. д.) требуют, чтобы подавляющее большинство пользователей поддерживало и соглашалось с изменения (это происходит, когда пользователи обновляют программное обеспечение своего кошелька) [6].Наконец, это же голосование Механизм также используется для коллективных опросов о реализации некоторых функций [7]. Это позволяет нам предположить, каким свойствам должен удовлетворять proof-of-work. функция ценообразования. Такая функция не должна позволять участнику сети иметь существенное влияние. преимущество перед другим участником; это требует паритета между общим оборудованием и высоким Стоимость нестандартных устройств. Из недавних примеров [8] мы видим, что используемая функция SHA-256 в архитектуре Bitcoin этим свойством не обладает, поскольку майнинг становится более эффективным на Графические процессоры и устройства ASIC по сравнению с высокопроизводительными процессорами. Таким образом, Bitcoin создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 4 Предположительно, если каждый пользователь сохранит свою анонимность, всегда генерируя новый адрес за КАЖДЫЙ полученный платеж (что абсурдно, но технически «правильный» способ сделать это), и если бы каждый пользователь поддерживал анонимность всех остальных, настаивая на том, чтобы они никогда не отправляли средства на один и тот же адрес BTC дважды, то Bitcoin всё равно лишь случайно передаст тест на несвязность. Почему? Данные о потребителях можно использовать для того, чтобы постоянно получать поразительные сведения о людях. См., например, http://www.applieddatalabs.com/content/target-knows-it-shows. Теперь представьте, что это произойдет через 20 лет, и представьте, что Target не просто знал о ваших покупательских привычках в Target, но они добыли blockchain для ВСЕХ ВАШИ ЛИЧНЫЕ ПОКУПКИ С ВАШИМ КОШЕЛЬКОМ COINBASE В ПРОШЛОМ ДВЕНАДЦАТЬ ЛЕТ. Они скажут: «Эй, приятель, возможно, ты захочешь сегодня вечером купить лекарство от кашля, но ты не будешь». завтра почувствуй себя хорошо». Это может быть не так, если многосторонняя сортировка используется правильно. См., например, этосообщение в блоге: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Я не совсем уверен в математических расчетах, но... по одной статье за раз, верно? Требуется цитирование. Хотя протокол Zerocoin (автономный) может оказаться недостаточным, протокол Zerocash Протокол, похоже, реализовал транзакции размером 1 КБ. Этот проект поддерживается конечно, американские и израильские военные, так что кто знает, насколько он надежен. С другой стороны С другой стороны, никто не хочет иметь возможность тратить средства без надзора больше, чем военные. http://zerocash-project.org/ Я не уверен... см., например, http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Цитирую разработчика Cryptonote Мориса Планка (предположительно псевдоним) из cryptonote форум: «Зерокоин, Зеркэш. Это самая передовая технология, надо признать. Да, цитата выше взято из анализа предыдущей версии протокола. Насколько мне известно, это не 288, а 384 байта, но в любом случае это хорошая новость. Они использовали совершенно новую технологию под названием SNARK, у которой есть определенные недостатки: например, большая исходная база публичных параметров, необходимых для создания подписи (более 1 ГБ) и значительное время, необходимое для создания транзакции (более минуты). Наконец, они используют молодая криптовалюта, о которой я упомянул как о спорной идее: https://forum.cryptonote.org/viewtopic.php?f= » — Морис П. Четверг, 3 апреля 2014 г., 19:56 Функция, выполняемая в ЦП и не подходящая для графического процессора, FPGA или ASIC. расчет. «Загадка», используемая в proof-of-work, называется функцией ценообразования, функцией затрат или функция головоломки.
однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов оспариваемый [25], есть подозрение, что из него можно извлечь много скрытой личной информации. общедоступная база данных. Неспособность Bitcoin удовлетворить двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [28]: «Нулевая монета». Зерокойн использует криптографические односторонние аккумуляторы и доказательства с нулевым разглашением, которые позволяют пользователям «конвертируйте» биткойны в зерокоины и тратьте их, используя анонимное доказательство владения вместо явные цифровые подписи на основе открытого ключа. Однако такие доказательства знаний имеют постоянную но неудобный размер - около 30кб (исходя из сегодняшних лимитов Bitcoin), что делает предложение непрактично. Авторы признают, что протокол вряд ли когда-либо будет принят большинством стран. Bitcoin пользователей [5]. 2.2 Функция proof-of-work Создатель Bitcoin Сатоши Накамото описал алгоритм принятия решений большинством голосов как «один ЦП-один голос» и использовал функцию ценообразования с привязкой к ЦП (двойной SHA-256) для своего proof-of-work схема. Поскольку пользователи голосуют за единый заказ истории транзакций [1], разумность и последовательность этого процесса является важнейшим условием для всей системы. Безопасность этой модели имеет два недостатка. Во-первых, для этого требуется 51% ресурсов сети. мощность майнинга должна находиться под контролем честных пользователей. Во-вторых, прогресс системы (исправление ошибок, исправления безопасности и т. д.) требуют, чтобы подавляющее большинство пользователей поддерживало и соглашалось с изменения (это происходит, когда пользователи обновляют программное обеспечение своего кошелька) [6].Наконец то же самое голосование Механизм также используется для коллективных опросов о реализации некоторых функций [7]. Это позволяет нам предположить, каким свойствам должен удовлетворять proof-of-work. функция ценообразования. Такая функция не должна позволять участнику сети иметь существенное влияние. преимущество перед другим участником; это требует паритета между общим оборудованием и высоким Стоимость нестандартных устройств. Из недавних примеров [8] мы видим, что используемая функция SHA-256 в архитектуре Bitcoin этим свойством не обладает, поскольку майнинг становится более эффективным на Графические процессоры и устройства ASIC по сравнению с высокопроизводительными процессорами. Следовательно, Bitcoin создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов доспаривается [25], есть подозрение, что много скрытой личной информации может быть извлечено из общедоступная база данных. Неспособность Bitcoin удовлетворять двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [28]: «Нулевая монета». Зерокойн использует криптографические односторонние аккумуляторы и доказательства с нулевым разглашением, которые позволяют пользователям «конвертируйте» биткойны в зерокоины и тратьте их, используя анонимное доказательство владения вместо явные цифровые подписи на основе открытого ключа. Однако такие доказательства знаний имеют постоянную но неудобный размер - около 30кб (исходя из сегодняшних лимитов Bitcoin), что делает предложение непрактично. Авторы признают, что протокол вряд ли когда-либо будет принят большинством стран. Bitcoin пользователей [5]. 2.2 Функция proof-of-work Создатель Bitcoin Сатоши Накамото описал алгоритм принятия решений большинством как «один ЦП-один голос» и использовал функцию ценообразования с привязкой к ЦП (двойной SHA-256) для своего proof-of-work схема. Поскольку пользователи голосуют за единый заказ истории транзакций [1], разумность и последовательность этого процесса является важнейшим условием для всей системы. Безопасность этой модели имеет два недостатка. Во-первых, для этого требуется 51% ресурсов сети. мощность майнинга должна находиться под контролем честных пользователей. Во-вторых, прогресс системы (исправление ошибок, исправления безопасности и т. д.) требуют, чтобы подавляющее большинство пользователей поддерживало и соглашалось с изменения (это происходит, когда пользователи обновляют программное обеспечение своего кошелька) [6].Наконец то же самое голосование Механизм также используется для коллективных опросов о реализации некоторых функций [7]. Это позволяет нам предположить, каким свойствам должен удовлетворять proof-of-work. функция ценообразования. Такая функция не должна позволять участнику сети иметь существенное влияние. преимущество перед другим участником; это требует паритета между общим оборудованием и высоким Стоимость нестандартных устройств. Из недавних примеров [8] мы видим, что используемая функция SHA-256 в архитектуре Bitcoin этим свойством не обладает, поскольку майнинг становится более эффективным на Графические процессоры и устройства ASIC по сравнению с высокопроизводительными процессорами. Таким образом, Bitcoin создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 Комментарии на странице 2
Bitcoin Dezavantajları ve Olası Çözümler
2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Maalesef Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 CryptoNote v 2.0 Nicolas van Saberhagen 17 Ekim 2013 1 Giriş “Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin çeşitli eksikliklerden muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızlı bir şekilde düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim. 2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Ne yazık ki Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 3 Bitcoin kesinlikle "takip edilemezlik" konusunda başarısız oluyor. Size BTC gönderdiğimde, bunun gönderildiği cüzdan blockchain üzerine geri dönülemez şekilde damgalanmıştır. Bu fonları kimin gönderdiğine dair hiçbir soru yok. çünkü yalnızca özel anahtarları bilenler bunları gönderebilir.benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden olur: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantıyı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve onların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak belirtildiyse, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 4 Muhtemelen, eğer her kullanıcı her zaman yeni bir adres oluşturarak kendi anonimliğini ortadan kaldırıyorsa Alınan HER ödeme için (bu saçma ama teknik olarak bunu yapmanın "doğru" yolu), ve eğer her kullanıcı, asla para göndermemeleri konusunda ısrar ederek diğer herkesin anonimliğine yardımcı olsaydı aynı BTC adresine iki kez gitse, Bitcoin yine de yalnızca dolaylı olarak iletecektir bağlantı kurulamazlık testi Neden? Tüketici verileri, insanlar hakkında her zaman şaşırtıcı miktarda bilgi edinmek için kullanılabilir. Örneğin bkz. http://www.applieddatalabs.com/content/target-knows-it-shows Şimdi bunun 20 yıl gelecekte olduğunu hayal edin ve ayrıca Target'in bunu bilmediğini hayal edin. Target'taki satın alma alışkanlıklarınız hakkında, ancak ALL OF için blockchain madenciliği yapıyorlardı GEÇMİŞ İÇİN COINBASE CÜZDANINIZ İLE KİŞİSEL ALIŞVERİŞLERİNİZ ON İKİ YIL. Şöyle diyecekler: "Hey dostum, bu gece biraz öksürük ilacı almak isteyebilirsin, almayacaksın yarın kendini iyi hisset." Çok partili sıralama doğru şekilde kullanılırsa durum böyle olmayabilir. Örneğin buna bakınblog yazısı: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Bunun matematiğine tam olarak ikna olmadım ama... her seferinde bir kağıt, değil mi? Alıntı gerekli. Zerocoin protokolü (bağımsız) yetersiz olabilirken Zerocash protokolün 1kb boyutunda bir işlem gerçekleştirmiş olduğu görülüyor. O proje destekleniyor Tabii ki ABD ve İsrail orduları, yani sağlamlığını kim bilebilir? diğer tarafta Öte yandan hiç kimse ordu kadar gözetim olmadan fon harcamayı istemez. http://zerocash-project.org/ İkna olmadım... örneğin bkz. http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Cryptonote geliştiricisi Maurice Planck'tan (muhtemelen takma ad) kripto nottan alıntı fora: "Sıfırcoin, Zerocash. Bu en ileri teknoloji, itiraf etmeliyim. Evet alıntı Yukarıdaki, protokolün önceki versiyonunun analizinden alınmıştır. Bildiğim kadarıyla öyle değil 288 ama 384 byte ama yine de bu iyi bir haber. SNARK adında yepyeni bir teknik kullandılar, bunun da bazı dezavantajları var: Örneğin; Bir imza oluşturmak için gereken genel parametrelerden oluşan geniş bir başlangıç veri tabanı (1 GB'den fazla) ve bir işlem oluşturmak için önemli bir sürenin gerekli olması (bir dakikadan fazla). Son olarak, bir tartışılabilir bir fikir olduğundan bahsettiğim genç kripto: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Per 03 Nis 2014 19:56 CPU'da gerçekleştirilen ve GPU, FPGA veya ASIC için uygun olmayan bir işlev hesaplama. proof-of-work'de kullanılan "bulmaca", fiyatlandırma işlevi, maliyet işlevi veya bulmaca işlevi.
benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'in yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak öne sürülen bu siteden birçok gizli kişisel bilginin alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 2. sayfadaki yorumlar
Технология CryptoNote
Теперь, когда мы рассмотрели ограничения технологии PH_0000, мы сосредоточимся на представление возможностей CryptoNote.
CryptoNote Teknolojisi
Artık Bitcoin teknolojisinin sınırlamalarını ele aldığımıza göre, şu konulara odaklanacağız: CryptoNote'un özelliklerini sunuyor.
Неотслеживаемые транзакции
В этом разделе мы предлагаем схему полностью анонимных транзакций, обеспечивающую как неотслеживаемость, так и невозможность отслеживания.
и условия несвязности. Важной особенностью нашего решения является его автономность: отправитель
не обязан сотрудничать с другими пользователями или доверенной третьей стороной для совершения своих транзакций;
следовательно, каждый участник производит прикрывающий трафик независимо.
4.1
Обзор литературы
Наша схема основана на криптографическом примитиве, называемом групповой подписью. Впервые представлено
Д. Чаум и Э. ван Хейст [19], позволяет пользователю подписать свое сообщение от имени группы.
После подписания сообщения пользователь предоставляет (в целях проверки) не свой единственный публичный
1Это так называемый «мягкий лимит» — ограничение эталонного клиента на создание новых блоков. Жесткий максимум
возможный размер блока составлял 1 МБ
4
их при необходимости, что вызывает основные недостатки. К сожалению, трудно предсказать, когда
константы, возможно, придется изменить, а их замена может привести к ужасным последствиям.
Хорошим примером жестко запрограммированного изменения лимита, приводящего к катастрофическим последствиям, является блок
ограничение размера установлено на 250 КБ1. Этого лимита было достаточно для проведения около 10 000 стандартных транзакций. В
В начале 2013 года этот предел был почти достигнут, и было достигнуто соглашение об увеличении
предел. Изменение было реализовано в версии кошелька 0.8 и закончилось разделением цепочки на 24 блока.
и успешная атака двойной траты [9]. Хотя ошибка была не в протоколе Bitcoin, а
скорее, в ядре базы данных его можно было бы легко обнаружить с помощью простого стресс-теста, если бы было
отсутствие искусственно введенного ограничения размера блока.
Константы также действуют как форма точки централизации.
Несмотря на одноранговый характер
Bitcoin, подавляющее большинство узлов используют официальный эталонный клиент [10], разработанный
небольшая группа людей. Эта группа принимает решение о внесении изменений в протокол.
и большинство людей принимают эти изменения независимо от их «правильности». Некоторые решения вызвали
бурные дискуссии и даже призывы к бойкоту [11], что свидетельствует о том, что сообщество и
разработчики могут расходиться во мнениях по некоторым важным моментам. Поэтому кажется логичным иметь протокол
с настраиваемыми пользователем и самонастраивающимися переменными как возможный способ избежать этих проблем.
2,5
Громоздкие скрипты
Система сценариев в Bitcoin — сложная и тяжелая функция. Потенциально это позволяет создавать
сложные транзакции [12], но некоторые из его функций отключены из соображений безопасности и
некоторые даже никогда не использовались [13]. Скрипт (включая часть отправителя и получателя)
для самой популярной транзакции в Bitcoin выглядит так:
ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбрали быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 8 Кольцевая подпись работает следующим образом: Алекс хочет передать WikiLeaks сообщение о своем работодателе. У каждого сотрудника в ее компании есть пара частного/открытого ключей (Ri, Ui). Она сочиняет ее подпись с набором входных данных в качестве ее сообщения, m, ее секретный ключ, Ri, и ВСЕХ открытые ключи (Ui;i=1...n). Любой (не зная приватных ключей) может легко убедиться в том, что какая-то пара (Rj, Uj), должно быть, использовалась для создания подписи... кто-то, кто работает для работодателя Алекса... но, по сути, это случайная догадка, чтобы выяснить, кто бы это мог быть. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Обратите внимание, что описанная здесь связываемая кольцевая подпись является своего рода противоположностью «несвязываемой». описано выше. Здесь мы перехватываем два сообщения и можем определить, одно и то же ли их послала партия, хотя мы все равно не сможем определить, кто эта партия.
определение «несвязываемого», используемое для создания Cryptonote, означает, что мы не можем определить, является ли их получает одна и та же сторона. Следовательно, на самом деле здесь происходят ЧЕТЫРЕ вещи. Система может быть связной или несвязываемый, в зависимости от того, можно ли определить, является ли отправитель два сообщения одинаковы (независимо от того, требует ли это отмены анонимности). И система может быть несвязной или несвязной, в зависимости от того, возможно ли ее определить, является ли получатель двух сообщений одним и тем же (независимо от того, для этого требуется отзыв анонимности). Пожалуйста, не обвиняйте меня за эту ужасную терминологию. Теоретикам графов, вероятно, следует доволен. Некоторым из вас может быть удобнее использовать «связь с получателем», а не «связь с отправителем». http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Когда я это прочитал, мне это показалось глупой особенностью. Потом я прочитал, что это может быть особенность для электронное голосование, и это, казалось, имело смысл. Это круто, с этой точки зрения. Но я не совсем уверен в намеренном внедрении отслеживаемых кольцевых подписей. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбрали быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 9 Черт возьми, автор этого документа наверняка мог бы сформулировать это лучше! Скажем, компания, принадлежащая сотрудникам, хочет проголосовать за то, приобретать или нет определенные новые активы, а Алекс и Бренда являются сотрудниками. Компания предоставляет каждому сотруднику сообщение типа «Я голосую за предложение А!» который имеет метаинформационную «проблему» [ПРОП А] и просит их подписать его отслеживаемой кольцевой подписью, если они поддерживают это предложение. Используя традиционную кольцевую подпись, недобросовестный сотрудник может подписать сообщение несколько раз. предположительно с разными nonce, чтобы голосовать столько раз, сколько захотят. С другой стороны С другой стороны, в схеме отслеживаемой кольцевой подписи Алекс пойдет голосовать, и ее закрытый ключ будет иметь был использован по вопросу [ПРОП А]. Если Алекс попытается подписать сообщение типа «Я, Бренда, одобряю предложение А!» чтобы «подставить» Бренду и провести двойное голосование, в этом новом сообщении также будет проблема [ПРОП А]. Поскольку закрытый ключ Алекса уже вызвал проблему [PROP A], личность Алекса будет сразу же раскрыто как мошенничество. Что, согласитесь, очень круто! Криптография обеспечивала равенство голосов. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Эта статья интересна тем, что по сути создает специальную кольцевую подпись, но без каких-либо согласие другого участника. Структура подписи может быть различной; я не копал глубоко, и я не видел, безопасно ли оно. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Подписи специальных групп: кольцевые подписи, которые представляют собой групповые подписи без группы. менеджеров, никакой централизации, но позволяет члену специальной группы доказуемо утверждать, что он (не) выдал анонимную подпись от имени группы. http://link.springer.com/chapter/10.1007/11908739_9 Это не совсем правильно, насколько я понимаю. И мое понимание, вероятно, изменится по мере того, как Я углубляюсь в этот проект. Но насколько я понимаю, иерархия выглядит так. Подписи группы: менеджеры группы контролируют отслеживаемость и возможность добавления или удаления участников. от подписантов. Сигналы звонка: произвольное формирование группы без менеджера группы. Никакого отзыва анонимности. Нет возможности отречься от той или иной подписи. С отслеживаемым и подключаемым кольцом подписи, анонимность в некоторой степени масштабируема. Подписи специальных групп: аналогично кольцевым подписям, но участники могут доказать, что они не создавали конкретная подпись. Это важно, когда любой член группы может поставить подпись. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Алгоритм Фудзисаки и Сузуки позже был доработан автором для обеспечения единовременности. Итак мы будем анализировать алгоритм Фудзисаки и Сузуки одновременно с новым алгоритмом, а не чем рассматривать это здесь.
ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбрали быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; G: базовая точка; Г = (х, −4/5); l: простой порядок базовой точки; л = 2252 + 27742317777372353535851937790883648493; \(H_s\): криптографическая hash функция \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): детерминированная hash функция \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Терминология Повышенная конфиденциальность требует новой терминологии, которую не следует путать с сущностями Bitcoin. приватный ec-ключ — стандартный приватный ключ в виде эллиптической кривой: число \(a \in [1, l - 1]\); публичный ec-ключ — стандартный публичный ключ эллиптической кривой: точка A = aG; одноразовая пара ключей — пара приватных и публичных электронных ключей; 5 10 Возможность связывания в смысле «связываемых кольцевых подписей» означает, что мы можем определить, пришли ли две исходящие транзакции из одного и того же источника, не раскрывая, кто является источником. Авторы ослабили возможность связывания, чтобы (а) сохранить конфиденциальность, но при этом (б) обнаружить любую транзакцию с использованием закрытого ключа второй раз как недействительный. Хорошо, это вопрос порядка событий. Рассмотрим следующий сценарий. Мой майнинг компьютер будет иметь текущий blockchain, у него будет собственный блок транзакций, который он вызывает законно, он будет работать над этим блоком в головоломке proof-of-work и у него будет список ожидающих транзакций, которые будут добавлены в следующий блок. Он также будет отправлять любые новые транзакции в этот пул ожидающих транзакций. Если я не решу следующий блок, но кто-то другой делает, я получаю обновленную копию blockchain. Блок, над которым я работал, и в моем списке ожидающих транзакций могут быть некоторые транзакции, которые сейчас включены в blockchain. Разгадайте мой ожидающий блок, объедините его со списком ожидающих транзакций и назовите его мой пул ожидающих транзакций. Удалите все, что сейчас официально находится в каталоге blockchain. Что мне делать? Должен ли я сначала пройти процедуру и «убрать все двойные траты»? С другой стороны С другой стороны, следует ли мне просмотреть список и убедиться, что каждый закрытый ключ еще не был используется, и если он уже использовался в моем списке, то я получил первый экземпляр первым и, следовательно, любая дальнейшая копия является незаконной. Поэтому я просто удаляю все экземпляры после первого того же закрытого ключа. Алгебраическая геометрия никогда не была моей сильной стороной. http://en.wikipedia.org/wiki/EdDSA Такая скорость, ничего себе. ЭТО алгебраическая геометрия для победы. Не то чтобы я что-то знал об этом. Проблематично или нет, но дискретные журналы становятся очень быстрыми. И квантовые компьютеры их едят на завтрак. http://link.springer.com/article/10.1007/s13389-012-0027-1 Это становится действительно важным числом, но нет никаких объяснений или ссылок на то, как оно был выбран. Было бы неплохо просто выбрать одно известное большое простое число, но если известны факты об этом большом простом числе, которые могут повлиять на наш выбор. Различные варианты криптоноты можно было выбрать разные значения э, но в этой статье нет обсуждения того, как это Выбор повлияет на наш выбор других глобальных параметров, перечисленных на странице 5. В этой статье необходим раздел, посвященный выбору значений параметров.
приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционная модель ключей/транзакций Bitcoin. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционный мод Bitcoin ключей/транзакцийэл. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 11 Это похоже на Bitcoin, но с бесконечным количеством анонимных почтовых ящиков, погашать которые может только получатель. создание закрытого ключа, который настолько же анонимен, насколько это возможно при использовании кольцевой подписи. Bitcoin работает следующим образом. Если у Алекс в кошельке есть 0,112 Bitcoin, который она только что получила от Фрэнка, у нее действительно есть подписанный сообщение «Я, [ФРАНК], отправлю 0.112 Bitcoin на [alex] + H0 + N0», где 1) Фрэнк подписал сообщение своим секретным ключом [FRANK], 2) Фрэнк подписал сообщение открытым ключом Алекса. ключ, [алекс], 3) Фрэнк включил некоторую форму истории биткойна, H0, и 4) Фрэнк включает случайный бит данных, называемый nonce, N0. Если затем Алекс захочет отправить 0,011 Bitcoin Шарлин, она примет сообщение Фрэнка и установит для него значение H1 и подпишет два сообщения: одно для ее транзакции и одно для изменения. H1= "Я, [ФРАНК], отправь 0,112 Bitcoin на [alex] + H0 + N" "Я, [ALEX], отправь 0,011 Bitcoin на [charlene] + H1 + N1" "Я, [ALEX], отправляю 0,101 Bitcoin в качестве изменения на [alex] + H1 + N2." где Алекс подписывает оба сообщения своим секретным ключом [ALEX], первое сообщение с именем Шарлин открытый ключ [charlene], второе сообщение с открытым ключом Алекса [alex], включая истории и некоторые случайно сгенерированные nonce N1 и N2 соответственно. Cryptonote работает следующим образом: Если у Алекс в кошельке есть криптовалюта 0,112, которую она только что получила от Фрэнка, значит, у нее действительно есть подписанная сообщение «Я, [кто-то из специальной группы], отправляю 0,112 Cryptonote на [одноразовый адрес] + H0 +Н0." Алекс обнаружила, что это ее деньги, сверив свой закрытый ключ [ALEX] с [одноразовый адрес] для каждого проходящего сообщения, и если она желает его потратить, она делает это в следующим образом. Она выбирает получателя денег, возможно, Шарлин начала голосовать за удары дронов, поэтому Вместо этого Алекс хочет отправить деньги Бренде. Итак, Алекс ищет открытый ключ Бренды, [brenda], и использует свой собственный секретный ключ [ALEX] для создания одноразового адреса [ALEX+brenda]. Она затем выбирает произвольную коллекцию C из сети пользователей криптонот и строит кольцевая подпись из этой специальной группы. Устанавливаем нашу историю как предыдущее сообщение, добавляем nonces, и действовать как обычно? H1 = «Я, [кто-то из специальной группы], отправляю 0,112 Cryptonote на [одноразовый адрес] + H0 +Н0." «Я, [кто-то из коллекции C], отправляю 0,011 Cryptonote на [одноразовый адрес, созданный из ALEX+brenda] + H1 + N1» «Я, [кто-то из коллекции C], отправляю 0,101 Cryptonote в качестве изменения на [одноразовый адрес-сделанный из-ALEX+alex] + H1 + N2» Теперь Алекс и Бренда сканируют все входящие сообщения на наличие одноразовых адресов, которые были созданный с использованием их ключа. Если они его найдут, то это будет их собственное, совершенно новое сообщение. криптонота! И даже в этом случае транзакция все равно достигнет blockchain. Если монеты, поступающие по этому адресу известно, что они отправляются от преступников, политических деятелей или от комитетов и счетов. со строгим бюджетом (т. е. хищением), или если новый владелец этих монет когда-либо совершит ошибку и отправляет эти монеты на общий адрес с монетами, которыми он, как известно, владеет, приспособление для анонимности в биткойнах.
приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционная модель ключей/транзакций Bitcoin. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционный мод Bitcoin ключей/транзакцийэл. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 12 Следовательно, вместо того, чтобы пользователи отправляли монеты с адреса (который на самом деле является открытым ключом) на адрес (еще один открытый ключ) используя свои приватные ключи, пользователи отправляют монеты из одноразового почтового ящика (который генерируется с использованием открытого ключа вашего друга) на одноразовый почтовый ящик (аналогично) с использованием вашего собственные секретные ключи. В каком-то смысле мы говорим: «Хорошо, уберите руки от денег, пока они находятся в обороте». перенесено! Достаточно просто знать, что наши ключи могут открыть этот ящик и что мы знаем, сколько денег в коробке. Никогда не оставляйте отпечатки пальцев на почтовом ящике или на самом деле используйте его, просто продайте саму коробку, наполненную деньгами. Таким образом, мы не знаем, кто отправил что, но содержание этих публичных обращений по-прежнему остается гладким, взаимозаменяемым, делимым и по-прежнему обладают всеми другими приятными качествами денег, которые мы желаем, например, биткойнами». Бесконечный набор почтовых ящиков. Вы публикуете адрес, у меня есть закрытый ключ. Я использую свой закрытый ключ и ваш адрес, и некоторые случайные данные для генерации открытого ключа. Алгоритм разработан таким образом, что, поскольку ваш адрес использовался для генерации открытого ключа, только ВАШ закрытый ключ работает для разблокировки сообщение. Наблюдатель, Ева, видит, что вы публикуете свой адрес, и видит открытый ключ, который я объявляю. Однако, она не знает, объявил ли я свой открытый ключ на основе вашего адреса, ее адреса или адреса Бренды. или Шарлин, или кто бы то ни было. Она сверяет свой закрытый ключ с открытым ключом, который я объявил. и видит, что это не работает; это не ее деньги. Она не знает чужого закрытого ключа, и только получатель сообщения имеет закрытый ключ, который может разблокировать сообщение. Так что никто Прослушивание может определить, кто получил деньги, а тем более взять деньги.
Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес Bitcoin кошелька. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес Bitcoin кошелька. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 13 Интересно, какой головной болью будет реализовать выбор криптографии? схема. Эллиптический или другой. Поэтому, если какая-то схема в будущем сломается, валюта поменяется. без беспокойства. Наверное, это большая заноза в заднице. Хорошо, это именно то, что я только что объяснил в своем предыдущем комментарии. Тип Диффе-Хеллмана обмены аккуратные. Скажем, у Алекса и Бренды есть секретный номер A и B, а также номер они не заботятся о сохранении тайны, а и б. Они хотят создать общий секрет без Ева обнаруживает это. Дайфф и Хеллман придумали, как Алекс и Бренда могли поделиться общедоступные номера a и b, но не частные номера A и B, и сгенерировать общий секрет, К. Используя этот общий секрет, К., без какой-либо подслушивающей Евы, смог создать тот же самый К, Алекс и Бренда теперь могут использовать К в качестве секретного ключа шифрования и передавать секретные сообщения обратно. и вперед. Вот как это МОЖЕТ работать, хотя оно должно работать и с числами, гораздо большими, чем 100. Мы будем использовать 100, потому что работа с целыми числами по модулю 100 эквивалентна «выбрасыванию всех но последние две цифры числа». Алекс и Бренда выбирают A, a, B и b. Они держат А и Б в секрете. Алекс сообщает Бренде свое значение по модулю 100 (только две последние цифры), а Бренда сообщает Алексу. ее значение b по модулю 100. Теперь Ева знает (a,b) по модулю 100. Но Алекс знает (a,b,A), поэтому она может вычислить x=abA по модулю 100.Алекс отсекает все, кроме последней цифры, потому что мы работаем снова под целыми числами по модулю 100. Точно так же Бренда знает (a,b,B), поэтому она может вычислить y=abB по модулю 100. Теперь Алекс может публиковать x, а Бренда может публиковать y. Но теперь Алекс может вычислить yA = abBA по модулю 100, а Бренда может вычислить xB. = абВА по модулю 100. Они оба знают одно и то же число! Но все, что слышала Ева, это (а,б,абА,абВ). У нее нет простого способа вычислить abA*B. Это самый простой и наименее безопасный способ рассмотрения обмена Диффи-Хеллмана. Существуют более безопасные версии. Но большинство версий работают, поскольку целочисленная факторизация и дискретная логарифмы сложны, и обе эти проблемы легко решаются квантовыми компьютерами. Я проверю, существуют ли какие-либо версии, устойчивые к квантовому воздействию. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange В приведенной здесь «стандартной последовательности txn» отсутствует целый ряд шагов, например ПОДПИСЕЙ. Здесь они воспринимаются как нечто само собой разумеющееся. Что очень плохо, потому что порядок, в котором мы подписываемые материалы, информация, содержащаяся в подписанном сообщении, и так далее... все это чрезвычайно важно для протокола. Если сделать один или два шага неправильно, даже немного не по порядку, при реализации « стандартная последовательность транзакций» может поставить под вопрос безопасность всей системы. Более того, доказательства, представленные далее в статье, могут оказаться недостаточно строгими, если Структура, в которой они работают, определена так же свободно, как и в этом разделе.
Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес кошелька Bitcoin. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес кошелька Bitcoin. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 14 Обратите внимание, что автор(ы?) ужасно стараются придерживаться четкой терминологии. текст, но особенно в следующем фрагменте. Следующим воплощением этой статьи обязательно будет гораздо более строгий. В тексте они называют P своим одноразовым открытым ключом. На диаграмме они обозначают R как их «открытый ключ Tx» и P в качестве «ключа назначения». Если бы я собирался переписать это, я бы Прежде чем обсуждать эти разделы, очень подробно изложите некоторую терминологию. Этот эл огромен. См. стр. 5. Кто выбирает Эл? Диаграмма показывает, что открытый ключ транзакции R = rG, который является случайным и выбранным. отправителем, не является частью вывода Tx. Это потому, что оно может быть одинаковым для нескольких транзакции нескольким людям и не используются ПОЗЖЕ для расходов. Генерируется новый R каждый раз, когда вы хотите транслировать новую транзакцию CryptoNote. Кроме того, R используется только чтобы проверить, являетесь ли вы получателем транзакции. Это не мусорные данные, но это мусор для всех без закрытых ключей, связанных с (A,B). С другой стороны, ключ назначения P = Hs(rA)G + B является частью вывода Tx. Все просматривая данные каждой проходящей транзакции, необходимо сверять свои собственные сгенерированные P* с этот P, чтобы узнать, владеют ли они этой проходящей транзакцией. Любой, у кого есть неизрасходованный вывод транзакции (UTXO) будет лежать куча этих P с суммами. Чтобы потратитьд, они подпишите какое-нибудь новое сообщение, включая P. Алиса должна подписать эту транзакцию с помощью одноразового закрытого ключа(ов), связанного с неизрасходованными выходными транзакцией (ключами назначения). Каждый ключ назначения, принадлежащий Алисе, оснащен с одноразовым закрытым ключом, также принадлежащим (предположительно) Алисе. Каждый раз, когда Алисе хочется отправьте содержимое ключа назначения мне, или Бобу, или Бренде, или Чарли, или Шарлин, она использует свой закрытый ключ для подписи транзакции. После получения транзакции я получу новый Открытый ключ Tx, новый открытый ключ назначения, и я смогу восстановить новый одноразовый закрытый ключ x. Объединение моего одноразового закрытого ключа x с общедоступным местом назначения новой транзакции. ключ(и) — это то, как мы отправляем новую транзакцию
- Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 4.4 Одноразовые кольцевые подписи Протокол, основанный на одноразовых кольцевых подписях, позволяет пользователям добиться безусловной несвязности. К сожалению, обычные типы криптографических подписей позволяют отслеживать транзакции до их соответствующие отправители и получатели. Наше решение этого недостатка заключается в использовании другой сигнатуры. типа, чем те, которые в настоящее время используются в электронных денежных системах. Сначала мы дадим общее описание нашего алгоритма без явного упоминания о нем. электронные деньги. Одноразовая кольцевая подпись содержит четыре алгоритма: (GEN, SIG, VER, LNK): GEN: принимает общедоступные параметры и выводит ec-пару (P, x) и открытый ключ I. SIG: принимает сообщение m, набор \(S'\) открытых ключей {Pi}i̸=s, пару (Ps, xs) и выводит подпись \(\sigma\). и множество \(S = \)S'\( \cup \{P_s\}\). 8
-
Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 4.4 Одноразовые кольцевые подписи Протокол, основанный на одноразовых кольцевых подписях, позволяет пользователям добиться безусловной несвязности. К сожалению, обычные типы криптографических подписей позволяют отслеживать транзакции до их соответствующие отправители и получатели. Наше решение этого недостатка заключается в использовании другой сигнатуры. типа, чем те, которые в настоящее время используются в электронных денежных системах. Сначала мы предоставим генераторполное описание нашего алгоритма без явной ссылки на электронные деньги. Одноразовая кольцевая подпись содержит четыре алгоритма: (GEN, SIG, VER, LNK): GEN: принимает общедоступные параметры и выводит ec-пару (P, x) и открытый ключ I. SIG: принимает сообщение m, набор \(S'\) открытых ключей {Pi}i̸=s, пару (Ps, xs) и выводит подпись \(\sigma\). и множество \(S = \)S'\( \cup \{P_s\}\). 8 15 Как здесь выглядит неизрасходованный вывод транзакции? На диаграмме видно, что выходные данные транзакции состоят только из двух точек данных: суммы и ключа назначения. Но это не достаточно, потому что, когда я попытаюсь потратить этот «выход», мне все равно нужно будет знать R=rG. Помните, r выбирается отправителем, а R а) используется для распознавания входящих криптонот как ваших собственный и б) используемый для генерации одноразового закрытого ключа, используемого для «заявки» на вашу криптоноту. Та часть, которую я не понимаю? Если принять теоретическое «хорошо, у нас есть эти подписи и транзакции, и мы передаем их туда и обратно» в мир программирования "хорошо, какая информация конкретно составляет личность UTXO?" Лучший способ ответить на этот вопрос — покопаться в теле полностью некомментированного кода. Так держать, команда bytecoin. Напомним: возможность связывания означает «отправил один и тот же человек?» а несвязность означает «сделал то же самое» человек получит?». Таким образом, система может быть подключаемой или несвязываемой, несвязываемой или несвязываемой. Раздражает, я знаю. Поэтому, когда Ник ван Саберхаген говорит здесь: «...входящие платежи [связаны] с единовременными открытые ключи, которые невозможно связать со зрителем», давайте посмотрим, что он имеет в виду. Во-первых, рассмотрим ситуацию, в которой Алиса отправляет Бобу две отдельные транзакции из одной и той же транзакции. обращение по тому же адресу. Во вселенной Bitcoin Алиса уже совершила ошибку. отправки с того же адреса, и поэтому транзакция не удалась, наше желание ограничить возможность связывания. Более того, поскольку она отправила деньги на тот же адрес, наше желание ей не удалось. для несвязности. Эта биткойн-транзакция была одновременно (полностью) привязываемой и неотключаемой. С другой стороны, предположим, что во вселенной криптонот Алиса отправляет Бобу некоторую криптоноту: используя публичный адрес Боба. В качестве своего запутанного набора открытых ключей она выбирает все известные общедоступные ключи. ключи в районе метро Вашингтона. Алекс генерирует одноразовый открытый ключ, используя свой собственный информация и общедоступная информация Боба. Она отсылает деньги, и любой наблюдатель это заметит. только смогу узнать: «Кто-то из района метро Вашингтона отправил 2,3 криптоноты на одноразовый публичный адрес XYZ123». Здесь у нас есть вероятностный контроль над возможностью связывания, поэтому мы назовем это «почти не связанным». Мы также видим только те одноразовые открытые ключи, на которые отправляются деньги. Даже если бы мы заподозрили получателя был Боб, у нас нет его закрытых ключей, поэтому мы не можем проверить, прошла ли транзакция принадлежит Бобу, не говоря уже о том, чтобы сгенерировать его одноразовый закрытый ключ для выкупа его криптоноты. Итак, это на самом деле совершенно «несовместимо». Итак, это самый изящный трюк из всех. Кто хочет по-настоящему доверять другому MtGox? Мы можем быть удобно хранить некоторое количество BTC на Coinbase, но максимальная безопасность биткойнов — это физический кошелек. Что неудобно. В этом случае вы можете без доверия отдать половину своего закрытого ключа, не ставя под угрозу свои собственная способность тратить деньги. При этом все, что вы делаете, — это рассказываете кому-то, как преодолеть несвязность. Другой свойства CN, действующие как валюта, сохраняются, например, защита от двойных расходов и еще много чего.
-
Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 4.4 Одноразовые кольцевые подписи Протокол, основанный на одноразовых кольцевых подписях, позволяет пользователям добиться безусловной несвязности. К сожалению, обычные типы криптографических подписей позволяют отслеживать транзакции до их соответствующие отправители и получатели. Наше решение этого недостатка заключается в использовании другой сигнатуры. типа, чем те, которые в настоящее время используются в электронных денежных системах. Сначала мы дадим общее описание нашего алгоритма без явного упоминания о нем. электронные деньги. Одноразовая кольцевая подпись содержит четыре алгоритма: (GEN, SIG, VER, LNK): GEN: принимает общедоступные параметры и выводит ec-пару (P, x) и открытый ключ I. SIG: принимает сообщение m, набор \(S'\) открытых ключей {Pi}i̸=s, пару (Ps, xs) и выводит подпись \(\sigma\). и множество \(S = \)S'\( \cup \{P_s\}\). 8
- Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 4.4 Одноразовые кольцевые подписи Протокол, основанный на одноразовых кольцевых подписях, позволяет пользователям добиться безусловной несвязности. К сожалению, обычные типы криптографических подписей позволяют отслеживать транзакции до их соответствующие отправители и получатели. Наше решение этого недостатка заключается в использовании другой сигнатуры. типа, чем те, которые в настоящее время используются в электронных денежных системах. Сначала мы предоставим генераторполное описание нашего алгоритма без явной ссылки на электронные деньги. Одноразовая кольцевая подпись содержит четыре алгоритма: (GEN, SIG, VER, LNK): GEN: принимает общедоступные параметры и выводит ec-пару (P, x) и открытый ключ I. SIG: принимает сообщение m, набор \(S'\) открытых ключей {Pi}i̸=s, пару (Ps, xs) и выводит подпись \(\sigma\). и множество \(S = \)S'\( \cup \{P_s\}\). 8 16 Да, теперь у нас есть а) платежный адрес и б) идентификатор платежа. Критик мог бы спросить: «А действительно ли нам нужно это делать? В конце концов, если торговец получает 112.00678952 Точно CN, и это был мой заказ, и у меня есть скриншот, или чек, или что-то еще, не так ли? безумной степени точности достаточно?" Ответ: «Может быть, большую часть времени, в повседневной жизни, личные сделки». Однако более распространенная ситуация (особенно в цифровом мире) такова: продавец продает набор объектов, каждый из которых имеет фиксированную цену. Скажем, объект A имеет плотность 0,001 CN, объект B — 0,01 CN и объект C равен 0,1 CN. Теперь, если продавец получит заказ на 1,618 CN, его будет много-много (много!) способов оформить заказ для клиента. И поэтому без какого-либо идентификатора платежа, отождествление так называемого «уникального» заказа клиента с так называемой «уникальной» стоимостью его порядок становится невозможным. Еще смешнее: если в моем интернет-магазине все стоит ровно 1,0 CN, а у меня 1000 клиентов в день? И вы хотите доказать, что купили ровно 3 объекта две недели назад? Без идентификатора платежа? Удачи, приятель. Короче говоря: когда Боб публикует платежный адрес, он может в конечном итоге также опубликовать также идентификатор платежа (см., например, депозиты Poloniex XMR). Это отличается от того, что описано в тексте здесь, где Алиса генерирует идентификатор платежа. У Боба также должен быть какой-то способ сгенерировать идентификатор платежа. (а, Б) Напомним, что ключ отслеживания (a,B) может быть опубликован; потеря тайны значения «а» будет не нарушать вашу способность тратить и не позволять людям воровать у вас (я думаю... это было бы чтобы быть доказанным), это просто позволит людям видеть все входящие транзакции. Усеченный адрес, как описано в этом параграфе, просто берет «частную» часть ключа. и генерирует его из «публичной» части. Раскрытие значения «a» устранит невозможность связывания. но сохранит остальные транзакции. Автор имеет в виду «не несвязываемый», потому что «несвязываемый» относится к получателю, а «связываемый» относится к отправителю. Также очевидно, что автор не осознавал, что существует два разных аспекта возможности связывания. Поскольку все-таки транзакция — это направленный объект на графе, то возникнет два вопроса: «Эти две транзакции отправляются одному и тому же человеку?» и «придут ли эти две транзакции от одного и того же человека?" Это политика «без возврата», согласно которой свойство отсутствия связи CryptoNote условный. То есть Боб может выбрать, чтобы его входящие транзакции были неотключаемыми. используя эту политику. Это утверждение они доказывают в рамках модели случайного оракула. Мы доберемся до этого; Случайный У Oracle есть плюсы и минусы.
VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци = ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци = ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 17 Возможно, это глупо, но при объединении S и P_s нужно соблюдать осторожность. Если вы просто добавите последний открытый ключ до конца, невозможность связывания нарушена, поскольку любой проверяет проходящие транзакции можно просто проверить последний открытый ключ, указанный в каждой транзакции, и бум. Это открытый ключ связанный с отправителем. Таким образом, после объединения необходимо использовать генератор псевдослучайных чисел. используется для перестановки выбранных открытых ключей. «...пока владелец не создаст вторую подпись, используя ту же пару ключей». Желаю автору(ам?) подробнее об этом. Я считаю, что это означает: «Убедитесь, что каждый раз, когда вы выбираете набор открытых ключей для запутывания самостоятельно, вы выбираете совершенно новый набор, в котором нет двух одинаковых ключей». довольно сильное условие для невозможности соединения. Возможно, «вы выбираете новый случайный набор из все возможные ключи» с предположением, что хотя и нетривиальные пересечения неизбежно случаются, они случаются не часто. В любом случае, мне нужно углубиться в это утверждение. Это генерирует кольцевую подпись. Доказательства с нулевым разглашением — это потрясающе: я призываю вас доказать мне, что вы знаете секрет не раскрывая тайны. Например, предположим, что мы находимся у входа в пещеру в форме пончика. а в задней части пещеры (вне поля зрения входа) находится одверь, к которой ты утверждайте, что у вас есть ключ. Если ты пойдешь в одном направлении, тебя всегда пропустят, но если ты пойдешь в другом в другом направлении, вам нужен ключ. Но ты даже не хочешь ПОКАЗАТЬ мне ключ, не говоря уже о покажи мне, что он открывает дверь. Но ты хочешь доказать мне, что знаешь, как открыть дверь. В интерактивной обстановке я подбрасываю монетку. Орел слева, решка справа, и вы идете вниз по пещера в форме пончика, куда бы вас ни направила монета. Сзади, вне моего поля зрения, ты откройте дверь, чтобы вернуться с другой стороны. Повторяем эксперимент с подбрасыванием монеты. пока я не удостоверюсь, что у вас есть ключ. Но это явно ИНТЕРАКТИВНОЕ доказательство с нулевым разглашением. Есть неинтерактивные версии, в которых нам с вами никогда не придется общаться; таким образом, никакие подслушивающие устройства не смогут вмешаться. http://en.wikipedia.org/wiki/Zero-knowledge_proof Это противоположное предыдущему определению.
VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци = ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци = ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 18 Вся эта область не зависит от криптонот, просто описывая алгоритм кольцевой подписи без ссылка на валюты. Я подозреваю, что некоторые обозначения совпадают с остальной частью статьи. хотя. Например, x — это «случайный» секретный ключ, выбранный в GEN, который дает открытый ключ P. и изображение открытого ключа I. Это значение x — это значение, которое Боб вычисляет в части 6 на странице 8. Итак, это начинаю прояснять некоторую путаницу из предыдущего описания. Это круто; деньги не переводятся с публичного адреса Алисы на публичный адрес Боба. адрес." Он пересылается с одноразового адреса на одноразовый адрес. В каком-то смысле вот как все работает. Если у Алекса есть криптоноты, потому что кто-то отправила их ей, это означает, что у нее есть секретные ключи, необходимые для отправки их Бобу. Она использует обмен Диффе-Хеллманом с использованием общедоступной информации Боба для создания нового одноразового адреса и криптоноты передаются на этот адрес. Теперь, поскольку для генерации нового одноразового адреса использовался (предположительно безопасный) обмен DH на который Алекс отправила свой CN, Боб — единственный, у кого есть закрытые ключи, необходимые для повторения выше. Итак, теперь Боб — это Алекс. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Суммирование должно индексироваться по j, а не по i. Каждый c_i является случайным мусором (поскольку w_i является случайным) кроме задницы c_iсвязан с фактическим ключом, включенным в эту подпись. Значение c равно hash предыдущей информации. Я думаю, что это может содержать опечатку, более серьезную, чем повторное использование индекса «i», потому что c_s кажется определяться имплицитно, а не эксплицитно. Действительно, если принять это уравнение на веру, то мы определим, что c_s = (1/2)c - (1/2) sum_i neq s c_i. То есть hash минус целая куча случайных чисел. С другой стороны, если это суммирование предназначено для чтения «c_s = (c — sum_j neq s c_j) mod l", затем мы берем hash нашей предыдущей информации, генерируем группу случайных чисел, вычтите все эти случайные числа из hash, и это даст нам c_s. Кажется, это то, что «должно» происходить, исходя из моей интуиции, и соответствует шагу проверки на странице 10. Но интуиция – это не математика. Я углублюсь в это. То же, что и раньше; все это будет случайным мусором, за исключением того, что связано с настоящим открытый ключ подписывающего лица x. За исключением этого раза, это больше, чем я ожидал от структуры: r_i является случайным для i!=s, а r_s определяется только секретным x и индексированными значениями s q_i и c_i.
VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и сохраняет ее в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и stхранит это в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 19 В этот момент я ужасно запутался. Алекс получает сообщение M с подписью (I,c_1, ..., c_n, r_1, ..., r_n) и списком публичных клавиши S. и она запускает VER. Это вычислит L_i’ и R_i’ Это подтверждает, что c_s = c - sum_i neq s c_i на предыдущей странице. Сначала я был ОЧЕНЬ (ха) в замешательстве. Любой может вычислить L_i’ и R_i’. Действительно, каждый r_i и c_i опубликовано в подписи сигма вместе со значением I. Набор S = P_i всех открытых ключей также был опубликован. Так что любой, кто видел Сигму и набор ключи S = P_i получат одинаковые значения для L_i’ и R_i’ и, следовательно, проверят подпись. Но потом я вспомнил, что этот раздел просто описывает алгоритм подписи, а не «проверку». если подписано, проверьте, ОТПРАВЛЕНО МНЕ, и если да, то идите тратить деньги». Это ПРОСТО фирменная часть игры. Мне интересно прочитать Приложение А, когда я наконец туда доберусь. Я хотел бы увидеть полномасштабное сравнение Cryptonote по операциям с Bitcoin. А также электричество/устойчивое развитие. Какие части алгоритмов здесь представляют собой «входные данные»? Я полагаю, что входные данные транзакции представляют собой сумму и набор UTXO, сумма которых превышает сумму Сумма. Это неясно. «Цель спряталась?» Я думал об этом уже несколько минут, но до сих пор не понял. смутное представление о том, что это могло означать. Атака двойного расходования может быть выполнена только путем манипулирования предполагаемым используемым ключом узла. набор изображений \(I\). «Степень неоднозначности» = n, но общее количество открытых ключей, включенных в транзакцию, равно п+1. Другими словами, степень двусмысленности будет такой: «Сколько ДРУГИХ людей вы хотите видеть в группе?» толпа?" Ответ, вероятно, будет по умолчанию «как можно больше».
VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и сохраняет ее в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и stхранит это в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 20 Это интересно; ранее мы предоставили получателю Бобу возможность отправлять все ВХОДЯЩИЕ транзакции не могут быть отсоединены либо путем детерминированного выбора половины его закрытых ключей, либо путем опубликовав половину своих личных ключей как публичные. Это своего рода политика без пути назад. Здесь мы видим способ отправителя Алекса выбрать одну исходящую транзакцию как связанную, но на самом деле это раскрывает Алекса как отправителя всей сети. Это НЕ политика безвозвратного пути. Это транзакция за транзакцией. Есть ли третья политика? Может ли получатель, Боб, создать для Алекса уникальный идентификатор платежа, который никогда не меняется, возможно, используя обмен Диффе-Хеллмана? Если кто-нибудь включит этот платеж Идентификатор, указанный где-то в ее транзакции на адрес Боба, он, должно быть, исходил от Алекса. Таким образом, Алексу не нужно раскрывать себя всей сети, выбирая ссылку на конкретный транзакцию, но она все равно может идентифицировать себя с человеком, которому она отправляет свои деньги. Разве не это делает Poloniex?
Транзакция Вход передачи Выход0 . . . Выходные данные . . . Выходной Ключевое изображение Подписи Кольцевая подпись Ключ назначения Выход1 Ключ назначения Выходной Зарубежные операции Вывод отправителя Ключ назначения Одноразовая пара ключей Одноразовый закрытый ключ Я = хГП(П) П, х Рис. 7. Генерация кольцевой подписи в стандартной транзакции. 5 Эгалитарное доказательство работы В этом разделе мы предлагаем и обосновываем новый алгоритм proof-of-work. Наша основная цель заключается в сокращении разрыва между майнерами CPU (большинство) и GPU/FPGA/ASIC (меньшинство). Это уместно, что некоторые пользователи могут иметь определенное преимущество перед другими, но их инвестиции должно расти по крайней мере линейно с мощностью. В более общем смысле, производство устройств специального назначения. должна быть как можно менее прибыльной. 5.1 Связанные работы Исходный протокол Bitcoin proof-of-work использует функцию ценообразования с интенсивным использованием ЦП SHA-256. Он в основном состоит из основных логических операторов и полагается исключительно на скорость вычислений. процессор, поэтому идеально подходит для многоядерной/конвейерной реализации. Однако современные компьютеры ограничены не только количеством операций в секунду. но и по размеру памяти. Хотя некоторые процессоры могут быть значительно быстрее других [8], размеры памяти вряд ли будут различаться между машинами. Ценовые функции, связанные с памятью, были впервые введены Абади и др. и определены как «функции, время вычисления которых во многом зависит от времени, затрачиваемого на доступ к памяти» [15]. Основная идея заключается в построении алгоритма, выделяющего большой блок данных («блокнот»). в памяти, доступ к которой возможен относительно медленно (например, ОЗУ) и «доступ к непредсказуемая последовательность локаций» внутри него. Блок должен быть достаточно большим, чтобы можно было сохранить данные более выгодны, чем пересчитывать их для каждого доступа. Алгоритм также должен предотвратить внутренний параллелизм, следовательно, N одновременных потоков должны требовать в N раз больше памяти сразу. Дворк и др. [22] исследовали и формализовали этот подход, что привело их к предложению другого вариант функции ценообразования: «Mbound». Еще одна работа принадлежит Ф. Коэльо [20], который 11 Транзакция Вход передачи Выход0 . . . Выходные данные . . . Выходной Ключевое изображение Подписи Кольцевая подпись Ключ назначения Выход1 Ключ назначения Выходной Зарубежные сделки Вывод отправителя Ключ назначения Одноразовая пара ключей Одноразовый закрытый ключ Я = хГП(П) П, х Рис. 7. Генерация кольцевой подписи в стандартной транзакции. 5 Эгалитарное доказательство работы В этом разделе мы предлагаем и обосновываем новый алгоритм proof-of-work. Наша основная цель заключается в сокращении разрыва между майнерами CPU (большинство) и GPU/FPGA/ASIC (меньшинство). Это уместно, что некоторые пользователи могут иметь определенное преимущество перед другими, но их инвестиции должно расти по крайней мере линейно с мощностью. В более общем смысле, производство устройств специального назначения. должна быть как можно менее прибыльной. 5.1 Связанные работы Исходный протокол Bitcoin proof-of-work использует функцию ценообразования с интенсивным использованием ЦП SHA-256. Он в основном состоит из основных логических операторов и полагается исключительно на скорость вычислений. процессор, поэтому идеально подходит для многоядерной/конвейерной реализации. Однако современные компьютеры ограничены не только количеством операций в секунду. но и по размеру памяти. Хотя некоторые процессоры могут быть значительно быстрее других [8], размеры памяти вряд ли будут различаться между машинами. Ценовые функции, связанные с памятью, были впервые введены Абади и др. и определены как «функции, время вычислений которых во многом зависит от времени, затрачиваемого на доступ к памяти» [15]. Основная идея заключается в построении алгоритма, выделяющего большой блок данных («блокнот»). в памяти, доступ к которой возможен относительно медленно (например, ОЗУ) и «доступ к непредсказуемая последовательность локаций» внутри него. Блок должен быть достаточно большим, чтобы можно было сохранить данные более выгодны, чем пересчитывать их для каждого доступа. Алгоритм также должен предотвратить внутренний параллелизм, следовательно, N одновременных потоков должны требовать в N раз больше памяти сразу. Дворк и др. [22] исследовали и формализовали этот подход, что привело их к предложению другого вариант функции ценообразования: «Mbound». Еще одна работа принадлежит Ф. Коэльо [20], который 11 21 Это, якобы, наши UTXO: суммы и ключи назначения. Если Алекс создает эту стандартную транзакцию и отправляет ее Бобу, то у Алекса также есть закрытые ключи. каждому из них. Мне очень нравится эта диаграмма, потому что она отвечает на некоторые предыдущие вопросы. Вход Txn состоит из набора выходов Txn и key изображение. Затем он подписывается кольцевой подписью, включая все личных ключей, которыми владеет Алекс, ко всем зарубежным транзакциям, включенным в сделку. Вывод Txn состоит из суммы и ключа назначения. Получатель транзакции может: по своему желанию генерировать свой одноразовый закрытый ключ, как описано ранее в статье, чтобы потратить деньги. Будет приятно узнать, насколько это соответствует реальному коду... Нет, Ник ван Саберхаген в общих чертах описывает некоторые свойства алгоритма доказательства работы: без фактического описания этого алгоритма. Сам алгоритм CryptoNight ТРЕБУЕТ глубокого анализа. Когда я это прочитал, я заикался. Должны ли инвестиции расти хотя бы линейно с ростом власти, или же следует инвестиции растут максимум линейно с ростом мощности? И тогда я понял; Я, как майнер или инвестор, обычно думаю о том, «сколько энергии я могу получить». для инвестиций?» а не «сколько инвестиций требуется для фиксированного количества энергии?» Конечно, обозначим инвестиции через I, а мощность через P. Если I(P) — это инвестиции как функция мощности а P(I) — мощность как функция инвестиций, они будут обратными друг другу (где бы то ни было). обратные могут существовать). И если I(P) быстрее линейного, чем P(I) медленнее линейного. Следовательно, будет снижена норма прибыли для инвесторов. То есть автор здесь говорит следующее: «конечно, чем больше вы вкладываете, тем больше и получаете». мощность. Но мы должны попытаться добиться снижения нормы прибыли». В конечном итоге инвестиции в процессоры окажутся сублинейными; вопрос в том, являются ли авторы разработали алгоритм POW, который заставит ASIC также делать это. Должна ли гипотетическая «валюта будущего» всегда майнить с использованием самых медленных/наиболее ограниченных ресурсов? Статья Абади и др. (авторами которой являются несколько инженеров Google и Microsoft): по сути, используя тот факт, что за последние несколько лет объем памяти был намного меньше разница между машинами превышает скорость процессора, а соотношение инвестиций к мощности более чем линейное. Через несколько лет, возможно, придется переоценить это! Всё это гонка вооружений... Создать функцию hash сложно; создание функции hash, удовлетворяющей этим ограничениям, кажется более сложной задачей. Эта статья, похоже, не содержит объяснения фактического hashалгоритм CryptoNight. Я думаю, что это реализация SHA-3 с жесткими требованиями к памяти, основанная в сообщениях на форуме, но я понятия не имею... и в этом вся суть. Это необходимо объяснить.
предложил наиболее эффективное решение: «Хоккайдо». Насколько нам известно, последней работой, основанной на идее псевдослучайного поиска в большом массиве, является алгоритм, известный как «scrypt» К. Персиваля [32]. В отличие от предыдущих функций, он фокусируется на получение ключа, а не системы proof-of-work. Несмотря на этот факт, скрипт может служить нашей цели: она хорошо работает как функция ценообразования в задаче частичного преобразования hash, такой как SHA-256 в Bitcoin. На данный момент scrypt уже применяется в Litecoin [14] и некоторых других ветвях Bitcoin. Однако его реализация на самом деле не привязана к памяти: соотношение «время доступа к памяти/общее time» недостаточно велик, поскольку каждый экземпляр использует только 128 КБ. Это позволяет майнерам с графическим процессором быть примерно в 10 раз более эффективным и продолжает оставлять возможность создания относительно дешевые, но высокоэффективные устройства для майнинга. Более того, сама конструкция сценария допускает линейный компромисс между размером памяти и Скорость процессора обусловлена тем, что каждый блок в блокноте является производным только от предыдущего. Например, вы можете хранить каждый второй блок и пересчитывать остальные ленивым способом, т.е. только когда это станет необходимым. Предполагается, что псевдослучайные индексы распределены равномерно. следовательно, ожидаемое значение пересчетов дополнительных блоков равно 1 \(2 \cdot N\), где N – число итераций. Общее время вычислений увеличивается менее чем вдвое, поскольку имеются также независимые от времени (постоянное время) операции, такие как подготовка блокнота и hashвключение каждую итерацию. Сохранение 2/3 памяти стоит 1 3 \(\cdot\) Н + 1 3 \(\cdot\) \(2 \cdot N\) = N дополнительных пересчетов; 9/10 в результате 1 10 \(\cdot\) Н + . . . + 1 10 \(\cdot\) 9 \(\cdot\) Н = 4,5 Н. Легко показать, что сохранение только 1 s всех блоков увеличивает время менее чем в с−1 раз. 2 . Это, в свою очередь, означает, что машина с процессором В 200 раз быстрее, чем современные чипы могут хранить всего 320 байт блокнота. 5.2 Предлагаемый алгоритм Мы предлагаем новый алгоритм с привязкой к памяти для функции ценообразования proof-of-work. Это зависит от произвольный доступ к медленной памяти и подчеркивает зависимость от задержки. В отличие от сценария каждого новый блок (длиной 64 байта) зависит от всех предыдущих блоков. В результате гипотетический «Экономия памяти» должна увеличить скорость вычислений в геометрической прогрессии. Наш алгоритм требует около 2 Мб на экземпляр по следующим причинам: 1. Он помещается в кэш L3 (на ядро) современных процессоров, которые должны стать массовыми. через несколько лет; 2. Мегабайт внутренней памяти — практически неприемлемый размер для современного ASIC-конвейера; 3. На графических процессорах могут одновременно работать сотни экземпляров, но они ограничены в других отношениях: Память GDDR5 медленнее кэша CPU L3 и отличается своей пропускной способностью, а не Скорость произвольного доступа. 4. Значительное расширение блокнота потребует увеличения количества итераций, что в ход подразумевает общее увеличение времени. «Тяжелые» вызовы в ненадежной p2p-сети могут привести к серьезные уязвимости, поскольку узлы обязаны проверять proof-of-work каждого нового блока. Если узел тратит значительное количество времени на каждую оценку hash, его можно легко DDoS-атака вызвана потоком поддельных объектов с произвольными рабочими данными (значения nonce). 12 предложил наиболее эффективное решение: «Хоккайдо». Насколько нам известно, последней работой, основанной на идее псевдослучайного поиска в большом массиве, является алгоритм, известный как «scrypt» К. Персиваля [32]. В отличие от предыдущих функций, он фокусируется на получение ключа, а не системы proof-of-work. Несмотря на этот факт, скрипт может служить нашей цели: она хорошо работает как функция ценообразования в задаче частичного преобразования hash, такой как SHA-256 в Bitcoin. На данный момент scrypt уже применяется в Litecoin [14] и некоторых других ветвях Bitcoin. Однако его реализация на самом деле не привязана к памяти: соотношение «время доступа к памяти/общее time» недостаточно велик, поскольку каждый экземпляр использует только 128 КБ. Это позволяет майнерам с графическим процессором быть примерно в 10 раз более эффективным и продолжает оставлять возможность создания относительно дешевые, но высокоэффективные устройства для майнинга. Более того, сама конструкция сценария допускает линейный компромисс между размером памяти и Скорость процессора обусловлена тем, что каждый блок в блокноте является производным только от предыдущего. Например, вы можете хранить каждый второй блок и пересчитывать остальные ленивым способом, т.е. только когда это станет необходимым. Предполагается, что псевдослучайные индексы распределены равномерно. следовательно, ожидаемое значение пересчетов дополнительных блоков равно 1 \(2 \cdot N\), гдеN - число итераций. Общее время вычислений увеличивается менее чем вдвое, поскольку имеются также независимые от времени (постоянное время) операции, такие как подготовка блокнота и hashвключение каждую итерацию. Сохранение 2/3 памяти стоит 1 3 \(\cdot\) Н + 1 3 \(\cdot\) \(2 \cdot N\) = N дополнительных пересчетов; 9/10 в результате 1 10 \(\cdot\) Н + . . . + 1 10 \(\cdot\) 9 \(\cdot\) Н = 4,5 Н. Легко показать, что сохранение только 1 s всех блоков увеличивает время менее чем в с−1 раз. 2 . Это, в свою очередь, означает, что машина с процессором В 200 раз быстрее, чем современные чипы могут хранить всего 320 байт блокнота. 5.2 Предлагаемый алгоритм Мы предлагаем новый алгоритм с привязкой к памяти для функции ценообразования proof-of-work. Это зависит от произвольный доступ к медленной памяти и подчеркивает зависимость от задержки. В отличие от сценария каждого новый блок (длиной 64 байта) зависит от всех предыдущих блоков. В результате гипотетический «Экономия памяти» должна увеличить скорость вычислений в геометрической прогрессии. Наш алгоритм требует около 2 Мб на экземпляр по следующим причинам: 1. Он помещается в кэш L3 (на ядро) современных процессоров, которые должны стать массовыми. через несколько лет; 2. Мегабайт внутренней памяти — практически неприемлемый размер для современного ASIC-конвейера; 3. На графических процессорах могут одновременно работать сотни экземпляров, но они ограничены в других отношениях: Память GDDR5 медленнее кэша CPU L3 и отличается своей пропускной способностью, а не Скорость произвольного доступа. 4. Значительное расширение блокнота потребует увеличения количества итераций, что в ход подразумевает общее увеличение времени. «Тяжелые» вызовы в ненадежной p2p-сети могут привести к серьезные уязвимости, поскольку узлы обязаны проверять proof-of-work каждого нового блока. Если узел тратит значительное количество времени на каждую оценку hash, его можно легко DDoS-атака вызвана потоком поддельных объектов с произвольными рабочими данными (значения nonce). 12 22 Неважно, это скрипт-монета? Где алгоритм? Я вижу только рекламу. Именно здесь Cryptonote, если их алгоритм PoW того стоит, действительно проявит себя. Это не на самом деле SHA-256, это не совсем скрипт. Он новый, привязан к памяти и нерекурсивный.
6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансом затрат и прибыли от комиссий и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращая заполнение blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить лимит. при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или уменьшении скорости сети hash, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансировкойОн тратит и получает прибыль от гонораров и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращая заполнение blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 23 Атомные единицы. Мне нравится, что. Это эквивалент сатоши? Если это так, то это означает, что будет 185 миллиардов криптонот. Я знаю, что со временем это нужно будет подправить на нескольких страницах, или, может быть, это опечатка? Если базовая награда — «все оставшиеся монеты», то для получения всех монет достаточно только одного блока. Инстамин. С другой стороны, если предполагается, что это каким-то образом пропорционально разница во времени между настоящим моментом и какой-то датой прекращения производства монет? Это бы имеет смысл. Кроме того, в моем мире два знака «больше» означают «намного больше». Автор возможно, имеется в виду что-то другое? Если корректировка сложности происходит в каждом блоке, то у злоумышленника может быть очень большая ферма машины работают время от времени в тщательно выбранные промежутки времени. Это может привести к хаотическому взрыву (или падению до нуля) сложности, если формулы корректировки сложности не будут должным образом демпфированы. Несомненно, метод Bitcoin непригоден для быстрых пересчетов, но идея инерции в этих системах необходимо будет доказать, а не считать само собой разумеющимся. Кроме того, колебания в сети сложность не обязательно является проблемой, если только она не приводит к колебаниям мнимых запас монет, а очень быстро меняющаяся сложность может привести к «чрезмерной коррекции». Затраченное время, особенно в течение короткого промежутка времени, например нескольких минут, будет пропорционально «общему количеству количество блоков, созданных в сети». Константа пропорциональности сама будет расти. с течением времени, предположительно экспоненциально, если CN взлетит. Возможно, было бы лучше просто отрегулировать сложность, чтобы сохранить «общее количество блоков, созданных на сети с момента добавления последнего блока в основную цепочку» в пределах некоторого постоянного значения или с ограниченная вариация или что-то в этом роде. Если адаптивный алгоритм, который является вычислительным Легко реализовать, может показаться, что это решит проблему. Но если бы мы использовали этот метод, кто-то с большой майнинговой фермой мог бы закрыть свою ферму. на несколько часов и снова включите его. За первые несколько кварталов эта ферма будет производить банк. Итак, на самом деле этот метод поднимает интересный вопрос: майнинг становится (в среднем) проигрышная игра без рентабельности инвестиций, особенно по мере того, как все больше людей подключаются к сети. Если сложность майнинга очень внимательно отслеживаемая сеть hashrate, я почему-то сомневаюсь, что люди будут майнить столько, сколько они в настоящее время делаю. Или, с другой стороны, вместо того, чтобы поддерживать круглосуточную работу своих майнинг-ферм, они могут превратить их включен на 6 часов, выключен на 2, включен на 6, выключен на 2 или что-то в этом роде. Просто переключитесь на другую монету в течение нескольких часов, подождите, пока сложность упадет, затем запрыгивайте обратно, чтобы получить эти несколько дополнительных очков. блоков прибыльности по мере адаптации сети. И знаешь что? Это на самом деле, наверное один из лучших сценариев добычи полезных ископаемых, которые я придумал... Это могло бы быть циклично, но если время создания блока в среднем составляет около минуты, можем ли мы просто использовать количество блоков в качестве показателя «затраченного времени?»
6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансом затрат и прибыли от комиссий и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращая заполнение blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить лимит. при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы, когда скорость сети hash интенсивно растет или сокращается, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансировкойОн тратит и получает прибыль от гонораров и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращая заполнение blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 24 Хорошо, у нас есть blockchain, и каждый блок имеет временные метки, ДОПОЛНИТЕЛЬНО к тому, что он просто заказал. Это было явно вставлено просто для сложности настройки, потому что временные метки Как уже упоминалось, очень ненадежно. Разрешено ли нам иметь противоречивые временные метки в цепочке? Если в цепочке блок А предшествует блоку Б и с финансами все в порядке, но Блок А, похоже, был создан после Блока Б? Потому что, возможно, кто-то владел большая часть сети? Это нормально? Наверное, потому, что с финансами не все в порядке. Хорошо, я ненавижу это произвольное «только 80% блоков являются законными для основного blockchain». подход. Это было сделано для того, чтобы лжецы не могли изменить свои временные метки? Но теперь он добавляет стимул для всех лгать о своих временных метках и просто выбирать медиану. Пожалуйста, определите. Это означает «для этого блока включать только транзакции, включающие более высокие комиссии». чем p%, предпочтительно с комиссией выше 2p%» или что-то в этом роде? Что они подразумевают под словом фальшивка? Если транзакция соответствует прошлой истории blockchain, и транзакция включает комиссию, удовлетворяющую майнеров, разве этого недостаточно? Ну, нет, не обязательно. Если максимальный размер блока не существует, злоумышленнику нечего удерживать. от простой загрузки огромного блока транзакций себе сразу, просто чтобы замедлить сеть. Основное правило максимального размера блока не позволяет людям размещать огромное количество мусора. данные на blockchain все сразу, просто чтобы замедлить процесс. Но такое правило, безусловно, должно быть адаптивными: например, во время рождественского сезона можно ожидать резкого увеличения трафика, и размер блока становится очень большим, и сразу после этого размер блока впоследствии уменьшается снова. Поэтому нам нужно либо а) какое-то адаптивное ограничение, либо б) достаточно большое ограничение, чтобы 99% разумные рождественские пики не выходят за рамки ограничений. Конечно, второе невозможно. оценка - кто знает, приживется ли валюта? Лучше сделать адаптивным и не париться об этом. Но тогда у нас возникает проблема теории управления: как сделать это адаптивным без уязвимость к атакам или диким и сумасшедшим колебаниям? Обратите внимание, что адаптивный метод не мешает злоумышленникам накапливать небольшие суммы. ненужных данных с течением времени на blockchain, что приводит к долгосрочному раздуванию. Это другая проблема в целом и тот, с которым у криптоноут есть серьезные проблемы.
6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансом затрат и прибыли от комиссий и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращение заполнения blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод Bitcoin вычисляет отношение фактических и целевой промежуток времени между последними блоками 2016 года и использует его в качестве множителя для текущего сложность. Очевидно, что для быстрых пересчетов это непригодно (из-за большой инерционности) и приводит к колебаниям. Общая идея нашего алгоритма заключается в суммировании всей работы, выполненной узлами, и разделите его на время, которое они потратили. Мерой работы являются соответствующие значения сложности. в каждом блоке. Но из-за неточных и ненадежных временных меток мы не можем определить точную дату. интервал времени между блоками. Пользователь может перенести свою временную метку в будущее и в следующий раз. интервалы могут быть невероятно малыми или даже отрицательными. Вероятно, таких инцидентов будет немного. такого рода, поэтому мы можем просто отсортировать временные метки и отсечь выбросы (т. е. 20%). Диапазон остальные значения — это время, затраченное на 80% соответствующих блоков. 6.2.2 Ограничения по размеру Пользователи платят за хранение blockchain и имеют право голосовать за его размер. Каждый шахтер имеет дело с компромиссом между балансировкойОн тратит и получает прибыль от гонораров и устанавливает свои собственные «мягкий лимит» для создания блоков. Также основное правило максимального размера блока необходимо для предотвращая заполнение blockchain фиктивной транзакцией, однако это значение должно не быть жестко закодированным. Пусть MN — медианное значение размеров последних N блоков. Тогда «жесткое ограничение» на размер приема блоков составляет 2 \(\cdot\) МН. Это предотвращает раздувание blockchain, но при этом позволяет ограничить при необходимости медленно расти со временем. Размер транзакции не обязательно ограничивать явно. Он ограничен размером блока; и если кто-то захочет создать огромную транзакцию с сотнями входов/выходов (или с высокая степень двусмысленности кольцевых подписей), он может сделать это, заплатив достаточную плату. 6.2.3 Штраф за превышение размера Майнер по-прежнему имеет возможность наполнить блок своими собственными транзакциями с нулевой комиссией до максимального уровня. размер 2 \(\cdot\) Мб. Несмотря на то, что только большинство майнеров могут изменить медианное значение, все же существует 13 25 При изменении масштаба времени так, чтобы одна единица времени составляла N блоков, средний размер блока теоретически мог бы расти экспоненциально пропорционально 2ˆt. С другой стороны, более общий предел в следующем блоке будет M_nf(M_n) для некоторой функции f. Какие свойства f будут мы выбираем, чтобы гарантировать некоторый «разумный рост» размера блока? Прогрессирование размеры блоков (после масштабирования времени) будут такими: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... И цель здесь — выбрать f так, чтобы эта последовательность росла не быстрее, чем, скажем, линейно: или, возможно, даже как Log(t). Конечно, если f(M_n) = a для некоторой константы a, эта последовательность будет на самом деле М_н аМ_н аˆ2М_н аˆ3М_н ... И, конечно же, единственный способ ограничить максимально линейный рост — это выбрать a=1. Это, конечно, неосуществимо. Это вообще не дает возможности роста. Если же, с другой стороны, f(M_n) — непостоянная функция, то ситуация гораздо сложнее. сложен и может позволить найти элегантное решение. Я подумаю над этим некоторое время. Этот сбор должен быть достаточно большим, чтобы исключить штраф за превышение размера, предусмотренный в следующем разделе. Почему обычный пользователь считается мужчиной, а? А?
возможность раздуть blockchain и создать дополнительную нагрузку на узлы. Препятствовать злонамеренным участникам от создания крупных блоков вводим штрафную функцию: Новая награда = Базовая награда \(\cdot\) БлкСизе Миннесота −1 2 Это правило применяется только тогда, когда BlkSize превышает минимальный размер свободного блока, который должен быть близким к max(10kb, \(M_N \cdot 110\%\)). Майнерам разрешено создавать блоки «обычного размера» и даже превысить его с прибылью, когда общие сборы превысят штраф. Но сборы вряд ли вырастут квадратично отличается от значения штрафа, поэтому будет равновесие. 6.3 Скрипты транзакций CryptoNote имеет очень минималистическую подсистему сценариев. Отправитель указывает выражение Φ = f (x1, x2,..., xn), где n — количество открытых ключей назначения {Pi}n я = 1. Всего пять двоичных поддерживаются операторы: min, max, sum, mul и cmp. Когда получатель тратит этот платеж, он создает \(0 \leq k \leq n\) подписей и передает их на вход транзакции. Процесс проверки просто оценивает Φ с xi = 1, чтобы проверить действительную подпись для открытого ключа Pi и xi = 0. Верификатор принимает доказательство, если Φ > 0. Несмотря на свою простоту, этот подход охватывает все возможные случаи: • Многопороговая сигнатура. Для мультиподписи в стиле Bitcoin «M-из-N» (т. е. получатель должен предоставить как минимум \(0 \leq M \leq N\) действительных подписей) Φ = x1+x2+. . .+xN \(\geq M\) (для ясности мы используем общепринятые алгебраические обозначения). Взвешенная пороговая сигнатура (некоторые ключи могут быть более важными, чем другие) можно выразить как Φ = \(w_1 \cdot x_1\) + ш2 \(\cdot\) х2 + . . . + \(w_N \cdot x_N\) \(\geq wM\). И сценарий, в котором мастер-ключ соответствует Φ = max(\(M \cdot x\), x1 + x2 +... + xN) \(\geq M\). Легко показать, что любой сложный случай может быть рассмотрен. выражаются с помощью этих операторов, т.е. они образуют основу. • Защита паролем. Владение секретным паролем эквивалентно знанию закрытый ключ, детерминированно полученный из пароля: k = KDF(s). Следовательно, приемник может доказать, что он знает пароль, предоставив еще одну подпись под ключом k. Отправитель просто добавляет соответствующий открытый ключ к своим выводам. Обратите внимание, что это метод гораздо более безопасен, чем «транзакционная головоломка», использованная в Bitcoin [13], где пароль явно передается на входе. • Вырожденные случаи. Φ = 1 означает, что деньги может потратить кто угодно; Φ = 0 отмечает вывод как не подлежащий расходованию навсегда. В случае, когда выходной скрипт в сочетании с открытыми ключами слишком велик для отправителя, он может использовать специальный тип вывода, который указывает, что получатель поместит эти данные в свои входные данные. в то время как отправитель предоставляет только hash этого сообщения. Этот подход аналогичен подходу Bitcoin «оплата-hash». функция, но вместо добавления новых команд сценария мы обрабатываем этот случай в структуре данных уровень. 7 Заключение Мы исследовали основные недостатки Bitcoin и предложили некоторые возможные решения. Эти выгодные особенности и наше постоянное развитие делают новую систему электронных денег CryptoNote серьезный конкурент Bitcoin, превосходящий все его форки. 14 возможность раздуть blockchain и создать дополнительную нагрузку на узлы. Препятствовать злонамеренным участникам от создания крупных блоков вводим штрафную функцию: Новая награда = Базовая награда \(\cdot\) БлкСизе Миннесота −1 2 Это правило применяется только тогда, когда BlkSize превышает минимальный размер свободного блока, который должен быть близким к max(10kb, \(M_N \cdot 110\%\)). Майнерам разрешено создавать блоки «обычного размера» и даже превысить его с прибылью, когда общие сборы превысят штраф. Но сборы вряд ли вырастут квадратично отличается от значения штрафа, поэтому будет равновесие. 6.3 Скрипты транзакций CryptoNote имеет очень минималистическую подсистему сценариев. Отправитель указывает выражение Φ = f (x1, x2,..., xn), где n — количество открытых ключей назначения {Pi}n я = 1. Всего пять двоичных поддерживаются операторы: min, max, sum, mul и cmp. Когда получатель тратит этот платеж, он создает \(0 \leq k \leq n\) подписей и передает их на вход транзакции. Процесс проверки просто оценивает Φ с xi = 1, чтобы проверить действительную подпись для открытого ключа Pi и xi = 0. Верификатор принимает доказательство, если Φ > 0. Несмотря на свою простоту, этот подход охватывает все возможные случаи: • Многопороговая сигнатура. Для мультиподписи в стиле Bitcoin «M-из-N» (т. е. получатель должен предоставить как минимум \(0 \leq M \leq N\) действительных подписей) Φ = x1+x2+. . .+xN \(\geq M\) (для ясности мы используем общепринятые алгебраические обозначения). Взвешенная пороговая сигнатура (некоторые ключи могут быть более важными, чем другие) можно выразить как Φ = \(w_1 \cdot x_1\) + ш2 \(\cdot\) х2 + . . . + \(w_N \cdot x_N\) \(\geq wM\). И скэнарio, где мастер-ключ соответствует Φ = max(\(M \cdot x\), x1 + x2 +... + xN) \(\geq M\). Легко показать, что любой сложный случай может быть рассмотрен. выражаются с помощью этих операторов, т.е. они образуют основу. • Защита паролем. Владение секретным паролем эквивалентно знанию закрытый ключ, детерминированно полученный из пароля: k = KDF(s). Следовательно, приемник может доказать, что он знает пароль, предоставив еще одну подпись под ключом k. Отправитель просто добавляет соответствующий открытый ключ к своим выводам. Обратите внимание, что это метод гораздо более безопасен, чем «транзакционная головоломка», использованная в Bitcoin [13], где пароль явно передается на входе. • Вырожденные случаи. Φ = 1 означает, что деньги может потратить кто угодно; Φ = 0 отмечает вывод как не подлежащий расходованию навсегда. В случае, когда выходной скрипт в сочетании с открытыми ключами слишком велик для отправителя, он может использовать специальный тип вывода, который указывает, что получатель поместит эти данные в свои входные данные. в то время как отправитель предоставляет только hash этого сообщения. Этот подход аналогичен подходу Bitcoin «оплата-hash». функция, но вместо добавления новых команд сценария мы обрабатываем этот случай в структуре данных уровень. 7 Заключение Мы исследовали основные недостатки Bitcoin и предложили некоторые возможные решения. Эти выгодные особенности и наше постоянное развитие делают новую систему электронных денег CryptoNote серьезный конкурент Bitcoin, превосходящий все его форки. 14 26 В этом может не оказаться необходимости, если мы сможем найти способ ограничить размер блока с течением времени... Это также не может быть правильным. Они просто установили «NewReward» на параболу, обращенную вверх, где размер блока является независимой переменной. Таким образом, новая награда раздувается до бесконечности. Если, с другой стороны, новая награда равна Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)), затем новая награда будет обращенной вниз параболой с пиком при размере блока = Mn и точками пересечения в точке Размер блока = 0 и Размер блока = 2Mn. И, кажется, именно это они пытаются описать. Однако это не
Takip Edilemeyen İşlemler
Bu bölümde, hem izlenemezliği hem de koşulları karşılayan tamamen anonim işlemlere yönelik bir plan öneriyoruz.
ve bağlanamazlık koşulları. Çözümümüzün önemli bir özelliği özerkliğidir: gönderen
işlemlerini gerçekleştirmek için diğer kullanıcılarla veya güvenilir bir üçüncü tarafla işbirliği yapması gerekmemektedir;
dolayısıyla her katılımcı bağımsız olarak bir kapak trafiği üretir.
4.1
Literatür taraması
Planımız grup imzası adı verilen kriptografik temele dayanıyor. İlk kez sunulan
D. Chaum ve E. van Heyst [19], bir kullanıcının grup adına mesajını imzalamasına olanak tanır.
Kullanıcı mesajı imzaladıktan sonra (doğrulama amacıyla) kendi geneline ait değil
1Buna "yumuşak limit" denir; yeni bloklar oluşturmak için referans istemci kısıtlaması. Zor maksimum
olası blok boyutu 1 MB'tı
4
Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor.
sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir.
Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur.
boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde
2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı.
Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi
ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da
bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi.
yapay olarak getirilmiş blok boyutu sınırı yoktur.
Sabitler ayrıca bir tür merkezileştirme noktası görevi görür.
Eşler arası doğasına rağmen
Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor
küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir
ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu
hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve
geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor
Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır.
2.5
Hacimli komut dosyaları
Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir
karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve
bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil)
Bitcoin'deki en popüler işlem için şuna benzer:
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 8 Yüzük imzası şu şekilde çalışır: Alex, işvereniyle ilgili bir mesajı WikiLeaks'e sızdırmak ister. Şirketindeki her çalışanın özel/genel anahtar çifti (Ri, Ui) vardır. O besteliyor girişi mesajı, m, özel anahtarı, Ri ve HERKE\(S'\)inki olarak ayarlanan imzası ortak anahtarlar, (Ui;i=1...n). Herkes (herhangi bir özel anahtar bilmeden) bunu kolayca doğrulayabilir İmzayı oluşturmak için bir çift (Rj, Uj) kullanılmış olmalı... çalışan biri Alex'in işvereni için... ama hangisi olabileceğini anlamak aslında rastgele bir tahmin. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Burada açıklanan bağlanabilir halka imzasının "bağlanamaz" ifadesinin tam tersi olduğuna dikkat edin. yukarıda açıklanmıştır. Burada iki mesajı yakalıyoruz ve aynı olup olmadığını belirleyebiliyoruz. taraf gönderdi, ancak yine de o tarafın kim olduğunu belirleyemeyiz.
Cryptonote'u oluşturmak için kullanılan "bağlanamaz" tanımı, Cryptonote'u oluşturup oluşturmadığımızı belirleyemeyeceğimiz anlamına gelir. onları aynı taraf alıyor. Dolayısıyla burada gerçekte olan DÖRT şeyin devam etmesidir. Bir sistem bağlanabilir veya gönderenin olup olmadığını belirlemenin mümkün olup olmadığına bağlı olarak bağlantı kurulamaz. iki mesaj aynıdır (bunun anonimliğin iptal edilmesini gerektirip gerektirmediğine bakılmaksızın). Ve bir sistemin mümkün olup olmamasına bağlı olarak bağlantısız veya bağlantısız olabilir. iki mesajın alıcısının aynı olup olmadığına karar verin (olup olmadığına bakılmaksızın) bu, anonimliğin iptal edilmesini gerektirir). Lütfen bu korkunç terminoloji için beni suçlamayın. Grafik teorisyenleri muhtemelen memnun oldum. Bazılarınız "alıcıya bağlanabilirlik" yerine "göndere bağlanabilirlik" konusunda daha rahat olabilir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bunu okuduğumda bu aptalca bir özellik gibi geldi. Daha sonra bunun bir özellik olabileceğini okudum. elektronik oylama ve bu mantıklı görünüyordu. Bu açıdan bakınca çok hoş. Ama ben izlenebilir halka imzaların bilinçli olarak uygulanması konusunda tam olarak emin değilim. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nın ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 9 Tanrım, bu teknik incelemenin yazarı bunu kesinlikle daha iyi ifade edebilirdi! Diyelim ki bir Çalışanların sahibi olduğu şirket, belirli yeni ürünleri satın alıp almama konusunda oylama yapmak istiyor varlıklardır ve Alex ve Brenda'nın ikisi de çalışandır. Şirket her çalışana bir "Öneri A'ya evet oyu veriyorum!" gibi bir mesaj "sorun" meta bilgisine sahip olan [PROP A] ve eğer teklifi destekliyorlarsa izlenebilir bir yüzük imzasıyla imzalamalarını istiyor. Dürüst olmayan bir çalışan, geleneksel zil sesi imzasını kullanarak mesajı birden çok kez imzalayabilir. muhtemelen farklı nonce'lerle, istedikleri kadar oy verebilmek için. diğer tarafta izlenebilir bir halka imza şemasında Alex oy kullanmaya gidecek ve onun özel anahtarı [PROP A] sorunu üzerinde kullanıldı. Alex "Ben, Brenda, onaylıyorum" gibi bir mesajı imzalamaya çalışırsa A önermesi!" Brenda'yı "çerçevelemek" ve çifte oylama yapmak için, bu yeni mesaj aynı zamanda sorunu da çözecek [PROP A]. Alex'in özel anahtarı zaten [PROP A] sorununu tetiklediği için Alex'in kimliği dolandırıcılık olduğu hemen ortaya çıkacaktır. Kabul et ki bu oldukça havalı! Kriptografi oy eşitliğini zorunlu kıldı. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bu makale ilginçtir, esas olarak geçici bir halka imzası oluşturur, ancak bu imzalardan herhangi birini içermez. diğer katılımcının onayı. İmzanın yapısı farklı olabilir; kazmadım derin ve güvenli olup olmadığını görmedim. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Geçici grup imzaları şunlardır: grubu olmayan grup imzaları olan halka imzalar yöneticiler, merkezileştirme yok, ancak geçici bir gruptaki bir üyenin kanıtlanabilir bir şekilde şunu iddia etmesine izin veriyor: grup adına isimsiz imzayı vermiştir/vermemiştir. http://link.springer.com/chapter/10.1007/11908739_9 Anladığım kadarıyla bu pek doğru değil. Ve anlayışım muhtemelen değişecek Bu projenin derinliklerine iniyorum. Ama benim anladığım kadarıyla hiyerarşi şöyle görünüyor. Grup imzaları: grup yöneticileri izlenebilirliği ve üye ekleme veya çıkarma yeteneğini kontrol eder imzacı olmaktan. Ring işaretleri: Grup yöneticisi olmadan keyfi grup oluşumu. Anonimliğin iptali yok. Belirli bir imzayı reddetmenin hiçbir yolu yoktur. İzlenebilir ve bağlanabilir halkalı imzalar, anonimlik bir şekilde ölçeklenebilir. Geçici grup imzaları: halka imzalara benzer ancak üyeler kendilerinin oluşturmadığını kanıtlayabilir özel bir imza. Gruptaki herhangi biri imza atabildiğinde bu önemlidir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Fujisaki ve Suzuki'nin algoritması daha sonra yazar tarafından tek seferliklik sağlayacak şekilde ayarlandı. Yani Fujisaki ve Suzuki’nin algoritmasını yeni algoritmayla eş zamanlı olarak analiz edeceğiz. burada üzerinden geçmek yerine.
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nun ECDSA'sı gibi eliptik eğriye dayanmaktadır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 10 "Bağlanabilir halka imzaları" anlamındaki bağlanabilirlik, kaynağın kim olduğunu açıklamadan, giden iki işlemin aynı kaynaktan gelip gelmediğini söyleyebilmemiz anlamına gelir. Yazarlar zayıfladı (a) gizliliği korumak, ancak yine de (b) özel anahtar kullanarak herhangi bir işlemi tespit etmek için bağlanabilirlik ikinci kez geçersiz. Tamam, bu bir olaylar sırası sorusudur. Aşağıdaki senaryoyu düşünün. Benim madenciliğim bilgisayar geçerli blockchain numarasına sahip olacak, çağırdığı kendi işlem bloğuna sahip olacak meşru, bir proof-of-work bulmacasındaki o blok üzerinde çalışacak ve Bir sonraki bloğa eklenecek bekleyen işlemlerin listesi. Ayrıca yenilerini de gönderecek işlemleri bekleyen işlemler havuzuna aktarır. Bir sonraki bloğu çözemezsem ama başkası bunu yaparsa blockchain dosyasının güncellenmiş bir kopyasını alırım. Üzerinde çalıştığım blok ve bekleyen işlemler listemin her ikisinde de şu anda dahil edilmiş bazı işlemler bulunabilir blockchain içine. Bekleyen bloğumu çöz, bunu bekleyen işlemler listemle birleştir ve buna çağrı yap bekleyen işlemler havuzum. Şu anda resmi olarak blockchain içinde bulunanları kaldırın. Şimdi ne yapacağım? İlk önce "tüm çift harcamaları kaldırmalı mıyım"? diğer tarafta Öte yandan, listede arama yapıp her özel anahtarın henüz değiştirilmediğinden emin olmalı mıyım? kullanılmış ve listemde zaten kullanılmışsa, ilk kopyayı ilk ben aldım ve dolayısıyla bundan sonraki herhangi bir kopya gayri meşrudur. Böylece ilkinden sonra tüm örnekleri silmeye devam ediyorum. aynı özel anahtardan. Cebirsel geometri hiçbir zaman bana göre bir güç olmadı. http://en.wikipedia.org/wiki/EdDSA Bu kadar hız, çok vay be. BU kazanmaya yönelik cebirsel geometridir. Hiçbir şey bildiğimden değil bu konuda. Sorunlu olsun veya olmasın, ayrık günlükler çok hızlı hale geliyor. Ve kuantum bilgisayarlar onları yiyor kahvaltı için. http://link.springer.com/article/10.1007/s13389-012-0027-1 Bu gerçekten önemli bir sayı haline geliyor, ancak nasıl olduğuna dair hiçbir açıklama veya alıntı yok. seçildi. Bilinen tek bir büyük asal sayıyı seçmek yeterli olacaktır, ancak eğer bilinenler varsa seçimimizi etkileyebilecek bu büyük asal sayı hakkındaki gerçekler. Kripto notun farklı çeşitleri farklı değerler seçilebilir eh, ama bu yazıda bunun nasıl olduğuna dair bir tartışma yok. seçim, sayfa 5'te listelenen diğer küresel parametrelere ilişkin seçimlerimizi etkileyecektir. Bu yazının parametre değerlerinin seçimiyle ilgili bir bölüme ihtiyacı var.
özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'a karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 11 Yani bu Bitcoin gibi, ancak sonsuz, anonim Posta Kutuları var, yalnızca alıcı tarafından kullanılabilecek Bir halka imzasının olabileceği kadar anonim olan özel bir anahtar oluşturmak. Bitcoin bu şekilde çalışır. Eğer Alex'in Frank'ten yeni aldığı cüzdanında 0,112 Bitcoin varsa, gerçekten imzalı bir parası var demektir "Ben, [FRANK], 0.112 Bitcoin'yi [alex] + H0 + N0'a gönder" mesajı burada 1) Frank imzaladı özel anahtarıyla [FRANK] mesaj attı, 2) Frank mesajı Alex'in herkese açık anahtarıyla imzaladı anahtar, [alex], 3) Frank Bitcoin'in geçmişinin bir kısmını dahil etti, H0 ve 4) Frank nonce, N0 adı verilen rastgele bir veri biti içerir. Alex daha sonra Charlene'e 0,011 Bitcoin göndermek isterse Frank'in mesajını alacak ve bunu H1'e ayarlayacak ve iki mesaj imzalayacak: biri işlemi için, diğeri değişiklik için. H1= "Ben, [FRANK], 0,112 Bitcoin'yi [alex] + H0 + N'ye gönder" "I, [ALEX], 0,011 Bitcoin'yi gönder [charlene] + H1 + N1" "Ben, [ALEX], [alex] + H1 + N2'ye değişiklik olarak 0.101 Bitcoin gönder." Alex'in her iki mesajı da kendi özel anahtarıyla [ALEX] imzaladığı yer, Charlene'nin şifresini içeren ilk mesaj genel anahtar [charlene], Alex'in genel anahtarının [alex] bulunduğu ikinci mesaj ve geçmişleri ve bazıları rastgele oluşturulmuş nonces N1 ve N2'yi uygun şekilde oluşturur. Cryptonote şu şekilde çalışır: Alex'in Frank'ten yeni aldığı cüzdanında 0.112 Cryptonote varsa gerçekten imzalı bir parası var demektir. "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." Alex, özel anahtarını [ALEX] kontrol ederek bunun kendisine ait olduğunu keşfetti. Her geçen mesaj için [tek seferlik bir adres] ve eğer onu harcamak isterse bunu aşağıdaki şekilde. Paranın alıcısını seçiyor, belki de Charlene drone saldırılarına oy vermeye başlamıştır. Alex bunun yerine Brenda'ya para göndermek istiyor. Alex, Brenda'nın genel anahtarına (brenda) bakar, ve tek seferlik bir adres [ALEX+brenda] oluşturmak için kendi özel anahtarı olan [ALEX]'i kullanır. O daha sonra kriptonot kullanıcıları ağından rastgele bir C koleksiyonu seçer ve oluşturur bu geçici gruptan bir halka imzası. Geçmişimizi bir önceki mesaj olarak ayarladık, ekledik nonces ve her zamanki gibi devam edilsin mi? H1 = "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." "Ben, [C koleksiyonundan biri], [ALEX+brenda'dan tek seferlik adres yapımı] + H1 + N1'e 0,011 Cryptonote gönderiyorum" "Ben, [C koleksiyonundan biri], değişiklik olarak 0.101 Cryptonote'u [ALEX+alex'ten yapılan tek seferlik adres] + H1 + N2'ye gönderiyorum" Artık Alex ve Brenda, gelen tüm mesajları tek seferlik adresler için tarıyor. anahtarları kullanılarak oluşturulmuştur. Eğer herhangi bir şey bulurlarsa, o zaman bu mesaj kendilerine ait yepyeni bir mesajdır. kriptonot! Ve o zaman bile işlem yine de blockchain'ye ulaşacaktır. Eğer o adrese giren coinler suçlulardan, siyasi katkıda bulunanlardan veya komitelerden ve hesaplardan gönderildiği biliniyor bütçeleri kısıtlıysa (örn. zimmete para geçirme) veya bu paraların yeni sahibi bir hata yaparsa ve bu paraları sahibi olduğu bilinen paralarla ortak bir adrese, anonimlik oyununa gönderir Bitcoin'de yükseliş var.
özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 12 Bu nedenle, kullanıcıların adresten (aslında bir genel anahtardır) adrese para göndermesi yerine (başka bir genel anahtar) özel anahtarlarını kullanarak kullanıcılar tek kullanımlık posta kutusundan para gönderiyorlar (arkadaşlarınızın genel anahtarını kullanarak oluşturuyor) tek seferlik posta kutusuna (benzer şekilde) kendi özel anahtarlarınız. Bir anlamda "Tamam, herkes paranın üzerinden elini çeksin" diyoruz. etrafa transfer edildi! Anahtarlarımızın o kutuyu açabileceğini bilmek yeterli. Kutuda ne kadar para olduğunu biliyoruz. Hiçbir zaman parmak izlerinizi Posta Kutusunun veya onu gerçekten kullan, sadece nakit dolu kutuyu takas et. Bu şekilde kimin gönderdiğini bilmiyoruz ama bu halka açık konuşmaların içerikleri hala sürtünmesiz, takas edilebilir, bölünebilir ve Bitcoin gibi paranın arzu ettiğimiz tüm diğer güzel niteliklerine hâlâ sahibiz.” Sonsuz sayıda posta kutusu seti. Bir adres yayınlıyorsun, benim özel anahtarım var. Özel anahtarımı ve adresinizi kullanıyorum ve ortak anahtar oluşturmak için bazı rastgele veriler. Algoritma öyle tasarlanmıştır ki, adresiniz genel anahtarı oluşturmak için kullanıldı, yalnızca SİZİN özel anahtarınız kilidi açmak için çalışır mesaj. Bir gözlemci olan Eve, adresinizi yayınladığınızı ve duyurduğum genel anahtarı görüyor. Ancak, Genel anahtarımı sizin adresinize mi yoksa onun adresine mi, yoksa Brenda'ya mı dayanarak açıkladığımı bilmiyor ya da Charlene'ninki ya da her kimse. Özel anahtarını açıkladığım genel anahtarla karşılaştırıyor ve işe yaramadığını görüyor; bu onun parası değil. Başka kimsenin özel anahtarını bilmiyor ve mesajın kilidini açabilecek özel anahtar yalnızca mesajın alıcısına sahiptir. Yani kimse dinlemek, parayı kimin aldığını çok daha az belirleyebilir.
halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor Bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı büyüklüğündedir. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 13 Kriptografi seçeneğini uygulamanın ne kadar büyük bir acı olacağını merak ediyorum. şeması. Eliptik veya başka türlü. Yani gelecekte bir plan bozulursa para birimi değişir endişelenmeden. Muhtemelen büyük bir baş ağrısı. Tamam, bu tam olarak önceki yorumumda açıkladığım şey. Diffe-Hellman tipi takaslar gayet düzgün. Alex ve Brenda'nın her birinin gizli bir numarası, A ve B'si ve bir numarası olduğunu varsayalım. sır saklamayı umursamıyorlar, a ve b. Paylaşılan bir sır oluşturmak istiyorlar Eva bunu keşfediyor. Diffe ve Hellman, Alex ve Brenda'nın bu durumu paylaşması için bir yol buldular. genel numaralar a ve b, ancak özel numaralar A ve B değil ve paylaşılan bir sır oluşturur, K. Bu paylaşılan sırrı kullanarak, K, Eva'nın dinlemesine gerek kalmadan aynı şeyi üretebilir. K, Alex ve Brenda artık K'yi gizli bir şifreleme anahtarı olarak kullanabilir ve gizli mesajları geri iletebilir ve ileri. 100'den çok daha büyük sayılarla çalışması gerekmesine rağmen CAN şu şekilde çalışır. 100'ü kullanacağız çünkü modulo 100 tamsayıları üzerinde çalışmak "hepsini atmak" ile eşdeğerdir ama bir sayının son iki rakamı." Alex ve Brenda'nın her biri A, a, B ve b'yi seçiyor. A ve B'yi gizli tutuyorlar. Alex, Brenda'ya modulo 100'ün değerini (yalnızca son iki rakam) söyler ve Brenda, Alex'e söyler. b modulo 100'ün değeri. Artık Eva (a,b) modulo 100'ü biliyor. Ama Alex (a,b,A)'yı biliyor, dolayısıyla o x=abA modulo 100'ü hesaplayabilir.Alex çalıştığımız için son rakam hariç hepsini kesiyor tekrar modulo 100 tamsayılarının altında. Benzer şekilde, Brenda da (a,b,B)'yi bildiğinden hesaplayabilmektedir. y=abB modulo 100. Alex artık x'i yayınlayabilir ve Brenda da y'yi yayınlayabilir. Ama şimdi Alex yA = abBA modulo 100'ü hesaplayabiliyor ve Brenda da xB'yi hesaplayabiliyor = abBA modulo 100. İkisi de aynı numarayı biliyor! Ama Eva'nın tek duyduğu şey (a,b,abA,abB). abA*B'yi hesaplamanın kolay bir yolu yok. Diffe-Hellman değişimi hakkında düşünmenin en kolay ve en az güvenli yolu bu. Daha güvenli versiyonlar mevcut. Ancak çoğu sürüm, tamsayı çarpanlarına ayırma ve ayrıklık nedeniyle çalışır. logaritmalar zordur ve bu sorunların her ikisi de kuantum bilgisayarlar tarafından kolaylıkla çözülebilir. Kuantuma dirençli versiyonların olup olmadığına bakacağım. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Burada listelenen "standart txn dizisi"nde, İMZALAR gibi birçok adım eksik. Burada olduğu gibi kabul ediliyorlar. Bu gerçekten kötü, çünkü içinde bulunduğumuz sıra imza maddeleri, imzalı mesajın içerdiği bilgiler vb... bunların hepsi son derece protokol için önemlidir. Uygulama sırasında adımlardan bir veya ikisinin yanlış, hatta biraz bozuk olması standart işlem sırası" tüm sistemin güvenliğini sorgulayabilir. Ayrıca, makalede daha sonra sunulan kanıtlar yeterince kesin olmayabilir. altında çalıştıkları çerçeve bu bölümde olduğu gibi gevşek bir şekilde tanımlanmıştır.
halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 14 Yazar(lar)ın baştan sona terminolojilerini düz tutmak konusunda berbat bir iş çıkardıklarını unutmayın. metin, ama özellikle bu sonraki kısımda. Bu makalenin bir sonraki enkarnasyonu mutlaka olacaktır. çok daha titiz. Metinde P'den tek kullanımlık genel anahtar olarak bahsediyorlar. Diyagramda R'ye şu şekilde atıfta bulunurlar: "Tx genel anahtarı" ve "Hedef anahtarı" olarak P. Eğer bunu yeniden yazacak olsaydım, Bu bölümleri tartışmadan önce bazı terminolojiyi çok spesifik olarak ortaya koyacağım. Bu cehennem çok büyük. 5. sayfaya bakın. Ell'i kim seçer? Diyagram, rastgele ve seçilen işlem genel anahtarı R = rG'yi göstermektedir. gönderen tarafından Tx çıkışının bir parçası değildir. Bunun nedeni birden fazla kişi için aynı olabilmesidir. birden fazla kişiye yapılan işlemlerdir ve harcamak için SONRA kullanılmaz. Yeni bir R üretilir her yeni CryptoNote işlemini yayınlamak istediğinizde. Ayrıca, R yalnızca kullanılır İşlemin alıcısı olup olmadığınızı kontrol etmek için. Bunlar önemsiz veriler değil, ancak herkes için önemsizdir (A,B) ile ilişkili özel anahtarlar olmadan. Hedef tuşu ise P = Hs(rA)G + B, Tx çıkışının bir parçasıdır. Herkes Her geçen işlemin verilerini inceleyerek kendi oluşturdukları P*'yi kontrol etmelidir. Bu geçen işlemin sahibi olup olmadıklarını görmek için bu P'yi kullanın. Harcanmamış işlem çıktısı olan herkes (UTXO) bu P'lerden bir demetini ortalıkta miktarlarla birlikte bulunduracak. Harcamak içind, onlar P'nin de dahil olduğu yeni bir mesaj imzalayın. Alice, bu işlemi, harcanmamış işlem çıktısı/çıktıları Hedef Anahtarı/Anahtarları ile ilişkili bir kerelik özel anahtar/anahtarlarla imzalamalıdır. Alice'in sahip olduğu her hedef anahtarı donanımlı olarak gelir (muhtemelen) Alice'e ait olan tek seferlik özel anahtarla. Alice her istediğinde hedef anahtarının içeriğini bana veya Bob'a veya Brenda'ya veya Charlie'ye veya Charlene'e gönder, o işlemi imzalamak için özel anahtarını kullanır. İşlemi aldıktan sonra yeni bir tane alacağım Tx genel anahtarı, yeni bir Hedef ortak anahtarı ve yeni bir kerelik özel anahtar x'i kurtarabileceğim. Tek kullanımlık özel anahtarım x'i yeni işlemin genel Hedefi ile birleştirme anahtar(lar) yeni bir işlemi nasıl gönderdiğimizdir
- Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8
-
Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 15 Harcanmamış bir işlem çıktısı burada nasıl görünüyor? Diyagram, işlem çıktısının yalnızca iki veri noktasından oluştuğunu göstermektedir: miktar ve hedef anahtar. Ama bu değil Yeterli çünkü bu "çıktıyı" harcamaya çalıştığımda hala R=rG'yi bilmem gerekecek. Unutmayın, r gönderen tarafından seçilir ve R a) gelen kriptonotları sizin şifreniz olarak tanımak için kullanılır. kendi ve b) kriptonotunuzu "talep etmek" için kullanılan tek seferlik özel anahtarı oluşturmak için kullanılır. Bu konuda anlamadığım kısım? Teorik olarak "tamam, elimizde bunlar var imzalar ve işlemler ve bunları programlama dünyasına ileri geri aktarıyoruz "peki özellikle hangi bilgiler bir kişiyi UTXO oluşturur?" Bu soruyu cevaplamanın en iyi yolu, tamamen yorumlanmamış kodun gövdesini incelemektir. Tebrikler bytecoin ekibi. Hatırlayın: bağlanabilirlik "aynı kişi mi gönderdi?" anlamına gelir. ve bağlantı kurulamazlık "aynısını yaptım" anlamına gelir kişi alıyor mu?" Dolayısıyla bir sistem bağlanabilir veya bağlanamaz, bağlanamaz veya bağlanamaz olabilir. Sinir bozucu, biliyorum. Nic van Saberhagen burada "...gelen ödemeler tek seferlik ödemelerle ilişkilidir" dediğinde İzleyici için bağlantı kurulamayan genel anahtarlar" derken ne demek istediğini görelim. İlk olarak, Alice'in Bob'a aynı yerden iki ayrı işlem gönderdiği bir durumu düşünün. adresi aynı adrese. Bitcoin evreninde Alice zaten hatayı yaptı aynı adresten gönderim yapılması nedeniyle sınırlı işlem isteğimiz başarısız oldu bağlanabilirlik. Üstelik parayı aynı adrese gönderdiği için isteğimizi boşa çıkardı bağlantı kurulamazlığı için. Bu bitcoin işlemi hem (tamamen) bağlanabilir hem de bağlantısı kaldırılamaz nitelikteydi. Öte yandan kriptonot evreninde Alice'in Bob'a bir kriptonot gönderdiğini varsayalım, Bob'un genel adresini kullanarak. Gizleyici ortak anahtarlar kümesi olarak bilinen tüm halka açık anahtarları seçiyor Washington DC metro bölgesindeki anahtarlar. Alex kendi anahtarını kullanarak tek seferlik bir genel anahtar üretiyor bilgiler ve Bob'un kamuya açık bilgileri. Parayı o gönderiyor ve herhangi bir gözlemci sadece "Washington DC metropol bölgesinden biri şu adrese 2,3 kriptonot gönderdi" tek seferlik genel adres XYZ123." Burada bağlanabilirlik üzerinde olasılıksal bir kontrolümüz var, dolayısıyla buna "neredeyse bağlantı kurulamaz" adını vereceğiz. Ayrıca paranın gönderildiği tek seferlik ortak anahtarları da görüyoruz. Alıcıdan şüphelensek bile Bob'du, onun özel anahtarlarına sahip değiliz ve bu nedenle geçen bir işlemin olup olmadığını test edemiyoruz bırakın kripto notunu kullanmak için tek seferlik özel anahtarını oluşturmayı bırakın Bob'a aittir. Yani bu aslında tamamen "bağlanamaz". Yani bu en güzel numaradır. Kim gerçekten başka bir MtGox'a güvenmek ister? Biz olabiliriz Bir miktar BTC'yi Coinbase'de depolamak rahattır, ancak bitcoin güvenliğinde son nokta fiziksel bir cüzdan. Bu da sakıncalı. Bu durumda, özel anahtarınızın yarısını, gizliliğinizi tehlikeye atmadan, güvenle verebilirsiniz. para harcamak için kendi yeteneği. Bunu yaparken yaptığınız tek şey birine bağlantısızlığın nasıl ortadan kaldırılacağını anlatmaktır. Diğeri CN'nin bir para birimi gibi davranan özellikleri korunur; çifte harcamaya karşı kanıt ve ne değil.
-
Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8
- Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 16 Evet, artık a) bir ödeme adresimiz ve b) bir ödeme kimliğimiz var. Bir eleştirmen şunu sorabilir: "Bunu gerçekten yapmamız gerekiyor mu? Sonuçta, bir tüccar 112.00678952 alırsa Tam olarak CN, benim siparişim de buydu ve elimde ekran görüntüsü ya da makbuz falan var, değil mi çılgın derecede kesinlik yeterli mi?" Cevap şu: "Belki de çoğu zaman, günlük yaşamda, yüz yüze işlemler." Ancak (özellikle dijital dünyada) daha yaygın olan durum şudur: Bir tüccar, her biri sabit bir fiyata sahip olan bir dizi nesne. A nesnesinin 0,001 CN, B nesnesinin 0,01 CN olduğunu ve C nesnesi 0,1 CN'dir. Şimdi, eğer satıcı 1.618 CN tutarında bir sipariş alırsa, çok sayıda sipariş var. Bir müşteri için sipariş ayarlamanın (birçok!) yolu. Ve bir tür ödeme kimliği olmadan, Bir müşterinin sözde "benzersiz" siparişini, müşterilerinin sözde "benzersiz" maliyetiyle tanımlamak düzen imkansız hale gelir. Daha da komik: çevrimiçi mağazamdaki her şeyin maliyeti tam olarak 1,0 ise CN ve benim günde 1000 müşterim mi oluyor? Ve tam olarak 3 nesne satın aldığınızı kanıtlamak istiyorsunuz iki hafta önce mi? Ödeme kimliği olmadan mı? İyi şanslar dostum. Uzun lafın kısası: Bob bir ödeme adresi yayınladığında, aynı zamanda bir ödeme adresi de yayınlayabilir. ödeme kimliği de (bkz. örneğin Poloniex XMR para yatırma işlemleri). Bu anlatılandan farklı Buradaki metinde ödeme kimliğini oluşturan kişinin Alice olduğu yer almaktadır. Bob'un da bir ödeme kimliği oluşturmasının bir yolu olmalı. (a,B) İzleme anahtarının (a,B) yayınlanabileceğini hatırlayın; 'a'nın değerinin gizliliğini kaybetmek harcama yeteneğinizi ihlal etmeyin veya başkalarının sizden çalmasına izin vermeyin (sanırım... bu Kanıtlanacak), insanların gelen tüm işlemleri görmesine izin verecek. Bu paragrafta açıklandığı gibi kısaltılmış bir adres, anahtarın "özel" kısmını alır. ve onu "genel" kısımdan üretir. 'a'nın değerinin ortaya çıkarılması, bağlanamazlığı ortadan kaldıracaktır ancak işlemlerin geri kalanını koruyacaktır. Yazar "bağlantı kurulamaz" demek istiyor çünkü bağlantı kurulamaz alıcıyı ve bağlantı kurulabilir olanı ifade ediyor göndereni ifade eder. Ayrıca yazarın bağlanabilirliğin iki farklı yönü olduğunu fark etmediği de açıktır. Sonuçta işlem bir grafik üzerinde yönlendirilmiş bir nesne olduğundan iki soru ortaya çıkacaktır: "Bu iki işlem aynı kişiye mi gidiyor?" ve "bu iki işlem geliyor mu? aynı kişiden mi?" Bu, CryptoNote'un bağlantı kurulamazlık özelliğinin geçerli olduğu bir "geri dönmeme" politikasıdır. şartlı. Yani Bob, gelen işlemlerinin bağlantısının kesilemez olmasını seçebilir bu politikayı kullanarak. Bu, Rastgele Oracle Modeli kapsamında kanıtladıkları bir iddiadır. Buna ulaşacağız; Rastgele Oracle'ın artıları ve eksileri var.
VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod ben, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 17 Belki bu aptalcadır, ancak S ve P_'leri birleştirirken dikkatli olunmalıdır. Eğer sadece şunu eklerseniz sona kadar olan son genel anahtar, herhangi biri geçen işlemleri kontrol ettiğinden bağlantı kurulamazlık bozuldu her işlemde ve patlamada listelenen son genel anahtarı kontrol edebilirsiniz. Bu genel anahtardır gönderenle ilişkilidir. Yani birleştirmeden sonra, bir sözde rasgele sayı üreteci oluşturulmalıdır. seçilen genel anahtarlara izin vermek için kullanılır. "...sahibi aynı anahtar çiftini kullanarak ikinci bir imza oluşturana kadar." Keşke yazar(lar?) bu konuyu detaylandıracaktı. Bunun şu anlama geldiğine inanıyorum: "Gizlenmek için bir dizi genel anahtar seçtiğinizde her zaman emin olun. Kendinize, iki anahtarın birbirine benzemediği tamamen yeni bir set seçersiniz." bağlantı kurulamaz duruma getirilecek oldukça güçlü bir durum. Belki "yeni bir rastgele set seçersiniz her ne kadar önemsiz olmayan kesişmeler kaçınılmaz olsa da, tüm olası anahtarlar" varsayımıyla olur, sık sık olmazlar. Her iki durumda da, bu ifadeyi daha derinlemesine incelemem gerekiyor. Bu, halka imzasını oluşturuyor. Sıfır bilgi kanıtları muhteşem: Bir sırrı bildiğinizi bana kanıtlamanız için size meydan okuyorum sırrını açıklamadan. Mesela çörek şeklinde bir mağaranın girişinde olduğumuzu varsayalım. ve mağaranın arka tarafında (girişin görülemeyeceği yerde) bir o vardır.hangi yöne giden kapı anahtarın sende olduğunu iddia et. Bir yöne gidersen her zaman geçmene izin verir, ama diğer yöne gidersen diğer yönde ise bir anahtara ihtiyacınız var. Ama bırakın anahtarı bana göstermek bile istemiyorsunuz bana kapıyı açtığını göster. Ama sen bana kapıyı nasıl açacağını bildiğini kanıtlamak istiyorsun. kapı. İnteraktif ortamda yazı tura atıyorum. Yazılar sola, yazılar sağa ve aşağıya iniyorsunuz madeni para sizi nereye yönlendirirse yönlendirsin, çörek şeklindeki mağara. Arkada, görüş alanımın ötesinde, sen diğer tarafa dönmek için kapıyı açın. Yazı-tura atma deneyini tekrarlıyoruz Anahtarın sende olduğundan emin olana kadar. Ancak bu açıkça ETKİLEŞİMLİ sıfır bilgi kanıtıdır. Sizin ve benim hiçbir zaman iletişim kurmak zorunda olmadığımız, etkileşimli olmayan versiyonlar da var; bu şekilde kulak misafiri olan kimse müdahale edemez. http://en.wikipedia.org/wiki/Zero-knowledge_proof Bu önceki tanımın tersidir.
VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 18 Tüm bu alan kriptonottan bağımsızdır, halka imza algoritmasını basitçe tanımlar. para birimlerine referans. Bazı notasyonların makalenin geri kalanıyla tutarlı olduğundan şüpheleniyorum. yine de. Örneğin x, GEN'de seçilen ve P genel anahtarını veren "rastgele" gizli anahtardır. ve genel anahtar görüntüsü I. X'in bu değeri Bob'un bölüm 6, sayfa 8'de hesapladığı değerdir. Önceki açıklamadaki bazı karışıklıkları gidermeye başlıyoruz. Bu çok hoş; "Alice'in genel adresinden Bob'un genel adresine para aktarılmıyor Adres." Tek kullanımlık adresten tek kullanımlık adrese aktarılıyor. Yani bir bakıma işler şu şekilde yürüyor. Eğer Alex'in bazı kriptonotları varsa çünkü birisi bunları ona gönderdiyse bu, bunları Bob'a göndermek için gereken özel anahtarlara sahip olduğu anlamına gelir. O kullanıyor yeni bir tek seferlik adres oluşturmak için Bob'un kamuya açık bilgilerini kullanan bir Diffe-Hellman alışverişi ve kriptonotlar bu adrese aktarılır. Şimdi, yeni tek seferlik adresi oluşturmak için (muhtemelen güvenli) bir DH değişimi kullanıldığı için Alex'in CN'sini gönderdiği yerde, mesajı tekrarlamak için gereken özel anahtarlara sahip olan tek kişi Bob'tur. yukarıda. Artık Bob Alex oldu. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Toplama i yerine j üzerinden indekslenmelidir. Her c_i rastgele önemsizdir (w_i rastgele olduğundan) c_i eşek hariçBu imzada yer alan gerçek anahtarla bağlantılıdır. c'nin değeri önceki bilgilerin hash'u. Bunun 'i' indeksini yeniden kullanmaktan daha kötü bir yazım hatası içerebileceğini düşünüyorum çünkü c_s görünüyor açıkça değil, örtülü olarak tanımlanmalıdır. Aslında bu denklemi güvenerek alırsak c_s = (1/2)c - (1/2) olduğunu tespit ederiz. toplam_i neq s c_i. Yani, bir hash eksi bir grup rastgele sayı. Öte yandan bu toplamın okunması amaçlanıyorsa "c_s = (c - sum_j neq s c_j) mod" l", sonra önceki bilgilerimizin hash değerini alırız, bir grup rastgele sayı üretiriz, tüm bu rastgele sayıları hash'den çıkarırız ve bu bize c_s'yi verir. Bu öyle görünüyor sezgilerime göre ne "olması gerektiği" ve sayfa 10'daki doğrulama adımıyla eşleştiği. Ancak sezgi matematik değildir. Bu konuyu daha derinlemesine inceleyeceğim. Daha önce olduğu gibi; gerçek olayla ilişkili olanlar dışında bunların tümü rastgele önemsiz olacaktır. imzalayanın genel anahtarı x. Bu seferki hariç, yapıdan beklediğim şey daha fazlası: r_i, i!=s için rastgeledir ve r_s, yalnızca gizli x ve s-indeksli değerleri tarafından belirlenir. q_i ve c_i.
VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 19 Bu noktada kafam çok karışık. Alex, imzayı (I,c_1, ..., c_n, r_1, ..., r_n) ve genel listeyi içeren bir M mesajı alır. S. tuşlarına basıyor ve VER'i çalıştırıyor. Bu L_i' ve R_i'yi hesaplayacaktır Bu, önceki sayfada c_s = c - sum_i neq s c_i olduğunu doğrular. İlk başta kafam çok karışıktı. Herkes L_i' ve R_i'yi hesaplayabilir. Aslında her r_i ve c_i imzada yayınlandı sigma I değeriyle birlikte. S = kümesi Tüm genel anahtarların P_i'si de yayınlandı. Yani sigmayı ve setini gören herkes S = P_i tuşları L_i' ve R_i' için aynı değerleri alacak ve dolayısıyla imzayı kontrol edecektir. Ancak daha sonra bu bölümün bir "kontrol" değil, yalnızca bir imza algoritmasını tanımladığını hatırladım. İmzalanmışsa, BANA GÖNDERİLİP GÖNDERİLMEDİĞİNİ kontrol et ve eğer öyleyse, git parayı harca." Bu KESİNLİKLE Oyunun imza kısmı. Sonunda oraya vardığımda Ek A'yı okumak isterim. Cryptonote'un Bitcoin ile tam ölçekli operasyon bazında karşılaştırmasını görmek istiyorum. Ayrıca elektrik/sürdürülebilirlik. Algoritmanın hangi parçaları burada "girdi" oluşturuyor? İşlem girişinin bir Tutar ve toplamı UTXOs kümesinden oluştuğuna inanıyorum. Tutar. Bu belirsiz. "Gizlenme hedefi mi?" Bunu birkaç dakikadır düşünüyorum ve hala bulamadım bunun ne anlama gelebileceğine dair en belirsiz fikir. Çift harcama saldırısı yalnızca bir düğümün algılanan kullanılmış anahtarı değiştirilerek gerçekleştirilebilir resimler \(I\) olarak ayarlandı. "Belirsizlik derecesi" = n ancak işleme dahil edilen genel anahtarların toplam sayısı n+1. Yani belirsizlik derecesi "başka kaç kişinin olmasını istiyorsunuz" olacaktır. kalabalık mı?" Cevap muhtemelen varsayılan olarak "mümkün olduğu kadar çok" olacaktır.
VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin düzeniyle karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 20 Bu ilginç; daha önce Bob adlı alıcının tüm GELENLERİ alabilmesi için bir yol sunmuştuk. özel anahtarlarının yarısını deterministik olarak seçerek veya özel anahtarlarının yarısını herkese açık olarak yayınlıyor. Bu geri dönüşü olmayan bir politikadır. Burada görüyoruz Gönderenin Alex'in tek bir giden işlemi bağlanabilir olarak seçmesinin bir yolu, ama aslında bu Alex'in tüm ağın göndericisi olduğunu ortaya koyuyor. Bu geri dönüşü olmayan bir politika DEĞİLDİR. Bu, işlem bazındadır. Üçüncü bir politika var mı? Alıcı Bob, Alex için benzersiz bir ödeme kimliği oluşturabilir mi? belki Diffe-Hellman değişimini kullanarak hiç değişmiyor? Birisi bu ödemeyi dahil ederse İşlemin bir yerinde Bob'un adresine gönderilen kimlik, Alex'ten gelmiş olmalı. Bu şekilde, Alex'in belirli bir bağlantıya bağlanmayı seçerek kendisini tüm ağa göstermesine gerek kalmaz. ancak yine de parasını gönderdiği kişiye kendisini tanıtabilir. Poloniex'in yaptığı da bu değil mi?
İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olsa da [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve diğerleri [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yönlendirdi fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olabilse de [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve arkadaşları [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yöneltti. fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 21 Görünüşte bunlar bizim UTXO'larımız: tutarlar ve hedef anahtarlarımız. Bu standart işlemi oluşturan ve Bob'a gönderen kişi Alex ise, o zaman Alex'in özel anahtarları da vardır bunların her birine. Bu diyagramı çok seviyorum çünkü daha önceki bazı sorulara yanıt veriyor. Bir Txn girişi oluşur bir dizi Txn çıkışı ve bir keresim. Daha sonra tümü dahil olmak üzere halka imzayla imzalanır. Alex'in anlaşmaya dahil edilen tüm yabancı işlemlere ait özel anahtarları. Txn çıktısı bir miktar ve bir hedef anahtarından oluşur. İşlemin alıcısı, harcamak için makalede daha önce açıklandığı gibi tek kullanımlık özel anahtarlarını istedikleri zaman oluşturabilirler. para. Bunun gerçek kodla ne kadar eşleştiğini öğrenmek çok keyifli olacak... Hayır, Nic van Saberhagen iş kanıtı algoritmasının bazı özelliklerini gevşek bir şekilde açıklıyor, aslında bu algoritmayı tanımlamadan. CryptoNight algoritmasının kendisi derin bir analiz GEREKTİRİR. Bunu okuyunca kekeledim. Yatırım en azından güçle birlikte doğrusal olarak mı büyümeli, yoksa yatırım en fazla güçle doğrusal olarak mı büyüyor? Ve sonra şunu fark ettim; Ben bir madenci veya yatırımcı olarak genellikle "ne kadar güç elde edebilirim" diye düşünürüm yatırım için mi?" "Sabit miktardaki güç için ne kadar yatırım gerekir?" değil. Elbette, yatırımı I ile, gücü ise P ile belirtin. Eğer I(P) gücün bir fonksiyonu olarak yatırım ise ve P(I) yatırımın bir fonksiyonu olarak güçtür, birbirlerinin tersi olacaktır (nerede olursa olsun) tersler mevcut olabilir). Ve eğer I(P), doğrusaldan daha hızlıysa, P(I) doğrusaldan daha yavaştır. Bu nedenle, yatırımcılar için daha düşük bir getiri oranı olacaktır. Yani yazarın burada söylediği şu: "Elbette, ne kadar çok yatırım yaparsanız, o kadar çok kazanırsınız. güç. Ancak bunu daha düşük bir getiri oranı meselesi haline getirmeye çalışmalıyız." CPU yatırımları eninde sonunda alt sınıra ulaşacak; soru, yazarların ASIC'leri de bunu yapmaya zorlayacak bir POW algoritması tasarladık. Varsayımsal bir "geleceğin para birimi" her zaman en yavaş/en sınırlı kaynaklarla mı madencilik yapmalı? Abadi ve arkadaşlarının (bazı Google ve Microsoft mühendislerinin yazar olduğu) makalesi şöyledir: esasen, son birkaç yıldır bellek boyutunun çok daha küçük olduğu gerçeğini kullanarak makineler arasında işlemci hızından daha fazla farklılık vardır ve doğrusaldan daha fazla bir yatırım-güç oranına sahiptir. Birkaç yıl içinde bunun yeniden değerlendirilmesi gerekebilir! Herşey bir silahlanma yarışı... Bir hash işlevinin oluşturulması zordur; bu kısıtlamaları karşılayan bir hash işlevi oluşturmak daha zor görünüyor. Bu yazıda gerçekle ilgili hiçbir açıklama yok gibi görünüyor hashing algoritması CryptoNight. Bunun SHA-3'ün hafıza açısından zor bir uygulaması olduğunu düşünüyorum. forum gönderilerinde ama hiçbir fikrim yok... ve mesele de bu. Açıklanması gerekir.
en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme ve proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüşüm probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerinin kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), burada N sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme, proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüştürme probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerine izin verir kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), buradaN sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 22 Boşver, bu bir şifreli para mı? Algoritma nerede? Gördüğüm tek şey bir reklam. Burası, eğer PoW algoritması değerliyse, Cryptonote'un gerçekten parlayacağı yerdir. değil gerçekten SHA-256, gerçekten şifreli değil. Yenidir, belleğe bağlıdır ve yinelenmez.
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 23 Atomik birimler. Bunu sevdim. Bu Satoshi'nin eşdeğeri mi? Eğer öyleyse, bu 185 milyar kriptonot olacağı anlamına geliyor. Bunun eninde sonunda birkaç sayfada düzeltilmesi gerektiğini biliyorum, yoksa bir yazım hatası mı var? Temel ödül "kalan tüm paralar" ise tüm paraları almak için yalnızca bir blok yeterlidir. Instamine. Öte yandan, eğer bunun bir şekilde orantılı olması gerekiyorsa, şimdi ile madeni para üretim-sonlandırma-tarihi arasında zaman farkı var mı? bu olurdu mantıklı. Ayrıca benim dünyamda bunun gibi iki büyüktür işareti "çok daha büyük" anlamına gelir. Yazar mı muhtemelen başka bir şey mi kastediyorsun? Eğer zorluğa uyum her blokta gerçekleşirse, saldırganın çok büyük bir çiftliği olabilir. makineler dikkatle seçilmiş zaman aralıklarında madencilik yapar ve kapatır. Zorluk ayarlama formülleri uygun şekilde sönümlenmezse, bu durum zorlukta kaotik bir patlamaya (veya sıfıra çarpmaya) neden olabilir. Bitcoin'nin yönteminin hızlı yeniden hesaplamalar için uygun olmadığına şüphe yok, ancak eylemsizlik fikri bu sistemlerde olduğu gibi kabul edilmesi değil, kanıtlanması gerekir. Ayrıca salınımlar görünürde dalgalanmalara neden olmadığı sürece ağ zorluğu mutlaka bir sorun değildir. madeni para arzı - ve çok hızlı değişen bir zorluğa sahip olmak "aşırı düzeltmeye" neden olabilir. Özellikle birkaç dakika gibi kısa bir zaman diliminde harcanan zaman, "toplam" ile orantılı olacaktır. ağda oluşturulan blok sayısı." Orantılılık sabitinin kendisi büyüyecek zamanla, eğer CN başlarsa muhtemelen katlanarak. "Oluşturulan toplam blokları" korumak için zorluğu basitçe ayarlamak daha iyi bir fikir olabilir. Son bloğun ana zincire eklenmesinden bu yana ağ" sabit bir değer dahilinde veya sınırlı varyasyon veya buna benzer bir şey. Hesaplamalı uyarlanabilir bir algoritma ise uygulanması kolay belirlenebilirse, bu sorunu çözüyor gibi görünmektedir. Ancak bu yöntemi kullanırsak, büyük bir madencilik çiftliği olan birisi çiftliğini kapatabilir. birkaç saatliğine açın ve tekrar açın. İlk birkaç blokta o çiftlik banka. Yani aslında bu yöntem ilginç bir noktayı gündeme getiriyor: madencilik (ortalama olarak) bir Özellikle daha fazla insan ağa bağlandıkça yatırım getirisi olmadan oyunu kaybetmek. Madencilik zorluğu varsa ağ çok yakından takip ediliyor hashoranı, insanların bu kadar madencilik yapacağından bir şekilde şüpheliyim şu anda yapıyorum. Veya diğer taraftan madencilik çiftliklerini 7/24 çalışır durumda tutmak yerine, onları çevirebilirler. 6 saat açık, 2 saat kapalı, 6 saat açık, 2 saat kapalı veya bunun gibi bir şey. Sadece başka bir paraya geçin birkaç saat boyunca zorluğun düşmesini bekleyin, sonra birkaç ekstra kazanmak için tekrar atlayın ağ uyum sağladıkça karlılık blokları. Ve biliyor musun? Bu aslında muhtemelen Aklıma koyduğum en iyi madencilik senaryolarından biri... Bu döngüsel olabilir, ancak blok oluşturma süresi ortalama yaklaşık bir dakika ise, bunu yapabilir miyiz? "harcanan zaman" için blok sayısını temsili olarak mı kullanacaksınız?
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy kullanma hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 24 Tamam, elimizde bir blockchain var ve her blokta yalnızca zaman damgaları var EK OLARAK sipariş edildi. Bu açıkça ayarlamayı zorlaştırmak için eklenmiştir, çünkü zaman damgaları Bahsedildiği gibi çok güvenilmez. Zincirde çelişen zaman damgalarına sahip olmamıza izin veriliyor mu? Zincirde A Blok B Bloktan önce geliyorsa ve finansal açıdan her şey tutarlıysa, ancak A Blok, B Bloktan sonra oluşturulmuş gibi görünüyor? Çünkü belki birisinin sahibi ağın büyük bir kısmı? Tamam mı? Muhtemelen mali durum iyi olmadığı için. Tamam, bu keyfi "blokların yalnızca %80'i ana blockchain için meşru" olmasından nefret ediyorum yaklaşım. Yalancıların zaman damgalarını değiştirmesini engellemek için mi tasarlanmıştı? Ama şimdi ekliyor herkesin zaman damgaları hakkında yalan söylemesi ve sadece ortalamayı seçmesi için teşvik. Lütfen tanımlayın. Anlamı "Bu blok için yalnızca daha yüksek ücretler içeren işlemleri dahil edin" %p'den fazla, tercihen %2p'den yüksek ücretlerle" veya buna benzer bir şey mi? Sahte derken neyi kastediyorlar? İşlemin geçmiş geçmişiyle tutarlı olması durumunda blockchain ve işlem madencileri tatmin edecek ücretler içeriyor, bu yeterli değil mi? Peki, hayır, mutlaka değil. Maksimum blok boyutu yoksa, kötü niyetli bir kullanıcıyı tutacak hiçbir şey yoktur. Yavaşlamak için devasa bir işlem bloğunu tek seferde kendisine yüklemekten ağ. Maksimum blok boyutuna yönelik temel bir kural, insanların çok büyük miktarda çöp koymasını engeller işleri yavaşlatmak için blockchain üzerindeki verilerin hepsini aynı anda. Ancak böyle bir kuralın mutlaka Adaptif olun - örneğin Noel sezonunda trafiğin artmasını bekleyebiliriz ve blok boyutu çok büyüyecek ve hemen ardından blok boyutu düşecek tekrar. Yani ya a) bir çeşit uyarlanabilir üst sınıra ya da b) yeterince büyük bir üst sınıra ihtiyacımız var ki böylece %99'u makul Noel zirveleri sınırı aşmaz. Tabiki ikincisini yapmak imkansız tahmin - bir para biriminin tutunup tutunamayacağını kim bilebilir? Uyarlanabilir hale getirmek ve endişelenmemek daha iyi bu konuda. Ama sonra bir kontrol teorisi problemimiz var: bunu nasıl uyarlanabilir hale getireceğiz? saldırıya karşı savunmasızlık mı yoksa vahşi ve çılgın salınımlar mı? Uyarlanabilir bir yöntemin kötü niyetli kullanıcıların küçük miktarlar biriktirmesini engellemediğine dikkat edin blockchain üzerinde zamanla gereksiz verilerin birikmesi uzun vadeli şişkinliğe neden olur. Bu farklı bir konu tamamen ve kripto paraların ciddi sorunları olduğu bir durum.
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 25 Bir birim zaman N blok olacak şekilde zamanı yeniden ölçeklendirdiğimizde, ortalama blok boyutu yine de teorik olarak 2ˆt ile orantılı olarak üstel olarak büyüyebilir. Öte yandan, daha genel bir sınır sonraki blokta bazı f fonksiyonları için M_nf(M_n) olacaktır. f'nin hangi özellikleri Blok boyutunun bir miktar "makul büyümesini" garanti etmek için mi seçiyoruz? ilerlemesi blok boyutları (yeniden ölçeklendirme süresinden sonra) şöyle olur: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... Buradaki amaç, f dizisini doğrusal olarak daha hızlı büyümeyecek şekilde seçmektir: veya belki Log(t) olarak bile. Elbette, eğer bir a sabiti için f(M_n) = a ise, bu dizi şu şekildedir: aslında M_n aM_n aˆ2M_n aˆ3M_n ... Ve elbette, bunu en fazla doğrusal büyümeyle sınırlamanın tek yolu a=1'i seçmektir. Bu elbette mümkün değildir. Hiçbir şekilde büyümeye izin vermiyor. Öte yandan f(M_n) sabit olmayan bir fonksiyon ise durum çok daha karmaşıktır. karmaşıktır ve zarif bir çözüme izin verebilir. Bir süre bunun üzerinde düşüneceğim. Bu ücretin bir sonraki bölümdeki aşırı boyut cezasını indirecek kadar büyük olması gerekecektir. Genel bir kullanıcının neden erkek olduğu varsayılıyor? Ha?
blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci genel anahtar Pi için geçerli bir imza olup olmadığını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve ana anahtarın Φ ='ye karşılık geldiği senaryo maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'da kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım, Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'daki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci Pi ortak anahtarının geçerli bir imzasını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve senaryoio burada ana anahtar şuna karşılık gelir: Φ = maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'de kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'deki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 26 Eğer zaman içinde blok boyutunu sınırlamanın bir yolunu bulabilirsek bu gereksiz olabilir... Bu da doğru olamaz. "NewReward"ı yukarıya bakan bir parabole yerleştirdiler. blok boyutu bağımsız değişkendir. Böylece yeni ödül sonsuza kadar patlar. Diğer taraftan ise elde, yeni ödül Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)) olur, ardından yeni ödül tepe noktası blok boyutunda = Mn olan ve kesişme noktaları olan aşağıya doğru bakan bir parabol olacaktır. Blokboyutu = 0 ve Blokboyutu = 2Mn. Ve tanımlamaya çalıştıkları şey de bu gibi görünüyor. Ancak bu durum
Анализ
5
Не то чтобы это имело большое значение, когда миллиард человек в мире живут менее чем на доллар в год.
и у меня нет никакой надежды когда-либо участвовать в какой-либо горнодобывающей сети... кроме экономической
мир, управляемый валютной системой p2p с принципом «один процессор – один голос», по-видимому, был бы более
справедливее, чем система, основанная на частичном банковском резервировании.
Но протокол Cryptonote по-прежнему требует 51% честных пользователей... см., например, Cryptonote
форумы, где один из разработчиков, Плишков, говорит, что традиционная атака 51% с заменой данных на blockchain все еще может работать. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
Обратите внимание: на самом деле вам не нужен 51% честных пользователей. Вам просто очень не нужно «ни одного нечестного
фракция, владеющая более чем 51% hash мощи сети."
Давайте назовем эту так называемую проблему Биткойна «адаптивной жесткостью». Решение Cryptonote для адаптивного
жесткость – это адаптивная гибкость значений параметров протокола. Если вам нужны блоки большего размера,
нет проблем, сеть все это время будет плавно настраиваться.
То есть,
способ, которым Bitcoin регулирует сложность с течением времени, можно воспроизвести во всем нашем протоколе.
параметры, чтобы не требовалось достижение сетевого консенсуса для обновления протокола.
На первый взгляд это кажется хорошей идеей, но без тщательного обдумывания это саморегулирующаяся идея.
система может стать совершенно непредсказуемой и хаотичной. Мы рассмотрим это подробнее позже, поскольку
возможности возникают. «Хорошие» системы находятся где-то между адаптивно-жесткими и адаптивно-гибкими.
гибки, и, возможно, даже сама жесткость адаптивна.
Если бы у нас действительно был принцип «один процессор — один голос», то совместная работа и разработка пулов позволили бы достичь 51 %.
было бы сложнее. Мы ожидаем, что каждый процессор в мире будет заниматься майнингом с телефонов.
к встроенному процессору вашей Tesla во время зарядки.
http://en.wikipedia.org/wiki/Pareto_principle
Я утверждаю, что равновесие Парето в некоторой степени неизбежно. Либо 20% системы
владеть 80% процессоров, или 20% системы будет владеть 80% ASIC. Я предполагаю это, потому что основное распределение богатства в обществе уже демонстрирует распределение Парето:
и по мере того, как присоединяются новые майнеры, они выбираются из этого базового распределения.
Тем не менее, я утверждаю, что протоколы с принципом «один процессор — один голос» принесут окупаемость инвестиций в аппаратное обеспечение.
Блокировать
вознаграждение за узел будет более точно пропорционально количеству узлов в сети, поскольку
распределение производительности по узлам будет гораздо более плотным. Bitcoin, с другой
стороны, видит вознаграждение за блок (за узел), более пропорциональное вычислительной мощности этого узла.
узел. То есть в горнодобывающей отрасли все еще участвуют только «большие мальчики». С другой стороны,
хотя принцип Парето по-прежнему будет действовать, в мире «один процессор — один голос» каждый
участвует в сетевой безопасности и получает небольшой доход от майнинга.
В мире ASIC нецелесообразно привязывать к себе каждый XBox и мобильный телефон.
В мире «один процессор — один голос» это очень разумно с точки зрения вознаграждения за майнинг. Как приятное последствие,
набрать 51% голосов труднее, когда голосов становится все больше и больше, что дает прекрасный
польза для сетевой безопасности..оборудование, описанное ранее. Предположим, что глобальная скорость hash значительно снижается, даже для
мгновение, теперь он может использовать свою мощность майнинга, чтобы разветвить цепочку и удвоить расходы. Как мы увидим
далее в этой статье вполне вероятно, что ранее описанное событие имело место.
2.3
Нерегулярная эмиссия
Bitcoin имеет заранее определенную скорость эмиссии: каждый решенный блок производит фиксированное количество монет.
Примерно каждые четыре года эта награда уменьшается вдвое. Первоначальное намерение состояло в том, чтобы создать
ограниченное плавное излучение с экспоненциальным затуханием, но по факту мы имеем кусочно-линейное излучение
функция, точки останова которой могут вызвать проблемы в инфраструктуре Bitcoin.
Когда происходит точка останова, майнеры начинают получать только половину стоимости своих предыдущих
награда. Абсолютная разница между 12,5 и 6,25 BTC (прогноз на 2020 год) может
кажутся терпимыми. Однако при рассмотрении падения BTC с 50 до 25, произошедшего в ноябре
28 2012 года, посчитали его неприемлемым для значительного числа членов горнодобывающего сообщества. Рисунок
1 показано резкое снижение скорости hash сети в конце ноября, как раз тогда, когда
произошло халвинг. Это событие могло стать идеальным моментом для злонамеренного человека.
описано в разделе функции proof-of-work для проведения атаки двойных расходов [36].
Рис. 1. График курса Bitcoin hash
(источник: http://bitcoin.sipa.be)
2.4
Жестко запрограммированные константы
Bitcoin имеет множество жестко запрограммированных ограничений, некоторые из которых являются естественными элементами исходного дизайна (например,
частота блоков, максимальная сумма денежной массы, количество подтверждений), тогда как другие
кажутся искусственными ограничениями. Дело не столько в ограничениях, сколько в невозможности быстро меняться.
3
оборудование, описанное ранее. Предположим, что глобальная скорость hash значительно снижается, даже для
мгновение, теперь он может использовать свою мощность майнинга, чтобы разветвить цепочку и удвоить расходы. Как мы увидим
далее в этой статье вполне вероятно, что ранее описанное событие имело место.
2.3
Нерегулярная эмиссия
Bitcoin имеет заранее определенную скорость эмиссии: каждый решенный блок производит фиксированное количество монет.
Примерно каждые четыре года эта награда уменьшается вдвое. Первоначальное намерение состояло в том, чтобы создать
ограниченное плавное излучение с экспоненциальным затуханием, но по факту мы имеем кусочно-линейное излучение
функция, точки останова которой могут вызвать проблемы в инфраструктуре Bitcoin.
Когда происходит точка останова, майнеры начинают получать только половину стоимости своих предыдущих
награда. Абсолютная разница между 12,5 и 6,25 BTC (прогноз на 2020 год) может
кажутся терпимыми. Однако при рассмотрении падения BTC с 50 до 25, произошедшего в ноябре
28 2012 года, посчитали его неприемлемым для значительного числа членов горнодобывающего сообщества. Рисунок
1 показано резкое снижение скорости hash сети в конце ноября, как раз тогда, когда
произошло халвинг. Это событие могло стать идеальным моментом для злонамеренного человека.
описано в разделе функции proof-of-work для проведения атаки двойных расходов [36].
Рис. 1. График курса Bitcoin hash
(источник: http://bitcoin.sipa.be)
2.4
Жестко запрограммированные константы
Bitcoin имеет множество жестко запрограммированных ограничений, некоторые из которых являются естественными элементами исходного дизайна (например,
частота блоков, максимальная сумма денежной массы, количество подтверждений), тогда как другие
кажутся искусственными ограничениями. Дело не столько в ограничениях, сколько в невозможности быстро меняться.
3
6
Давайте назовем это тем, чем оно является, атакой зомби.
Давайте обсудим, каким может быть непрерывное излучение.
Это связано с принципом «один процессор — один голос» в сценарии атаки зомби.
В мире «один процессор – один голос» каждый сотовый телефон и каждый автомобиль, когда бы они ни находились в режиме ожидания, будут заниматься майнингом. Собрать кучу дешевого оборудования для создания майнинг-фермы было бы очень-очень легко, потому что всего лишь
почти во всем есть процессор. С другой стороны, в этот момент количество процессоров
Я думаю, что необходимое для запуска атаки 51% было бы весьма удивительным.
Кроме того,
именно поскольку было бы легко собрать дешевое оборудование, мы можем разумно ожидать
многие люди начинают копить что-нибудь с процессором. Гонка вооружений в мире «один процессор – один голос»
обязательно более эгалитарен, чем в мире ASIC.
Следовательно, разрыв в сети
безопасность из-за уровня выбросов должна быть МЕНЬШЕЙ проблемой в мире «один процессор – один голос».
Однако остаются два факта: 1) скачок в скорости выбросов может привести к эффекту заикания в
и в экономике, и в сетевой безопасности, что плохо, и 2) хоть и атака 51%
выполненный кем-то, кто собирает дешевое оборудование, все еще может происходить в однопроцессорном процессоре-голосуйте за мир,
кажется, должно быть сложнее.
Предположительно, защита от этого состоит в том, что все нечестные актеры будут пытаться это сделать.
одновременно, и мы возвращаемся к предыдущему понятию безопасности Bitcoin: «мы не требуем нечестных действий».
фракция будет контролировать более 51% сети».
Автор утверждает здесь, что одна из проблем с биткойнами заключается в том, что
может привести к внезапному снижению участия в сети и, следовательно, к снижению безопасности сети. Таким образом,
Предпочтительна непрерывная, дифференцируемая и плавная скорость эмиссии монет.
Автор не ошибается, это факт. Любое внезапное снижение участия в сети может
привести к такой проблеме, и если мы можем устранить один из ее источников, мы должны это сделать. Сказав это, это
возможно, что длительные периоды «относительно постоянной» эмиссии монет, перемежающиеся внезапными изменениями
Это идеальный путь с экономической точки зрения. Я не экономист. Так что, возможно, мы
должны решить, собираемся ли мы обменивать сетевую безопасность на что-то экономическое — что здесь?
http://arxiv.org/abs/1402.2009их при необходимости, что вызывает основные недостатки. К сожалению, трудно предсказать, когда
константы, возможно, придется изменить, а их замена может привести к ужасным последствиям.
Хорошим примером жестко запрограммированного изменения лимита, приводящего к катастрофическим последствиям, является блок
ограничение размера установлено на 250 КБ1. Этого лимита было достаточно для проведения около 10 000 стандартных транзакций. В
В начале 2013 года этот предел был почти достигнут, и было достигнуто соглашение об увеличении
предел. Изменение было реализовано в версии кошелька 0.8 и закончилось разделением цепочки на 24 блока.
и успешная атака двойной траты [9]. Хотя ошибка была не в протоколе Bitcoin, а
скорее, в ядре базы данных его можно было бы легко обнаружить с помощью простого стресс-теста, если бы было
отсутствие искусственно введенного ограничения размера блока.
Константы также действуют как форма точки централизации.
Несмотря на одноранговый характер
Bitcoin, подавляющее большинство узлов используют официальный эталонный клиент [10], разработанный
небольшая группа людей. Эта группа принимает решение о внесении изменений в протокол.
и большинство людей принимают эти изменения независимо от их «правильности». Некоторые решения вызвали
бурные дискуссии и даже призывы к бойкоту [11], что свидетельствует о том, что сообщество и
разработчики могут расходиться во мнениях по некоторым важным моментам. Поэтому кажется логичным иметь протокол
с настраиваемыми пользователем и самонастраивающимися переменными как возможный способ избежать этих проблем.
2,5
Громоздкие скрипты
Система сценариев в Bitcoin — сложная и тяжелая функция. Потенциально это позволяет создавать
сложные транзакции [12], но некоторые из его функций отключены из соображений безопасности и
некоторые даже никогда не использовались [13]. Скрипт (включая часть отправителя и получателя)
для самой популярной транзакции в Bitcoin выглядит так:

Analiz

5
Dünyada bir milyar insanın günde bir dolardan daha az bir parayla yaşaması pek de önemli değil.
ve herhangi bir madencilik ağına katılma konusunda hiçbir umudum yok... ama ekonomik bir
Bir işlemci-bir oy ilkesine dayalı bir p2p para sistemi tarafından yönlendirilen dünya, muhtemelen daha fazla olacaktır.
Kısmi rezerv bankacılığının yönlendirdiği bir sistemden daha adil.
Ancak Cryptonote'un protokolü hala %51 dürüst kullanıcı gerektiriyor... örneğin Cryptonote'a bakın
Geliştiricilerden biri olan Pliskov'un, geleneksel veriyi değiştirmeblockchain %51 saldırısının hala işe yarayabileceğini söylediği forumlarda. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
Gerçekten %51 dürüst kullanıcıya ihtiyacınız olmadığını unutmayın. Gerçekten ihtiyacın olan tek bir sahtekârın olmaması
ağın hashing gücünün %51'inden fazlasına sahip olan grup."
Bitcoin'in bu sözde sorununa "adaptif katılık" adını verelim. Cryptonote'un uyarlanabilirlik çözümü
katılık, protokol parametre değerlerinde uyarlanabilir esnekliktir. Daha büyük blok boyutlarına ihtiyacınız varsa,
sorun değil, ağ sürekli olarak yavaş yavaş ayarlanıyor olacaktır.
Yani,
Bitcoin'in zaman içinde zorluğu ayarlama şekli tüm protokolümüzde kopyalanabilir
Böylece protokolün güncellenmesi için ağ konsensusunun elde edilmesine gerek kalmaz.
Görünüşte bu iyi bir fikir gibi görünüyor, ancak dikkatli bir öngörü olmadan, kendi kendini ayarlayan bir
sistem oldukça öngörülemez ve kaotik hale gelebilir. Bu konuyu daha sonra detaylı olarak inceleyeceğiz
fırsatlar ortaya çıkıyor. "İyi" sistemler uyarlanabilir katı ve uyarlanabilir arasında bir yerdedir
esnektir ve belki de katılığın kendisi bile uyarlanabilirdir.
Eğer gerçekten "bir CPU-bir oy"a sahip olsaydık, %51'e ulaşmak için işbirliği yapıp havuzlar geliştirebilirdik
daha zor olurdu. Dünyadaki her CPU'nun telefonlardan madencilik yapmasını beklerdik
Tesla'nız şarj olurken yerleşik CPU'ya.
http://en.wikipedia.org/wiki/Pareto_principle
Pareto dengesinin bir şekilde kaçınılmaz olduğunu iddia ediyorum. Sistemin %20'si
CPU'ların %80'ine sahip olacak veya sistemin %20'si ASIC'lerin %80'ine sahip olacak. Bunu varsayıyorum çünkü toplumdaki temel zenginlik dağılımı zaten Pareto dağılımını gösteriyor,
ve yeni madenciler katıldıkça bu temel dağılımdan yararlanıyorlar.
Ancak, bir işlemci-bir oy ilkesine dayalı protokollerin donanım üzerinde yatırım getirisi göreceğini savunuyorum.
Blok
Düğüm başına ödül, ağdaki düğüm sayısıyla daha yakından orantılı olacaktır çünkü
Performansın düğümler arasındaki dağılımı çok daha sıkı olacaktır. Bitcoin, diğer tarafta
bir blok ödülünün (düğüm başına) hesaplama kapasitesiyle daha orantılı olduğunu düşünüyor
düğüm. Yani madencilik oyununda hâlâ yalnızca "büyük adamlar" var. Öte yandan,
Pareto ilkesi hâlâ yürürlükte olsa da, bir işlemcinin bir oy olduğu bir dünyada herkes
ağ güvenliğine katılır ve bir miktar madencilik geliri elde eder.
ASIC dünyasında, her XBox'u ve cep telefonunu madencilik için donatmak mantıklı değil.
Tek işlemcili bir oy dünyasında, madencilik ödülü açısından bu çok mantıklı. Keyifli bir sonuç olarak,
Oyların sayısı arttıkça %51 oy almak daha zor oluyor ve bu da güzel bir sonuç sağlıyor.
ağ güvenliğine fayda sağlar..Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım.
Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi
Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir.
2.3
Düzensiz emisyon
Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir.
Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı
üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz
kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev.
Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar.
ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark,
tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken
28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil
Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor;
yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi.
proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır.
Şekil 1. Bitcoin hashoran tablosu
(kaynak: http://bitcoin.sipa.be)
2.4
Sabit kodlanmış sabitler
Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör.
blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer
yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil
3
Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım.
Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi
Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir.
2.3
Düzensiz emisyon
Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir.
Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı
üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz
kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev.
Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar.
ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark,
tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken
28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil
Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor;
yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi.
proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır.
Şekil 1. Bitcoin hashoran tablosu
(kaynak: http://bitcoin.sipa.be)
2.4
Sabit kodlanmış sabitler
Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör.
blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer
yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil
3
6
Buna bir zombi saldırısı diyelim.
Sürekli emisyonun nasıl olabileceğini tartışalım
zombi saldırısı senaryosunda bir işlemci bir oy ile ilgili.
Tek işlemcinin tek oy olduğu bir dünyada, her cep telefonu ve araba boşta kaldığında madencilik yapıyor olurdu. Bir madencilik çiftliği oluşturmak için yığınla ucuz donanım toplamak çok çok kolay olurdu çünkü
neredeyse her şeyin içinde bir CPU vardır. Öte yandan, bu noktada CPU sayısı
% 51'lik bir saldırı başlatmak için gerekli olanın oldukça şaşırtıcı olacağını düşünüyorum.
Ayrıca,
kesinlikle çünkü ucuz donanım toplamak kolay olacaktır, makul bir şekilde
Pek çok insan CPU ile her şeyi istiflemeye başlıyor. Tek işlemcinin tek oy olduğu bir dünyada silahlanma yarışı
ASIC dünyasına göre mutlaka daha eşitlikçidir.
Bu nedenle ağda bir süreksizlik
Emisyon oranlarından kaynaklanan güvenlik, tek işlemcinin bir oy olduğu bir dünyada DAHA AZ sorun olmalıdır.
Ancak geriye iki gerçek kalıyor: 1) Emisyon oranındaki süreksizlik, emisyon oranında kekemelik etkisine yol açabilir.
hem ekonomi hem de ağ güvenliği açısından kötü, ve 2) %51'lik bir saldırı olmasına rağmen
Ucuz donanım toplayan biri tarafından gerçekleştirilen tek işlemcili bir bilgisayarda da gerçekleşebilir-oy ver dünya,
sanki daha zor olmalı.
Muhtemelen buna karşı önlem, tüm sahtekâr aktörlerin bunu deneyecek olmasıdır
eşzamanlı olarak Bitcoin'nin önceki güvenlik kavramına geri dönüyoruz: "dürüst olmayanlara ihtiyacımız yok
ağın %51'inden fazlasını kontrol eden grup."
Yazar burada bitcoin ile ilgili bir problemin madeni para emisyonundaki süreksizlik olduğunu iddia ediyor
oranı, ağ katılımında ve dolayısıyla ağ güvenliğinde ani düşüşlere neden olabilir. Böylece,
sürekli, farklılaştırılabilir, düzgün bir madeni para emisyon oranı tercih edilir.
Yazar mutlaka hatalı değil. Ağ katılımındaki herhangi bir ani düşüş,
böyle bir soruna yol açıyor ve eğer bunun bir kaynağını ortadan kaldırabiliyorsak bunu kaldırmalıyız. Bunu söyledikten sonra,
Uzun süreli "nispeten sabit" madeni para emisyonunun ani değişikliklerle kesintiye uğraması mümkün
ekonomik açıdan gidilecek ideal yoldur. Ben bir ekonomist değilim. Yani belki biz
Ağ güvenliğini ekonomik bir şeyle takas edip etmeyeceğimize karar vermemiz gerekiyor; burada ne var?
http://arxiv.org/abs/1402.2009Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor.
sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir.
Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur.
boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde
2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı.
Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi
ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da
bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi.
yapay olarak getirilmiş blok boyutu sınırı yoktur.
Sabitler ayrıca bir tür merkezileştirme noktası görevi görür.
Eşler arası doğasına rağmen
Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor
küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir
ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu
hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve
geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor
Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır.
2.5
Hacimli komut dosyaları
Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir
karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve
bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil)
Bitcoin'daki en popüler işlem için şuna benzer: