RU2729595C1 - Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением - Google Patents

Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением Download PDF

Info

Publication number
RU2729595C1
RU2729595C1 RU2019111891A RU2019111891A RU2729595C1 RU 2729595 C1 RU2729595 C1 RU 2729595C1 RU 2019111891 A RU2019111891 A RU 2019111891A RU 2019111891 A RU2019111891 A RU 2019111891A RU 2729595 C1 RU2729595 C1 RU 2729595C1
Authority
RU
Russia
Prior art keywords
account
transaction
amount
commitment
banknotes
Prior art date
Application number
RU2019111891A
Other languages
English (en)
Inventor
Баоли МА
Вэньбинь ЧЖАН
Хуаньюй МА
Чжэн Лю
Личунь ЛИ
Original Assignee
Алибаба Груп Холдинг Лимитед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Алибаба Груп Холдинг Лимитед filed Critical Алибаба Груп Холдинг Лимитед
Application granted granted Critical
Publication of RU2729595C1 publication Critical patent/RU2729595C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Изобретение относится к проверке достоверности согласно модели на основе банкнот на счетах. Технический результат заключается в возможности записи транзакций без раскрытия информации о суммах, связанных со счетами пользователя. Указанный результат достигается за счет приема, с первого счета, копии с цифровой подписью множества банкнот, обязательства суммы транзакции для транзакции между первым счетом и вторым счетом, оплаченной посредством, по меньшей мере, части из множества банкнот, обязательства сдачи из вычитания суммы транзакции из полной стоимости множества банкнот и доказательства с нулевым разглашением, сформированного на основе одного или более выбранных случайных чисел. Определяют то, что полная стоимость множества банкнот равна сумме суммы транзакции и сдачи, проверяют достоверность транзакции и обновляют первый счет и второй счет на основе множества банкнот, суммы транзакции и сдачи. 3 н. и 15 з.п. ф-лы, 5 ил.

Description

Уровень техники
[0001] Сети цепочек блоков, которые также могут упоминаться как системы цепочек блоков, консенсусные сети, сети на основе системы распределенных реестров или цепочка блоков, позволяют участвующим объектам защищенно и неизменно сохранять данные. Цепочка блоков может описываться как реестр транзакций, и множественные копии цепочки блоков сохраняются в сети цепочек блоков. Примерные типы цепочек блоков могут включать в себя открытые цепочки блоков, консорциальные цепочки блоков и закрытые цепочки блоков. Открытая цепочка блоков является открытой для всех объектов для использования этой цепочки блоков и участия в консенсусном процессе. Консорциальная цепочка блоков представляет собой цепочку блоков, в которой консенсусный процесс управляется посредством заранее выбранного набора узлов, таких как некоторые организации или учреждения. Закрытая цепочка блоков предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись.
[0002] Цепочки блоков используются в криптовалютных сетях, которые позволяют участникам проводить транзакции, чтобы покупать/продавать товары/услуги с использованием криптовалюты. Общая криптовалюта включает в себя биткоин. В криптовалютных сетях, модели ведения записей используются для того, чтобы записывать транзакции между пользователями. Примерные модели ведения записей включают в себя модель на основе непотраченного вывода по транзакциям (UTXO) и модель на основе баланса счетов. В UTXO-модели, каждая транзакция тратит вывод из предшествующих транзакций и формирует новые выводы, которые могут тратиться в последующих транзакциях. Непотраченные транзакции пользователя отслеживаются, и баланс, который должен тратить пользователь, вычисляется как сумма непотраченных транзакций. В модели на основе баланса счетов, баланс счета каждого пользователя отслеживается как глобальное состояние. Для каждой транзакции, баланс затратного счета проверяется, чтобы удостоверяться в том, что он превышает или равен сумме транзакции. Это является сравнимым с традиционным банковским делом.
[0003] Цепочка блоков включает в себя последовательность блоков, каждый из которых содержит одну или более транзакций, выполняемых в сети. Каждый блок может быть аналогичным странице реестра, в то время как сама цепочка блоков является полной копией реестра. Отдельные транзакции подтверждаются и добавляются в блок, который добавляется в цепочку блоков. Копии цепочки блоков реплицируются в узлах сети. Таким образом, предусмотрен глобальный консенсус в отношении состояния цепочки блоков. Кроме того, цепочка блоков является открытой для наблюдения посредством всех узлов, по меньшей мере, в случае открытых сетей. Чтобы защищать конфиденциальность пользователей цепочек блоков, реализуются технологии шифрования.
[0004] Согласно модели на основе баланса счетов схемы обязательств могут использоваться для того, чтобы маскировать значения, на которые обе стороны транзакции дают обязательства. Схемы обязательств могут возникать в силу потребности для сторон давать обязательства выбора или значения и впоследствии передавать это значение другим участвующим сторонам. Например, в интерактивной схеме Обязательств Педерсена (PC), первый пользователь может давать обязательство на сумму t транзакции посредством отправки значения PC(t, r) обязательств, которое формируется на основе случайного значения r. Значение обязательств формируется, и второй пользователь может раскрывать сумму t транзакции только посредством получения случайного числа r. Чтобы обеспечивать то, что сумма транзакции является достоверной, доказательство по диапазону может создаваться, чтобы доказывать то, что сумма транзакции превышает или равна нулю и меньше или равна балансу счета.
[0005] В некоторых случаях множественные транзакции могут проводиться от пользователя. Поскольку доказательство по диапазону ассоциировано с оставшимся балансом счета, важно, что множественные транзакции верифицируются последовательно в цепочке блоков. В связи с этим, соответствующие доказательства по диапазону могут быть корректно ассоциированы с оставшимися балансами счета после каждой транзакции.
Сущность изобретения
[0006] Реализации настоящего раскрытия сущности включают в себя машинореализованные способы для неинтерактивных верификаций с сохранением конфиденциальности транзакций с цепочками блоков с доказательством с нулевым разглашением на основе модели на основе банкнот на счетах. Более конкретно, реализации настоящего раскрытия сущности направлены на проверку достоверности транзакций между счетами цепочек блоков согласно модели на основе банкнот на счетах. В некоторых реализациях, в модели на основе банкнот на счетах, баланс счетов сохраняется в качестве агрегирования банкнот. В соответствии с реализациями настоящего раскрытия сущности, проверка достоверности транзакций может выполняться на основе схем обязательств и схемы шифрования с открытым ключом или схемы интегрированного шифрования без раскрытия суммы транзакции, стоимости банкноты или случайных чисел для формирования обязательств.
[0007] В некоторых реализациях действия включают в себя прием, с первого счета, копии с цифровой подписью множества идентификаторов (ID) банкноты, идентифицирующих соответствующее множество банкнот, обязательства суммы транзакции для транзакции между первым счетом и вторым счетом, оплаченной посредством, по меньшей мере, части из множества банкнот, обязательства сдачи из вычитания суммы транзакции из полной стоимости множества банкнот, первого случайного числа, используемого, чтобы формировать обязательство суммы транзакции, зашифрованной посредством открытого ключа второго счета, суммы транзакции, зашифрованной посредством открытого ключа второго счета, второго случайного числа, используемого, чтобы формировать обязательство сдачи, зашифрованной посредством открытого ключа первого счета, сдачи, зашифрованной посредством открытого ключа первого счета, одного или более доказательств по диапазону и доказательства с нулевым разглашением, сформированного на основе одного или более выбранных случайных чисел; верификацию цифровой подписи, соответствующей копии с цифровой подписью, с использованием открытого ключа первого счета; определение того, что одно или более доказательств по диапазону доказывают то, что сумма транзакции и сдача превышают или равны нулю; определение того, что полная стоимость множества банкнот равна сумме суммы транзакции и сдачи; определение того, является или нет сумма транзакции в обязательстве идентичной сумме транзакции, которая шифруется, и того, является или нет случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, идентичным первому случайному числу; и обновление первого счета и второго счета на основе множества банкнот, суммы транзакции и сдачи, если сумма транзакции в обязательстве является идентичной сумме транзакции, которая шифруется, и случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, является идентичным первому случайному числу. Другие реализации включают в себя соответствующие системы, оборудование и компьютерные программы, выполненные с возможностью выполнять действия способов, кодированных на компьютерных устройствах хранения данных.
[0008] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: каждая из множества банкнот включает в себя одно или более из типа банкнот, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством шифрования с открытым ключом или интегрированного шифрования, и случайного числа, используемого для того, чтобы формировать обязательство, зашифрованное посредством шифрования с открытым ключом или интегрированного шифрования; определение того, что каждая из множества банкнот имеет идентичный тип банкнот; обязательство суммы транзакции, обязательство сдачи и обязательство стоимости банкноты формируются с использованием схемы обязательств, которая является гомоморфной; определение, равна или нет полная стоимость множества банкнот сумме суммы транзакции и сдачи, основано на сравнении суммы обязательства каждой стоимости банкноты и суммы обязательства суммы транзакции и обязательства сдачи; каждый из множества идентификаторов банкнот включает в себя адрес транзакции и числовой индекс, указывающий порядок соответствующей банкноты в выводе по транзакциям, и при этом адрес транзакции формируется посредством хэширования информации транзакций для транзакции; определение того, что каждый из множества идентификаторов банкнот ассоциирован с первым счетом; первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе шифрования Пэйе или шифрования Окамото-Учиямы; определение, является или нет сумма транзакции в обязательстве идентичной сумме транзакции, которая шифруется, и, является или нет случайное число, используемое, чтобы формировать обязательство суммы транзакции, идентичным первому случайному числу, основано на доказательстве с нулевым разглашением без взаимодействий между первым счетом и вторым счетом за пределами сети цепочек блоков.
[0009] Настоящее раскрытие сущности также предоставляет один или более невременных машиночитаемых носителей хранения данных, соединенных с одним или более процессоров и имеющих сохраненные на них инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0010] Настоящее раскрытие сущности дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и машиночитаемый носитель хранения данных, соединенный с одним или более процессоров, имеющий сохраненные на нем инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0011] Следует принимать во внимание, что способы в соответствии с настоящим раскрытием сущности могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. То есть, способы в соответствии с настоящим раскрытием сущности не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.
[0012] Подробности одной или более реализаций настоящего раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества настоящего раскрытия сущности станут очевидными из описания и чертежей, а также из формулы изобретения.
Описание чертежей
[0013] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия сущности.
[0014] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего раскрытия сущности.
[0015] Фиг. 3 иллюстрирует примерный процесс проверки достоверности с защитой конфиденциальности транзакции с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности.
[0016] Фиг. 4 иллюстрирует примерную транзакцию с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности.
[0017] Фиг. 5 иллюстрирует примерный процесс, который может выполняться в соответствии с реализациями настоящего раскрытия сущности.
[0018] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.
Подробное описание изобретения
[0019] Реализации настоящего раскрытия сущности включают в себя машинореализованные способы для неинтерактивных верификаций с защитой конфиденциальности транзакций с цепочками блоков с доказательством с нулевым разглашением на основе модели на основе банкнот на счетах. Более конкретно, реализации настоящего раскрытия сущности направлены на проверку достоверности транзакций между счетами цепочек блоков согласно модели на основе банкнот на счетах. В некоторых реализациях в модели на основе банкнот на счетах, балансы счетов сохраняются в качестве агрегирования банкнот. В соответствии с реализациями настоящего раскрытия сущности, проверка достоверности транзакций может выполняться на основе схем обязательств и схемы шифрования с открытым ключом или схемы интегрированного шифрования без раскрытия суммы транзакции, стоимости банкноты или случайных чисел для формирования обязательств. В некоторых реализациях действия включают в себя прием, с первого счета, копии с цифровой подписью множества идентификаторов (ID) банкноты, идентифицирующих соответствующее множество банкнот, обязательства суммы транзакции для транзакции между первым счетом и вторым счетом, оплаченной посредством, по меньшей мере, части из множества банкнот, обязательство сдачи из вычитания суммы транзакции из полной стоимости множества банкнот, первого случайного числа, используемого для того, чтобы формировать обязательство суммы транзакции, зашифрованной посредством открытого ключа второго счета, суммы транзакции, зашифрованной посредством открытого ключа второго счета, второго случайного числа, используемого для того, чтобы формировать обязательство сдачи, зашифрованной посредством открытого ключа первого счета, сдачи, зашифрованной посредством открытого ключа первого счета, одного или более доказательств по диапазону и доказательства с нулевым разглашением, сформированного на основе одного или более выбранных случайных чисел; верификацию цифровой подписи, соответствующей копии с цифровой подписью, с использованием открытого ключа первого счета; определение того, что одно или более доказательств по диапазону доказывают то, что сумма транзакции и сдача превышают или равны нулю; определение того, что полная стоимость множества банкнот равна сумме суммы транзакции и сдачи; определение того, является или нет сумма транзакции в обязательстве идентичной сумме транзакции, которая шифруется, и того, является или нет случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, идентичным первому случайному числу; и обновление первого счета и второго счета на основе множества банкнот, суммы транзакции и сдачи, если сумма транзакции в обязательстве является идентичной сумме транзакции, которая шифруется, и случайное число, используемое, чтобы формировать обязательство суммы транзакции, является идентичным первому случайному числу.
[0020] Чтобы предоставлять дополнительный контекст для реализаций настоящего раскрытия сущности, и как представлено выше, сети цепочек блоков, которые также могут упоминаться как консенсусные сети (например, состоящие из равноправных узлов), система распределенных реестров или просто цепочка блоков, позволяют участвующим объектам защищенно и неизменно проводить транзакции и сохранять данные. Цепочка блоков может предоставляться в качестве открытой цепочки блоков, закрытой цепочки блоков или консорциальной цепочки блоков. Реализации настоящего раскрытия сущности подробнее описываются в данном документе со ссылкой на открытую цепочку блоков, которая является открытой между участвующими объектами. Однако, предполагается, что реализации настоящего раскрытия сущности могут быть реализованы в любом соответствующем типе цепочки блоков.
[0021] В открытой цепочке блоков консенсусный процесс управляется посредством узлов консенсусной сети. Например, сотни, тысячи, даже миллионы объектов могут участвовать в открытой цепочке блоков, каждый из которых управляет по меньшей мере одним узлом в открытой цепочке блоков. Соответственно, открытая цепочка блоков может считаться открытой сетью относительно участвующих объектов. В некоторых примерах, большинство объектов (узлов) должно подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. Примерная открытая цепочка блоков включает в себя цепочку блоков, используемую в сеть биткоинов, которая представляет собой платежную сеть между равноправными узлами (криптовалютную сеть). Хотя термин "цепочка блоков" обычно упоминается при рассмотрении сети биткоинов, при использовании в данном документе, цепочка блоков, в общем, означает распределенные реестры без конкретной ссылки на сеть биткоинов.
[0022] В общем, открытая цепочка блоков поддерживает открытые транзакции. Открытая транзакция совместно используется всеми узлами в цепочке блоков, и цепочка блоков реплицируется по всем узлам. То есть, все узлы находятся в состоянии идеального консенсуса относительно цепочки блоков. Чтобы достигать консенсуса (например, соглашения на добавление блока в цепочку блоков), консенсусный протокол реализуется в сети цепочек блоков. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (POW), реализованное в сети биткоинов.
[0023] В дальнейшем подробнее описываются реализации настоящего раскрытия сущности в данном документе с учетом вышеизложенного контекста. Более конкретно, и как представлено выше, реализации настоящего раскрытия сущности направлены на проверку достоверности транзакций между счетами цепочек блоков согласно модели на основе банкнот на счетах, в которой баланс счетов сохраняется в качестве агрегирования банкнот. В некоторых реализациях, и как подробнее описано в данном документе, проверка достоверности транзакций может выполняться на основе схем обязательств и без раскрытия суммы транзакции, стоимости банкноты или случайных чисел для формирования обязательств.
[0024] Согласно реализациям настоящего раскрытия сущности узлы цепочки блоков могут использовать модель на основе банкнот на счетах в качестве способа ведения записей. По сравнению с моделью на основе баланса счетов, узлы цепочки блоков, которые приспосабливают модель на основе банкнот на счетах, ведут записи множества банкнот вместо балансов счетов. Каждая из множества банкнот ассоциирована с типом банкноты и стоимостью банкноты. Тип банкноты может представлять собой тип валюты или актива, ассоциированного с банкнотой. Тип валюты может представлять собой любой тип реальной валюты или криптовалюты. Стоимость банкноты может указывать номинальную стоимость банкноты с соответствующим типом банкноты.
[0025] Чтобы защищать конфиденциальность данных, транзакции могут записываться в цепочку блоков (реестр) на основе обязательства без раскрытия информации сумм транзакций или денежных сумм, ассоциированной со счетами пользователей цепочек блоков. Схема обязательства может использоваться для того, чтобы формировать обязательство суммы транзакции с использованием случайного числа. Примерная схема обязательства включает в себя, без ограничения, схему обязательства Педерсена (PC). Поскольку сумма транзакции маскируется в обязательстве, одно или более доказательств по диапазону могут использоваться для того, чтобы доказывать, что сумма транзакции не превышает стоимость счета пользователя цепочек блоков.
[0026] Согласно модели на основе баланса счетов, доказательства по диапазону ассоциированы с балансом счета. Если проведено более одной транзакции, но не все транзакции проходят проверку достоверности и записываются в цепочке блоков, доказательства по диапазону могут быть ассоциированы с некорректными балансами счетов, в силу чего могут быть недостоверными. Для сравнения, согласно модели на основе банкнот на счетах, стоимость счета вычисляется посредством суммы множества банкнот. Когда сумма транзакции должна переводиться между счетами пользователей цепочек блоков, часть из множества банкнот с комбинированной стоимостью, большей или равной сумме транзакции, может использоваться для того, чтобы осуществлять перевод. Дополнительные переводы могут осуществляться при таком условии, что оставшиеся банкноты имеют комбинированную стоимость, большую суммы, которая должна переводиться. В связи с этим, даже если транзакции не проходят проверку достоверности и записываются в цепочке блоков, доказательства по диапазону, показывающие то, что комбинированная стоимость оставшихся банкнот превышает или равна сумме транзакции, по-прежнему могут быть достоверным.
[0027] Чтобы проверять достоверность транзакции между пользователем A (узлом) и пользователем B (узлом), например, сумма транзакции и случайное число могут шифроваться пользователем A с использованием схемы шифрования с открытым ключом (например, Эль-Гамаля) или схемы интегрированного шифрования (например, ECIES) на основе открытого ключа пользователя B. Сумма транзакции и случайное число также могут использоваться для того, чтобы формировать доказательство с нулевым разглашением (ZKP) для проверки достоверности транзакции. Обязательство транзакции, зашифрованной суммы транзакции, зашифрованного случайного числа и ZKP может использоваться посредством узла цепочки блоков для того, чтобы верифицировать то, является или нет транзакция достоверной. Во время процесса проверки достоверности, баланс счета, сумма транзакции или случайное число не должны обязательно раскрываться или отправляться пользователю B.
[0028] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться, чтобы выполнять реализации настоящего раскрытия сущности. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в открытой цепочке 102 блоков. Примерное окружение 100 включает в себя вычислительные системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-сайты, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.
[0029] В проиллюстрированном примере каждая из вычислительных систем 106, 108 может включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в открытой цепочке 102 блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают на своих ресурсах одну или более машинореализованных услуг для взаимодействия с открытой цепочкой 102 блоков. Например, вычислительная система 106 может размещать на своих ресурсах машинореализованные услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может размещать на своих ресурсах машинореализованные услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, открытая цепочка 102 блоков представляется как сеть с равноправными узлами узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта соответственно, которые участвуют в открытой цепочке 102 блоков.
[0030] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего раскрытия сущности. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления размещенных на своих ресурсах услуг и уровень 206 открытых цепочек блоков. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект_1 (E1), объект_2 (E2) и объект_3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.
[0031] В проиллюстрированном примере уровень 204 предоставления размещенных на своих ресурсах услуг включает в себя интерфейсы 210 цепочек блоков для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 цепочек блоков по сети (например, по сети 110 по фиг. 1) с использованием протокола связи (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 цепочек блоков предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 цепочек блоков. Более конкретно, каждый интерфейс 210 цепочек блоков обеспечивает возможность соответствующему объекту проводить транзакции, записываемые в сети 212 цепочек блоков уровня 206 цепочек блоков. В некоторых примерах, связь между интерфейсом 210 цепочек блоков и уровнем 206 цепочек блоков проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 цепочек блоков "хостят" (размещают на своих ресурсах) узлы цепочек блоков для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 цепочек блоков предоставляют интерфейс прикладного программирования (API) для доступа к сети 212 цепочек блоков.
[0032] Как описано в данном документе, сеть 212 цепочек блоков предоставляется в качестве сети с равноправными узлами, включающей в себя множество узлов 214, которые неизменно записывают информацию в цепочку 216 блоков. Хотя одна цепочка 216 блоков схематично проиллюстрирована, множественные копии цепочки 216 блоков предоставляются и поддерживаются через сеть 212 цепочек блоков. Например, каждый узел 214 сохраняет копию цепочки 216 блоков. В некоторых реализациях цепочка 216 блоков сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более объектов, участвующих в открытой цепочке блоков.
[0033] Фиг. 3 иллюстрирует примерный способ 300 проверки достоверности с защитой конфиденциальности транзакции с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности. На высоком уровне, примерный способ 300 осуществляется посредством пользовательского узла A 302, пользовательского узла B (не показан на фиг. 3) и узла 304 цепочки блоков, также называемого консенсусным узлом. Как счет пользовательского узла A 302, так и счет пользовательского узла основаны на модели на основе банкнот на счетах. То есть, валюты пользовательского узла A 302 и пользовательского узла B сохраняются в качестве множества банкнот. Транзакция, такая как перевод стоимости, может проводиться из пользовательского узла A 302 в пользовательский узел B. Пользовательский узел A 302 может выбирать набор банкнот со своего счета для того, чтобы покрывать сумму транзакции. Разность между полной стоимостью набора банкнот и суммой транзакции может вычисляться как сдача пользовательского узла A 302.
[0034] Чтобы защищать конфиденциальность счета, пользовательский узел A 302 может формировать обязательство суммы t транзакции с использованием схемы обязательств, такой как PC, на основе случайного числа r. Пользовательский узел A 302 может шифровать сумму транзакции и случайное число с использованием схемы шифрования с открытым ключом или схемы интегрированного шифрования на основе открытого ключа пользовательского узла B. Пользовательский узел A 302 также может шифровать сдачу и случайное число, соответствующие сдаче, с использованием схемы шифрования с открытым ключом или схемы интегрированного шифрования на основе открытого ключа пользовательского узла A. Чтобы верифицировать законность транзакции, узел 304 цепочки блоков может верифицировать зашифрованную сумму транзакции и случайное число с соответствующей суммой транзакции и случайным числом в обязательстве на основе ZKP. Если суммы транзакций и случайные числа совпадают, транзакция определяется в качестве достоверной посредством узла 304 цепочки блоков. Дополнительные сведения по примерному способу 300 пояснены в нижеприведенном описании по фиг. 3.
[0035] На этапе 306 пользовательский узел A 302 выбирает множество банкнот для перевода суммы транзакции в пользовательский узел B. Пользовательский узел A 302 и пользовательский узел B могут представлять собой консенсусный узел цепочки блоков или пользовательские узлы, которые используют сеть цепочек блоков без участия в консенсусном процессе. Как пояснено выше, пользовательский узел A 302 может использовать модель на основе банкнот на счетах для того, чтобы вести записи. Вместо ведения баланса счета для записи согласно модели на основе баланса счетов, стоимость счета пользовательского узла A 302 измеряется посредством полной стоимости его банкнот. Пользовательский узел A 302 может выбирать множество банкнот из банкнот, которые он имеет, которых достаточно для того, чтобы покрывать сумму транзакции. Например, если сумма транзакции составляет 7,5 биткоинов, пользовательский узел A 302 может выбирать три банкноты, которые стоят 5, 2 и 1 биткоин, соответственно, чтобы покрывать сумму транзакции.
[0036] В некоторых реализациях каждая банкнота может иметь тип банкнот, который идентифицирует тип валюты или актив банкноты. Каждая банкнота также может иметь идентификатор банкноты, который включает в себя идентификатор транзакции и числовой индекс. Идентификатор транзакции может представлять собой хэширование информации транзакций. Индекс может указывать порядок соответствующей банкноты в выводе по транзакциям. Например, при отправке трех сообщений с суммой банкноты в 5, 2 и 1 биткоин, банкнота в 2 биткоина может представлять собой второй вывод по транзакциям с числовым индексом в 2. В некоторых примерах, k банкнот выбираются, их типы банкнот и идентификаторы банкнот могут выражаться как NoteType1, NoteIda1,..., NoteTypek, NoteIdak. В некоторых примерах, идентичный тип банкнот может выбираться, чтобы выполнять перевод суммы транзакции. В некоторых случаях, идентификаторы банкнот, соответствующие сдаче и сумме транзакции, не могут получаться до того, как создается транзакция. В таких случаях, упомянутые идентификаторы банкнот могут формироваться на основе контракта на использование цепочек блоков, который позволяет выполнять обновления консенсуса и контрактов.
[0037] На этапе 308 пользовательский узел A 302 вычисляет сдачу на основе полной стоимости множества банкнот и суммы транзакции. Поскольку банкноты выбираются таким образом, чтобы иметь полную стоимость, превышающую сумму транзакции, сдача может вычисляться как полная стоимость выбранных банкнот, из которой вычтена сумма транзакции. С использованием t для того, чтобы представлять сумму транзакции, и t0 для того, чтобы представлять сдачу, вычисление сдачи может выражаться как t0=a1+...+ak-t, где a1,..., ak являются стоимостями банкнот для k банкнот, выбранных посредством пользовательского узла A 302 для того, чтобы покрывать сумму t транзакции.
[0038] На этапе 310 пользовательский узел A 302 формирует множество случайных чисел, соответствующих множеству банкнот, и вычисляет случайное число, соответствующее сдаче. Множество случайных чисел могут формироваться для того, чтобы формировать обязательства стоимостей банкнот. Например, a1,..., ak являются стоимостями банкнот, и случайные числа, которые соответствуют стоимостям банкнот, могут выражаться как ra1,..., rak. Обязательства банкнот могут выражаться как PC(ra1, a1),..., PC(rak, ak).
[0039] В некоторых реализациях случайное число r0 может вычисляться таким образом, что оно соответствует сдаче t0. Вычисление может выражаться как r0=ra1+...+rak-r, где r является случайным числом, сформированным с возможностью формировать обязательство для суммы t транзакции. Посредством вычисления r0, пользовательский узел A 302 не должен формировать дополнительное ZKP, чтобы показывать то, что полная стоимость переведенных банкнот равна полной стоимости принимаемых банкнот.
[0040] На этапе 312 пользовательский узел A 302 формирует обязательства и зашифрованные с открытым ключом зашифрованные тексты суммы транзакции и сдачи. Чтобы защищать конфиденциальность данных, денежные стоимости, включающие в себя стоимость банкнот, сумму транзакции и сдачу, могут маскироваться посредством обязательств на основе схем обязательств. Цепочка блоков может сохранять обязательства в качестве записи. В некоторых реализациях гомоморфные схемы обязательств, такие как PC, могут использоваться для того, чтобы формировать обязательства. С использованием PC в качестве неограничивающего примера, PC транзакции t может формироваться посредством использования случайного числа r, которое может выражаться как T=PC(r, t)=g r h t , где g и h могут быть генераторами эллиптической кривой, и PC(r, t) является скалярным умножением точек кривой. Следует понимать, что другие схемы обязательств на основе HE, такие как схема обязательства Фуджисаки-Окамото, также могут использоваться для того, чтобы формировать значение обязательства.
[0041] Сумма транзакции и случайное число также могут шифроваться с использованием открытого ключа пользовательского узла B. Шифрование может быть основано на схеме шифрования с открытым ключом, такой как алгоритм Пэйе или Эль-Гамаля, или на схеме интегрированного шифрования, такой как ECIES. В связи с этим, пользовательский узел B может использовать свой соответствующий закрытый ключ для того, чтобы раскрывать сумму транзакции и случайное число. Зашифрованное с открытым ключом случайное число и сумма транзакции могут выражаться как PB=E(PkB, r), QB=E(PkB, t), соответственно, где PkB представляет открытый ключ пользовательского узла B.
[0042] Аналогично, обязательство сдачи может выражаться как T0=PC(r0, t0). Случайное число r0 и сумма сдачи t0 также могут шифроваться посредством открытого ключа пользовательского узла A 302, выражаемого как PA=E(PkA, r0), QA=E(PkA, t0), соответственно, где PkA представляет открытый ключ пользовательского узла A 302.
[0043] На этапе 314 пользовательский узел A 302 формирует одно или более доказательств по диапазону. В некоторых реализациях первое доказательство по диапазону, RP1, может формироваться для того, чтобы показывать, что сумма транзакции t≥0. Второе доказательство по диапазону, RP2, может формироваться для того, чтобы показывать, что сдача t0≥0, или другими словами, то, что полная стоимость множества банкнот превышает или равна сумме транзакции.
[0044] На этапе 316 пользовательский узел A 302 формирует ZKP. В некоторых реализациях ZKP может использоваться для того, чтобы доказывать, что случайное число r и сумма t транзакции, включенные в PB и QB, равны соответствующему случайному числу и сумме транзакции, включенным в обязательство T. В некоторых реализациях ZKP может формироваться с использованием сжатого неинтерактивного аргумента знаний с нулевым разглашением (zk-SNARK).
[0045] На этапе 318 пользовательский узел A 302 использует закрытый ключ для того, чтобы формировать цифровую подпись данных транзакции. В некоторых реализациях данные транзакции могут включать в себя NoteType1, NoteIda1,..., NoteTypek, NoteIdak; T0, T, PB, QB, PA, QA, RP1, RP2 и ZKP.
[0046] На этапе 320 пользовательский узел A 302 отправляет копию с цифровой подписью данных транзакции в сеть цепочек блоков.
[0047] На этапе 322 узел 304 цепочки блоков верифицирует цифровую подпись. Верификация цифровой подписи может обеспечивать, что данные транзакции отправляются посредством пользовательского узла A 302.
[0048] На этапе 324 узел 304 цепочки блоков верифицирует тип банкнот из множества банкнот. Другими словами, узел 304 цепочки блоков верифицирует, что NoteType1 - NoteTypek являются идентичными.
[0049] На этапе 326 узел 304 цепочки блоков верифицирует то, что полная стоимость выбранного множества банкнот равна сумме суммы транзакции и сдачи. Другими словами, цепочка блоков верифицирует то, что a1+...+ak=t+t0. Как пояснено выше, согласно модели на основе банкнот на счетах, банкноты могут сохраняться в цепочке блоков в качестве PC, чтобы защищать конфиденциальность данных. На основе гомоморфизма PC, PC(ra1, a1)+...+PC(rak, ak)=PC(ra1+...+rak, a1+...+ak) и PC(r, t)+PC(r0, t0)=PC(r+r0, t+t0). Следовательно, посредством показа того, что PC(ra1, a1)+...+PC(rak, ak)=PC(r, t)+PC(r0, t0), можно доказывать то, что a1+...+ak=t+t0.
[0050] На этапе 328 узел 304 цепочки блоков верифицирует одно или более доказательств по диапазону.
[0051] На этапе 330 узел 304 цепочки блоков верифицирует ZKP, если ZKP успешно верифицируется, сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, доказываются как идентичные соответствующей сумме транзакции и случайному числу, маскированным посредством PC. Как пояснено выше, ZKP может формироваться с использованием zk-SNARK.
[0052] В некоторых реализациях ZKP также может формироваться на основе сигма-протоколов. С использованием шифрования с открытым ключом Пэйе в качестве примера, PB и QB могут выражаться как PB=E(PkB, r)=uryn, QB=E(Pk, t)=utzn, соответственно, где u и n являются открытыми ключами, y, и z являются случайными числами.
[0053] Чтобы формировать ZKP на основе сигма-протоколов, пользовательский узел A 302 может формировать четыре дополнительных случайных числа, r*, t*, y* и z*, чтобы вычислять три зашифрованных текста C, D и E. C, D и E может выражаться как C=gr*ht*, D=ur*y*n и E=ut*z*n. Хэшированное значение x может вычисляться посредством хэширования T, PB, QB, g, h, u, n, C, D и E, что может выражаться как x=Hash(T, PB, QB, g, h, u, n, C, D, E). Четыре дополнительных зашифрованных текста a, b, c и d могут вычисляться как a=r*+xr, b=t*+xt, c=y*yx, d=z*zx. В завершение, ZKP может формироваться в качестве ZKP=(C, D, E, a, b, c, d).
[0054] Чтобы верифицировать ZKP, узел 304 цепочки блоков может сначала вычислять x=Hash(T, PB, QB, g, h, u, n, C, D, E). Узел 304 цепочки блоков может верифицировать то, удовлетворяется или нет gahb=CTx, uacn=DPx и ubdn=EQx. Если да, ZKP верифицируется, и доказано то, что сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, являются идентичными соответствующей сумме транзакции и случайному числу, маскированным посредством PC.
[0055] В другом примере OU-шифрование с открытым ключом может использоваться для того, чтобы шифровать сумму транзакции и случайное число. PB и QB могут выражаться как PB=E(PkB, r)=urvy, QB=E(Pk, t)=utvz, соответственно, где u, v и n являются открытыми ключами, r, y, и z являются случайными числами.
[0056] Чтобы формировать ZKP на основе сигма-протоколов, пользовательский узел A 302 может формировать четыре дополнительных случайных числа, r*, t*, y* и z*, чтобы вычислять три зашифрованных текста C, D и E. Зашифрованные тексты C, D и E могут вычисляться как C=gr*ht*, D=ur*v*y и E=ut*v*z. Хэшированное значение x может вычисляться посредством хэширования T, PB, QB, g, h, u, v, n, C, D и E, что может выражаться как x=Hash(T, PB, QB, g, h, u, v, n, C, D, E). Четыре дополнительных зашифрованных текста a, b, c и d могут вычисляться как a=r*+xr, b=t*+xt, c=y*+xy, d=z*+xz. В завершение, ZKP может формироваться в качестве ZKP=(C, D, E, a, b, c, d).
[0057] Чтобы верифицировать ZKP, узел 304 цепочки блоков может вычислять x=Hash(T, PB, QB, g, h, u, v, n, C, D, E). Узел 304 цепочки блоков может верифицировать то, удовлетворяется или нет gahb=CTx, uavc=DPx и ubvd=EQx. Если да, ZKP верифицируется, и доказано, что сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, являются идентичными соответствующей сумме транзакции и случайному числу, маскированным посредством PC.
[0058] На этапе 332 узел 304 цепочки блоков верифицирует то, что множество банкнот принадлежат пользовательскому узлу A 302. Верификация может быть основана на идентификаторах банкнот, NoteIdai, где i=1,..., k.
[0059] На этапе 334 узел 304 цепочки блоков обновляет счета пользовательского узла A 302 и пользовательского узла B. Поскольку счета пользовательского узла A 302 и пользовательского узла B сохраняют банкноты в качестве записей согласно модели на основе банкнот на счетах, после транзакции, множество банкнот, переведенных из пользовательского узла A 302, могут удаляться со счета пользовательского узла A 302. Сдача может добавляться обратно на счет пользовательского узла A. Сумма транзакции и соответствующий тип банкноты и идентификатор банкноты могут добавляться в качестве новой банкноты на счет пользовательского узла B. В дальнейшем подробнее описывается обновление счетов в данном документе со ссылкой на фиг. 4.
[0060] Фиг. 4 иллюстрирует примерную транзакцию 400 с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности. Как показано в примерной транзакции 400 с цепочками блоков, пользовательский узел A 402 переводит сумму t транзакции в пользовательский узел B 404. Перед транзакцией, пользовательский узел A 402 имеет m банкнот, включающих в себя NoteIda1, PC(ra1, a1), E(PkA, ra1), E(PkA, a1); NoteIda2, PC(ra2, a2), E(PkA, ra2), E(PKA, a2);...; NoteIdam, PC(ram, am), E(PkA, ram), E(PKA, am).
[0061] С использованием схем обязательств, схем шифрования и процесса проведения транзакций, описанных в данном документе со ссылкой на фиг. 3, в качестве примера, пользовательский узел A 402 формирует данные 408 транзакции, которые могут включать в себя идентификаторы банкнот для k выбранных банкнот, и их тип, выражаемый как NoteType1, NoteIda1,..., NoteTypek, NoteIdak. Данные 408 транзакции дополнительно могут включать в себя T0, T, PB, QB, PA, QA, RP1, RP2 и ZKP. После того, как данные 408 транзакции формируются, пользовательский узел A 402 может добавлять свою цифровую подпись и отправлять данные транзакции с цифровой подписью в сеть 406 цепочек блоков для консенсуса.
[0062] После транзакции k выбранных банкнот могут удаляться со счета пользовательского узла 402. Сдача может добавляться обратно в пользовательский узел A 402. Следовательно, пользовательский узел A 402 может иметь следующие банкноты, выражаемые как NoteIda(k+1), PC(ra(k+1), a(k+1)), E(PkA, ra(k+1)), E(PkA, a(k+1)),..., NoteIdam, PC(ram, am), E(PkA, ram), E(PkA, am), NoteIda(m+1), PC(r0, t0), E(PkA, r0), E(PkA, t0), где NoteIda(m+1) представляет идентификатор банкноты сдачи t0.
[0063] Перед транзакцией пользовательский узел B 404 имеет m банкнот, которые могут выражаться как NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1); NoteIdb2, PC(rb2, b2), E(PkB, rb2), E(PkB, b2);...; NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm). После транзакции, сумма транзакции может добавляться в пользовательский узел B 404. Пользовательский узел B 404 может иметь следующие банкноты, выражаемые как NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1),..., NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm), NoteIdb(m+1), PC(r, t), E(PkB, r), E(PkB, t), где NoteIdb(m+1) представляет идентификатор банкноты суммы t транзакции.
[0064] Фиг. 5 иллюстрирует примерный процесс 500, который может выполняться в соответствии с реализациями настоящего раскрытия сущности. Для ясности представления, нижеприведенное описание, в общем, описывает примерный процесс 500 в контексте других чертежей в этом описании. Тем не менее, следует понимать, что примерный процесс 500 может выполняться, например, посредством любой системы, окружения, программного обеспечения и аппаратных средств либо комбинации систем, окружений, программного обеспечения и аппаратных средств, надлежащим образом. В некоторых реализациях различные этапы примерного процесса 500 могут выполняться параллельно, в комбинации, циклически или в любом порядке.
[0065] На этапе 502 консенсусный узел принимает, с первого счета, копию с цифровой подписью множества идентификаторов банкнот, идентифицирующих соответствующее множество банкнот. В некоторых примерах, консенсусные узлы дополнительно могут принимать обязательство суммы транзакции для транзакции между первым счетом и вторым счетом, оплаченной посредством, по меньшей мере, части из множества банкнот. В некоторых примерах, консенсусные узлы дополнительно могут принимать обязательство сдачи из вычитания суммы транзакции из полной стоимости множества банкнот. В некоторых примерах, консенсусные узлы дополнительно могут принимать первое случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, зашифрованной посредством открытого ключа второго счета, и сумму транзакции, зашифрованную посредством открытого ключа второго счета. В некоторых примерах, консенсусный узел дополнительно может принимать второе случайное число, используемое для того, чтобы формировать обязательство сдачи, зашифрованной посредством открытого ключа первого счета, сдачу, зашифрованную посредством открытого ключа первого счета, одно или более доказательств по диапазону и доказательство с нулевым разглашением, сформированное на основе одного или более выбранных случайных чисел.
[0066] В некоторых реализациях каждая из множества банкнот включает в себя одно или более из типа банкнот, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством схемы шифрования с открытым ключом или схемы интегрированного шифрования, и случайного числа, используемого для того, чтобы формировать обязательство, зашифрованное посредством схемы шифрования с открытым ключом или схемы интегрированного шифрования. В некоторых реализациях обязательство суммы транзакции, обязательство сдачи и обязательство стоимости банкноты формируются с использованием схемы обязательств, которая является гомоморфной. В некоторых реализациях каждый из множества идентификаторов банкнот включает в себя адрес транзакции и числовой индекс, указывающий порядок соответствующей банкноты в выводе по транзакциям, и при этом адрес транзакции формируется посредством хэширования информации транзакций для транзакции. В некоторых реализациях первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе схемы шифрования, к примеру, Эль-Гамаля, ECIES.
[0067] На этапе 504 консенсусный узел верифицирует цифровую подпись, соответствующую копии с цифровой подписью, с использованием открытого ключа первого счета.
[0068] На этапе 506 консенсусный узел определяет то, что одно или более доказательств по диапазону доказывают то, что сумма транзакции и сдача превышают или равны нулю.
[0069] На этапе 508 консенсусный узел определяет то, что полная стоимость множества банкнот равна сумме суммы транзакции и сдачи. В некоторых реализациях определение того, равна или нет полная стоимость множества банкнот сумме суммы транзакции и сдачи, основано на сравнении суммы обязательства каждой стоимости банкноты и суммы обязательства суммы транзакции и обязательства сдачи.
[0070] На этапе 510 консенсусный узел определяет то, является или нет сумма транзакции в обязательстве идентичной сумме транзакции, которая шифруется, и то, является или нет случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, идентичным первому случайному числу. В некоторых реализациях консенсусный узел дополнительно определяет то, что каждая из множества банкнот имеет идентичный тип банкнот. В некоторых реализациях консенсусный узел дополнительно определяет то, что каждый из множества идентификаторов банкнот ассоциирован с первым счетом. В некоторых реализациях определение того, является или нет сумма транзакции в обязательстве идентичной сумме транзакции, которая шифруется, и, является или нет случайное число, используемое, чтобы формировать обязательство суммы транзакции, идентичным первому случайному числу, основано на доказательстве с нулевым разглашением без взаимодействий между первым счетом и вторым счетом за пределами сети цепочек блоков.
[0071] На этапе 512 консенсусный узел обновляет первый счет и второй счет на основе множества банкнот, суммы транзакции и сдачи, если сумма транзакции в обязательстве является идентичной сумме транзакции, которая шифруется, и случайное число, используемое для того, чтобы формировать обязательство суммы транзакции, является идентичным первому случайному числу.
[0072] Реализации предмета изобретения, описанного в этом подробном описании, могут реализовываться таким образом, чтобы реализовывать конкретные преимущества или технические эффекты. Например, реализации настоящего раскрытия сущности разрешают балансу счета и сумме транзакции узлов цепочки блоков быть закрытыми во время транзакций. Получатель перевода денежных средств не должен обязательно подтверждать транзакцию или использовать случайное число для того, чтобы верифицировать обязательство, проверка достоверности транзакций может быть неинтерактивной. Узел цепочки блоков может проверять достоверность транзакции на основе схемы шифрования с открытым ключом и схем обязательств, чтобы обеспечивать возможность доказательства с нулевым разглашением.
[0073] Описанная технология разрешает повышение безопасности счетов/данных различного мобильного вычислительного устройства. Баланс счетов и сумм транзакций может маскироваться посредством схем обязательств. В связи с этим, консенсусный узел может обновлять баланс счетов в реестре после транзакции без раскрытия фактического баланса счета для счета. Поскольку случайное число не должно обязательно отправляться получателю, чтобы подтверждать транзакцию, риск утечки данных может уменьшаться, и меньший объем вычислительных ресурсов и ресурсов запоминающего устройства должен использоваться, чтобы управлять случайным числом.
[0074] Реализации и операции, описанные в этом подробном описании, могут реализовываться в цифровой электронной схеме или в компьютерном программном обеспечении, микропрограммном обеспечении или аппаратных средствах, включающих в себя структуры, раскрытые в этом подробном описании, либо в комбинациях одного или более из означенного. Операции могут реализовываться как операции, выполняемые посредством оборудования обработки данных для данных, сохраненных на одном или более машиночитаемых устройств хранения данных или принимаемых из других источников. Оборудование обработки данных, компьютер или вычислительное устройство может охватывать оборудование, устройства и машины для обработки данных, включающие в себя в качестве примера программируемый процессор, компьютер, внутрикристальную систему либо несколько из вышеприведенного, либо комбинации вышеприведенного. Оборудование может включать в себя логическую схему специального назначения, например, центральный процессор (CPU), программируемую пользователем вентильную матрицу (FPGA) или специализированную интегральную схему (ASIC). Оборудование также может включать в себя код, который создает окружение выполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базами данных, операционную систему (например, операционную систему или комбинацию операционных систем), кросс-платформенное окружение выполнения, виртуальную машину либо комбинацию одного или более из означенного. Оборудование и окружение выполнения могут реализовывать всевозможные инфраструктуры вычислительных моделей, такие как веб-услуги, распределенные вычислительные и сетевые параллельные вычислительные инфраструктуры.
[0075] Компьютерная программа (также известная, например, в качестве программы, программного обеспечения, приложения, программного модуля, программного блока, сценария или кода) может быть написана в любой форме языка программирования, включающей в себя компилированные или интерпретируемые языки, декларативные или процедурные языки, и она может развертываться в любой форме, в том числе в качестве автономной программы или в качестве модуля, компонента, вложенной процедуры, объекта либо другого блока, подходящего для использования в вычислительном окружении. Программа может сохраняться в части файла, который хранит другие программы или данные (например, один или более сценариев, сохраненных в документе на языке разметки), в одном файле, выделенном для рассматриваемой программы, либо в нескольких координированных файлах (например, в файлах, которые сохраняют один или более модулей, подпрограмм или частей кода). Компьютерная программа может выполняться на одном компьютере или на нескольких компьютерах, которые расположены на одном веб-узле или распределены по нескольким веб-узлам и взаимно соединяются посредством сети связи.
[0076] Процессоры для выполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры общего и специального назначения и любые один или более процессоров любого вида цифрового компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Существенные элементы компьютера представляют собой процессор для выполнения действий в соответствии с инструкциями и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также должен включать в себя или функционально соединяться с возможностью принимать данные или передавать данные либо выполнять и то, и другое из/в одно или более устройств хранения данных большой емкости для сохранения данных. Компьютер может встраиваться в другое устройство, например, в мобильное устройство, персональное цифровое устройство (PDA), игровую приставку, приемное устройство на основе глобальной системы позиционирования (GPS) или портативное устройство хранения данных. Устройства, подходящие для сохранения компьютерных программных инструкций и данных, включают в себя невременное запоминающее устройство, носители и запоминающие устройства, включающие в себя, в качестве примера, полупроводниковые запоминающие устройства, магнитные диски и магнитооптические диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в логическую схему специального назначения.
[0077] Мобильные устройства могут включать в себя переносные телефоны, абонентские устройства (UE), мобильные телефоны (например, смартфоны), планшетные компьютеры, носимые устройства (например, интеллектуальные часы и интеллектуальные очки), имплантируемые устройства в человеческом теле (например, биодатчики, кохлеарные имплантаты) либо другие типы мобильных устройств. Мобильные устройства могут обмениваться данными в беспроводном режиме (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описаны ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущего окружения мобильного устройства. Датчики могут включать в себя камеры, микрофоны, бесконтактные датчики, GPS-датчики, датчики движения, акселерометры, датчики окружающего света, датчики содержания влаги, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF-датчики (например, Wi-Fi- и сотовые радиомодули), тепловые датчики или другие типы датчиков. Например, камеры могут включать в себя обращенную по ходу движения или против движения камеру с подвижными или неподвижными линзами, флэш-памятью, датчиком изображений и процессором изображений. Камера может представлять собой мегапикселную камеру, допускающую захват деталей для распознавания лиц и/или радужной оболочки глаз. Камера наряду с процессором данных и аутентификационной информацией, сохраненной в запоминающем устройстве или доступной удаленно, может формировать систему распознавания лиц. Система распознавания лиц либо один или более датчиков, например, микрофонов, датчиков движения, акселерометров, GPS-датчиков или RF-датчиков, могут использоваться для аутентификации пользователя.
[0078] Чтобы предоставлять взаимодействие с пользователем, реализации могут реализовываться на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (ЖК-дисплей) или дисплей на органических светоизлучающих диодах (OLED)/в стиле виртуальной реальности (VR)/в стиле дополненной реальности (AR) для отображения информации пользователю и сенсорный экран, клавиатуру и указательное устройство, посредством которых пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться, чтобы предоставлять взаимодействие с пользователем; например, обратная связь, предоставленная пользователю, может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб-страниц в веб-браузер на клиентском устройстве пользователя в ответ на запросы, принимаемые из веб-браузера.
[0079] Реализации могут реализовываться с использованием вычислительных устройств, взаимно соединенных посредством любой формы или среды для проводной или беспроводной цифровой передачи данных (либо комбинации вышеозначенного), например, сети связи. Примеры взаимно соединенных устройств представляют собой клиент и сервер, в общем, удаленные друг от друга, которые типично взаимодействуют через сеть связи. Клиент, например, мобильное устройство, может выполнять транзакции непосредственно, с сервером или через сервер, например, выполнять транзакции покупки, продажи, оплаты, выдачи, отправки или ссуды либо авторизовать их. Такие транзакции могут выполняться в реальном времени таким образом, что действие и ответ являются близкими по времени; например, человек воспринимает действие и ответ как возникающие практически одновременно, разность времен для ответа после действия человека составляет меньше 1 миллисекунды (мс) или меньше 1 секунды (с), либо ответ осуществляется без намеренной задержки с учетом ограничений обработки системы.
[0080] Примеры сетей связи включают в себя локальную вычислительную сеть (LAN), сеть радиодоступа (RAN), общегородскую вычислительную сеть (MAN) и глобальную вычислительную сеть (WAN). Сеть связи может включать в себя все или часть из Интернета, другой сети связи либо комбинации сетей связи. Информация может передаваться по сети связи согласно различным протоколам и стандартам, включающим в себя стандарт долгосрочного развития (LTE), 5G, IEEE 802, Интернет-протокол (IP) либо другие протоколы или комбинации протоколов. Сеть связи может передавать голосовые, видео-, биометрические данные или аутентификационные данные, или другую информацию между соединенными вычислительными устройствами.
[0081] Признаки, описанные в качестве отдельных реализаций, могут реализовываться, в комбинации, в одной реализации, в то время как признаки, описанные в качестве одной реализации, могут реализовываться в нескольких реализациях, отдельно или в любой подходящей субкомбинации. Операции, описанные и заявленные в конкретном порядке, не должны пониматься ни как требующие этого конкретного порядка, ни как то, что все проиллюстрированные операции должны выполняться (некоторые операции могут быть необязательными). Надлежащим образом, могут выполняться многозадачность или параллельная обработка (или комбинация многозадачности и параллельной обработки).

Claims (44)

1. Машинореализованный способ для осуществления транзакций в сети цепочек блоков, причем способ содержит этапы, на которых:
принимают одним или несколькими процессорами и с первого счета запрос транзакции, содержащий копию с цифровой подписью множества идентификаторов (ID) банкноты, идентифицирующих множество банкнот, используемых для выполнения транзакции между первым счетом и вторым счетом, обязательство суммы транзакции упомянутой транзакции между первым счетом и вторым счетом, подлежащей оплате посредством, по меньшей мере, части из множества банкнот, обязательство суммы сдачи, являющейся результатом вычитания суммы транзакции из полной стоимости множества банкнот, первое случайное число, используемое, чтобы формировать обязательство суммы транзакции, причем первое случайное число является зашифрованным посредством открытого ключа второго счета;
принимают посредством одного или нескольких процессоров и со второго счета сумму транзакции, зашифрованную посредством открытого ключа второго счета;
принимают посредством одного или нескольких процессоров и с первого счета второе случайное число, используемое, чтобы формировать обязательство суммы сдачи, причем второе случайное число является зашифрованным посредством открытого ключа первого счета и сумма сдачи зашифрована посредством открытого ключа первого счета, одно или более доказательств по диапазону и доказательство с нулевым разглашением, сформированное на основе одного или более выбранных случайных чисел;
определяют посредством одного или нескольких процессоров обязательство упомянутых банкнот, используя первое случайное число, второе случайное число и сумму транзакции;
обрабатывают посредством одного или нескольких процессоров цифровую подпись, соответствующую копии с цифровой подписью множества идентификаторов банкнот, с использованием открытого ключа первого счета, чтобы верифицировать аутентичность первого счета как отправителя упомянутого множества идентификаторов банкнот;
определяют посредством одного или нескольких процессоров, что одно или более доказательств по диапазону доказывают, что сумма транзакции и сумма сдачи превышают или равны нулю;
определяют посредством одного или нескольких процессоров, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи, посредством сравнения суммы обязательства банкнот с суммой обязательства упомянутой суммы транзакции и обязательства суммы сдачи, причем обязательство банкнот определено с использованием первого случайного числа, второго случайного числа и суммы транзакции; и
обрабатывают посредством одного или нескольких процессоров копию с цифровой подписью множества идентификаторов банкнот, чтобы обновить первый счет и второй счет на основе множества банкнот, суммы транзакции и суммы сдачи.
2. Машинореализованный способ по п. 1, в котором каждая из множества банкнот содержит одно или более из типа банкнот, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством шифрования с открытым ключом или интегрированного шифрования, и случайного числа, используемого, чтобы формировать обязательство, зашифрованное посредством шифрования с открытым ключом или интегрированного шифрования.
3. Машинореализованный способ по п. 2, в котором обязательство суммы транзакции, обязательство суммы сдачи и обязательство стоимости банкноты формируются с использованием схемы обязательств, которая является гомоморфной.
4. Машинореализованный способ по п. 3, в котором определение, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи, основано на сравнении суммы обязательства каждой стоимости банкноты и суммы обязательства суммы транзакции и обязательства суммы сдачи.
5. Машинореализованный способ по п. 1, в котором каждый из множества идентификаторов банкнот содержит адрес транзакции и числовой индекс, указывающий порядок соответствующей банкноты в выводе по транзакциям, и при этом адрес транзакции формируется посредством хэширования информации транзакций для транзакции.
6. Машинореализованный способ по п. 1, дополнительно содержащий этап, на котором определяют, что каждый из множества идентификаторов банкнот ассоциирован с первым счетом.
7. Машинореализованный способ по п. 1, в котором первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе шифрования Пэйе или шифрования Окамото-Учиямы.
8. Машинореализованный способ по п. 1, дополнительно содержащий определение, что сумма транзакции в обязательстве идентична сумме транзакции, которая шифруется, и что случайное число, используемое, чтобы формировать обязательство суммы транзакции, идентично первому случайному числу на основе доказательства с нулевым разглашением без взаимодействий между первым счетом и вторым счетом за пределами сети цепочек блоков.
9. Невременный машиночитаемый носитель данных, хранящий одну или несколько инструкций, которые, при выполнении посредством процессора, инструктируют процессору выполнять операции содержащие:
прием с первого счета запроса транзакции, содержащего копию с цифровой подписью множества идентификаторов банкноты, идентифицирующих множество банкнот, используемых для выполнения транзакции между первым счетом и вторым счетом, обязательства суммы транзакции упомянутой транзакции между первым счетом и вторым счетом, подлежащей оплате посредством, по меньшей мере, части из множества банкнот, обязательства суммы сдачи, являющейся результатом вычитания суммы транзакции из полной стоимости множества банкнот, первого случайного числа, используемого, чтобы формировать обязательство суммы транзакции, причем первое случайное число является зашифрованным посредством открытого ключа второго счета;
прием со второго счета суммы транзакции, зашифрованной посредством открытого ключа второго счета;
прием с первого счета второго случайного числа, используемого, чтобы формировать обязательство суммы сдачи, причем второе случайное число является зашифрованным посредством открытого ключа первого счета и сумма сдачи зашифрована посредством открытого ключа первого счета, одного или более доказательств по диапазону и доказательства с нулевым разглашением, сформированного на основе одного или более выбранных случайных чисел;
определение с первого счета обязательства упомянутых банкнот, используя первое случайное число, второе случайное число и сумму транзакции;
обработку цифровой подписи, соответствующей копии с цифровой подписью множества идентификаторов банкнот, с использованием открытого ключа первого счета, чтобы верифицировать аутентичность первого счета как отправителя упомянутого множества идентификаторов банкнот;
определение, что одно или более доказательств по диапазону доказывают, что сумма транзакции и сумма сдачи превышают или равны нулю;
определение, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи, посредством сравнения суммы обязательства банкнот с суммой упомянутой суммы транзакции и обязательства суммы сдачи, причем обязательство банкнот определено с использованием первого случайного числа, второго случайного числа и суммы транзакции; и
обработку копии с цифровой подписью множества идентификаторов банкнот, чтобы обновить первый счет и второй счет на основе множества банкнот, суммы транзакции и суммы сдачи.
10. Невременный машиночитаемый носитель данных по п. 9, причем каждая из множества банкнот содержит одно или более из типа банкноты, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством шифрования с открытым ключом или интегрированного шифрования, и случайного числа, используемого, чтобы формировать обязательство, зашифрованное посредством шифрования с открытым ключом или интегрированного шифрования.
11. Невременный машиночитаемый носитель данных по п. 9, в котором обязательство суммы транзакции, обязательство суммы сдачи и обязательство стоимости банкноты формируются с использованием схемы обязательств, которая является гомоморфной.
12. Невременный машиночитаемый носитель данных по п. 11, в котором определение, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи основано на сравнении суммы обязательства каждой стоимости банкноты и суммы обязательства суммы транзакции и обязательства суммы сдачи.
13. Невременный машиночитаемый носитель данных по п. 9, в котором каждый из множества идентификаторов банкнот содержит адрес транзакции и числовой индекс, указывающий порядок соответствующей банкноты в выводе по транзакциям, и при этом адрес транзакции формируется посредством хэширования информации транзакций для транзакции.
14. Невременный машиночитаемый носитель данных по п. 9, причем операции дополнительно содержат определение, что каждый из множества идентификаторов банкнот ассоциирован с первым счетом.
15. Невременный машиночитаемый носитель данных по п. 9, причем первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе шифрования Пэйе или шифрования Окамото-Учиямы.
16. Невременный машиночитаемый носитель данных по п. 9, дополнительно содержащий определение, что сумма транзакции в обязательстве идентична сумме транзакции, которая шифруется, и что случайное число, используемое, чтобы формировать обязательство суммы транзакции, идентично первому случайному числу, на основе доказательства с нулевым разглашением без взаимодействий между первым счетом и вторым счетом за пределами сети цепочек блоков.
17. Система для осуществления транзакций в сети цепочек блоков, причем система содержит:
один или несколько процессоров; и
одну или несколько машиносчитываемых запоминающих устройств, подсоединенных к одному или нескольким процессорам и имеющих инструкции, сохраненные на них, которые, при выполнении посредством одного или нескольких процессоров, инструктируют одному или нескольким процессором:
принимать с первого счета запрос транзакции, содержащий копию с цифровой подписью множества идентификаторов банкноты, идентифицирующих множество банкнот, используемых для выполнения транзакции между первым счетом и вторым счетом, обязательство суммы транзакции упомянутой транзакции между первым счетом и вторым счетом, подлежащей оплате посредством, по меньшей мере, части из множества банкнот, обязательство суммы сдачи, являющейся результатом вычитания суммы транзакции из полной стоимости множества банкнот, первое случайное число, используемое, чтобы формировать обязательство суммы транзакции, причем первое случайное число является зашифрованным посредством открытого ключа второго счета;
принимать со второго счета сумму транзакции, зашифрованную посредством открытого ключа второго счета;
принимать посредством одного или нескольких процессоров и с первого счета второе случайное число, используемое, чтобы формировать обязательство суммы сдачи, причем второе случайное число является зашифрованным посредством открытого ключа первого счета и сумма сдачи зашифрована посредством открытого ключа первого счета, одно или более доказательств по диапазону и доказательство с нулевым разглашением, сформированное на основе одного или более выбранных случайных чисел;
определять с первого счета обязательство упомянутых банкнот, используя первое случайное число, второе случайное число и сумму транзакции;
обрабатывать цифровую подпись, соответствующую копии с цифровой подписью множества идентификаторов банкнот, с использованием открытого ключа первого счета, чтобы верифицировать аутентичность первого счета как отправителя упомянутого множества идентификаторов банкнот;
определять, что одно или более доказательств по диапазону доказывают, что сумма транзакции и сумма сдачи превышают или равны нулю;
определять, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи, посредством сравнения суммы обязательства банкнот с суммой упомянутой суммы транзакции и обязательства суммы сдачи, причем обязательство банкнот определено с использованием первого случайного числа, второго случайного числа и суммы транзакции; и
обрабатывать копию с цифровой подписью множества идентификаторов банкнот, чтобы обновить первый счет и второй счет на основе множества банкнот, суммы транзакции и суммы сдачи.
18. Система по п. 17, причем каждая из множества банкнот содержит одно или несколько из типа банкноты, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством шифрования с открытым ключом или интегрированного шифрования, и случайного числа, используемого, чтобы формировать обязательство, зашифрованное посредством шифрования с открытым ключом или интегрированного шифрования.
RU2019111891A 2018-11-07 2018-11-07 Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением RU2729595C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114420 WO2019072268A2 (en) 2018-11-07 2018-11-07 BLOCK CHAIN DATA PROTECTION BASED ON A TICKET MODEL FROM ACCOUNTS USING ZERO KNOWLEDGE PROOF

Publications (1)

Publication Number Publication Date
RU2729595C1 true RU2729595C1 (ru) 2020-08-11

Family

ID=66100031

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019111891A RU2729595C1 (ru) 2018-11-07 2018-11-07 Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением

Country Status (17)

Country Link
US (1) US20190251553A1 (ru)
EP (2) EP3542336B1 (ru)
JP (1) JP6817429B2 (ru)
KR (1) KR102215773B1 (ru)
CN (1) CN110419055B (ru)
AU (1) AU2018347190B2 (ru)
BR (1) BR112019008160B1 (ru)
CA (1) CA3041160C (ru)
ES (1) ES2863559T3 (ru)
MX (1) MX2019004658A (ru)
PH (1) PH12019500890A1 (ru)
PL (1) PL3542336T3 (ru)
RU (1) RU2729595C1 (ru)
SG (1) SG11201903586SA (ru)
TW (1) TW202018572A (ru)
WO (1) WO2019072268A2 (ru)
ZA (1) ZA201902549B (ru)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10972251B2 (en) 2017-01-20 2021-04-06 Enveil, Inc. Secure web browsing via homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
CN109325747B (zh) * 2018-08-30 2020-06-09 阿里巴巴集团控股有限公司 基于区块链的汇款方法及装置
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
EP3545640B1 (en) * 2018-11-07 2021-04-07 Advanced New Technologies Co., Ltd. Blockchain data protection using homomorphic encryption
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US10721217B2 (en) 2018-11-08 2020-07-21 Accenture Global Solutions Limited Cryptographic datashare control for blockchain
CN110473105B (zh) * 2019-08-20 2024-01-16 深圳市迅雷网络技术有限公司 一种区块链交易结算方法、***及相关设备
CN113065951A (zh) * 2020-01-02 2021-07-02 苏州同济区块链研究院有限公司 基于区块链的交易方法、***、装置、设备及介质
EP3794484B1 (en) 2020-02-03 2024-04-17 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
SG11202012925RA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
CN111417945B (zh) 2020-02-03 2022-06-17 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
SG11202013213UA (en) * 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-Based Trustable Guarantees
EP3799644B1 (en) 2020-02-03 2022-11-02 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
WO2020098836A2 (en) 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable gurantees
WO2020098837A2 (en) * 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11483154B2 (en) * 2020-02-19 2022-10-25 International Business Machines Corporation Artificial intelligence certification of factsheets using blockchain
CN111523892B (zh) * 2020-04-23 2021-07-27 深圳前海微众银行股份有限公司 一种区块链的跨链交易方法及装置
SG11202102366SA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd User management of blockchain-based custom clearance service platform
EP3841491B1 (en) 2020-06-08 2023-08-02 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based smart contract pools
CN111868725B (zh) 2020-06-08 2024-05-24 支付宝实验室(新加坡)有限公司 基于区块链处理进口海关清关数据
SG11202103063PA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Managing user authorizations for blockchain-based custom clearance services
SG11202102583UA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based document registration for custom clearance
SG11202103081RA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Distributed storage of custom clearance data
CN111861714A (zh) * 2020-07-23 2020-10-30 浙江永旗区块链科技有限公司 企业票据拆分方法及***
DE102020119569B3 (de) 2020-07-24 2021-12-09 Infineon Technologies Ag Bereitstellen einer kryptografischen Information
CN114338028A (zh) * 2020-09-28 2022-04-12 华为技术有限公司 门限签名方法、装置、电子设备和可读存储介质
US11700125B2 (en) 2020-10-05 2023-07-11 Redcom Laboratories, Inc. zkMFA: zero-knowledge based multi-factor authentication system
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112287040B (zh) * 2020-10-30 2022-11-04 深圳前海微众银行股份有限公司 一种基于区块链的权益合并方法、装置、设备及介质
CN112436944B (zh) * 2020-11-06 2023-04-07 深圳前海微众银行股份有限公司 一种基于pow的区块链共识方法及装置
IT202000026488A1 (it) 2020-11-09 2021-02-09 Primecash S R L Metodo e sistema innovativo per pagamenti con denaro digitale e applicazione sulla blockchain
CN112487468B (zh) * 2020-12-21 2023-11-03 暨南大学 基于区块链的可追踪的完全匿名电子投票方法及***
CN112633890B (zh) * 2020-12-22 2024-04-05 深圳前海微众银行股份有限公司 一种基于区块链的隐匿权益证明的验证方法及装置
CN112734423A (zh) * 2020-12-31 2021-04-30 杭州趣链科技有限公司 一种基于区块链的交易方法及终端设备
JPWO2022153377A1 (ru) * 2021-01-13 2022-07-21
CN112749967A (zh) * 2021-01-19 2021-05-04 矩阵元技术(深圳)有限公司 交易数据的处理方法、装置、用户终端和服务器
CN113037492B (zh) * 2021-02-04 2023-07-25 精英数智科技股份有限公司 传感器数据处理方法及装置
CN113630411B (zh) * 2021-08-05 2022-04-05 华中农业大学 一种对联盟区块链上多方隐私保护数据审计的方法及装置
CN113627910A (zh) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 一种区块链匿名红包发送方法、设备及储存介质
CN113627911A (zh) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 一种基于区块链匿名收发红包的方法、设备及储存介质
CN113570373B (zh) * 2021-09-23 2022-02-11 北京理工大学 一种基于区块链的可追责交易方法及***
CN113988865B (zh) * 2021-12-29 2022-03-29 国网电子商务有限公司 电力结算隐私保护方法及装置
CN115660679B (zh) * 2022-10-14 2023-07-14 重庆移通学院 一种基于哈希锁定的去中心化安全交易方法
CN116633548A (zh) * 2023-04-03 2023-08-22 北京熠智科技有限公司 加密过程监管方法、装置、***及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
RU2016115043A (ru) * 2013-09-20 2017-10-25 Виза Интернэшнл Сервис Ассосиэйшн Защищенная обработка удаленных платежных транзакций, включающая в себя аутентификацию потребителей
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护***及方法
CN108418689A (zh) * 2017-11-30 2018-08-17 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
CN108764874A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、***及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999625A (en) * 1997-02-27 1999-12-07 International Business Machines Corporation Method for electronic payment system with issuer control
EP2151947A1 (en) * 2008-08-05 2010-02-10 Irdeto Access B.V. Signcryption scheme based on elliptic curve cryptography
JP2010039890A (ja) * 2008-08-07 2010-02-18 Hitachi Ltd 認証端末、認証サーバ、認証システム、認証方法および認証プログラム
US11062303B2 (en) * 2015-06-08 2021-07-13 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US10693658B2 (en) * 2016-02-12 2020-06-23 Visa International Service Association Methods and systems for using digital signatures to create trusted digital asset transfers
JP6663809B2 (ja) * 2016-07-07 2020-03-13 株式会社日立製作所 監査装置、監査機能付匿名送金方法及びプログラム
CN106911470B (zh) * 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
US20200134586A1 (en) * 2017-04-18 2020-04-30 Tbcasoft, Inc. Anonymity and traceability of digital property transactions on a distributed transaction consensus network
US20190108517A1 (en) * 2017-10-06 2019-04-11 Allocrypt, Llc Digital currency for performing cash-equivalent transactions
CN107862216B (zh) * 2017-10-13 2021-04-06 布比(北京)网络技术有限公司 用于匿名跨链交易的隐私保护方法、装置和存储介质
CN107888375A (zh) * 2017-11-08 2018-04-06 深圳市携网科技有限公司 一种基于区块链技术的电子证据保全***及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
RU2016115043A (ru) * 2013-09-20 2017-10-25 Виза Интернэшнл Сервис Ассосиэйшн Защищенная обработка удаленных платежных транзакций, включающая в себя аутентификацию потребителей
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护***及方法
CN108418689A (zh) * 2017-11-30 2018-08-17 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
CN108764874A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、***及存储介质

Also Published As

Publication number Publication date
US20190251553A1 (en) 2019-08-15
KR20200054131A (ko) 2020-05-19
CN110419055A (zh) 2019-11-05
TW202018572A (zh) 2020-05-16
BR112019008160B1 (pt) 2021-08-24
KR102215773B1 (ko) 2021-02-17
CN110419055B (zh) 2023-08-22
SG11201903586SA (en) 2019-05-30
PL3542336T3 (pl) 2021-07-12
CA3041160A1 (en) 2019-04-18
WO2019072268A2 (en) 2019-04-18
JP2020503718A (ja) 2020-01-30
EP3542336B1 (en) 2021-01-27
AU2018347190B2 (en) 2020-10-22
ES2863559T3 (es) 2021-10-11
CA3041160C (en) 2022-11-29
AU2018347190A1 (en) 2020-05-21
EP3542336A2 (en) 2019-09-25
JP6817429B2 (ja) 2021-01-20
EP3829104A1 (en) 2021-06-02
EP3542336A4 (en) 2019-11-20
WO2019072268A3 (en) 2019-08-22
BR112019008160A2 (pt) 2019-09-10
EP3829104B1 (en) 2022-07-06
MX2019004658A (es) 2019-08-12
PH12019500890A1 (en) 2019-11-25
ZA201902549B (en) 2019-12-18

Similar Documents

Publication Publication Date Title
RU2729595C1 (ru) Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением
RU2733223C1 (ru) Защита данных цепочек блоков на основе общей модели на основе счетов и гомоморфного шифрования
RU2719451C1 (ru) Защита данных цепочек блоков на основе общей модели на основе счетов и гомоморфного шифрования
RU2727161C1 (ru) Защита данных цепочек блоков с использованием гомоморфного шифрования
RU2708344C1 (ru) Защита данных цепочек блоков с использованием гомоморфного шифрования

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20210311

PC41 Official registration of the transfer of exclusive right

Effective date: 20210420