Область техники, к которой относится изобретение
[01] Данное раскрытие сущности, в общем, относится к компьютерным технологиям и, в частности, к системам и способам для защиты информации.
Уровень техники
[02] Конфиденциальность является важной для связи и переводов данных между различными пользователями. Например, информация относительно отправляющей стороны, приемной стороны и суммы транзакции между сторонами является важной частью защиты конфиденциальности. Без защиты, пользователи подвержены риску кражи личных сведений, несанкционированного перевода или других возможных потерь. Риск становится еще больше, когда связь и переводы реализуются онлайн, вследствие свободного доступа онлайновой информации.
Сущность изобретения
[03] Различные варианты осуществления настоящего раскрытия сущности могут включать в себя системы, способы и долговременные машиночитаемые носители для защиты информации.
[04] Согласно одному аспекту, машинореализуемый способ защиты информации содержит: получение множества зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций; формирование доказательства по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков (блокчейн) для узлов, чтобы верифицировать транзакции.
[05] В некоторых вариантах осуществления, шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций, посредством сокрытия того, является ли каждая из сумм транзакций входящей или исходящей для этого одного счета.
[06] В некоторых вариантах осуществления, перед формированием доказательства по сумме, способ дополнительно содержит: получение множества доказательств по диапазону, соответственно, для счетов, предусмотренных в транзакциях, причем доказательства по диапазону, по меньшей мере, указывают то, что каждый из счетов, который отправляет суммы транзакций, имеет достаточный актив.
[07] В некоторых вариантах осуществления, перед передачей зашифрованных сумм транзакций и доказательства по сумме в один или более узлов, способ дополнительно содержит: получение множества подписей, соответственно, из счетов. Передача зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции, содержит передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей.
[08] В некоторых вариантах осуществления, передача зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей содержит: передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков; и предписание узлам: проверять достоверность зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей, выполнять транзакции в ответ на успешную верификацию транзакций и добавлять транзакции в новый блок данных цепочки блоков, поддерживаемой посредством сети цепочек блоков.
[09] В некоторых вариантах осуществления, предписание узлам выполнять транзакции в ответ на успешную верификацию транзакций содержит: предписание узлам вычитать зашифрованные суммы транзакций, соответственно, из зашифрованного баланса счетов для счетов в ответ на успешную верификацию транзакций.
[010] В некоторых вариантах осуществления, шифрование каждой из сумм транзакций содержит гомоморфное шифрование.
[011] В некоторых вариантах осуществления, шифрование каждой из сумм транзакций содержит схему обязательств Педерсена.
[012] Согласно другому аспекту, система защиты информации содержит один или более процессоров и одно или более долговременных машиночитаемых запоминающих устройств, соединенных с одним или более процессоров и приспособленных с помощью инструкций, выполняемых посредством одного или более процессоров, предписывать системе выполнять операции, содержащие: получение множества зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций; формирование доказательства по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции.
[013] Согласно другому аспекту, долговременный машиночитаемый носитель хранения данных приспособлен с помощью инструкций, выполняемых посредством одного или более процессоров, предписывать одному или более процессоров выполнять операции, содержащие: получение множества зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций; формирование доказательства по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции.
[014] Эти и другие признаки систем, способ и долговременных машиночитаемых носителей, раскрытых в данном документе, а также способы работы и функции связанных элементов структуры и комбинации частей и изделий должны становиться более очевидными при рассмотрении последующего описания и прилагаемой формулы изобретения со ссылкой на прилагаемые чертежи, все из которых составляют часть этого подробного описания, при этом аналогичные ссылки с номерами обозначают соответствующие части на различных чертежах. Тем не менее, следует четко понимать, что чертежи служат только для целей иллюстрации и описания не предназначены в качестве задания ограничений изобретения.
Краткое описание чертежей
[015] Определенные признаки различных вариантов осуществления настоящей технологии подробно изложены в прилагаемой формуле изобретения. Лучшее понимание признаков и преимуществ технологии должно получаться со ссылкой на нижеприведенное подробное описание, которое излагает иллюстративные варианты осуществления, в которых используются принципы изобретения, и на прилагаемые чертежи, на которых:
[016] Фиг. 1 иллюстрирует примерную цепочку блоков, в соответствии с различными вариантами осуществления.
[017] Фиг. 2 иллюстрирует примерную сеть цепочек блоков для защиты информации, в соответствии с различными вариантами осуществления.
[018] Фиг. 3 иллюстрирует примерную последовательность операций выполнения транзакций со смешанными отправителями и приемниками, в соответствии с различными вариантами осуществления.
[019] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа для защиты информации, в соответствии с различными вариантами осуществления.
[020] Фиг. 5 иллюстрирует блок-схему последовательности операций другого примерного способа для защиты информации, в соответствии с различными вариантами осуществления.
[021] Фиг. 6 иллюстрирует блок-схему последовательности операций примерного способа для защиты информации, в соответствии с различными вариантами осуществления.
[022] Фиг. 7 иллюстрирует блок-схему примерной компьютерной системы, в которой могут реализовываться любые из вариантов осуществления, описанных в данном документе.
Подробное описание вариантов осуществления
[023] Далее приводится подробное описание примерных вариантов осуществления, примеры которых проиллюстрированы на прилагаемых чертежах. Нижеприведенное описание ссылается на прилагаемые чертежи, причем идентичные номера на различных чертежах представляют идентичные или аналогичные элементы, если не указано иное. Реализации, изложенные в нижеприведенном описании примерных вариантов осуществления в соответствии с настоящим изобретением не представляют все реализации, согласованные с изобретением. Вместо этого, они представляют собой просто примеры систем и способов в соответствии с аспектами, связанными с изобретением.
[024] Технология работы с цепочками блоков может быть основана на сети "точка-точка" (между равноправными узлами), с использованием распределенного алгоритма консенсуса между узлами, чтобы проверять достоверность и обновлять данные. Цепочка блоков также может использовать криптографию для того, чтобы обеспечивать безопасность передачи данных, и осуществлять доступ и использовать смарт-контракты, включающие в себя автоматизированный код сценариев, для того чтобы программировать и манипулировать данными. Цепочка блоков может включать в себя последовательность блоков данных, включающих в себя заголовок, который связывается с предыдущим блоком данных, за счет этого формируя цепочку блоков данных. Чтобы устанавливать связывание, заголовок текущего блока данных может включать в себя криптографический хэш или контрольную сумму заголовка предыдущего блока данных. Сеть цепочек блоков может упрощать выполнение транзакций. Транзакция означает любую связь между пользователями (пользовательскими узлами, к примеру, их вычислительным устройствами) или между пользователем и финансовым объектом. Например, транзакция может означать покупку или продажу товаров или услуг, предложение или возврат товаров или услуг, платежную транзакцию, кредитную транзакцию либо другие аналогичные взаимодействия. Транзакция также может упоминаться как "торговля (trade)" или "торговля (trading)". Предмет транзакции может содержать, например, деньги, маркер, цифровую валюту, договор, купчую, медицинскую карту, сведения о клиентах, акции, долговое обязательство, долю в капитале или любой другой актив, который может описываться в цифровой форме.
[025] Цепочка блоков может рассматриваться как защищенный от несанкционированного использования, совместно используемый и цифровой реестр, который записывает транзакции в открытую или закрытую равноправную сеть. Реестр распределяется в узлы-члены в сети, и предыстория транзакций с активами, возникающих в сети, записывается в цепочку блоков. Поскольку реестр цепочек блоков является открытым, и непосредственно реестр не имеет функции защиты конфиденциальности, важная информация транзакций в реестре является общедоступной и подвержена риску неправомерного или злоумышленного использования. Например, в существующих инфраструктурах для проведения транзакций с цепочками блоков, транзакции должны явно указывать то, какая сторона должна отправлять актив, какая сторона должна принимать актив, и сумму актива транзакции, причем ни одно одна из означенного не защищается. Чтобы, по меньшей мере, уменьшать недостатки в существующих технологиях и улучшать функциональность защиты информации компьютеров, системы и способы для защиты информации раскрыты со ссылкой на фиг. 1-7.
[026] Фиг. 1 иллюстрирует примерную цепочку блоков, в соответствии с различными вариантами осуществления. Как показано на фиг. 1, цепочка 100 блоков может включать в себя множество блоков 102 данных. Каждый блок 102 представляет собой структуру данных, которая включает в себя данные 104, включающие в себя, например, транзакции, чеки по поступлению платежей и т.д. Каждый блок может связываться с предыдущим блоком через криптографический хэш. Например, блок 2 связывается с блоком 1 через хэш 106 блока 1, блок n связывается с блоком n-1 через другой хэш блока n-1. По мере того, как новые данные отправляются и подвергаются проверке достоверности, дополнительные блоки, включающие новые данные, могут формироваться и добавляться в конец последнего блока цепочки 100 блоков посредством включения хэша предыдущего блока.
[027] Фиг. 2 иллюстрирует примерную сеть 200 цепочек блоков для выполнения транзакций, в соответствии с различными вариантами осуществления. Как показано на фиг. 2, сеть 200 цепочек блоков может включать в себя множество узлов 202 и одно или более пользовательских вычислительных устройств 240, которые могут поддерживать связь между собой через один или более трактов связи. Примерный тракт связи представляет собой сеть 220 (например, проводные или беспроводные соединения, по Интернету и т.д.), которая использует один или более протоколов связи, например, протоколы сотовой связи, Wi-Fi-связи и другие протоколы связи, для того чтобы передавать и принимать данные. Сеть 220 может быть основана на модели между равноправными узлами и/или клиент-серверной модели. В некоторых вариантах осуществления, множество узлов 202 могут содержать вычислительные устройства, включающие в себя один или более процессоров 204 и одно или более запоминающих устройств 206 (например, один или более долговременных машиночитаемых носителей хранения данных, сохраняющих инструкции), соединенных с одним или более процессоров 204. Узел 202 может представлять собой примерную систему для повышения безопасности смарт-контракта. Одно или более запоминающих устройств могут быть приспособлены с помощью инструкций, выполняемых посредством одного или более процессоров, предписывать системе (например, одному или более процессоров) выполнять операции, описанные в данном документе. В некоторых вариантах осуществления, процессор 204 может реализовываться частично или полностью в качестве одной или более логических схем. В некоторых вариантах осуществления, узлы 202 и пользовательские вычислительные устройства 240 могут включать в себя другие вычислительные ресурсы и/или иметь доступ (например, через одно или более соединений/сетей) к другим вычислительным ресурсам.
[028] В некоторых вариантах осуществления, цепочка 100 блоков сохраняется децентрализованным способом на множестве узлов 202. В некоторых вариантах осуществления, некоторые узлы 202 могут проверять достоверность транзакций, которые они принимают через консенсус, и распространять прошедшие проверку достоверности транзакции в другие узлы 202. Соответственно, узлы 202 могут обновлять реестр 208 согласно прошедшим проверку достоверности транзакциям. Узлы 202 могут обмениваться данными между собой через сеть 220, чтобы передавать и принимать данные, связанные с реестром 208. Реестр 208 включает в себя блоки 102 данных, которые проходят проверку достоверности и добавляются в цепочку 100 блоков. По мере того, как новые блоки данных добавляются в реестр 208, узлы 202 могут передавать или совместно использовать новые блоки данных через сеть 220. Запоминающее устройство 206 узлов 202 может сохранять, по меньшей мере, часть реестра 208 цепочки 100 блоков.
[029] В некоторых вариантах осуществления, один или более пользователей могут отправлять транзакции в один или более узлов 202 через пользовательские вычислительные устройства 240 через тракты 220 связи. В некоторых вариантах осуществления, отправленные транзакции могут сохраняться временно в пуле, постоянно размещающемся в запоминающем устройстве 206 в узлах 202 или в удаленной базе данных, доступной через сеть 220. Один или более узлов 202 могут извлекать отправленные транзакции из пула и обрабатывать отправленные транзакции. Для краткости и простоты, настоящее раскрытие сущности может использовать форму единственного числа узла 202. Специалисты в данной области техники должны принимать во внимание, что сеть цепочек блоков может иметь несколько узлов 202, и один или более узлов 202 могут предусматриваться в обработке одной транзакции. Форма единственного числа узла 202 может представлять один или более узлов.
[030] В некоторых вариантах осуществления, узел 202 может обновлять цепочку 100 блоков на основе результатов транзакций. В некоторых вариантах осуществления, транзакция может предусматривать двух или более участников (также называемых "сторонами" или "пользователями", такими как "отправитель" и "приемник"). Транзакция может представлять собой соглашение между двумя сторонами для обмена активом(ами). Например, транзакция может включать в себя перевод или выплату посредством одной стороны суммы актива другой стороне, и сумма платежа может быть согласована посредством обеих сторон. Актив может иметь форму цифровой валюты, например, биткоина, Monero и т.д. Альтернативно, актив может представлять собой традиционную валюту, такую как доллары. Стороны транзакций могут быть связаны со счетами, соответственно. Каждый счет сторон может иметь адрес и баланс, сохраненные в цепочке 100 блоков. Таким образом, после того, как транзакция выполняется, узел 202 может обновлять баланс каждого счета сторон.
[031] В некоторых вариантах осуществления, узел 202 может выполнять транзакцию без знания того, какая сторона представляет собой отправителя, который отправляет или платит актив, а какая сторона представляет собой приемника, который принимает актив. Раскрытые системы и способы могут маскировать информацию относительно того, какая сторона представляет собой отправителя, а какая сторона представляет собой приемника, но по-прежнему обеспечивают возможность обработки транзакции с цепочками блоков. В некоторых вариантах осуществления, сумма актива, с которым следует осуществлять транзакцию, может помечаться как положительная или отрицательная, чтобы указывать то, представляет ли собой сторона, связанная с суммой актива, отправителя или приемника. Например, в транзакции между стороной A и стороной B, сумма 1000$ (положительная) для A указывает то, что сторона A отправляет 1000$ стороне B, в то время как сумма в -1000$ (отрицательная) для A указывает то, что сторона A принимает 1000$ от стороны B. Следовательно, если сумма транзакции счета A превышает нуль, счет A должен заплатить или отправлять сумму транзакции на другой счет B, и в силу этого этот счет A представляет собой отправителя. Напротив, если сумма транзакции счета A меньше нуля (отрицательная), то счет A должен принимать сумму, и счет A представляет собой приемника.
[032] В некоторых вариантах осуществления, сумма транзакции может шифроваться через различные способы шифрования. В одном примере, сумма транзакции может шифроваться через гомоморфное шифрование. Схема гомоморфного шифрования может включать в себя, но не только, гомоморфное шифрование Эль-Гамаля, гомоморфное шифрование Пэйе, гомоморфное шифрование Бенало, гомоморфное шифрование Окамото-Учиямы, гомоморфное шифрование Накаша-Штерна, гомоморфное шифрование Дамгарда-Юрика, гомоморфное шифрование Бонеха-Го-Ниссима и т.д. В другом примере, сумма транзакции может шифроваться через схему обязательств, такую как гомоморфное обязательство. Например, гомоморфное обязательство может представлять собой обязательство Педерсена. Обязательство T Педерсена суммы t транзакции может представляться следующим образом.
,
где является случайным коэффициентом ослепления (альтернативно называемым "коэффициентом привязки"), который предоставляет сокрытие, , и являются открыто согласованными генераторами или базисными точками эллиптической кривой и могут выбираться случайно. Например, может быть случайным числом. и могут быть известными параметрами для узла 202. Схема обязательств поддерживает секретность данных, но заверяет данные таким образом, что они не могут изменяться позднее посредством отправителя данных. Сторона, которая принимает обязательство (например, узел-приемник транзакции), знает только значение обязательства (например, PC(r, t)), сторона не может определять то, какое базовое значение данных (например, ) заверено, вследствие присутствия случайного коэффициента ослепления (например, ). Тем не менее, узел 202, принимающий обязательство, может выполнять обязательство и верифицировать то, что заверенные данные совпадают с раскрытыми данными. Таким образом, посредством сокрытия ролей (например, отправителя или приемника) сторон, а также посредством шифрования суммы транзакции, сторонний объект не должен знать то, какая сторона представляет собой отправителя, а какая сторона представляет собой приемника, за счет этого защищая конфиденциальность сторон в транзакции.
[033] Обязательство Педерсена имеет дополнительное свойство: обязательства могут суммироваться, и сумма набора обязательств является идентичным обязательством суммы данных (с ключом ослепления, заданным в качестве суммы ключей ослепления): . Другими словами, обязательство сохраняет суммирование, и коммутативное свойство применяется, т.е. обязательство Педерсена является аддитивно гомоморфным в том, что базовые данные могут манипулироваться математически, как если они не шифруются. Следовательно, при применении обязательства Педерсена к сумме транзакции и балансу стороны транзакции, баланс может обновляться с использованием суммы транзакции посредством прямого суммирования обязательств Педерсена, без дешифрования обязательства Педерсена суммы транзакции и/или баланса.
[034] В некоторых вариантах осуществления, узел 202 может выполнять несколько транзакций, таких как транзакция, описанная выше, в пакете. Например, помимо транзакций между стороной A и стороной B, сторона C и сторона D также могут запрашивать транзакции между собой. Дополнительно, сторона E и сторона F также могут запрашивать то, чтобы переводить актив между собой. Транзакции между стороной A и стороной B могут смешиваться с транзакциями между стороной C и стороной D и между стороной E и стороной F. Узел 202 может выполнять транзакции между сторонами A, B, C, D, E и F одновременно без необходимости выраженного индикатора относительно соответствующих отправителей и приемников. В более сложной ситуации, узел 202 может выполнять несколько транзакций, в которых одна сторона (например, сторона A) должна отправлять различные суммы транзакций актива различным сторонам (например, стороне B, стороне C и т.д.).
[035] Ссылаясь на фиг. 3, примерная последовательность 300 операций выполнения транзакций со смешанными отправителями и приемниками проиллюстрирована в соответствии с различными вариантами осуществления. Последовательность 300 операций выполнения транзакций может реализовываться в различных системах, включающих в себя, например, сеть 200 цепочек блоков по фиг. 2. Последовательность 300 операций выполнения транзакций может реализовываться посредством одного или более узлов 202 и пользовательских вычислительных устройств 240. Операции последовательности 300 операций выполнения транзакций, представленной ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерная последовательность 300 операций выполнения транзакций может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[036] В проиллюстрированных вариантах осуществления по фиг. 3, участники одной или блоков транзакций и их связанные счета показаны на этапе 302. Например, каждый из участников может быть связан со счетом "счет A_i", где , и может быть любым положительным целым числом. В некоторых вариантах осуществления, может указывать общее число участников. В других вариантах осуществления, могут не быть непрерывными целыми числами, и в силу этого может не указывать общее число участников. Как показано на этапе 302, каждый из счетов "счет A_i" может включать в себя баланс s_i, который может представлять собой сумму актива на доступном счету "счет A_i". В некоторых вариантах осуществления, баланс s_1 может иметь форму цифровой валюты, например, биткоина и т.д. Альтернативно, баланс s_1 может представлять традиционную валюту. Дополнительно, как показано на этапе 302, баланс s_i может шифроваться, чтобы получать зашифрованный баланс S_i через одну или более схем гомоморфного шифрования или гомоморфного обязательства , как описано выше. Зашифрованный баланс S_i может представлять собой зашифрованный текст баланса s_i и упоминаться как "HE (s_i)". Следовательно, , где , и может быть любым положительным целым числом. Например, счет "счет A_1" включает в себя зашифрованный текст своего баланса s_1, представленный посредством S_1, где . В некоторых вариантах осуществления, зашифрованный баланс S_i представляет собой обязательство Педерсена и , где r является случайным коэффициентом ослепления.
[037] На этапе 304, несколько транзакций из множества счетов "счет A_i" участников могут приниматься посредством узла 202. В проиллюстрированных вариантах осуществления по фиг. 3, каждый счет может быть связан с идентификационными данными (идентификатором) счета, такими как A_i, сумма t_i транзакции, доказательство Pf_i по диапазону и подпись Sig_i. "Подпись" показывает подтверждение из реальных идентификационных данных. Термин "подпись" может представлять собой любую форму индикатора относительно подтверждения. Например, подпись, связанная с транзакцией из счета, показывает то, что счет подтверждает транзакцию. В некоторых вариантах осуществления, транзакции могут шифроваться, чтобы скрывать, по меньшей мере, идентификационные данные отправителя или приемника каждой из транзакций. Например, транзакции могут включать в себя зашифрованный текст фактической суммы транзакции для каждой транзакции, представленный в качестве "T_i", где . Зашифрованный текст суммы транзакции может формироваться через вышеописанные схемы гомоморфного шифрования или гомоморфных обязательств. Например, зашифрованная сумма T_i транзакции может представлять собой обязательство Педерсена фактической суммы t_i транзакции.
[038] Доказательство по диапазону может представлять собой защищенный протокол доказательств, который используется для того, чтобы доказывать, что число находится в пределах диапазона, без раскрытия другой информации числа, такой как фактическое значение числа. Например, доказательство по диапазону может формироваться через схемы, включающие в себя, например, схему борромейской кольцевой подписи, схему пуленепробиваемого доказательства и т.д. Другие схемы также могут использоваться для того, чтобы формировать доказательство по диапазону. Доказательство по диапазону может показывать то, что счет A_i имеет достаточный баланс для того, чтобы предоставлять транзакцию, например, баланс s_i счета превышает или равен абсолютному значению суммы t_i транзакции. Доказательство по диапазону счета A_i может представляться посредством .
[039] В некоторых вариантах осуществления, другое доказательство, например, , может формироваться для транзакции. В дальнейшем в этом документе это доказательство может упоминаться как доказательство по сумме, которое используется для того, чтобы показывать то, что сумма сумм транзакций балансируется, например, равна нулю. Как описано выше, сумма транзакции отправителя может указываться в качестве положительного значения, тогда как сумма транзакции соответствующего приемника может указываться в качестве отрицательного значения. Абсолютные значения сумм транзакций, связанных с отправителем и соответствующим приемником, являются идентичными. Таким образом, узел 202 может выполнять транзакцию между отправителем и приемником без необходимости выраженного индикатора того, какая сторона представляет собой отправителя, а какая сторона представляет собой приемника.
[040] В примере, описанном выше, в котором сторона A должна заплатить 1000$ стороне B, при условии, что сторона A связана с идентификатором A_1 счета, в то время как сторона B связана с идентификатором A_2 счета, сумма t_1 транзакции, связанная с A_1, составляет +1000$, в то время как сумма t_2 транзакции, связанная с A_2, составляет -1000$. Доказательство по сумме может формироваться, чтобы показывать то, что сумма t_1 транзакции и сумма t_2 транзакции возмещают друг друга, и сумма сумм t_1 и t_2 транзакций равна нулю.
[041] В некоторых вариантах осуществления, доказательство по сумме может быть доказано на основе зашифрованной суммы транзакции. Например, зашифрованный текст суммы транзакции может представляться посредством , где r_i является случайным коэффициентом ослепления, , и являются открыто согласованными генераторами или базисными точками эллиптической кривой и могут выбираться случайно. Следовательно, доказательство по сумме может составлять . При проверке достоверности доказательства по сумме, узел 202 может верифицировать то, удовлетворяется ли . Если , это показывает то, что , за счет этого доказывая , и суммы транзакций сбалансированы. В противном случае, суммы транзакций не сбалансированы, и может возникать любая некорректная сумма транзакции. В некоторых вариантах осуществления, суммы транзакций могут шифроваться с использованием других схем, и в силу этого доказательство по сумме и верификация доказательства по сумме могут отличаться от доказательства по сумме и верификации доказательства по сумме, описанных в данном документе.
[042] Когда предусмотрено несколько отправителей и/или приемников, суммы транзакций между каждой парой сбалансированы. В некоторых вариантах осуществления, когда отправитель должен осуществлять транзакции с несколькими приемниками, сумма транзакции отправителя может задаваться в качестве суммы всех сумм транзакций, которые должны отправляться в несколько приемников. Например, когда счет A_1 должен отправлять сумму транзакции в 1000$ на счет A_2 и сумму транзакции 2000$ на счет A_3, сумма транзакции счета A_1 составляет 3000$ (например, сумма 1000$ и 2000$). Сумма транзакции счета A_1 балансируется посредством суммы транзакции счета A_2, т.е., -1000$ и суммы транзакции счета A_3, т.е., -2000$. Аналогично, другие суммы транзакций в транзакциях сбалансированы. Такое доказательство может формироваться и быть связано с транзакциями.
[043] Как описано выше, подпись из каждого счета может приниматься, и подпись представляется посредством Sig_i на фиг. 3. В некоторых вариантах осуществления, подпись может подписываться посредством каждого счета для транзакций, доказательства по диапазону и доказательства по сумме, что представлено посредством . Таким образом, каждый счет, предусмотренный в транзакции(ях), выражает свое согласие на различные параметры в Signature (). В некоторых вариантах осуществления, подпись может быть связана с одним или более из транзакций, доказательств по диапазону или доказательства по сумме.
[044] На этапе 306, узел 202 может принимать транзакции, связанные с вышеописанными несколькими счетами, доказательства по диапазону, доказательство по сумме и подписи, связанные, по меньшей мере, с одним из транзакции(й), доказательства по диапазону или доказательства по сумме, для верификации принимаемых транзакций. В некоторых вариантах осуществления, узел 202 может принимать транзакции из узла-организатора, который выполняет координацию между участниками транзакции. В некоторых вариантах осуществления, узел-организатор может представлять собой сторонний объект, реализуемый посредством вычислительного устройства (не показано, но является аналогичным узлу 202). Например, каждый участник может отправлять, через пользовательское вычислительное устройство 240, свой идентификатор счета наряду с зашифрованной суммой транзакции, доказательством по диапазону и т.п. в узел-организатор. Узел-организатор может формировать доказательство по сумме на основе принимаемых сумм транзакций от участников. Узел-организатор может отправлять транзакции, связанные с множеством счетов, доказательства по диапазону для каждой из транзакций, доказательства по сумме по транзакциям и подписи из каждого из множества счетов, связанных, по меньшей мере, с одним из транзакций, доказательств по диапазону или доказательства по сумме, в сеть 200 цепочек блоков, включающую в себя узлы 202. В некоторых вариантах осуществления, узел-организатор может представлять собой одного из участников, координирующих других участников. Альтернативно, организатор может представлять собой узел 202 сети 200 цепочек блоков. Узел-организатор 202 может принимать транзакции, связанные с несколькими идентификаторами счетов, наряду с доказательством по диапазону для каждой из транзакций, подписью, связанную, по меньшей мере, с одной из транзакций, доказательствами по диапазону или доказательствами по сумме, от участников. Узел-организатор 202 может выполнять доказательство по сумме на основе принимаемых сумм транзакций от участников.
[045] На этапе 306, узел 202 может проверять достоверность транзакций, доказательств по диапазону, доказательства по сумме и подписей. В ответ на проверку достоверности транзакций и связанной информации, узел 202 может реализовывать транзакции посредством обновления баланса каждого счета, предусмотренного в транзакциях. Например, узел 202 может верифицировать подпись каждого счета. В некоторых вариантах осуществления, если какая-либо из подписей является недостоверной, узел 202 может отклонять транзакции. После того, как каждая подпись верифицируется, узел 202 может проверять достоверность каждого доказательства по диапазону для каждой из транзакций. В некоторых вариантах осуществления, узел 202 может извлекать зашифрованный баланс S_i и сверять доказательство Pf_i по диапазону с зашифрованным балансом S_i. В некоторых вариантах осуществления, узел 202 может верифицировать достоверность непосредственно доказательства Pf_i по диапазону. В ответ на недостоверность любого из доказательств по диапазону, узел 202 может отклонять транзакции.
[046] В некоторых вариантах осуществления, после того, как каждое доказательство по диапазону проходит проверку достоверности, узел 202 может проверять достоверность доказательства по сумме по транзакциям. Например, если доказательство по сумме формируется для зашифрованных сумм транзакций, узел 202 может верифицировать доказательство по сумме согласно схеме шифрования, как описано выше со ссылкой на этап 304. В ответ на недостоверность доказательства по сумме, узел 202 может отклонять транзакции. В некоторых вариантах осуществления, после того, как доказательство по сумме проходит проверку достоверности, узел 202 может обновлять баланс каждого счета. Например, узел 202 может обновлять баланс s_i посредством вычитания суммы t_i транзакции из баланса s_i, т.е. . В вышеуказанном примере, в котором счет A_1 должен отправлять сумму транзакции в 1000$ на счет A_2, если узел 202 проверял достоверность транзакций, то узел 202 может вычитать 1000$ из баланса s_1 счета A_1 и прибавлять 1000$ на баланс "S_2" счета A_2. В некоторых вариантах осуществления, узел 202 может непосредственно обновлять зашифрованный баланс, как представлено посредством . Как описано выше, обязательство Педерсена является аддитивно гомоморфной, и базовые данные могут манипулироваться математически, как если они не шифруются. Например, узел 202 может обновлять обязательство Педерсена баланса посредством суммирования обязательство Педерсена суммы транзакции с обязательством Педерсена баланса. На этапе 308, результаты транзакции могут получаться. Как проиллюстрировано на фиг. 3, после выполнения транзакций, баланс каждого счета обновлен в качестве "S_i-T_i".
[047] Вышеприведенное описание описывает проверки достоверности подписей, доказательств по диапазону и доказательства по сумме в хронологическом порядке. Специалисты в данной области техники должны принимать во внимание, что проверки достоверности могут иметь любой порядок. Например, узел может проверять достоверность в порядке подписи, доказательства по сумме, доказательства по диапазону либо доказательства по диапазону, доказательства по сумме, подписи, либо доказательства по диапазону, подписи, доказательства по сумме, либо доказательства по сумме, доказательства по диапазону, подписи, либо доказательства по сумме, подписи, доказательства по диапазону. Помимо этого, проверки достоверности являются необязательными. Некоторые проверки достоверности, например, доказательство по диапазону и/или подпись могут опускаться.
[048] В связи с этим, настоящее раскрытие сущности предоставляет одновременное выполнение нескольких транзакций между смешанными отправителями и приемниками с улучшенной защитой конфиденциальности. Таким образом, идентификационные данные отправителя и приемника маскируются от публики. Сумма транзакции каждого участника может быть больше или меньше нуля. Положительная сумма транзакции указывает то, что счет участника должен расходовать эту сумму, в то время как отрицательная сумма транзакции указывает то, что счет должен принимать эту сумму. Помимо этого, настоящее раскрытие сущности также может использовать гомоморфное шифрование, гомоморфное обязательство или другие схемы шифрования, чтобы шифровать сумму транзакции и баланс каждого счета в транзакции, за счет этого приводя к невозможности для лица, не являющегося участником, знать то, является ли сумма транзакции положительной или отрицательной, или фактическое число суммы транзакции или баланса, в силу этого предотвращая идентификацию, лицом, не являющимся участником, того, кто представляет собой отправителя, а кто представляет собой получателя.
[049] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа 400 для выполнения транзакций, в соответствии с различными вариантами осуществления. Способ 400 может реализовываться в различных системах, включающих в себя, например, один или более компонентов сети 200 цепочек блоков по фиг. 2. Примерный способ 400 может реализовываться посредством одного или более узлов 202 и/или пользовательских вычислительных устройств 240. В одном примере, способ 400 может реализовываться посредством узла-организатора (например, одного из узлов 202). В другом примере, способ 400 может реализовываться посредством одного или более узлов (например, узлов 202), выполняющих транзакция. Этапы способа 400, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 400 может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[050] Этап 401 содержит получение множества зашифрованных сумм транзакций (например, ), связанных с транзакциями между множеством счетов (например, A_1, A_2, …, A_n), при этом каждая из зашифрованных сумм транзакций связана с одним со счетов, который отправляет или принимает одну из сумм транзакций, и шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций.
[051] В некоторых вариантах осуществления, шифрование может выполняться посредством организующего узла или посредством узлов, выступающих в качестве отправителей или приемников транзакций, и приниматься посредством организующего узла. Различные способы шифрования могут использоваться для того, чтобы шифровать суммы транзакций. Шифрование каждой из сумм транзакций содержит гомоморфное шифрование. Например, шифрование каждой из сумм транзакций может представлять собой схему гомоморфного шифрования или гомоморфных обязательств (например, схема обязательств Педерсена).
[052] В некоторых вариантах осуществления, перевод активов между двумя или более счетов может разделяться во множество транзакций, каждая из которых связана со счетом отправителя или со счетом приемника. Каждый счет может быть связан с узлом из узлов 202. Например, перевод активов в 100$ со счета A на B может содержать первую транзакцию в +100$, связанную со счетом A, указывающую то, что счет A расходует 100$, и содержать вторую транзакцию в -100$, связанную со счетом B, указывающую то, что счет B принимает 100$. В качестве другого примера, перевод активов в 100$ со счета A на B и другой перевод активов в 80$ со счета A на C могут содержать первую транзакцию в +100$, связанную со счетом A, указывающую то, что счет A расходует 180$, содержать вторую транзакцию в -100$, связанную со счетом B, указывающую то, что счет B принимает 100$, содержать третью транзакцию в +80$, связанную со счетом A, указывающую то, что счет A расходует 80$, и содержать третью транзакцию в -80$, связанную со счетом C, указывающую то, что счет C принимает 80$. Знаки "+" и "-" могут быть изменены на противоположное или изменены на любое другое альтернативное представление. Кроме того, как показано, два из счетов могут быть идентичными, например, когда счет расходует на или принимает с нескольких счетов.
[053] Дополнительно, в некоторых вариантах осуществления, шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций, посредством сокрытия того, является ли каждая из сумм транзакций входящей (например, прием актив) или исходящей (например, отправка актива) для этого одного счета. В примере перевода активов в 100$ со счета A на B и 80$ со счета A на C, посредством шифрования, информация, указывающая идентификационные данные отправителя или приемника, такая как "+" в сумме транзакции в "+180$" и "-" в суммах транзакций в "-100$" и "-80$", может удаляться. Таким образом, зашифрованные суммы транзакций не должны содержать информацию, которая указывает идентификационные данные отправителя или приемника. Даже если зашифрованные суммы транзакций могут (но не обязательно) содержать знак "+" или "-", знак более не может корректно указывать идентификационные данные отправителя или приемника. Таким образом, идентификационные данные отправителя и приемника в транзакциях защищаются от общедоступности.
[054] Необязательный этап 402 содержит: получение множества доказательств по диапазону (например, ), соответственно, для счетов, предусмотренных в транзакциях, причем доказательства по диапазону, по меньшей мере, указывают то, что каждый из счетов, который отправляет суммы транзакций, имеет достаточный актив. На предмет подробностей следует обратиться к , описанному выше.
[055] Этап 403 содержит: формирование доказательства по сумме (например, ) на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы. На предмет подробностей следует обратиться к , описанному выше. Например, узел-организатор может получать зашифрованные суммы транзакций и определять то, удовлетворяется ли . Если , это показывает то, что , в силу чего организующий узел верифицирует то, что суммы транзакций сбалансированы. В противном случае, суммы транзакций не сбалансированы, и организующий узел может отклонять транзакции. В силу шифрования и гомоморфного свойства шифрования, организующий узел может выполнять такую верификацию даже без знания базовых сумм транзакций и того, являются они входящими или исходящими.
[056] Необязательный этап 404 содержит получение множества подписей (например, , …, ), соответственно, для счетов. Подписи связаны, по меньшей мере, с одним из зашифрованных сумм транзакций, доказательств по диапазону и доказательства по сумме. На предмет подробностей следует обратиться к , описанному выше. Подписание может соответствовать алгоритму цифровой подписи (DSA), такому как алгоритм цифровой подписи в эллиптических кривых (ECDSA), за счет чего приемник (например, узлы, которые проверяют достоверность транзакций) подписи может верифицировать подпись с помощью открытого ключа подписавшей стороны (например, узлов, которые участвуют в транзакциях), чтобы аутентифицировать подписанные данные.
[057] Этап 405 содержит передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов (например, консенсусных узлов) в сети цепочек блоков для узлов, чтобы верифицировать транзакции. В некоторых вариантах осуществления, передача зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции, содержит передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей.
[058] В некоторых вариантах осуществления, передача зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей содержит: передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков; и предписание узлам: проверять достоверность зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей, выполнять транзакции в ответ на успешную верификацию транзакций и добавлять транзакции в новый блок данных цепочки блоков, поддерживаемой посредством сети цепочек блоков. В силу шифрования и гомоморфного свойства шифрования, узлы могут выполнять такую проверку достоверности даже без знания базовых сумм транзакций и того, являются ли они входящими или исходящими.
[059] В некоторых вариантах осуществления, предписание узлам выполнять транзакции в ответ на успешную верификацию транзакций содержит: предписание узлам вычитать зашифрованные суммы (T_i) транзакций, соответственно, из зашифрованного баланса счетов (например, S_i счетов в ответ на успешную верификацию транзакций. Вследствие гомоморфного свойства, (S_i-T_i) может обновлять балансы согласно транзакциям при поддержании балансов зашифрованными.
[060] В связи с этим, раскрытые системы и способы обеспечивают возможность выполнения транзакций между участвующими счетами без раскрытия того, какой счет представляет собой отправителя, а какой счет представляет собой приемника. Хотя базовая сумма транзакции может быть больше или меньше нуля, чтобы указывать отправителя и приемника, индивидуально адаптированное шифрование может использоваться для того, чтобы скрывать суммы транзакций таким образом, что суммы транзакций не могут использоваться для того, чтобы указывать отправителя или приемник лицом, не являющимся участником. Дополнительно, участвующие счета в нескольких транзакциях могут смешиваться между собой в любом порядке без указания того, должны ли они отправлять или принимать активы. Кроме того, несколько транзакций или переводов активов могут выполняться в пакете. Таким образом, достигается защита конфиденциальности участвующих счетов, которая улучшает функциональность компьютеров и делает онлайновые транзакции более безопасными.
[061] Фиг. 5 иллюстрирует блок-схему последовательности операций другого примерного способа 500 для выполнения транзакций, в соответствии с различными вариантами осуществления. Способ 500 может реализовываться в различных системах, включающих в себя, например, один или более компонентов сети 200 цепочек блоков по фиг. 2. Примерный способ 500 может реализовываться посредством одного или более узлов 202 и/или пользовательских вычислительных устройств 240. Операции способа 500, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 500 может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[062] На этапе 502, могут приниматься зашифрованные транзакции, связанные с множеством счетов, доказательство по диапазону для каждой из транзакций, доказательство по сумме по транзакциям и подпись из каждого из множества счетов, связанных, по меньшей мере, с одним из транзакций, доказательств по диапазону или доказательства по сумме. На этапе 504, зашифрованные транзакции, доказательство по диапазону для каждой из транзакций, доказательства по сумме по транзакциям и подписи из каждого из множества счетов могут проходить проверку достоверности. На этапе 506, транзакции могут реализовываться на основе проверки достоверности посредством обновления баланса каждого из множества счетов.
[063] Фиг. 6 иллюстрирует блок-схему последовательности операций примерного способа 600 для проверки достоверности транзакций, в соответствии с различными вариантами осуществления. Способ 600 может реализовываться в различных системах, включающих в себя, например, один или более компонентов сети 200 цепочек блоков по фиг. 2. Примерный способ 600 может реализовываться посредством одного или более узлов 202 и/или пользовательских вычислительных устройств 240. Например, способ 600 может соответствовать этапу 504 способа 500. Операции способа 600, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 600 может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[064] На этапе 602, может определяться то, являются ли подписи достоверными. Если определяется то, что любая из подписей не является достоверной, на этапе 604, транзакции могут отклоняться. Если определяется то, что каждая из подписей является достоверной, на этапе 606, может определяться то является ли доказательство по диапазону для каждой из транзакций достоверным. Если определяется то, что любое из доказательств по диапазону не является достоверным, способ 600 переходят к этапу 604, и транзакции могут отклоняться. Если определяется то, что каждое из доказательств по диапазону является достоверным, на этапе 608, может определяться то является ли доказательство по сумме достоверным. Если определяется то, что доказательство по сумме не является достоверным, способ 600 переходят к этапу 604, и транзакции могут отклоняться. Если определяется то, что доказательство по сумме является достоверным, способ 600 переходят к этапу 610, и баланс каждого счета может обновляться на основе суммы транзакции, связанной со счетом. Вышеприведенное описание описывает проверки достоверности по порядку. Специалисты в данной области техники должны принимать во внимание, что проверки достоверности могут иметь любой порядок.
[065] Технологии, описанные в данном документе, реализуются посредством одного или более вычислительных устройств специального назначения. Вычислительные устройства специального назначения могут представлять собой настольные компьютерные системы, серверные компьютерные системы, портативные компьютерные системы, карманные устройства, сетевые устройства или любое другое устройство либо комбинацию устройств, которые включают аппаратно-реализуемую и/или программную логику для того, чтобы реализовывать технологии.
[066] Фиг. 7 является блок-схемой, которая иллюстрирует примерную компьютерную систему 700, в которой может реализовываться любой из вариантов осуществления, описанных в данном документе. Система 700 может соответствовать узлам 202 или пользовательским вычислительным устройствам 240, описанным выше со ссылкой на фиг. 2. Компьютерная система 700 включает в себя шину 702 или другой механизм связи для передачи информации, при этом один или более аппаратных процессоров 704 соединяются с шиной 702 для обработки информации. Аппаратный процессор(ы) 704, например, может представлять собой один или более микропроцессоров общего назначения.
[067] Компьютерная система 700 также включает в себя основное запоминающее устройство 706, к примеру, оперативное запоминающее устройство (RAM), кэш и/или другие устройства динамического хранения данных, соединенные с шиной 702 для сохранения информации и инструкций, которые должны выполняться посредством процессора 704. Основное запоминающее устройство 706 также может использоваться для сохранения временных переменных или другой промежуточной информации во время выполнения инструкций, которые должны выполняться посредством процессора 704. Такие инструкции, при сохранении на носителях хранения данных, доступных для процессора 704, превращают компьютерную систему 700 в машину специального назначения, которая настраивается с возможностью выполнять операции, указываемые в инструкциях. Компьютерная система 700 дополнительно включает в себя постоянное запоминающее устройство 708 (ROM) или другое устройство статического хранения данных, соединенное с шиной 702 для сохранения статической информации и инструкций для процессора 704. Устройство 710 хранения данных, такое как магнитный диск, оптический диск или карта USB-флэш-памяти (флэш-накопитель) и т.д., предоставляется и соединяется с шиной 702 для сохранения информации и инструкций.
[068] Компьютерная система 700 может реализовывать технологии, описанные в данном документе, с использованием настраиваемой аппаратно-реализуемой логики, одной или более ASIC или FPGA, микропрограммного обеспечения и/или программной логики, которая в комбинации с компьютерной системой предписывает или программирует компьютерную систему 700 таким образом, что она представляет собой машину специального назначения. Согласно одному варианту осуществления, операции, способы и процессы, описанные в данном документе, выполняются посредством компьютерной системы 700 в ответ на выполнение, посредством процессора(ов) 704, одной или более последовательностей из одной или более инструкций, содержащихся в основном запоминающем устройстве 706. Такие инструкции могут считываться в основное запоминающее устройство 706 с другого носителя хранения данных, такого как устройство 710 хранения данных. Выполнение последовательностей инструкций, содержащихся в основном запоминающем устройстве 706, предписывает процессору(ам) 704 выполнять этапы процесса, описанные в данном документе. В альтернативных вариантах осуществления, аппаратно-реализуемая схема может использоваться вместо или в комбинации с программными инструкциями.
[069] Процессор(ы) 704 может соответствовать процессору 204, описанному выше, и основное запоминающее устройство 706, ROM 708 и/или хранилище 710 могут соответствовать запоминающему устройству 206, описанному выше. Основное запоминающее устройство 706, ROM 708 и/или хранилище 710 могут включать в себя долговременные носители хранения данных. Термин "долговременные носители" и аналогичные термины, при использовании в данном документе, означают любые носители, которые сохраняют данные и/или инструкции, которые предписывают машине работать конкретным способом. Такие долговременные носители может содержать долговременные носители и/или кратковременные носители. Долговременные носители включают в себя, например, оптические или магнитные диски, такие как устройство 710 хранения данных. Кратковременные носители включают в себя динамическое запоминающее устройство, такое как основное запоминающее устройство 706. Общие формы долговременных носителей включают в себя, например, гибкий диск, дискету, жесткий диск, полупроводниковый накопитель, магнитную ленту или любой другой магнитный носитель хранения данных, CD-ROM, любой другой оптический носитель хранения данных, любой физический носитель с шаблонами отверстий, RAM, PROM и EPROM, флэш-EPROM, NVRAM, любую другую микросхему или картридж запоминающего устройства и сетевые версии вышеозначенного.
[070] Компьютерная система 700 также включает в себя интерфейс 718 связи, связанный с шиной 702. Интерфейс 718 связи обеспечивает двустороннее соединение передачи данных с одной или несколькими сетевыми линиями, которые связаны с одной или несколькими локальными сетями. Например, интерфейс 718 связи может быть платой цифровой сети с интеграцией служб (ISDN), кабельным модемом, спутниковым модемом или модемом для обеспечения соединения для передачи данных с телефонным каналом соответствующего типа. В качестве другого примера, интерфейс 718 связи может представлять собой карту локальной сети (LAN), чтобы обеспечить соединение для передачи данных с совместимой LAN (или компонентом WAN, который обменивается данными с WAN). Также могут реализовываться линии беспроводной связи. В любой такой реализации, интерфейс 718 связи отправляет и принимает электрические, электромагнитные или оптические сигналы, которые переносят потоки цифровых данных, представляющие различные типы информации.
[071] Компьютерная система 700 может отправлять сообщения и принимать данные, включающие в себя программный код, через сеть(и), сетевую линию связи и интерфейс 718 связи. В Интернет-примере, сервер может передавать запрашиваемый код для прикладной программы через Интернет, ISP, локальную сеть и интерфейс 718 связи. Принимаемый код может выполняться посредством процессора 704 по мере того, как он принимается и/или сохраняется в устройстве 710 хранения данных или в другом долговременном устройстве хранения данных для последующего выполнения.
[072] Каждая из схем, механизмов, решений, процессов, способов и алгоритмов, описанных в предыдущих разделах, может быть осуществлена и полностью или частично автоматизирована посредством кодовых модулей, выполняемых посредством одной или более компьютерных систем или процессоров компьютера, содержащих компьютерные аппаратные средства. Процессы и алгоритмы могут реализовываться частично или полностью в специализированной схеме. В некоторых вариантах осуществления, процессор(ы) 704 может реализовываться частично или полностью в качестве одной или более логических схем, описанных выше.
[073] Различные признаки и процессы, описанные выше, могут использоваться независимо друг от друга либо могут комбинироваться различными способами. Все возможные комбинации и субкомбинации имеют намерение попадать в пределы объема этого раскрытия сущности. Помимо этого, определенные этапы способа или процесса могут опускаться в некоторых реализациях. Способы и процессы, описанные в данном документе, также не ограничены конкретными последовательностями, и этапы или состояния, связанные с ними, могут выполняться в других последовательностях, которые являются подходящими. Например, описанные этапы или состояния могут выполняться в порядке, отличном от конкретно раскрытого порядка, либо несколько этапов или состояний могут комбинироваться в одном этапе или состоянии. Примерные этапы или состояния могут выполняться последовательно, параллельно или некоторым другим способом. Этапы или состояния могут добавляться или удаляться из раскрытых примерных вариантов осуществления. Примерные системы и компоненты, описанные в данном документе, могут быть сконфигурированы отлично от описанных конфигураций. Например, элементы могут добавляться, удаляться или перекомпоновываться по сравнению с раскрытыми примерными вариантами осуществления.
[074] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством алгоритма. Алгоритм может содержаться в программных кодах или инструкциях, сохраненных в запоминающем устройстве (например, на долговременном машиночитаемом носителе хранения данных, описанном выше). Такой алгоритм может содержать алгоритм машинного обучения. В некоторых вариантах осуществления, алгоритм машинного обучения может не программировать явно компьютеры с возможностью выполнять функцию, а может обучаться, из обучающих данных, возможности создавать модель прогнозирований, которая выполняет функцию.
[075] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством одного или более процессоров, которые временно выполнены с возможностью (например, посредством программного обеспечения) или постоянно выполнены с возможностью выполнять релевантные операции. Независимо от того, временно или постоянно выполнены с возможностью, такие процессоры могут составлять процессорнореализуемые механизмы, которые работают с возможностью выполнять одну или более операций или функций, описанных в данном документе.
[076] Аналогично, способы, описанные в данном документе, могут быть, по меньшей мере, частично процессорнореализуемыми, при этом конкретный процессор или процессоры представляют собой пример аппаратных средств. Например, по меньшей мере, некоторые операции способа могут осуществляться посредством одного или более процессоров или процессорнореализуемых механизмов. Кроме того, один или более процессоров также могут работать с возможностью поддерживать выполнение релевантных операций в окружении "облачных вычислений" или в качестве "программного обеспечения как услуга" (SaaS). Например, по меньшей мере, некоторые операции могут выполняться посредством группы компьютеров (в качестве примеров машин, включающих в себя процессоры), причем эти операции являются доступным через сеть (например, Интернет) и через один или более соответствующих интерфейсов (например, через интерфейс прикладного программирования (API)).
[077] Выполнение определенных операций может распределяться между процессорами, не только постоянно размещающимися в одной машине, но и развернутыми на определенном числе машин. В некоторых примерных вариантах осуществления, процессоры или процессорнореализуемые механизмы могут быть расположены в одном географическом местоположении (например, в домашнем окружении, в офисном окружении или на ферме серверов). В других примерных вариантах осуществления, процессоры или процессорнореализуемые механизмы могут быть распределены по ряду географических местоположений.
[078] В этом подробном описании, несколько экземпляров могут реализовывать компоненты, операции или структуры, описанные в качестве одного экземпляра. Хотя отдельные операции одного или более способов проиллюстрированы и описаны в качестве отдельных операций, одна или более отдельных операций могут выполняться параллельно, и ничего не требует выполнения операций в проиллюстрированном порядке. Структуры и функциональность, представленные в качестве отдельных компонентов в примерных конфигурациях, могут реализовываться как комбинированная структура или компонент. Аналогично, структуры и функциональность, представленные в качестве одного компонента, могут реализовываться как отдельные компоненты. Эти и другие варьирования, модификации, добавления и улучшения попадают в пределы объема предмета изобретения в данном документе.
[079] Любые описания процессов, элементы или блоки на блок-схемах последовательности операций способа, описанных в данном документе и/или проиллюстрированных на прилагаемых чертежах, должны пониматься как потенциально представляющие модули, сегменты или части кода, которые включают в себя одну или более выполняемых инструкций для реализации конкретных логических функций или этапов в процессе. Альтернативные реализации включены в пределы объема вариантов осуществления, описанных в данном документе, при этом элементы или функции могут удаляться, выполняться в порядке, отличном от показанного или поясненного порядка, в том числе практически параллельно или в обратном порядке, в зависимости от предусмотренной функциональности, как должны понимать специалисты в данной области техники.
[080] Хотя общее представление предмета изобретения описывается со ссылкой на конкретные примерные варианты осуществления, различные модификации и изменения могут вноситься в эти варианты осуществления без отступления от более широкого объема вариантов осуществления настоящего раскрытия сущности. Такие варианты осуществления предмета изобретения могут упоминаться в данном документе отдельно или совместно посредством термина "изобретение" просто для удобства и без намерения умышленно ограничивать объем этой заявки каким-либо одним раскрытием сущности или идеей, если фактически раскрывается несколько из них.
[081] Варианты осуществления, проиллюстрированные в данном документе, описываются с достаточной степенью детализации, чтобы обеспечивать возможность специалистам в данной области техники осуществлять на практике раскрытые идеи. Другие варианты осуществления могут использоваться и извлекаться из них таким образом, что структурные и логические замены и изменения могут вноситься без отступления от объема данного раскрытия сущности. В силу этого, подробное описание не должно рассматриваться в ограничивающем смысле, и объем различных вариантов осуществления задается только посредством прилагаемой формулы изобретения, наряду с полным диапазоном эквивалентов, на которые уполномочена такая формула изобретения.
Изобретение относится к способу, системе и машиночитаемому носителю для защиты информации. Технический результат заключается в повышении безопасности проведения транзакций. Способ, при котором: получают множество зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций; формируют доказательство по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и передают зашифрованные суммы транзакций и доказательство по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции. 3 н. и 17 з.п. ф-лы, 7 ил.
1. Машинореализуемый способ защиты информации, содержащий этапы, на которых:
получают множество зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом:
каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и
шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций;
формируют доказательство по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и
передают зашифрованные суммы транзакций и доказательство по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции.
2. Способ по п. 1, в котором шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций, посредством сокрытия того, является ли каждая из сумм транзакций входящей или исходящей для этого одного счета.
3. Способ по п. 1, перед формированием доказательства по сумме, дополнительно содержащий этап, на котором получают множество доказательств по диапазону, соответственно, для счетов, предусмотренных в транзакциях, причем доказательства по диапазону, по меньшей мере, указывают то, что каждый из счетов, который отправляет суммы транзакций, имеет достаточный актив.
4. Способ по п. 3, перед передачей зашифрованных сумм транзакций и доказательства по сумме в один или более узлов, дополнительно содержащий этап, на котором получают множество подписей, соответственно, из счетов, при этом:
передача зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции, содержит этап, на котором передают зашифрованные суммы транзакций, доказательства по диапазону, доказательство по сумме и подписи в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей.
5. Способ по п. 4, в котором передача зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей, содержит этапы, на которых:
передают зашифрованные суммы транзакций, доказательства по диапазону, доказательство по сумме и подписи в один или более узлов в сети цепочек блоков; и
предписывают узлам:
проверять достоверность зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей,
выполнять транзакции в ответ на успешную верификацию транзакций, и
добавлять транзакции в новый блок данных цепочки блоков, поддерживаемой посредством сети цепочек блоков.
6. Способ по п. 5, в котором предписание узлам выполнять транзакции в ответ на успешную верификацию транзакций содержит этап, на котором предписывают узлам вычитать зашифрованные суммы транзакций, соответственно, из зашифрованного баланса счетов для счетов в ответ на успешную верификацию транзакций.
7. Способ по п. 1, в котором шифрование каждой из сумм транзакций содержит гомоморфное шифрование.
8. Способ по п. 1, в котором шифрование каждой из сумм транзакций содержит схему обязательств Педерсена.
9. Система защиты информации, содержащая: один или более процессоров и одно или более долговременных машиночитаемых запоминающих устройств, соединенных с одним или более процессоров и приспособленных с помощью инструкций, выполняемых посредством одного или более процессоров, предписывать системе выполнять операции, содержащие:
получение множества зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом:
каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и
шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций;
формирование доказательства по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и
передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции.
10. Система по п. 9, в которой шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций, посредством сокрытия того, является ли каждая из сумм транзакций входящей или исходящей для этого одного счета.
11. Система по п. 9, в которой перед формированием доказательства по сумме, операции дополнительно содержат получение множества доказательств по диапазону, соответственно, для счетов, предусмотренных в транзакциях, причем доказательства по диапазону, по меньшей мере, указывают то, что каждый из счетов, который отправляет суммы транзакций, имеет достаточный актив.
12. Система по п. 11, в которой:
перед передачей зашифрованных сумм транзакций и доказательства по сумме в один или более узлов, операции дополнительно содержат получение множества подписей, соответственно, для счетов; и
передача зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции, содержит передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей.
13. Система по п. 12, в которой передача зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей содержит:
передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков; и
предписание узлам:
проверять достоверность зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей,
выполнять транзакции в ответ на успешную верификацию транзакций, и
добавлять транзакции в новый блок данных цепочки блоков, поддерживаемой посредством сети цепочек блоков.
14. Система по п. 13, в которой предписание узлам выполнять транзакции в ответ на успешную верификацию транзакций содержит предписание узлам вычитать зашифрованные суммы транзакций, соответственно, из зашифрованного баланса счетов для счетов в ответ на успешную верификацию транзакций.
15. Система по п. 9, в которой шифрование каждой из сумм транзакций содержит гомоморфное шифрование.
16. Система по п. 9, в которой шифрование каждой из сумм транзакций содержит схему обязательств Педерсена.
17. Долговременный машиночитаемый носитель хранения данных, приспособленный с помощью инструкций, выполняемых посредством одного или более процессоров, предписывать одному или более процессоров выполнять операции, содержащие:
получение множества зашифрованных сумм транзакций, связанных с транзакциями между множеством счетов, при этом:
каждая из зашифрованных сумм транзакций связана с одним из счетов, который отправляет или принимает одну из сумм транзакций, и
шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций;
формирование доказательства по сумме на основе полученных зашифрованных сумм транзакций, причем доказательство по сумме, по меньшей мере, указывает то, что суммы транзакций сбалансированы; и
передачу зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции.
18. Носитель хранения данных по п. 17, в котором шифрование каждой из сумм транзакций, по меньшей мере, скрывает то, отправляет ли или принимает один счет одну из сумм транзакций, посредством сокрытия того, является ли каждая из сумм транзакций входящей или исходящей для этого одного счета.
19. Носитель хранения данных по п. 17, в котором:
перед формированием доказательства по сумме, операции дополнительно содержат получение множества доказательств по диапазону, соответственно, для счетов, предусмотренных в транзакциях, причем доказательства по диапазону, по меньшей мере, указывают то, что каждый из счетов, который отправляет суммы транзакций, имеет достаточный актив;
перед передачей зашифрованных сумм транзакций и доказательства по сумме в один или более узлов, операции дополнительно содержат получение множества подписей, соответственно, для счетов; и
передача зашифрованных сумм транзакций и доказательства по сумме в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции, содержит передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей.
20. Носитель хранения данных по п. 19, в котором передача зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков для узлов, чтобы верифицировать транзакции на основе зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей, содержит:
передачу зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей в один или более узлов в сети цепочек блоков; и
предписание узлам:
проверять достоверность зашифрованных сумм транзакций, доказательств по диапазону, доказательства по сумме и подписей,
выполнять транзакции в ответ на успешную верификацию транзакций, и
добавлять транзакции в новый блок данных цепочки блоков, поддерживаемой посредством сети цепочек блоков.
CN 107392603 A, 24.11.2017 | |||
WO 2016200885 A1, 15.12.2016 | |||
ЗАЩИЩЕННАЯ ОБРАБОТКА УДАЛЕННЫХ ПЛАТЕЖНЫХ ТРАНЗАКЦИЙ, ВКЛЮЧАЮЩАЯ В СЕБЯ АУТЕНТИФИКАЦИЮ ПОТРЕБИТЕЛЕЙ | 2014 |
|
RU2663476C2 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
CN 106982205 A, 25.07.2017. |
Авторы
Даты
2020-05-15—Публикация
2018-12-29—Подача