RU2735439C2 - Система и способ для защиты информации - Google Patents

Система и способ для защиты информации Download PDF

Info

Publication number
RU2735439C2
RU2735439C2 RU2019111926A RU2019111926A RU2735439C2 RU 2735439 C2 RU2735439 C2 RU 2735439C2 RU 2019111926 A RU2019111926 A RU 2019111926A RU 2019111926 A RU2019111926 A RU 2019111926A RU 2735439 C2 RU2735439 C2 RU 2735439C2
Authority
RU
Russia
Prior art keywords
transaction
value
masking
recipient
combination
Prior art date
Application number
RU2019111926A
Other languages
English (en)
Other versions
RU2019111926A (ru
RU2019111926A3 (ru
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 Алибаба Груп Холдинг Лимитед
Publication of RU2019111926A publication Critical patent/RU2019111926A/ru
Publication of RU2019111926A3 publication Critical patent/RU2019111926A3/ru
Application granted granted Critical
Publication of RU2735439C2 publication Critical patent/RU2735439C2/ru

Links

Images

Classifications

    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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
    • 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
    • G06Q2220/00Business processing using cryptography
    • 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/04Masking or blinding
    • 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
    • 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
[1] Данное раскрытие, в общем, относится к способам и устройствам для защиты информации.
Уровень техники
[2] Конфиденциальность является важной для связи и переносов данных между различными пользователями. Без защиты, пользователи подвержены риску кражи личных сведений, несанкционированного переноса или других возможных потерь. Риск становится еще больше, когда связь и переносы реализуются онлайн, вследствие свободного доступа онлайновой информации.
Сущность изобретения
[3] Различные варианты осуществления настоящего раскрытия включают в себя системы, способы и долговременные машиночитаемые носители для защиты информации.
[4] Согласно одному аспекту, машинореализуемый способ для защиты информации содержит: удостоверение (заверение) суммы t транзакции для транзакции с помощью первой схемы обязательств (commitment scheme), чтобы получить значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, с тем чтобы получить значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования (‘ослепления’, blinding) транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи; шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA; передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем; в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB; и передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков.
[5] В некоторых вариантах осуществления, первая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента rt маскирования транзакции, при этом сумма t транзакции составляет соответствующее удостоверенное значение; и вторая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента ry маскирования сдачи, при этом сдача y составляет соответствующее удостоверенное значение.
[6] В некоторых вариантах осуществления, передача коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем содержит: передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, инструктирование узлу-получателю верифицировать то, равно или нет значение T удостоверения транзакции результату удостоверения, посредством первой схемы обязательств, суммы t транзакции с коэффициентом rt маскирования транзакции.
[7] В некоторых вариантах осуществления, получение зашифрованной второй комбинации содержит прием из узла-получателя зашифрованной второй комбинации и подписи SIGB, ассоциированной со второй зашифрованной комбинацией и значением T удостоверения транзакции.
[8] В некоторых вариантах осуществления, сумма t транзакции является отведенной из одного или более активов A1, A2, ..., Ak отправителя транзакции; каждый из активов ассоциирован со (1) схемой обязательств Педерсена, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива и (2) шифрованием, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива; и сдача y является разностью между суммой t транзакции и отведенными активами.
[9] В некоторых вариантах осуществления, перед передачей зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков, способ дополнительно содержит: верификацию подписи SIGB; и в ответ на успешную верификацию подписи SIGB, формирование подписи SIGA, ассоциированной с активами A1, A2, ..., Ak, первой комбинацией, второй комбинацией, значением T удостоверения транзакции, значением Y удостоверения сдачи и разностью между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи.
[10] В некоторых вариантах осуществления, передача зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков содержит: передачу активов A1, A2, ..., Ak, первой комбинации, второй комбинации, значения T удостоверения транзакции, значения Y удостоверения сдачи, разности между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, подписи SIGA и подписи SIGB во множество узлов в цепочке блоков.
[11] В некоторых вариантах осуществления, передача зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков содержит: передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков, инструктирование узлам в цепочке блоков, в ответ на успешную верификацию транзакции, эмитировать сумму t транзакции получателю, исключать активы A1, A2, ..., Ak и эмитировать сдачу y отправителю.
[12] Согласно другому аспекту, долговременный машиночитаемый носитель данных сохраняет инструкции, которые, при выполнении посредством процессора, инструктируют процессору выполнять операции, содержащие: удостоверение суммы t транзакции для транзакции с помощью первой схемы обязательств, с тем чтобы получать значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, с тем чтобы получать значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи; шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA; передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем; в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB; и передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков.
[13] Согласно другому аспекту, система для защиты информации содержит процессор и долговременный машиночитаемый носитель данных, соединенный с процессором, причем носитель данных хранит инструкции, которые при их исполнении процессором инструктируют системе выполнять операции, содержащие: удостоверение суммы t транзакции для транзакции с помощью первой схемы обязательств, чтобы получить значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, с тем чтобы получать значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи; шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA; передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем; в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB; и передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков.
[14] Согласно другому аспекту, машинореализуемый способ для защиты информации содержит: получение коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции из узла-отправителя, ассоциированного с отправителем транзакции, при этом: сумма t транзакции удостоверяется с помощью первой схемы обязательств, чтобы получать значение T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции; верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции; в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB; и передачу зашифрованной второй комбинации в узел-отправитель.
[15] В некоторых вариантах осуществления, верификация транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции содержит верификацию того, равно или нет полученное значение T удостоверения транзакции первой схеме обязательств, удостоверяющей полученную сумму t транзакции с полученным коэффициентом rt маскирования транзакции.
[16] В некоторых вариантах осуществления, перед передачей зашифрованной второй комбинации в узел-отправитель, дополнительно содержит формирование подписи SIGB, ассоциированный со второй зашифрованной комбинацией и значением T удостоверения транзакции; и передача зашифрованной второй комбинации в узел-отправитель содержит передачу зашифрованной второй комбинации и подписи SIGB в узел-отправитель.
[17] Согласно другому аспекту, долговременный машиночитаемый носитель данных хранит инструкции, которые при их исполнении процессором инструктируют процессору выполнять операции, содержащие: получение коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции из узла-отправителя, ассоциированного с отправителем транзакции, при этом: сумма t транзакции удостоверяется с помощью первой схемы обязательств, чтобы получать значение T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции; верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции; в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB; и передачу зашифрованной второй комбинации в узел-отправитель.
[18] Согласно другому аспекту, система для защиты информации содержит процессор и долговременный машиночитаемый носитель данных, соединенный с процессором, причем носитель данных хранит инструкции, которые при их исполнении процессором инструктируют системе выполнять операции, содержащие: получение коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции из узла-отправителя, ассоциированного с отправителем транзакции, при этом: сумма t транзакции удостоверяется с помощью первой схемы обязательств, чтобы получать значение T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции; верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции; в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB; и передачу зашифрованной второй комбинации в узел-отправитель.
[19] Эти и другие признаки систем, способ и долговременных машиночитаемых носителей, раскрытых в данном документе, а также способы работы и функции связанных элементов структуры и комбинации частей и изделий должны становиться более очевидными при рассмотрении последующего описания и прилагаемой формулы изобретения со ссылкой на прилагаемые чертежи, все из которых составляют часть этого подробного описания, при этом аналогичные ссылки с номерами обозначают соответствующие части на различных чертежах. Тем не менее, следует четко понимать, что чертежи служат только для целей иллюстрации и описания не предназначены в качестве задания ограничений изобретения.
Краткое описание чертежей
[20] Определенные признаки различных вариантов осуществления настоящей технологии подробно изложены в прилагаемой формуле изобретения. Лучшее понимание признаков и преимуществ технологии должно получаться со ссылкой на нижеприведенное подробное описание, которое излагает иллюстративные варианты осуществления, в которых используются принципы изобретения, и на прилагаемые чертежи, на которых:
[21] Фиг. 1 иллюстрирует примерную систему для защиты информации, в соответствии с различными вариантами осуществления.
[22] Фиг. 2 иллюстрирует примерные этапы для инициирования и верификации транзакций, в соответствии с различными вариантами осуществления.
[23] Фиг. 3 иллюстрирует блок-схему последовательности операций примерного способа для защиты информации, в соответствии с различными вариантами осуществления.
[24] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа для защиты информации, в соответствии с различными вариантами осуществления.
[25] Фиг. 5 иллюстрирует блок-схему примерной компьютерной системы, в которой могут реализовываться любые из вариантов осуществления, описанных в данном документе.
Подробное описание изобретения
[26] Цепочка блоков (блокчейн) может рассматриваться как децентрализованная база данных, обычно называемая "распределенным реестром", поскольку операция выполняется посредством различных узлов (например, вычислительных устройств) в сети. Любая информация может записываться в цепочку блоков и сохраняться или считываться из нее. Любой может устанавливать сервер и присоединяться к сети цепочек блоков, чтобы становиться узлом. Любой узел может вносить вычислительную мощность, чтобы поддерживать цепочку блоков посредством выполнения сложных вычислений, таких как вычисление хеш-функции, чтобы добавлять блок в текущую цепочку блоков, и добавленный блок может содержать различные типы данных или информации. Узел, который вносит вычислительную мощность для добавленного блока, может вознаграждаться токеном (например, единицей цифровой валюты). Поскольку цепочка блоков не имеет центрального узла, каждый узел является одинаковым и хранит всю базу данных цепочек блоков.
[27] Узлы, например, представляют собой вычислительные устройства или крупные компьютерные системы, которые поддерживают сеть цепочек блоков и поддерживают ее работу без сбоев. Предусмотрено два типа узлов, полные узлы и облегченные узлы. Полные узлы сохраняют полную копию цепочки блоков. Полные узлы в сети цепочек блоков проверяют достоверность транзакций и блоков, которые они принимают, и ретранслируют их соединенным равноправным узлам для предоставления консенсусной верификации транзакций. С другой стороны, облегченные узлы загружают только часть цепочки блоков. Например, облегченные узлы используются для цифровых валютных транзакций. Облегченный узел должен обмениваться данными с полным узлом, когда он хочет осуществлять транзакции.
[28] Это свойство децентрализации может помогать предотвращать появление центра управления в управляемой позиции. Например, обслуживание цепочки блоков биткоина выполняется посредством сети узлов связи программного обеспечения для работы с биткоинами в рабочей области. Это раскрытие использует одну или более цепочек блоков или цифровых валют, таких как биткоин и эфириум, в качестве примеров. Специалисты в данной области техники должны принимать во внимание, что технические решения, раскрытые в этом раскрытии, могут использовать или применяться к другому типу цепочек блоков и цифровых валют. Таким образом, вместо банков, учреждений или администраторов в традиционном смысле, несколько посредников существуют в форме компьютеров-серверов, исполняющих программное обеспечение для работы с биткоинами. Эти компьютеры-серверы формируют сеть, соединенную через Интернет, при этом любой может потенциально присоединяться к сети. Транзакции, размещаемые посредством сети, могут иметь форму: "пользователь A хочет отправлять Z биткоинов пользователю B", при этом транзакции передаются в широковещательном режиме в сеть с использованием легкодоступных приложений. Компьютеры-серверы функционируют в качестве серверов биткоинов, которые выполнены с возможностью проверять достоверность этих финансовых транзакций, добавлять их запись в свою копию реестра и затем передавать в широковещательном режиме эти добавления реестра на другие серверы сети.
[29] Поддержание цепочки блоков упоминается как "майнинг", и те, кто осуществляет такое поддержание, вознаграждается новыми созданными биткоинами и комиссионными за транзакции, как упомянуто выше. Например, узлы могут определять то, являются или нет транзакции достоверными, на основе набора правил, с которыми согласована сеть цепочек блоков. Майнеры могут находиться на любом континенте и обрабатывать платежи посредством верификации каждой транзакции в качестве достоверной и ее добавления в цепочку блоков. Такая верификация достигается с помощью консенсуса, обеспечиваемого множеством майнеров, и допускает то, что отсутствует систематический тайный сговор. В конечном счете, все данные должны быть согласованными, поскольку вычисление должно удовлетворять определенным требованиям для того, чтобы быть достоверным, и все узлы синхронизируются, чтобы обеспечивать то, что цепочка блоков является согласованной. Таким образом, данные могут согласованно сохраняться в распределенной системе узлов цепочки блоков.
[30] Посредством процесса майнинга, транзакции, такие как переводы активов, верифицируются и добавляются в растущую цепочку блоков из цепочки блоков посредством сетевых узлов. Посредством прохождения по всей цепочке блоков, верификация может включать в себя, например, то, имеет или нет оплачивающая сторона доступ к переводимому активу, то, потрачен или нет актив ранее, то, является или нет переводимая сумма корректной, и т.д. Например, в гипотетической транзакции (например, в транзакции биткоинов согласно модели на основе UTXO (непотраченного вывода по транзакциям), в транзакции монет эфириума согласно модели на основе счетов/балансов), подписанной отправителем, предложенная транзакция может передаваться в широковещательном режиме в сеть цепочек блоков для майнинга. Майнер должен проверять то, является или нет транзакция соответствующей установленным критериям для выполнения, согласно предыстории цепочек блоков. Если баланс кошелька отправителя имеет достаточно денежных средств согласно существующей предыстории цепочек блоков, транзакция считается достоверной и может добавляться в блок. После верификации, переводы активов могут быть включены в следующий блок, который должен добавляться в цепочку блоков.
[31] Блок является во многом аналогичным записи в базе данных. Каждая запись данных создает блок. Эти блоки связываются и защищаются с использованием криптографии, так что они становятся взаимно соединенными сетями. Каждый блок соединяется с предыдущим блоком, что также представляет собой источник названия "цепочка блоков". Каждый блок обычно содержит криптографический хеш предыдущего блока, время формирования и фактические данные. Например, каждый блок содержит две части: заголовок блока, чтобы записывать значение признака текущего блока, и тело, чтобы записывать фактические данные (например, данные транзакции). Цепочка блоков связывается через заголовки блоков. Каждый заголовок блока может содержать несколько значений признаков, таких как версия, хеш предыдущего блока, корень Меркла, временная метка, целевой уровень сложности и одноразовый номер. Хеш предыдущего блока содержит не только адрес предыдущего блока, но также и хеш данных в предыдущем блоке, в силу этого делая цепочки блоков неизменными. Одноразовый номер является числом, которое, если включено, обеспечивает в результате хеш с заданным числом начальных нулевых битов.
[32] Для майнинга, хеш содержимого нового блока принимается узлом. Одноразовый номер (например, случайная строка) присоединяется к хешу для получения новой строки. Новая строка хешируется снова. Конечный хеш затем сравнивается с целевой сложностью (например, уровнем), и определяется то, конечный хеш фактически меньше целевого уровня сложности или нет. Если нет, то одноразовый номер изменяется и процесс повторяется снова. Если да, то блок добавляется в цепочку, и открытый реестр обновляется и предупреждается в отношении добавления. Узел, отвечающий за успешное добавление, вознаграждается биткоинами, например, посредством добавления транзакции вознаграждения себе в новый блок (известно как формирование коинбейса).
[33] Таким образом, для каждого вывода "Y", если k выбирается из распределения с высокой минимальной энтропией, невозможно находить ввод x таким образом, что H (k|x)=Y, где K является одноразовым номером, x является хешем блока, Y является целевым уровнем сложности, и "|" обозначает конкатенацию. Вследствие фактической случайности криптографических хешей, в том смысле, что их вывод не может прогнозироваться из их вводов, имеется только один известный способ находить одноразовый номер: пробовать целые числа одно за другим, например, 1, затем 2, затем 3 и т.д., что может представлять собой известный метод прямого опробования. Чем больше число начальных нулей, тем больше в среднем требуется для того, чтобы находить требуемый одноразовый номер Y. В одном примере, система работы с биткоинами постоянно регулирует число начальных нулей таким образом, что среднее время для нахождения одноразового номера составляет приблизительно десять минут. Таким образом, по мере того, как характеристики обработки вычислительных аппаратных средств улучшаются со временем, за эти годы, протокол биткоинов должен требовать просто большего числа начальных нулевых битов, чтобы майнинг всегда требовал длительности приблизительно в десять минут для реализации.
[34] Как описано выше, хеширование является важным краеугольным камнем для цепочки блоков. Хеш-алгоритм может пониматься как функция, которая сжимает сообщения любой длины в дайджест сообщения фиксированной длины. Чаще всего используются MD5 и SHA. В некоторых вариантах осуществления, длина хеша цепочки блоков составляет 256 битов, что означает то, что независимо от того, каким является исходное содержимое, в конечном счете вычисляется 256-битовое двоичное число. Кроме того, можно гарантировать то, что соответствующий хеш является уникальным при условии, что исходное содержимое отличается. Например, хеш строки "123" представляет собой a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0 (шестнадцатеричная форма), который имеет 256 битов при преобразовании в двоичную форму, и "только 123" имеет этот хеш. Хеш-алгоритм в цепочке блоков является необратимым, т.е. прямое вычисление является простым (из "123" в a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b13d11d7fd0), и обратное вычисление не может выполняться, даже если все вычислительные ресурсы исчерпываются. Таким образом, хеш каждого блока из цепочки блоков является уникальным.
[35] Дополнительно, если содержимое блока изменяется, его хеш должен изменяться. Блок и хеш находятся в однозначном соответствии, и хеш каждого блока, в частности, вычисляется для заголовка блока. Таким образом, значения признаков заголовков блоков соединяются, чтобы формировать длинную строку, и затем хеш вычисляется для этой строки. Например, "Hash=SHA256 (заголовок блока)" представляет собой формулу вычисления хеш-функции блока, SHA256 представляет собой хеш-алгоритм цепочек блоков, применяемый к заголовку блока. Хеш уникально определяется посредством заголовка блока, а не тела блока. Как упомянуто выше, заголовок блока содержит большое количество контента, включающего в себя хеш текущего блока и хеш предыдущего блока. Это означает то, что если контент текущего блока изменяется, либо если хеш предыдущего блока изменяется, это вызывает изменение хеша текущего блока. Если хакер модифицирует блок, хеш этого блока изменяется. Для соединения последующего блока с модифицированным блоком, хакер должен модифицировать все последующие блоки по очереди, поскольку следующий блок должен содержать хеш предыдущего блока. В противном случае, модифицированный блок должен отсоединяться от цепочки блоков. Вследствие проектных причин, вычисления хеш-функции являются времязатратными, и практически невозможно модифицировать несколько блоков за короткий период времени, если хакер не приспосабливает более 51% вычислительной мощности всей сети. Таким образом, цепочка блоков гарантирует собственную надежность, и как только данные записываются, они не могут имитироваться.
[36] После того, как майнер находит хеш (т.е. соответствующую установленным критериям подпись или решение) для нового блока, майнер передает в широковещательном режиме эту подпись всем другим майнерам (в узлы цепочки блоков). Другие майнеры теперь верифицируют по очереди то, соответствует или нет это решение проблеме блока отправителя (т.е. определяют то, приводит или нет ввод хеша фактически к этой подписи). Если решение является достоверным, другие майнеры должны подтверждать решение и согласовывать то, что новый блок может добавляться в цепочку блоков. Таким образом, достигается консенсус для нового блока. Это также известно как "доказательство выполнения работы". Блок, для которого достигнут консенсус, теперь может добавляться в цепочку блоков и передается в широковещательном режиме во все узлы по сети наряду с подписью. Узлы должны подтверждать блок и сохранять его в своих данных транзакции при условии, что транзакции в блоке корректно соответствуют текущим балансам кошелька (предыстории транзакций) в этот момент времени. Каждый раз, когда новый блок добавляется поверх этого блока, добавление также подсчитывается в качестве другого "подтверждения" для блоков перед ним. Например, если транзакция включена в блок 502 и цепочка блоков имеет длину в 507 блоков, это означает то, что транзакция имеет пять подтверждений (соответствующих блокам от 507 до 502). Чем больше подтверждений имеет транзакция, тем тяжелее для взломщиков вносить переделки.
[37] В некоторых вариантах осуществления, примерная система управления активами на основе цепочек блоков использует криптографию с открытым (общедоступным) ключом, в которой формируются два криптографических ключа, один открытый ключ и один закрытый ключ. Открытый ключ может рассматриваться в качестве номера счета, и закрытый ключ может рассматриваться в качестве учетных данных владения. Например, кошелек биткоинов представляет собой совокупность открытых и закрытых ключей. Владение активом (например, цифровой валютой, денежным активом, акциями, долей в капитале, долговым обязательством), ассоциированным с определенным адресом актива, может быть продемонстрировано со знанием закрытого ключа, принадлежащего адресу. Например, программное обеспечение кошелька биткоинов, иногда называемое "клиентским программным обеспечением для работы с биткоинами", обеспечивает возможность данному пользователю осуществлять транзакции с биткоинами. Программа-кошелек формирует и сохраняет закрытые ключи и обменивается данными с равноправными узлами по сети биткоинов.
[38] В транзакциях с цепочками блоков, плательщики и получатели платежа идентифицируются в цепочке блоков посредством своих открытых криптографических ключей. Например, самые современные переводы биткоинов выполняются из одного открытого ключа в другой открытый ключ. На практике, хеши этих ключей используются в цепочке блоков и называются "адресами биткоинов". В принципе, если гипотетический человек-взломщик S может красть деньги человека A посредством простого добавления транзакций в реестр цепочек блоков, к примеру "человек S выплачивает человеку A 100 биткоинов", с использованием адресов биткоинов пользователей вместо их имен. Протокол биткоинов предотвращает этот вид кражи посредством требования для каждого перевода иметь цифровую подпись с закрытым ключом плательщика, и только подписанные переводы могут добавляться в реестр цепочек блоков. Поскольку человек S не может подделывать подпись человека A, человек S не может обманывать человека A посредством добавления записи в цепочку блоков, эквивалентной "человек S выплачивает человеку A 200 биткоинов". Одновременно, любой может верифицировать подпись человека A с использованием своего открытого ключа, и в силу того он авторизует любую транзакцию в цепочке блоков, в которой он представляет собой плательщика.
[39] В контексте транзакций с биткоинами, чтобы переводить некоторые биткоины пользователю B, пользователь A может конструировать запись, содержащую информацию относительно транзакции, через узел. Запись может подписываться ключом подписи (закрытым ключом) пользователя A и содержит открытый ключ верификации пользователя A и открытый ключ верификации пользователя B. Подпись используется для того, чтобы подтверждать, что транзакция исходит от пользователя, а также предотвращает переделку транзакции кем угодно после того, как она эмитирована. Запись, пакетированная с другой записью, которая осуществлена в идентичном временном окне в новом блоке, может передаваться в широковещательном режиме в полные узлы. После приема записей, полные узлы могут работать для включения записей в реестр всех транзакций, которые когда-либо осуществлялись в системе цепочек блоков, добавление нового блока в ранее подтвержденную цепочку блоков посредством вышеописанного процесса майнинга, и проверять достоверность добавленного блока на основе консенсусных правил сети.
[40] Модель на основе UTXO (непотраченного вывода по транзакциям) и модель на основе счетов/балансов представляют собой две примерные модели для реализации транзакций с цепочками блоков. UTXO представляет собой объектную модель цепочек блоков. Согласно UTXO, активы представляются посредством выводов транзакций с цепочками блоков, которые не потрачены, которые могут использоваться в качестве вводов в новых транзакциях. Например, актив пользователя A, который должен переводиться, может иметь форму UTXO. Чтобы тратить (осуществлять транзакции) актив, пользователь A должен подписывать с помощью закрытого ключа. Биткоин представляет собой пример цифровой валюты, которая использует UTXO-модель. В случае достоверной транзакции с цепочками блоков, непотраченные выводы могут использоваться для того, чтобы осуществлять дополнительные транзакции. В некоторых вариантах осуществления, только непотраченные выводы могут использоваться в дополнительных транзакциях, чтобы предотвращать двойную трату и мошенничество. По этой причине, вводы в цепочке блоков удаляются, когда транзакция возникает, при этом одновременно, выводы создаются в форме UTXO. Эти непотраченные выводы транзакции могут использоваться (посредством держателей закрытых ключей, например, людей с цифровыми валютными кошельками) в целях будущих транзакций.
[41] С другой стороны, модель на основе счетов/балансов (иначе называемая "моделью проведения транзакций на основе счетов") отслеживает баланс каждого счета в качестве глобального состояния. Баланс счета проверяется, чтобы установить то, что он превышает или равен потраченной сумме транзакции. Пример того, как модель на основе счетов/балансов работает в эфириуме, предоставляется:
[42] 1. Alice получает 5 эфиров посредством майнинга. В системе записывается то, что Alice имеет 5 эфиров.
[43] 2. Alice хочет предоставлять Bob 1 эфир, так что система сначала должна вычитать 1 эфир из счета Alice, в силу чего Alice теперь имеет 4 эфира.
[44] 3. Система затем увеличивает счет Bob на 1 эфир. Система знает, что Bob имеет 2 эфира для начала, в силу чего баланс Bob увеличивается до 3 эфиров.
[45] Ведение записей для эфириума может быть аналогичным ведению записей в банке. Аналогия представляет собой использование ATM/дебетовой карты. Банк отслеживает, сколько денег имеет каждая дебетовая карта, и когда Bob должен тратить деньги, банк проверяет его запись, чтобы установить то, что Bob имеет достаточный баланс, перед подтверждением транзакции.
[46] Поскольку цепочка блоков и другие аналогичные реестры являются полностью общедоступными, непосредственно цепочка блоков не имеет защиты конфиденциальности. Общедоступный характер P2P-сети означает то, что хотя те, кто используют ее, не идентифицируются по имени, связывание транзакций с людьми и компаниями является осуществимым. Например, в международном ремитировании или в системе поставок, сумма транзакции имеет чрезвычайно высокий уровень значения защиты конфиденциальности, поскольку с помощью информацией сумм транзакций, можно логически выводить конкретное местоположение и идентификационные данные сторон транзакции. Предмет транзакции может содержать, например, деньги, токен, цифровую валюту, договор, купчую, медицинскую карту, сведения о клиентах, акции, долговое обязательство, долю в капитале или любой другой актив, который может описываться в цифровой форме. Хотя UTXO-модель может предоставлять анонимность для сумм транзакций, например, через кольцевую подпись в Monero и криптографии Zcash с нулевым разглашением, суммы транзакций остаются незащищенными согласно модели на основе счетов/балансов. Таким образом, техническая проблема, решаемая посредством настоящего раскрытия, заключается в том, как защищать онлайновую информацию, такую как конфиденциальность сумм транзакций. Такие транзакции могут соответствовать модели на основе счетов/балансов.
[47] Некоторые существующие технологии предлагают использовать схему обязательств Педерсена, чтобы шифровать сумму транзакции и заменять модель на основе счетов/балансов. В соответствии с этой схемой, отправитель отправляет сумму транзакции и случайное число, соответствующее схеме обязательств Педерсена для суммы транзакции, получателю платежа через защищенный канал вне цепочки блоков. Получатель платежа верифицирует то, совпадает или нет случайное число с удостоверением транзакции, и выполняет локальное хранение данных. Например, согласно модели на основе счетов/балансов, счет может трактоваться в качестве кошелька (счета) для хранения активов, которые агрегируются, но не объединяются. Каждый актив может соответствовать типу активов (например, криптовалюта), и баланс счета является суммой стоимостей активов. Даже активы идентичного типа не объединяются. Во время транзакции, может указываться получатель переводимого актива, и соответствующий актив может удаляться из кошелька, чтобы финансировать транзакцию. Узлы цепочки блоков верифицируют то, что кошелек платежа имеет достаточный актив(ы) для того, чтобы покрывать транзакцию, и затем узлы удаляют переведенный актив из кошелька платежа и добавляют соответствующий актив в кошелек получателя.
[48] Тем не менее, по-прежнему существуют ограничения для такой схемы. Сумма транзакции и случайное число, сформированное посредством схемы обязательств Педерсена, являются высококонфиденциальными данными. Стороны, отличные от сторон, связанных с транзакцией, не должны иметь возможность знать значения. Таким образом, эта информация должна шифроваться и сохраняться и дешифроваться после использования. Удостоверенное значение и случайное число представляют собой необходимые элементы для траты актива транзакции в будущем, но их легко терять и сложно восстанавливать вследствие отсутствия безопасного, стабильного и эффективного способа надлежащим образом сохранять случайные числа. Например, схема современных технологий требует от пользователя поддерживать постоянное хранение данных локально, чтобы управлять случайными числами и балансами в виде простого текста, соответствующими зашифрованному балансу счета, и реализация управления усложняется. Дополнительно, хранение коэффициентов маскирования (например, случайных чисел) и балансов в виде простого текста, соответствующих "активу Педерсена", в одном локальном узле имеет предрасположенность к потерям или повреждению, тогда как многоузловое резервное хранение данных затруднительно реализовывать вследствие частого изменения баланса счета.
[49] Системы и способ, представленные в этом раскрытии, могут преодолевать вышеуказанные ограничения и достигать надежной защиты конфиденциальности для сумм транзакций, стоимостей активов и коэффициентов маскирования в схемах обязательств. С этой целью, различные протоколы обмена криптографической информацией могут использоваться для того, чтобы шифровать/дешифровать случайные числа и балансы в виде простого текста, за счет этого предоставляя удобное управление. Дополнительно, сохранение зашифрованной информации в цепочке блоков обеспечивает, что суммы транзакций, стоимости активов и коэффициенты маскирования в схемах обязательств легко не теряются или имитируются.
[50] В некоторых вариантах осуществления, схема обязательств (например, схема обязательств Педерсена) может шифровать определенное значение (например, сумму транзакции, стоимость активов, параметр ключа) следующим образом:
PC(a)=r*G+a*H,
[51] где r является случайным коэффициентом маскирования (альтернативно называемым "коэффициентом привязки"), который обеспечивает сокрытие, G и H являются публично согласованными генераторами/базисными точками эллиптической кривой и могут выбираться случайно, a является значением удостоверения, PC(a) является точкой кривой, используемой в качестве удостоверения и данной контрагенту, и H является другой точкой кривой. Таким образом, G и H могут быть известными параметрами для узлов. Формирование H по принципу "ничего не спрятано" может формироваться посредством хеширования базисной точки G с отображением посредством хеш-функции из одной точки в другую с помощью H = Hash(G). H и G являются общедоступными параметрами данной системы (например, случайно сформированными точками на эллиптической кривой). Хотя выше предоставляется пример схемы обязательств Педерсена в форме эллиптической кривой, альтернативно могут использоваться различные другие формы схемы обязательств Педерсена или другие схемы обязательств.
[52] Схема обязательств поддерживает секретность данных, но удостоверяет данные таким образом, что они не могут изменяться впоследствии отправителем данных. Если сторона знает только значение удостоверения (например, PC(a)), она не может определять то, какие базовые значения данных (например, a) удостоверяются. Как данные (например, a), так и коэффициент маскирования (например, r) могут быть раскрыты впоследствии (например, посредством узла-инициатора), и получатель (например, консенсусный узел) удостоверения может выполнять удостоверение и верифицировать то, что удостоверенные данные совпадают с раскрытыми данными. Коэффициент маскирования присутствует, поскольку без него, кто-нибудь может пытаться угадывать данные.
[53] Схемы обязательств представляют собой способ для отправителя (удостоверяющей стороны) удостоверять значение (например, a) таким образом, что удостоверенное значение остается закрытым, но может быть раскрыто впоследствии, когда удостоверяющая сторона обнародует необходимый параметр процесса удостоверения. Для строгих схем удостоверения могут быть характерны сокрытие информации и вычислительная привязка. Сокрытие означает такое понятие, что данное значение a и удостоверение этого значения PC(a) должны быть неузнаваемыми. Таким образом, PC(a) не должен раскрывать информацию относительно a. Когда PC(a), G и H известны, практически невозможно знать a вследствие случайного числа r. Схема обязательств представляет собой привязку, если отсутствует вероятный способ, которым два разных значения могут приводить к идентичной удостоверения. Для схемы обязательств Педерсена характерны идеальное сокрытие и вычислительная привязка при допущении дискретного логарифма. Дополнительно, когда r, G, H и PC(a) известны, можно верифицировать PC(a) посредством определения того, удовлетворяется или нет PC(a)=r*G+a*H.
[54] Схема обязательств Педерсена имеет дополнительное свойство: удостоверения могут добавляться, и сумма набора удостоверений является идентичной удостоверения суммы данных (с коэффициентом маскирования, заданным в качестве суммы коэффициентов маскирования): PC(r1, data1)+PC(r2, data2)==PC(r1+r2, data1+data2); PC(r1, data1)-PC(r1, data1)==0. Другими словами, удостоверение сохраняет суммирование, и применимо коммутативное свойство, т.е. схема обязательств Педерсена является аддитивно гомоморфной в том, что базовыми данными можно манипулировать математически так, как если бы они не были зашифрованы.
[55] В одном варианте осуществления, схема обязательств Педерсена, используемая для шифрования входного значения, может конструироваться с использованием точек эллиптической кривой. Традиционно, открытый ключ на основе криптографии на эллиптических кривых (ECC) создается посредством умножения генератора для группы (G) на секретный ключ (r): Pub=rG. Результат может преобразовываться в последовательную форму в качестве 33-байтового массива. Открытые ECC-ключи могут подчиняться аддитивно гомоморфному свойству, упомянутому выше относительно удостоверений Педерсена. Иными словами: Pub1+Pub2=(r1+r2(mod n))G.
[56] Удостоверение Педерсена для входного значения может создаваться посредством подбора дополнительного генератора для группы (H, в нижеприведенных уравнениях) таким образом, чтобы никто не знал дискретный логарифм для второго генератора H относительно первого генератора G (или наоборот), что означает то, что никто не знает x таким образом, что xG=H. Это может осуществляться, например, посредством использования криптографического хеша G для подбора H: H=to_point(SHA256(ENCODE(G))).
[57] С учетом двух генераторов G и H, примерная схема обязательств для шифрования входного значения может задаваться следующим образом: commitment=rG+aH. Здесь, r может быть секретным коэффициентом маскирования, и a может быть удостоверяемым входным значением. Следовательно, если a удостоверяется, может получаться вышеописанная схема обязательств PC(a)=r*G+a*H. Удостоверения Педерсена являются теоретически-информационно закрытыми: для любой удостоверения существует некоторый коэффициент маскирования, который должен приводить к тому, что любая сумма совпадает с удостоверением. Удостоверения Педерсена могут быть вычислительно защищенными от поддельной удостоверения в том, что произвольное отображение может не быть вычислено.
[58] Сторона (узел), которая удостоверяет значение, может открывать удостоверение посредством раскрытия исходного значения a и коэффициента r, который завершает уравнение удостоверения. Сторона, желающая открыть значение PC(a), тогда вычислит удостоверение снова, чтобы верифицировать то, что совместно используемое исходное значение фактически совпадает с первоначально принимаемым удостоверением PC(a). Таким образом, информация типов активов может защищаться посредством ее отображения в уникальный серийный номер и затем шифрования посредством схемы обязательств Педерсена. Случайное число r, выбранное при формировании удостоверения, делает почти невозможным для кого-либо логически выводить тип для типа активов, который удостоверяется согласно значению PC(a) удостоверения.
[59] В некоторых вариантах осуществления, могут использоваться различные протоколы обмена криптографической информации, такие как протокол с открытым ключом, протокол симметричного шифрования, обмен ключами Диффи-Хеллмана (DH) и т.д. Например, обмен DH-ключами может использоваться в качестве способа для защищенного обмена криптографическими ключами по открытому каналу. Обмен DH-ключами, также называемый "обменом экспоненциальными ключами", представляет собой способ цифрового шифрования, которое использует числа, возведенные в конкретные степени, для того чтобы формировать ключи дешифрования на основе компонентов, которые никогда не передаются непосредственно, делая задачу потенциального взломщика кодов математически нерешаемой.
[60] В примере реализации обмена ключами Диффи-Хеллмана (DH), два конечных пользователя Alice и Bob, при обмене данными по каналу, насчет которого они знают, что он является закрытым, взаимно согласуют положительные целые числа p и q таким образом, что p является простым числом, и q является генератором p. Генератор q является числом, которое при возведении в степени положительного целого числа, меньшие p, никогда не формирует идентичный результат для любых двух таких целых чисел. Значение p может быть большим, но значение q обычно является небольшим. Таким образом, q является модулем p первообразного корня.
[61] После того, как Alice и Bob конфиденциально согласуют p и q, они выбирают персональные ключи a и b в форме положительного целого числа, оба из которых меньше модуля p простого числа и оба могут случайно формироваться. Пользователи не обнародуют свой персональный ключ никому, и в идеале они запоминают эти числа и не записывают их или нигде не сохраняют их. Затем, Alice и Bob вычисляют открытые ключи a* и b* на основе своих персональных ключей согласно формулам:
a*=qa mod p
и
b*=qb mod p
[62] Два пользователя могут совместно использовать свои открытые ключи a* и b* по среде связи, предположительно незащищенной, к примеру, по Интернету либо по корпоративной глобальной вычислительной сети (WAN). Из этих открытых ключей, число k1 может формироваться любым из этих пользователей на основе собственных персональных ключей.
[63] Alice вычисляет k1 с использованием формулы:
k1=(b*)a mod p
[64] Bob вычисляет k1 с использованием формулы:
k1=(a*)b mod p
[65] Значение k1 оказывается идентичным согласно любой из вышеуказанных двух формул. Тем не менее, персональные ключи a и b, которые являются критическими в вычислении k1, не переданы по открытой среде передачи. Даже с помощью p, q, a* и b* по-прежнему очень трудно вычислять a и b. Поскольку они представляют собой большие и, по-видимому, случайные числа, потенциальный хакер фактически не имеет возможности корректного угадывания k1, даже с помощью мощного компьютера, чтобы проводить миллионы попыток. Два пользователя в силу этого могут, в теории, обмениваться данными конфиденциально по открытой среде передачи со способом шифрования по своему выбору с использованием ключа k1 дешифрования.
[66] В другом примере реализации обмена ключами Диффи-Хеллмана (DH), все вычисления происходят в дискретной группе достаточного размера, в которой проблема Диффи-Хеллмана считается сложной, обычно в мультипликативной группе по модулю большое простое число (например, для классического DH) или в группе эллиптических кривых (например, для эллиптической кривой Диффи-Хеллмана).
[67] Для двух сторон, каждая сторона выбирает закрытый ключ a или b. Каждая сторона вычисляет соответствующий открытый ключ aG или bG. Каждая сторона отправляет открытый ключ aG или bG другой стороне. Каждая сторона использует принимаемый открытый ключ вместе с собственным закрытым ключом, чтобы вычислять новый совместно используемый секрет a(bG)=b(aG), который затем может использоваться с функцией извлечения ключа для того, чтобы извлекать набор ключей для схемы симметричного шифрования. Альтернативно, могут использоваться различные другие способы вычисления, например, посредством формирования открытых ключей ga и gb и совместно используемого ключа gab или gba.
[68] Во время транзакций, защита информации является важной для того, чтобы защищать конфиденциальность пользователей, и сумма транзакции представляет собой один тип информации, для которой отсутствует защита. Фиг. 1 показывает примерную систему 100 для защиты информации, в соответствии с различными вариантами осуществления. Как показано, сеть цепочек блоков может содержать множество узлов (например, полных узлов, реализованных на серверах, в компьютерах и т.д.). Для некоторой платформы цепочек блоков (например, NEO), полные узлы с определенным правом голоса могут упоминаться как консенсусные узлы, которые принимают на себя ответственность за верификацию транзакций. В этом раскрытии, полные узлы, консенсусные узлы или другие эквивалентные узлы могут верифицировать транзакцию.
[69] Кроме того, как показано на фиг. 1, пользователь A и пользователь B могут использовать соответствующие устройства, такие как переносные компьютеры и мобильные телефоны, служащие в качестве облегченных узлов для того, чтобы выполнять транзакции. Например, пользователь A может хотеть осуществлять транзакции с пользователем B посредством перевода некоторого актива на счету пользователя A на счет пользователя B. Пользователь A и пользователь B могут использовать соответствующие устройства с установленным соответствующим программным обеспечением для цепочек блоков для транзакции. Устройство пользователя A может упоминаться как узел-инициатор, который инициирует транзакцию с устройством пользователя B, называемым "узлом-получателем B". Узел A может осуществлять доступ к цепочке блоков через связь с узлом 1, и узел B может осуществлять доступ к цепочке блоков через связь с узлом 2. Например, узел A и узел B могут отправлять транзакции в цепочку блоков через узел 1 и узел 2, чтобы запрашивать добавление транзакций в цепочку блоков. Вне цепочки блоков, узел A и узел B могут иметь другие каналы связи (например, регулярную Интернет-связь без прохождения через узлы 1 и 2).
[70] Каждый из узлов на фиг. 1 может содержать процессор и долговременный машиночитаемый носитель данных, соединенный с процессором, и носитель данных, сохраняющий инструкции, которые, при выполнении посредством процессора, инструктируют узлу (к примеру, процессору) выполнять различные этапы для защиты информации, описанные в данном документе. На каждый узел может устанавливаться программное обеспечение (например, программа для проведения транзакций) и/или аппаратные средства (например, проводные, беспроводные соединения) для того, чтобы обмениваться данными с другими узлами и/или другими устройствами. Ниже описывается более подробная информация аппаратных средств и программного обеспечения узла со ссылкой на фиг. 5.
[71] Фиг. 2 иллюстрирует примерные этапы для транзакции и верификации между узлом-отправителем A, узлом-получателем B и одним или более узлами верификации, в соответствии с различными вариантами осуществления. Операции, представленные ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерные этапы могут включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[72] В различных вариантах осуществления, счета сторон транзакции (пользователя-отправителя A и пользователя-получателя B) сконфигурированы для модели на основе счетов/балансов. Пользователь A и пользователь B могут выполнять следующие этапы, чтобы выполнять транзакцию через одно или более устройств, к примеру, через свой переносной компьютер, мобильный телефон и т.д. В устройства может устанавливаться адаптированное программное обеспечение и аппаратные средства для того, чтобы выполнять различные этапы. Каждый счет может быть ассоциирован с парой криптографического закрытого ключа (секретного ключа) -открытого ключа. Закрытый ключ может обозначаться как SK, и открытый ключ может обозначаться как PK. Закрытый ключ может использоваться для того, чтобы подписывать передаваемую информацию (например, информацию транзакций). Открытый ключ может использоваться для того, чтобы верифицировать подписанную информацию и формировать адрес счета. Каждый счет может содержать различные активы, обозначенные как: (V=PC(r, v), EK(r, v)), то, где v представляет номинальную стоимость актива, V представляет удостоверение Педерсена номинальной стоимости v, r является коэффициентом маскирования (например, случайным числом), PC() является алгоритмом схемы обязательств Педерсена, E() является алгоритмом шифрования (например, алгоритмом шифрования криптографическими ключами), и K является ключом шифрования, который является уникальным для каждого счета. Например, каждый актив может обозначаться как (V=PC(r, v), EK(r||v)), где || представляет конкатенацию. Хотя конкатенация используется в нижеприведенных вариантах осуществления, могут использоваться другие альтернативные представления, которые заключают в себе r и v. Ключ K шифрования (например, KA, KB) может формироваться посредством различных способов, таких как протокол с закрытым ключом, функция извлечения ключа и т.д. Каждый актив также может включать в себя информацию, отличную от перечисленной информации, такую как исходная информация актива.
[73] В одном примере, до того, как пользователь A успешно осуществляет транзакцию с суммой t пользователю B в верифицированной по цепочке блоков транзакции, адреса и активы на счету A и на счету B являются следующими:
[74] Для счета A (счета A):
Адрес: AddrA
Открытый ключ: PKA
Закрытый ключ: SKA
Первый ключ: KA
Активы A1-Am, соответственно, стоимостей a1-am обозначаются следующим образом:
(A1=PC(ra1, a1), EKA(ra1, a1)),
(A2=PC(ra2, a2), EKA(ra2, a2)),
...
(Am=PC(ram, am), EKA(ram, am))
[75] Для счета B (счета B):
Адрес: AddrB
Открытый ключ PKB
Закрытый ключ: SKB
Второй ключ: KB
Активы B1-Bn, соответственно, значений b1- bn обозначаются следующим образом:
(B1=PC(rb1, b1), EKB(rb1, b1)),
(B2=PC(rb2, b2), EKB(rb2, b2)),
...
(Bn=PC(rbn, bn), EKB(rbn, bn))
[76] В некоторых вариантах осуществления, на этапе 201, узел A может инициировать транзакцию с узлом B. Например, пользователь A и пользователь B могут согласовывать сумму t транзакции со счета A пользователя A на счет B пользователя B. Счет A и счет B могут соответствовать "кошелькам", описанным в данном документе. Счет A может иметь один или более активов. Актив может содержать, например, деньги, токен, цифровую валюту, договор, купчую, медицинскую карту, сведения о клиентах, акции, долговое обязательство, долю в капитале или любой другой актив, который может описываться в цифровой форме. Счет B может иметь один или более активов или не иметь активов. Каждый актив может быть ассоциирован с различной информацией цепочек блоков, сохраненной в блоках цепочки блоков, причем информация цепочек блоков содержит, например, NoteType, представляющий тип активов, NoteID, представляющий уникальный идентификатор актива, значения удостоверения, представляющие значение удостоверения (например, удостоверения Педерсена) стоимости активов, шифрование случайного числа и стоимости активов и т.д.
[77] Как описано относительно счета A, в некоторых вариантах осуществления, активы A1-Am надлежащим образом соответствуют стоимостям a1-am активов и случайным числам ra1-ram. На основе случайных чисел ra1-ram, узел A может удостоверять стоимости активов на счету A в схему удостоверения (например, схему обязательств Педерсена), чтобы получать зашифрованные значения удостоверения. Например, для счета A, зашифрованные значения удостоверения могут составлять PC1-PCm, где PCi=PC(rai, ai)=rai*G+ai*H, G и H являются известными, и i является переменной между 1 и m. В дополнение к первому полю PC(...), каждый актив также ассоциирован со вторым полем E(...), как описано выше. Второе поле E(...) может представлять шифрование соответствующего случайного числа и стоимости активов, зашифрованной с помощью ключа KA. Например, шифрование может представлять собой EKA(rai, ai). PC(...) и E(...) для каждого актива могут быть унаследованы из предыдущих транзакций. Идентичный механизм может применяться к счету B и его активам.
[78] В некоторых вариантах осуществления, чтобы удовлетворять сумме t транзакции, пользователь A может использовать первый ключ KA (например, симметричный ключ шифрования) для того, чтобы дешифровать один или более активов с агрегированной стоимостью, по меньшей мере, t из счета A. Например, узел A может отводить активы A1, A2, ..., Ak для этой транзакции, где k меньше или равно m. Оставшиеся активы Ak+1, Ak+2, ..., Am счета A являются неотведенными. Соответственно, узел A может считывать активы PC(ra1, a1), PC(ra2, a2), ..., PC(rak, ak) из узла 1. Когда случайные числа ra1, ra2, ..., rak известны узлу A, узел A может дешифровать считываемые активы PC(ra1, a1), PC(ra2, a2), ..., PC(rak, ak), чтобы получать стоимости a1, a2, ..., ak активов, чтобы обеспечивать то, что сумма (a1+a2+...+ak) не меньше суммы t транзакции. Различными активами можно обмениваться в пределах счета с различными темпами.
[79] В некоторых вариантах осуществления, симметричный ключ шифрования может означать идентичные криптографические ключи, используемые в криптографическом алгоритме с симметричным ключом как для шифрования простого текста, так и для дешифрования зашифрованного текста. Ключи могут быть идентичными, либо может быть предусмотрено простое преобразование для того, чтобы проходить между двумя ключами. Ключи могут представлять совместно используемый секрет между двумя или более сторон, который может использоваться для того, чтобы поддерживать закрытую информационную линию связи.
[80] В некоторых вариантах осуществления, сумма выбранной стоимости активов сверх t, если имеется, задается равной y в качестве сдачи. Например, узел A может определять сдачу y=(a1+a2+...+ak)-t. Узел A может выбирать случайные числа rt и ry в качестве коэффициентов маскирования, чтобы формировать удостоверения Педерсена для t и y: T=PC(rt, t), Y=PC(ry, y). Таким образом, узел A может формировать случайное число rt для t и случайное число ry для y. Узел A может удостоверять t и rt в схему удостоверения (например, гомоморфное шифрование), чтобы получать значение удостоверения T=PC(rt, t), и удостоверять y и ry в схему удостоверения (например, гомоморфное шифрование), чтобы получать значение удостоверения Y=PC(ry, y). Дополнительно, узел A может определять r'=(r1+r2...+rk)-rt-ry.
[81] В некоторых вариантах осуществления, узел A может использовать первый ключ KA для того, чтобы шифровать (ry, y), получая шифрование EKA(ry, y). Узел A может сохранять EKA(ry, y) локально.
[82] На этапе 202, узел A может отправлять информацию транзакций в узел B (например, через цепочку блоков, через защищенный канал вне цепочки блоков). Отправленная информация транзакций может содержать, например, случайное число rt, сумму t транзакции и значение T удостоверения. Информация транзакций может отправляться в простом тексте.
[83] На этапе 203, узел B может верифицировать случайное число rt, сумму t транзакции и значение T удостоверения. В некоторых вариантах осуществления, узел B может верифицировать то, является или нет сумма t, которую следует отправлять пользователю B, корректной, и то, удовлетворяется или нет T=PC(rt, t). Для этапа 203, если сопоставление/верификация завершается неудачно, узел B может отклонять транзакцию. Если сопоставление/верификация выполняется успешно, узел B может отвечать узлу A на этапе 204.
[84] На этапе 204, узел B может шифровать (rt, t) с помощью второго ключа KB (например, симметричного ключа шифрования), чтобы получать шифрование EKB(rt, t), и подписывать транзакцию (EKB(rt, t), T) с помощью закрытого ключа SKB пользователя B, чтобы формировать подпись SIGB. Подписание может соответствовать алгоритму цифровой подписи (DSA), такому как алгоритм цифровой подписи в эллиптических кривых (ECDSA), за счет чего получатель подписи может верифицировать подпись с помощью открытого ключа подписавшей стороны, чтобы аутентифицировать подписанные данные. Подпись SIGB показывает согласие узла-получателя B с транзакцией.
[85] На этапе 205, узел B может передавать подписанную транзакцию EKB(rt, t) и подпись SIGB обратно в узел A.
[86] На этапе 206, если SIGB не верифицируется успешно, узел A может отклонять транзакцию. Если SIGB успешно верифицируется, узел A может формировать доказательство RP по диапазону, чтобы доказывать узлам цепочки блоков то, находятся или нет значение PC(rt, t) и значение PC(ry, y) в пределах достоверного диапазона. Например, чтобы иметь достоверные значения PC(rt, t), сумма t транзакции может находиться в пределах достоверного диапазона [0, 2n-1]; и иметь достоверные значения PC(ry, y), сдача y может находиться в пределах достоверного диапазона [0, 2n-1]. В одном варианте осуществления, узел A может использовать технологию на основе поблочного доказательства, чтобы формировать доказательство RP по диапазону, связанное с (T, rt, t, Y, ry, y) для узлов цепочки блоков (например, консенсусных узлов), чтобы верифицировать на следующем этапе то, находятся или нет сумма t транзакции и сдача y в пределах достоверного диапазона, на основе доказательства по диапазону. Доказательство по диапазону может содержать, например, пуленепробиваемые доказательства, кольцевую подпись Борромена и т.д.
[87] Дополнительно, узел A может подписывать транзакцию с помощью закрытого ключа SKA пользователя A, чтобы формировать подпись SIGA. Аналогично, подписание может соответствовать алгоритму цифровой подписи (DSA). В одном варианте осуществления, узел A может подписывать ({PC(ra1, a1), EKA(ra1, a1); PC(ra2, a2), EKA(ra2, a2р);... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), EKA(ry, y)}; {PC(rt, t), EKB(rt, t)}; Y; T; r'; RP) с помощью закрытого ключа пользователя A, чтобы формировать подпись SIGA, где {PC(ra1, a1), EKA(ra1, a1);... PC(ra2, a2), EKA(ra2, a2); PC(rak, ak), EKA(rak, ak)} представляет отведенные активы A1, A2, ..., Ak из счета A для транзакции. {PC(ry, y), EKA(ry, y)} представляет сдачу, которую счет A должен принимать из транзакции. {PC(rt, t), EKB(rt, t)} представляет переведенный актив, который счет B должен принимать из транзакции.
[88] На этапе 207, узел A может отправлять транзакцию в цепочку блоков, что инструктирует узлам цепочки блоков верифицировать транзакцию и определять то, следует или нет добавлять транзакцию в цепочку блоков. В одном варианте осуществления, узел A может отправлять транзакцию ({PC(ra1, a1), EKA(ra1, a1); PC(ra2, a2), EKA(ra2, a2);... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), EKA(ry, y)}; {PC(rt, t), EKB(rt, t)}; Y; T; r'; RP; SIGA; SIGB) в цепочку блоков через узел 1, чтобы выполнять транзакцию. Транзакция может содержать дополнительные параметры или может не содержать все перечисленные параметры. Транзакция может передаваться в широковещательном режиме в один или более узлов (например, консенсусных узлов) в цепочке блоков для верификации. Если верификация выполняется успешно, транзакция добавляется в цепочку блоков. Если верификация завершается неудачно, транзакция отклоняется на предмет добавления в цепочку блоков.
[89] На этапах 208-213, один или более узлов (например, консенсусных узлов) верифицируют подписи, доказательство по диапазону и другую информацию отправленной транзакции. Если верификация завершается неудачно, узлы отклоняют транзакцию. Если верификация выполняется успешно, узлы подтверждают транзакцию, обновляют счет пользователя A и счет пользователя B отдельно.
[90] В некоторых вариантах осуществления, чтобы выполнять транзакцию, информация транзакций может верифицироваться посредством различных узлов цепочки блоков. Информация транзакций может содержать адрес TXID транзакции, подпись(и), ввод и вывод. TXID может содержать хеш контента транзакции. Подписи могут содержать криптоключи-подписи со стороны отправителя и получателя. Ввод может содержать адрес счета отправителя в цепочке блоков, один или более активов, отведенных из счета цепочки блоков отправителя для транзакции, и т.д. Вывод может содержать адрес счета получателя в цепочке блоков, тип(ы) активов для актива(ов) получателя, значение(я) удостоверения актива(ов) получателя и т.д. Ввод и вывод может содержать индексированную информацию в табличной форме. В некоторых вариантах осуществления, стоимость значения NoteID может представлять собой "TXID+индекс актива в выводе".
[91] В некоторых вариантах осуществления, один или более узлов цепочки блоков могут верифицировать отправленную транзакцию ({PC(ra1, a1), EKA(ra1, a1); PC(ra2, a2), EKA(ra2, a2);... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), EKA(ry, y)}; {PC(rt, t), EKB(rt, t)}; Y; T; r'; RP; SIGA; SIGB).
[92] На этапе 208, узлы могут верифицировать то, выполнена либо нет транзакция, с использованием механизма защиты от двойной траты или механизма защиты от атак с повторением пакетов. Если транзакция выполнена, узлы могут отклонять транзакцию; в противном случае, способ может переходить к этапу 209.
[93] На этапе 209, узлы могут проверять подписи SIGA и SIGB (например, на основе открытого ключа A и открытого ключа B, соответственно). Если какая-либо из подписей является некорректной, узлы могут отклонять транзакцию; в противном случае, способ может переходить к этапу 210.
[94] На необязательном этапе 210, узлы могут верифицировать то, являются или нет типы активов согласованными. Например, узлы могут верифицировать то, являются или нет типы активов в NoteType для A1-Ak согласованными с типом(ами) активов суммы t транзакции. Если какие-либо из типов активов являются несогласованными, узлы могут отклонять транзакцию; в противном случае, способ может переходить к этапу 211. В некоторых вариантах осуществления, исходный тип активов в кошельке может преобразовываться в другой тип на основе обменного курса, и этот этап может пропускаться.
[95] На этапе 211, узлы могут проверять доказательство RP по диапазону, чтобы проверять достоверность значения PC(rt, t) и значения м. В одном варианте осуществления, узлы могут проверять доказательство RP по диапазону, чтобы верифицировать то, не меньше либо нет сумма t транзакции нуля, и то, не меньше либо нет сдача y нуля. Если верификация завершается неудачно, узлы могут отклонять транзакцию; в противном случае, способ может переходить к этапу 212.
[96] На этапе 212, узлы могут проверять то, являются или нет вводы и выводы транзакции согласованными. В одном варианте осуществления, r' может соответствовать стоимости активов t'=a1+a2...+ak-t-y на основе гомоморфного свойства, где r'=(r1+r2...+rk)-rt-ry. Поскольку входные активы составляют a1+a2...+ak, и вывод составляет t+y, t'=0, когда ввод и вывод является согласованным: a1+a2...+ak =t+y. Таким образом, значение удостоверения, соответствующее r', составляет PC(r', t')=r '*G+t'*H=r'G. Поскольку r'=(r1+r2...+rk)-rt-ry, узлы могут определять то, равны или нет вводы и выводы, посредством верификации того, равен r'G или нет PC1+...+PCk-T-Y согласно (r1+r2...+rk)-rt-ry. Если r'G равен PC1+...+PCk-T-Y, узлы могут определять то, что вводы и выводы транзакции являются согласованными, и переходить к следующему этапу; в противном случае, узлы могут определять то, что вводы и выводы транзакции являются несогласованными, и отклонять транзакцию.
[97] На этапе 213, узлы могут верифицировать то, имеет или нет узел A актив(ы), отведенные для транзакции. В одном варианте осуществления, узлы могут выполнять эту верификацию на основе информации, сохраненной в цепочке блоков, к примеру, информации, соответствующей счету A. Информация может содержать информацию предыдущих транзакций всех активов. Узлы в силу этого могут определять то, имеет или нет счет A актив для проведения транзакции для транзакции. Если определение представляет собой "Нет", узлы могут отклонять транзакцию; в противном случае, способ может переходить к этапу 214.
[98] На этапе 214, узлы могут обновлять счет A и счет B. Например, узлы могут удалять актив для проведения транзакции с суммой t из счета A и добавлять его на счет B. На основе гомоморфного свойства, поскольку Y=PC(ry, y) и узел 1 знает ry и может осуществлять доступ к значению Y удостоверения из цепочки блоков, узел 1 может дешифровать Y, чтобы получать стоимость активов y, и возвращать ее на счет A. Узел 2 получает на этапе 202 случайное число rt из узла 1 и может получать из цепочки блоков значение T удостоверения. Таким образом, узел 2 может дешифровать T, чтобы получать стоимость t активов, и добавлять ее на счет B.
[99] В одном примере, после обновления счета A и счета B, счет A принимает сдачу y на отведенные активы A1, A2, ..., Ak и принимает свои неотведенные активы Aak+1, ..., Am, и счет B принимает сумму t транзакции и принимает свои исходные активы B1, B2, ..., Bn. Активы на счету A и на счету B являются следующими:
[100] Для счета A (счета A), обновленные активы обозначаются следующим образом:
(Y=PC(ry, y), EKA(ry, y)),
(Aak+1=PC(rak+1, ak+1), EKA(rak+1, ak+1))
(Aak+2=PC(rak+2, ak+2), EKA(rak+2, ak+2))
...
(Am=PC(ram, am), EKA(ram, am))
[101] Для счета B (счета B), обновленные активы обозначаются следующим образом:
(B1=PC(rb1, b1), EKB(rb1, b1)),
(B2=PC(rb2, b2), EKB(rb2, b2)),
...
(Bn=PC(rbn, bn), EKB(rbn, bn)),
(T=PC(rt, t), EKB(rt, t))
[102] Хотя это раскрытие использует узел A/пользователя A и узел B/пользователя B для того, чтобы иллюстрировать отправителя и получателя, соответственно, отправитель и получатель могут представлять собой идентичный узел/пользователя. Например, сдача y транзакции (общее число отведенных активов на счету A минус сумма транзакции) может отправляться обратно отправителю транзакции. Таким образом, различные этапы, выполняемые узлом B, как описано в данном документе, альтернативно могут выполняться узлом A.
[103] Фиг. 3 иллюстрирует блок-схему последовательности операций примерного способа 300 для защиты информации, согласно различным вариантам осуществления настоящего раскрытия. Способ 300 может реализовываться посредством одного или более компонентов (например, узла A, узла 1, комбинации узла A и узла 1) системы 100 по фиг. 1. Способ 300 может реализовываться посредством системы или устройства (например, компьютера, сервера), содержащего процессор и долговременный машиночитаемый носитель данных (например, запоминающее устройство), сохраняющий инструкции. Инструкции, при выполнении посредством процессора, инструктируют системе или устройству (например, процессору) осуществлять способ 300. Операции способа 300, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 300 может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[104] Этап 301 содержит: удостоверение суммы t транзакции для транзакции с помощью первой схемы обязательств, с тем чтобы получать значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, с тем чтобы получать значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи. В некоторых вариантах осуществления, первая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента rt маскирования транзакции, при этом сумма t транзакции составляет соответствующее удостоверенное значение. См., например, T=PC(rt, t). Вторая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента ry маскирования сдачи, при этом сдача y составляет соответствующее удостоверенное значение. См., например, Y=PC(ry, y).
[105] Этап 302 содержит: шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA.
[106] Этап 303 содержит: передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем. В некоторых вариантах осуществления, передача коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем содержит: передачу коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, инструктирование узлу-получателю верифицировать то, равно или нет значение T удостоверения транзакции результату удостоверения первой схемой обязательств суммы t транзакции с коэффициентом rt маскирования транзакции.
[107] Этап 304 содержит: в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB. В некоторых вариантах осуществления, получение зашифрованной второй комбинации содержит прием из узла-получателя зашифрованной второй комбинации и подписи SIGB, ассоциированной со второй зашифрованной комбинацией и значением T удостоверения транзакции.
[108] Этап 305 содержит: передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков.
[109] В некоторых вариантах осуществления, сумма t транзакции является отведенной из одного или более активов A1, A2, ..., Ak отправителя транзакции; каждый из активов ассоциирован со (1) схемой обязательств Педерсена, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива и (2) шифрованием, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива; и сдача y является разностью между суммой t транзакции и отведенными активами.
[110] В некоторых вариантах осуществления, перед передачей зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков, способ дополнительно содержит: верификацию подписи SIGB; и в ответ на успешную верификацию подписи SIGB, формирование подписи SIGA, ассоциированной с активами A1, A2, ..., Ak, первой комбинацией, второй комбинацией, значением T удостоверения транзакции, значением Y удостоверения сдачи и разностью между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи. Таким образом, разность составляет r'=(r1+r2...+rk)-(rt+ry).
[111] В некоторых вариантах осуществления, передача зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков содержит: передачу активов A1, A2, ..., Ak, первой комбинации, второй комбинации, значения T удостоверения транзакции, значения Y удостоверения сдачи, разности между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, подписи SIGA и подписи SIGB во множество узлов в цепочке блоков.
[112] В некоторых вариантах осуществления, передача зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков для верификации транзакции узлами в цепочке блоков содержит: передачу зашифрованной первой комбинации и зашифрованной второй комбинации во множество узлов в цепочке блоков, инструктирование узлам в цепочке блоков, в ответ на успешную верификацию транзакции, эмитировать сумму t транзакции получателю, исключать активы A1, A2, ..., Ak и эмитировать сдачу y отправителю.
[113] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа 400 для защиты информации, согласно различным вариантам осуществления настоящего раскрытия. Способ 400 может реализовываться посредством одного или более компонентов (например, узла B, узла 2, комбинации узла B и узла 2 и т.д.) системы 100 по фиг. 1. Способ 400 может реализовываться посредством системы или устройства (например, компьютера, сервера), содержащего процессор и долговременный машиночитаемый носитель данных (например, запоминающее устройство), сохраняющий инструкции. Инструкции, при выполнении посредством процессора, инструктируют системе или устройству (например, процессору) осуществлять способ 400. Операции способа 400, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 400 может включать в себя большее число, меньшее число или альтернативные этапы, выполняемые в других порядках или параллельно.
[114] Этап 401 содержит: получение коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции из узла-отправителя, ассоциированного с отправителем транзакции, при этом: сумма t транзакции удостоверена с помощью первой схемы обязательств, чтобы получать значение T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции.
[115] Этап 402 содержит: верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции. В некоторых вариантах осуществления, верификация транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции содержит верификацию того, равно или нет полученное значение T удостоверения транзакции первой схеме обязательств, удостоверяющей полученную сумму t транзакции с полученным коэффициентом rt маскирования транзакции.
[116] Этап 403 содержит: в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB.
[117] Этап 404 содержит: передачу зашифрованной второй комбинации в узел-отправитель. В некоторых вариантах осуществления, перед передачей зашифрованной второй комбинации в узел-отправитель, дополнительно содержит формирование подписи SIGB, ассоциированный со второй зашифрованной комбинацией и значением T удостоверения транзакции; и передача зашифрованной второй комбинации в узел-отправитель содержит передачу зашифрованной второй комбинации и подписи SIGB в узел-отправитель.
[118] Как показано, конфиденциальность для суммы транзакции может защищаться посредством различных улучшений вычислительных технологий. Например, структура счета содержит одно или более полей, к примеру, первое поле, ассоциированное с удостоверением Педерсена стоимости активов (например, первое поле представляет собой PC(rai, ai), при этом i составляет между 1 и m), и второе поле, ассоциированное со случайным числом для удостоверения Педерсена и стоимостью активов (например, второе поле представляет собой EKA(rai, ai), при этом i составляет между 1 и m). Первое поле и второе поле также используются на этапах проведения транзакции и сохраняются в цепочке блоков.
[119] В качестве другого примера, криптографический ключ используется для того, чтобы шифровать случайное число каждого удостоверения Педерсена и соответствующую стоимость активов. Криптографический ключ для шифрования/дешифрования хранится владельцем счета, в силу чего конфиденциальность стоимостей активов защищается от пользователей без криптографического ключа. Дополнительно, транзакция, включающая в себя зашифрованные случайные числа и стоимости активов, сохраняется в цепочке блоков. Этот способ предоставляет удобство для управления случайными числами, минимизирует вероятность потерь и переделки случайных чисел и стоимостей активов и стимулирует безопасность на основе распределенного и согласованного хранения цепочек блоков.
[120] Этапы до отправки транзакции в цепочку блоков могут трактоваться в качестве поведения "вне цепочки" или "перед транзакцией", поскольку процессы шифрования и дешифрования происходят на клиентских сторонах, в то время как цепочка блоков сохраняет зашифрованную "стоимость активов + соответствующее случайное число", представленное посредством функции E(). Удостоверение Педерсена может быть аналогичным сейфу с активами внутри, и "стоимость активов + соответствующее случайное число" является аналогичным ключу к сейфу. Зашифрованный ключ и его ассоциированный сейф могут сохраняться в цепочке блоков, которая является защищенной от несанкционированного использования и защищенной от потерь. Каждый раз, когда пользователь хочет расходовать актив(ы), пользователь может извлекать сейф и зашифрованный ключ из цепочки блоков и дешифровать ключ на клиентской стороне таким образом, что этапы "перед транзакцией" могут выполняться, чтобы ассемблировать новую транзакцию, которая расходует актив(ы).
[121] В связи с этим, случайные числа удостоверений Педерсена могут легко управляться, без риска повреждения и без подвергания дополнительной нагрузке по управлению ключами. Таким образом, конфиденциальность транзакции может быть полностью защищена, и суммы транзакций могут храниться в качестве секретов.
[122] Технологии, описанные в данном документе, реализуются посредством одного или более вычислительных устройств специального назначения. Вычислительные устройства специального назначения могут представлять собой настольные компьютерные системы, серверные компьютерные системы, портативные компьютерные системы, карманные устройства, сетевые устройства или любое другое устройство либо комбинацию устройств, которые включают аппаратно-реализованную и/или программную логику для того, чтобы реализовывать технологии. Вычислительное устройство(а), в общем, управляются и координируются посредством программного обеспечения операционной системы. Традиционные операционные системы управляют и диспетчеризуют компьютерные процессы для выполнения, выполняют управление запоминающим устройством, предоставляют файловую систему, организацию сетей, услуги ввода-вывода и предоставляют функциональность пользовательского интерфейса, к примеру, графический пользовательский интерфейс (GUI), в числе прочего.
[123] Фиг. 5 является блок-схемой, которая иллюстрирует компьютерную систему 500, в которой может реализовываться любой из вариантов осуществления, описанных в данном документе. Система 500 может реализовываться в любом из узлов, описанных в данном документе и выполненных с возможностью выполнять соответствующие этапы для способов защиты информации. Компьютерная система 500 включает в себя шину 502 или другой механизм связи для передачи информации, один или более аппаратных процессоров 504, соединенных с шиной 502 для обработки информации. Аппаратный процессор(ы) 504, например, может представлять собой один или более микропроцессоров общего назначения.
[124] Компьютерная система 500 также включает в себя основное запоминающее устройство 506, к примеру, оперативное запоминающее устройство (RAM), кэш и/или другие устройства динамического хранения данных, соединенные с шиной 502 для сохранения информации и инструкций, которые должны выполняться посредством процессора(ов) 504. Основное запоминающее устройство 506 также может использоваться для сохранения временных переменных или другой промежуточной информации во время выполнения инструкций, которые должны выполняться посредством процессора(ов) 504. Такие инструкции, когда сохраняются на носителях хранения данных, доступных для процессора(ов) 504, превращают компьютерную систему 500 в машину специального назначения, которая настраивается с возможностью выполнять операции, указываемые в инструкциях. Компьютерная система 500 дополнительно включает в себя постоянное запоминающее устройство 508 (ROM) или другое устройство статического хранения данных, соединенное с шиной 502 для сохранения статической информации и инструкций для процессора(ов) 504. Устройство 510 хранения данных, такое как магнитный диск, оптический диск или карта USB-флэш-памяти (флэш-накопитель) и т.д., предоставляется и соединяется с шиной 502 для сохранения информации и инструкций.
[125] Компьютерная система 500 может реализовывать технологии, описанные в данном документе, с использованием настраиваемой аппаратно-реализованной логики, одной или более ASIC или FPGA, микропрограммного обеспечения и/или программной логики, которая в комбинации с компьютерной системой инструктирует или программирует компьютерную систему 500 таким образом, что она представляет собой машину специального назначения. Согласно одному варианту осуществления, операции, способы и процессы, описанные в данном документе, выполняются посредством компьютерной системы 500 в ответ на выполнение, посредством процессора(ов) 504, одной или более последовательностей из одной или более инструкций, содержащихся в основном запоминающем устройстве 506. Такие инструкции могут считываться в основное запоминающее устройство 506 из другого носителя хранения данных, к примеру, из устройства 510 хранения данных. Выполнение последовательностей инструкций, содержащихся в основном запоминающем устройстве 506, инструктирует процессору(ам) 504 выполнять этапы процесса, описанные в данном документе. В альтернативных вариантах осуществления, аппаратно-реализованная схема может использоваться вместо или в комбинации с программными инструкциями.
[126] Основное запоминающее устройство 506, ROM 508 и/или хранилище 510 могут включать в себя долговременные носители хранения данных. Термин "долговременные носители" и подобные термины, при использовании в данном документе, означают носители, которые сохраняют данные и/или инструкции, которые инструктируют машине работать конкретным способом, носители исключают энергозависимые сигналы. Такие долговременные носители может содержать долговременные носители и/или кратковременные носители. Долговременные носители включают в себя, например, оптические или магнитные диски, такие как устройство 510 хранения данных. Кратковременные носители включают в себя динамическое запоминающее устройство, такое как основное запоминающее устройство 506. Стандартные формы долговременных носителей включают в себя, например, гибкий диск, дискету, жесткий диск, полупроводниковый накопитель, магнитную ленту или любой другой магнитный носитель данных, CD-ROM, любой другой оптический носитель данных, любой физический носитель с шаблонами отверстий, RAM, PROM и EPROM, флэш-EPROM, NVRAM, любую другую микросхему или картридж запоминающего устройства и сетевые версии вышеозначенного.
[127] Компьютерная система 500 также включает в себя сетевой интерфейс 518, соединенный с шиной 502. Сетевой интерфейс 518 предоставляет двунаправленное соединение для обмена данными с одной или более сетевых линий связи, которые соединяются с одной или более локальных сетей. Например, сетевой интерфейс 518 может представлять собой карту по стандарту цифровой сети с интегрированными услугами (ISDN), кабельный модем, спутниковый модем либо модем для того, чтобы предоставлять соединение для передачи данных с соответствующим типом телефонной линии. В качестве другого примера, сетевой интерфейс 518 может представлять собой карту локальной вычислительной сети (LAN), чтобы предоставлять соединение для передачи данных с совместимой LAN (или WAN-компонент, который должен обмениваться данными с WAN). Также могут реализовываться линии беспроводной связи. В любой такой реализации, сетевой интерфейс 518 отправляет и принимает электрические, электромагнитные или оптические сигналы, которые переносят потоки цифровых данных, представляющие различные типы информации.
[128] Компьютерная система 500 может отправлять сообщения и принимать данные, включающие в себя программный код, через сеть(и), сетевую линию связи и сетевой интерфейс 518. В Интернет-примере, сервер может передавать запрашиваемый код для прикладной программы через Интернет, ISP, локальную сеть и сетевой интерфейс 518.
[129] Принимаемый код может выполняться посредством процессора(ов) 504 по мере того, как он принимается и/или сохраняется в устройстве 510 хранения данных или другом долговременном устройстве хранения данных для последующего выполнения.
[130] Каждый из процессов, способов и алгоритмов, описанных в предыдущих разделах, может быть осуществлен и полностью или частично автоматизирован посредством кодовых модулей, выполняемых посредством одной или более компьютерных систем или процессоров компьютера, содержащих компьютерные аппаратные средства. Процессы и алгоритмы могут реализовываться частично или полностью в специализированной схеме.
[131] Различные признаки и процессы, описанные выше, могут использоваться независимо друг от друга или могут комбинироваться различными способами. Все возможные комбинации и субкомбинации имеют намерение попадать в пределы объема этого раскрытия. Помимо этого, определенные этапы способа или процесса могут опускаться в некоторых реализациях. Способы и процессы, описанные в данном документе, также не ограничены конкретными последовательностями, и этапы или состояния, связанные с ними, могут выполняться в других последовательностях, которые являются подходящими. Например, описанные этапы или состояния могут выполняться в порядке, отличном от конкретно раскрытого порядка, либо несколько этапов или состояний могут комбинироваться в одном этапе или состоянии. Примерные этапы или состояния могут выполняться последовательно, параллельно или некоторым другим способом. Этапы или состояния могут добавляться или удаляться из раскрытых примерных вариантов осуществления. Примерные системы и компоненты, описанные в данном документе, могут быть сконфигурированы отлично от описанных конфигураций. Например, элементы могут добавляться, удаляться или перекомпоновываться по сравнению с раскрытыми примерными вариантами осуществления.
[132] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством алгоритма. Алгоритм может содержаться в программных кодах или инструкциях, сохраненных в запоминающем устройстве (например, на долговременном машиночитаемом носителе хранения данных, описанном выше). Такой алгоритм может содержать алгоритм машинного обучения. В некоторых вариантах осуществления, алгоритм машинного обучения может не программировать явно компьютеры с возможностью выполнять функцию, а может обучаться, из обучающих данных, возможности создавать модель прогнозирований, которая выполняет функцию.
[133] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством одного или более процессоров, которые временно выполнены с возможностью (например, посредством программного обеспечения) или постоянно выполнены с возможностью выполнять релевантные операции. Независимо от того, временно или постоянно выполнены с возможностью, такие процессоры могут составлять процессорнореализуемые механизмы, которые работают с возможностью выполнять одну или более операций или функций, описанных в данном документе.
[134] Аналогично, способы, описанные в данном документе, могут быть, по меньшей мере, частично процессорнореализуемыми, при этом конкретный процессор или процессоры представляют собой пример аппаратных средств. Например, по меньшей мере, некоторые операции способа могут осуществляться посредством одного или более процессоров или процессорнореализуемых механизмов. Кроме того, один или более процессоров также могут работать с возможностью поддерживать выполнение релевантных операций в окружении "облачных вычислений" или в качестве "программного обеспечения как услуга" (SaaS). Например, по меньшей мере, некоторые операции могут выполняться посредством группы компьютеров (в качестве примеров машин, включающих в себя процессоры), причем эти операции являются доступным через сеть (например, Интернет) и через один или более соответствующих интерфейсов (например, через интерфейс прикладного программирования (API)).
[135] Выполнение определенных операций может распределяться между процессорами, не только постоянно размещающимися в одной машине, но и развернутыми на определенном числе машин. В некоторых примерных вариантах осуществления, процессоры или процессорнореализуемые механизмы могут быть расположены в одном географическом местоположении (например, в домашнем окружении, в офисном окружении или на ферме серверов). В других примерных вариантах осуществления, процессоры или процессорнореализуемые механизмы могут быть распределены по ряду географических местоположений.
[136] В этом подробном описании, несколько экземпляров могут реализовывать компоненты, операции или структуры, описанные в качестве одного экземпляра. Хотя отдельные операции одного или более способов проиллюстрированы и описаны в качестве отдельных операций, одна или более отдельных операций могут выполняться параллельно, и ничего не требует выполнения операций в проиллюстрированном порядке. Структуры и функциональность, представленная в качестве отдельных компонентов в примерных конфигурациях, могут реализовываться как комбинированная структура или компонент. Аналогично, структуры и функциональность, представленные в качестве одного компонента, могут реализовываться как отдельные компоненты. Эти и другие варьирования, модификации, добавления и улучшения попадают в пределы объема изобретения в данном документе.
[137] Хотя общее представление изобретения описывается со ссылкой на конкретные примерные варианты осуществления, различные модификации и изменения могут вноситься в эти варианты осуществления без отступления от более широкого объема вариантов осуществления настоящего раскрытия. Такие варианты осуществления изобретения могут упоминаться в данном документе отдельно или совместно посредством термина "изобретение" просто для удобства и без намерения умышленно ограничивать объем этой заявки каким-либо одним раскрытием или идеей, если фактически раскрывается несколько из них. Подробное описание не должно рассматриваться в ограничивающем смысле, и объем различных вариантов осуществления определяется только прилагаемой формулой изобретения, наряду с полным диапазоном эквивалентов, которые охватываются такой формулой изобретения.

Claims (69)

1. Машинореализуемый способ защиты информации, выполняемый узлом-отправителем, ассоциированным с отправителем транзакции, при этом способ содержит этапы, на которых:
удостоверяют сумму t транзакции для транзакции с помощью первой схемы обязательств, чтобы получить значение T удостоверения транзакции, и удостоверяют сдачу y транзакции с помощью второй схемы обязательств, чтобы получить значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи, причем сдача y является разностью между одним или более активами отправителя транзакции, из которых отведена сумма t транзакции, и суммой t транзакции, причем представления активов хранятся в цепочке блоков;
шифруют первую комбинацию коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA;
передают, через канал вне цепочки блоков, коэффициент rt маскирования транзакции, сумму t транзакции и значение T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем;
в ответ на то, что узел-получатель успешно верифицирует транзакцию, получают от узла-получателя (1) зашифрованную вторую комбинацию коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованную с помощью второго ключа KB, и (2) подпись SIGB, сформированную узлом-получателем посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя;
формируют подпись SIGA посредством подписания, по меньшей мере, зашифрованной первой комбинации и значения T удостоверения транзакции с помощью закрытого ключа отправителя;
формируют обновленную версию транзакции, содержащую зашифрованную первую комбинацию, зашифрованную вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи, подпись SIGA и подпись SIGB; и
передают обновленную версию транзакции во множество узлов в цепочке блоков, чтобы узлы в цепочке блоков верифицировали обновленную версию транзакции и записали обновленную версию транзакции в цепочку блоков.
2. Способ по п.1, в котором:
первая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента rt маскирования транзакции, при этом сумма t транзакции составляет соответствующее удостоверенное значение; и
вторая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента ry маскирования сдачи, при этом сдача y составляет соответствующее удостоверенное значение.
3. Способ по п.1, в котором при упомянутой передаче, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем коэффициент rt маскирования транзакции, сумму t транзакции и значение T удостоверения транзакции передают в узел-получатель, ассоциированный с получателем транзакции, инструктируя узлу-получателю верифицировать то, равно или нет значение T удостоверения транзакции результату удостоверения, посредством первой схемы обязательств, суммы t транзакции с коэффициентом rt маскирования транзакции.
4. Способ по п.1, в котором:
упомянутыми одним или более активами отправителя транзакции, из которых отведена сумма t транзакции, являются A1, A2, ..., Ak; и
каждый из этих одного или более активов ассоциирован со (1) схемой обязательств Педерсена, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива и (2) шифрованием, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива.
5. Способ по п.4, в котором упомянутое формирование подписи SIGA посредством подписания, по меньшей мере, зашифрованной первой комбинации и значения T удостоверения транзакции с помощью закрытого ключа отправителя содержит этапы, на которых:
верифицируют подпись SIGB; и
в ответ на успешную верификацию подписи SIGB, подписывают, по меньшей мере, активы A1, A2, ..., Ak, первую комбинацию, вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи и разность между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, с помощью закрытого ключа отправителя.
6. Способ по п.5, в котором сформированная обновленная версия транзакции содержит: активы A1, A2, ..., Ak, зашифрованную первую комбинацию, зашифрованную вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи, разность между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, подпись SIGA и подпись SIGB.
7. Способ по п.6, в котором при упомянутой передаче обновленной версии транзакции во множество узлов в цепочке блоков для верификации обновленной версии транзакции узлами в цепочке блоков обновленную версию транзакции передают во множество узлов в цепочке блоков, инструктируя узлам в цепочке блоков, в ответ на успешную верификацию транзакции, эмитировать сумму t транзакции получателю, исключить активы A1, A2, ..., Ak и эмитировать сдачу y отправителю.
8. Долговременный машиночитаемый носитель данных, хранящий инструкции, которые при их исполнении процессором узла-отправителя, ассоциированного с отправителем транзакции, инструктируют узлу-отправителю выполнять операции, содержащие:
удостоверение суммы t транзакции для транзакции с помощью первой схемы обязательств, чтобы получить значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, чтобы получить значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи, причем сдача y является разностью между одним или более активами отправителя транзакции, из которых отведена сумма t транзакции, и суммой t транзакции, причем представления активов хранятся в цепочке блоков;
шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA;
передачу, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем;
в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение от узла-получателя (1) зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB, и (2) подписи SIGB, сформированной узлом-получателем посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя;
формирование подписи SIGA посредством подписания, по меньшей мере, зашифрованной первой комбинации и значения T удостоверения транзакции с помощью закрытого ключа отправителя;
формирование обновленной версии транзакции, содержащей зашифрованную первую комбинацию, зашифрованную вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи, подпись SIGA и подпись SIGB; и
передачу обновленной версии транзакции во множество узлов в цепочке блоков, чтобы узлы в цепочке блоков верифицировали обновленную версию транзакции и записали обновленную версию транзакции в цепочку блоков.
9. Носитель данных по п.8, при этом:
первая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента rt маскирования транзакции, при этом сумма t транзакции составляет соответствующее удостоверенное значение; и
вторая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента ry маскирования сдачи, при этом сдача y составляет соответствующее удостоверенное значение.
10. Носитель данных по п.8, при этом при упомянутой передаче, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем коэффициент rt маскирования транзакции, сумма t транзакции и значение T удостоверения транзакции передаются в узел-получатель, ассоциированный с получателем транзакции, инструктируя узлу-получателю верифицировать то, равно или нет значение T удостоверения транзакции результату удостоверения, посредством первой схемы обязательств, суммы t транзакции с коэффициентом rt маскирования транзакции.
11. Носитель данных по п.8, при этом:
упомянутыми одним или более активами отправителя транзакции, из которых отведена сумма t транзакции, являются A1, A2, ..., Ak; и
каждый из этих одного или более активов ассоциирован со (1) схемой обязательств Педерсена, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива и (2) шифрованием, по меньшей мере, на основе коэффициента rak маскирования и стоимости каждого актива.
12. Носитель данных по п.11, при этом упомянутое формирование подписи SIGA посредством подписания, по меньшей мере, зашифрованной первой комбинации и значения T удостоверения транзакции с помощью закрытого ключа отправителя содержит:
верификацию подписи SIGB; и
в ответ на успешную верификацию подписи SIGB, подписание, по меньшей мере, активов A1, A2, ..., Ak, первой комбинации, второй комбинации, значения T удостоверения транзакции, значения Y удостоверения сдачи и разности между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, с помощью закрытого ключа отправителя.
13. Носитель данных по п.12, при этом сформированная обновленная версия транзакции содержит: активы A1, A2, ..., Ak, зашифрованную первую комбинацию, зашифрованную вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи, разность между суммой коэффициентов маскирования, соответствующих активам A1, A2, ..., Ak, и суммой коэффициента rt маскирования транзакции и коэффициента ry маскирования сдачи, подпись SIGA и подпись SIGB.
14. Носитель данных по п.13, при этом при упомянутой передаче обновленной версии транзакции во множество узлов в цепочке блоков для верификации обновленной версии транзакции узлами в цепочке блоков обновленная версия транзакции передается во множество узлов в цепочке блоков, инструктируя узлам в цепочке блоков, в ответ на успешную верификацию транзакции, эмитировать сумму t транзакции получателю, исключить активы A1, A2, ..., Ak и эмитировать сдачу y отправителю.
15. Система для защиты информации, входящая в состав узла-отправителя, ассоциированного с отправителем транзакции, при этом система содержит процессор и долговременный машиночитаемый носитель данных, соединенный с процессором, причем носитель данных хранит инструкции, которые при их исполнении процессором инструктируют системе выполнять операции, содержащие:
удостоверение суммы t транзакции для транзакции с помощью первой схемы обязательств, чтобы получить значение T удостоверения транзакции, и удостоверение сдачи y транзакции с помощью второй схемы обязательств, чтобы получить значение Y удостоверения сдачи, причем первая схема обязательств содержит коэффициент rt маскирования транзакции, и вторая схема обязательств содержит коэффициент ry маскирования сдачи, причем сдача y является разностью между одним или более активами отправителя транзакции, из которых отведена сумма t транзакции, и суммой t транзакции, причем представления активов хранятся в цепочке блоков;
шифрование первой комбинации коэффициента ry маскирования сдачи и сдачи y с помощью первого ключа KA;
передачу, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции и значения T удостоверения транзакции в узел-получатель, ассоциированный с получателем транзакции, для верификации транзакции узлом-получателем;
в ответ на то, что узел-получатель успешно верифицирует транзакцию, получение от узла-получателя (1) зашифрованной второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции, зашифрованной с помощью второго ключа KB, и (2) подписи SIGB, сформированной узлом-получателем посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя;
формирование подписи SIGA посредством подписания, по меньшей мере, зашифрованной первой комбинации и значения T удостоверения транзакции с помощью закрытого ключа отправителя;
формирование обновленной версии транзакции, содержащей зашифрованную первую комбинацию, зашифрованную вторую комбинацию, значение T удостоверения транзакции, значение Y удостоверения сдачи, подпись SIGA и подпись SIGB; и
передачу обновленной версии транзакции во множество узлов в цепочке блоков, чтобы узлы в цепочке блоков верифицировали обновленную версию транзакции и записали обновленную версию транзакции в цепочку блоков.
16. Машинореализуемый способ защиты информации, выполняемый узлом-получателем, ассоциированным с получателем транзакции, при этом способ содержит этапы, на которых:
получают, через канал вне цепочки блоков, коэффициент rt маскирования транзакции, сумму t транзакции для транзакции и значение T удостоверения транзакции от узла-отправителя, ассоциированного с отправителем транзакции, при этом сумма t транзакции удостоверена с помощью первой схемы обязательств для получения значения T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции;
верифицируют транзакцию на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции;
в ответ на успешную верификацию транзакции, шифруют вторую комбинацию коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB;
формируют подпись SIGB посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя транзакции, причем подпись SIGB показывает согласие получателя с транзакцией; и
передают зашифрованную вторую комбинацию и подпись SIGB в узел-отправитель для верификации.
17. Способ по п.16, в котором верификация транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции содержит этап, на котором верифицируют то, равно или нет полученное значение T удостоверения транзакции результату удостоверения, посредством первой схемы обязательств, полученной суммы t транзакции с полученным коэффициентом rt маскирования транзакции.
18. Способ по п.16, в котором первая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента rt маскирования транзакции, при этом сумма t транзакции является соответствующим удостоверенным значением.
19. Способ по п.16, в котором вторая схема обязательств содержит схему обязательств Педерсена, по меньшей мере, на основе коэффициента ry маскирования сдачи, при этом сдача y составляет соответствующее удостоверенное значение.
20. Долговременный машиночитаемый носитель данных, хранящий инструкции, которые при их исполнении процессором узла-получателя, ассоциированного с получателем транзакции, инструктируют узлу-получателю выполнять операции, содержащие:
получение, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции от узла-отправителя, ассоциированного с отправителем транзакции, при этом сумма t транзакции удостоверена с помощью первой схемы обязательств для получения значения T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции;
верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции;
в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB;
формирование подписи SIGB посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя транзакции, причем подпись SIGB показывает согласие получателя с транзакцией; и
передачу зашифрованной второй комбинации и подписи SIGB в узел-отправитель для верификации.
21. Система для защиты информации, входящая в состав узла-получателя, ассоциированного с получателем транзакции, при этом система содержит процессор и долговременный машиночитаемый носитель данных, соединенный с процессором, причем носитель данных хранит инструкции, которые при их исполнении процессором инструктируют системе выполнять операции, содержащие:
получение, через канал вне цепочки блоков, коэффициента rt маскирования транзакции, суммы t транзакции для транзакции и значения T удостоверения транзакции от узла-отправителя, ассоциированного с отправителем транзакции, при этом сумма t транзакции удостоверена с помощью первой схемы обязательств для получения значения T удостоверения транзакции, причем первая схема обязательств содержит коэффициент rt маскирования транзакции;
верификацию транзакции на основе полученного коэффициента rt маскирования транзакции, полученной суммы t транзакции для транзакции и полученного значения T удостоверения транзакции;
в ответ на успешную верификацию транзакции, шифрование второй комбинации коэффициента rt маскирования транзакции и суммы t транзакции с помощью второго ключа KB;
формирование подписи SIGB посредством подписания, по меньшей мере, зашифрованной второй комбинации и значения T удостоверения транзакции с помощью закрытого ключа получателя транзакции, причем подпись SIGB показывает согласие получателя с транзакцией; и
передачу зашифрованной второй комбинации и подписи SIGB в узел-отправитель для верификации.
RU2019111926A 2018-11-27 2018-11-27 Система и способ для защиты информации RU2735439C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117558 WO2019072277A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR INFORMATION PROTECTION

Publications (3)

Publication Number Publication Date
RU2019111926A RU2019111926A (ru) 2020-10-19
RU2019111926A3 RU2019111926A3 (ru) 2020-10-19
RU2735439C2 true RU2735439C2 (ru) 2020-11-02

Family

ID=66100034

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019111926A RU2735439C2 (ru) 2018-11-27 2018-11-27 Система и способ для защиты информации

Country Status (17)

Country Link
US (2) US11218455B2 (ru)
EP (1) EP3545644B8 (ru)
JP (1) JP6714156B2 (ru)
KR (1) KR102150814B1 (ru)
CN (1) CN110337665B (ru)
AU (1) AU2018347195B2 (ru)
BR (1) BR112019008036A2 (ru)
CA (1) CA3040357C (ru)
ES (1) ES2859569T3 (ru)
MX (1) MX2019004357A (ru)
MY (1) MY188126A (ru)
PH (1) PH12019500836A1 (ru)
PL (1) PL3545644T3 (ru)
RU (1) RU2735439C2 (ru)
SG (1) SG11201903425PA (ru)
WO (1) WO2019072277A2 (ru)
ZA (1) ZA201902471B (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2793082C1 (ru) * 2022-04-11 2023-03-28 Общество с ограниченной ответственностью "АВАДС СОФТ" (ООО "АВАДС СОФТ") Способ хранения и способ извлечения данных

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021518685A (ja) * 2018-03-23 2021-08-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited データの交換のためのコンピュータ実装されたシステム及び方法
CN111768304A (zh) 2018-08-06 2020-10-13 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
PL3745637T3 (pl) 2018-11-27 2021-11-02 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
KR102248154B1 (ko) 2018-11-27 2021-05-06 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 정보 보호를 위한 시스템 및 방법
RU2735439C2 (ru) 2018-11-27 2020-11-02 Алибаба Груп Холдинг Лимитед Система и способ для защиты информации
BR112019007232B1 (pt) 2018-11-27 2022-02-15 Advanced New Technologies Co., Ltd Métodos implementados por computador para proteção da informação, sistemas para proteção da informação e meio de armazenamento legível por computador não transitório
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
SG11201902778UA (en) 2018-11-27 2019-05-30 Alibaba Group Holding Ltd System and method for information protection
DE102019002731A1 (de) 2019-04-15 2020-10-15 Giesecke+Devrient Gesellschaft mit beschränkter Haftung Gerät zum direkten Übertragen von elektronischen Münzdatensätzen an ein anderes Gerät sowie Bezahlsystem
CN110224985B (zh) * 2019-05-07 2022-07-08 平安科技(深圳)有限公司 数据处理的方法及相关装置
US10764062B2 (en) * 2019-06-03 2020-09-01 Alibaba Group Holding Limited Blockchain ledger compression
US10790990B2 (en) * 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
WO2021033026A1 (en) * 2019-08-19 2021-02-25 Bitfury Surround Gmbh Techniques for enhanced data privacy in smart contracts for royalty distribution via a distributed ledger network
CN111415252A (zh) * 2020-01-23 2020-07-14 众安信息技术服务有限公司 一种基于区块链的隐私交易处理方法和装置
US11405191B2 (en) * 2020-05-13 2022-08-02 Apple Inc. Guaranteed encryptor authenticity
CN111612600B (zh) * 2020-05-29 2023-07-14 深圳市迅雷网络技术有限公司 区块链拍卖方法、设备、存储介质及区块链***
JP7250288B2 (ja) * 2020-08-28 2023-04-03 ジャスミー株式会社 端末装置及びプログラム
WO2022104132A1 (en) * 2020-11-12 2022-05-19 University Of South Florida Systems and methods for energy efficient and useful blockchain proof of work
CN113055179B (zh) * 2021-02-21 2022-07-26 西安电子科技大学 一种链上结算数据的多类函数零知识审计方法、***
CN113609510B (zh) * 2021-09-28 2021-12-24 武汉泰乐奇信息科技有限公司 一种基于分布式存储的大数据加密传输方法与装置
KR102435349B1 (ko) * 2021-11-05 2022-08-23 주식회사 스마트엠투엠 프라이빗 블록체인 기반의 비식별화된 센싱 데이터 처리 방법 및 시스템
CN114338027B (zh) * 2021-12-29 2024-05-28 浙江吉利控股集团有限公司 区块链的隐私处理方法、请求终端及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317034A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Transparent virtual currency using verifiable tokens
US20150033301A1 (en) * 2012-03-02 2015-01-29 Alcatel Lucent Decentralized electronic transfer system
US20150371224A1 (en) * 2014-06-24 2015-12-24 Phaneendra Ramaseshu Lingappa Cryptocurrency infrastructure system
US20170250972A1 (en) * 2016-02-29 2017-08-31 Troy Jacob Ronda Systems and methods for distributed identity verification
US20180253702A1 (en) * 2015-11-24 2018-09-06 Gartland & Mellina Group Blockchain solutions for financial services and other transactions-based industries

Family Cites Families (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US7107246B2 (en) 1998-04-27 2006-09-12 Esignx Corporation Methods of exchanging secure messages
JP2000207466A (ja) 1999-01-18 2000-07-28 Nippon Telegr & Teleph Corp <Ntt> 電子商取引文書を媒介とした電子商取引方法および電子商取引手段、ならびにプログラムを記録した記録媒体。
JP2000299683A (ja) 1999-02-10 2000-10-24 Nippon Telegr & Teleph Corp <Ntt> 複数公開鍵保存方法、その装置およびそのプログラム記録媒体
US7716484B1 (en) 2000-03-10 2010-05-11 Rsa Security Inc. System and method for increasing the security of encrypted secrets and authentication
AU2001250824A1 (en) 2000-03-10 2001-09-24 Absolutefuture, Inc. Method and system for coordinating secure transmission of information
AU2001255183A1 (en) 2000-04-14 2001-10-30 Wu Wen Delayed commitment scheme to prevent attacks based on compromised certificates
EP1205889A1 (en) 2000-11-10 2002-05-15 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Returning of change in an electronic payment system
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7509498B2 (en) * 2001-06-29 2009-03-24 Intel Corporation Digital signature validation
GB2378282A (en) 2001-07-31 2003-02-05 Hewlett Packard Co Automated multivariate negotiation using convertable undeniable signatures
EP1436967A2 (en) 2001-10-19 2004-07-14 Matsushita Electric Industrial Co., Ltd. Device authentication system and device authentication method
JP2007510947A (ja) 2003-11-03 2007-04-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多数当事者の効率的な乗算のための方法及び装置
US8156029B2 (en) 2005-02-24 2012-04-10 Michael Gregory Szydlo Process for verifiably communicating risk characteristics of an investment portfolio
WO2006121322A1 (en) 2005-05-10 2006-11-16 Dts Ltd. Transaction method and verification method
JP4435076B2 (ja) 2005-11-18 2010-03-17 フェリカネットワークス株式会社 携帯端末,データ通信方法,およびコンピュータプログラム
US7725446B2 (en) 2005-12-19 2010-05-25 International Business Machines Corporation Commitment of transactions in a distributed system
WO2007086435A1 (ja) 2006-01-25 2007-08-02 Matsushita Electric Industrial Co., Ltd. 端末装置、サーバ装置及びデジタルコンテンツ配信システム
TW200820108A (en) 2006-05-24 2008-05-01 Ibm Method for automatically validating a transaction, electronic payment system and computer program
US20090177591A1 (en) 2007-10-30 2009-07-09 Christopher Thorpe Zero-knowledge proofs in large trades
US20090281949A1 (en) 2008-05-12 2009-11-12 Appsware Wireless, Llc Method and system for securing a payment transaction
US8543091B2 (en) * 2008-06-06 2013-09-24 Ebay Inc. Secure short message service (SMS) communications
US8281131B2 (en) 2008-08-28 2012-10-02 International Business Machines Corporation Attributes in cryptographic credentials
US8744077B2 (en) 2008-10-28 2014-06-03 International Business Machines Corporation Cryptographic encoding and decoding of secret data
JP5264450B2 (ja) 2008-12-02 2013-08-14 日本電信電話株式会社 ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム
WO2010073199A1 (en) 2008-12-23 2010-07-01 Mtn Mobile Money Sa (Pty) Ltd Method of and system for securely processing a transaction
US8762741B2 (en) 2009-01-29 2014-06-24 Microsoft Corporation Privacy-preserving communication
US8825555B2 (en) 2010-06-30 2014-09-02 International Business Machines Corporation Privacy-sensitive sample analysis
US8527777B2 (en) 2010-07-30 2013-09-03 International Business Machines Corporation Cryptographic proofs in data processing systems
US8661240B2 (en) 2011-04-29 2014-02-25 International Business Machines Corporation Joint encryption of data
US9858401B2 (en) 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
JP6082015B2 (ja) 2011-09-29 2017-02-15 アマゾン テクノロジーズ インコーポレイテッド パラメータベースのキー導出
JP5364141B2 (ja) 2011-10-28 2013-12-11 楽天株式会社 携帯端末、店舗端末、送信方法、受信方法、決済システム、決済方法、プログラムおよびコンピュータ読み取り可能な記憶媒体
FR2993382B1 (fr) 2012-07-13 2015-07-03 Oberthur Technologies Entite electronique securisee pour l'autorisation d'une transaction
GB201310084D0 (en) 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
US9853819B2 (en) 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US9473306B2 (en) * 2013-08-05 2016-10-18 Guardtime IP Holdings, Ltd. Document verification with ID augmentation
KR20160024185A (ko) 2014-08-25 2016-03-04 아이보 (주) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법
GB201419016D0 (en) 2014-10-24 2014-12-10 Visa Europe Ltd Transaction Messaging
SG11201708000PA (en) 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
SG11201708295XA (en) 2015-04-06 2017-11-29 Bitmark Inc System and method for decentralized title recordation and authentication
US9397985B1 (en) 2015-04-14 2016-07-19 Manifold Technology, Inc. System and method for providing a cryptographic platform for exchanging information
US9578505B2 (en) * 2015-04-21 2017-02-21 International Business Machines Corporation Authentication of user computers
US10026082B2 (en) 2015-05-21 2018-07-17 Mastercard International Incorporated Method and system for linkage of blockchain-based assets to fiat currency accounts
US9870562B2 (en) 2015-05-21 2018-01-16 Mastercard International Incorporated Method and system for integration of market exchange and issuer processing for blockchain-based transactions
WO2016200885A1 (en) 2015-06-08 2016-12-15 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US11080665B1 (en) 2015-06-08 2021-08-03 Blockstream Corporation Cryptographically concealing amounts and asset types for independently verifiable transactions
AU2016287732A1 (en) 2015-06-30 2017-12-07 Visa International Service Association Mutual authentication of confidential communication
US20180191503A1 (en) 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170085555A1 (en) 2015-07-14 2017-03-23 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
SG11201804538UA (en) 2015-11-30 2018-06-28 Shapeshift Ag Systems and methods for improving security in blockchain-asset exchange
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US20170243193A1 (en) 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
EP3259724B1 (en) 2016-02-23 2021-03-24 Nchain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3860037A1 (en) 2016-02-23 2021-08-04 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
EP4195128A1 (en) 2016-04-11 2023-06-14 nChain Licensing AG A method for secure peer-to-peer communication on a blockchain
CN107306183B (zh) 2016-04-22 2021-12-21 索尼公司 客户端、服务端、方法和身份验证***
KR101780635B1 (ko) * 2016-04-28 2017-09-21 주식회사 코인플러그 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
KR101802655B1 (ko) 2016-06-10 2017-11-29 인하대학교 산학협력단 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법
US11062366B2 (en) 2016-06-24 2021-07-13 Raise Marketplace Inc. Securely processing exchange items in a data communication system
US20180006823A1 (en) 2016-07-01 2018-01-04 Qualcomm Incorporated Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
KR101795695B1 (ko) 2016-07-14 2017-12-01 주식회사 코인플러그 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
US11651352B2 (en) 2016-07-15 2023-05-16 Visa International Service Association Digital asset distribution by transaction device
EP3273635B1 (en) 2016-07-20 2019-10-30 Mastercard International Incorporated Secure channel establishment
EP3491572B1 (en) 2016-07-26 2021-09-01 NEC Corporation Method for controlling access to a shared resource
US10067810B2 (en) 2016-07-28 2018-09-04 Cisco Technology, Inc. Performing transactions between application containers
GB201613176D0 (en) 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
JP6971019B2 (ja) 2016-09-26 2021-11-24 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、及び、データ管理方法
US10769600B2 (en) 2016-09-26 2020-09-08 International Business Machines Corporation Cryptocurrency transactions using debit and credit values
CN106549749B (zh) * 2016-12-06 2019-12-24 杭州趣链科技有限公司 一种基于加法同态加密的区块链隐私保护方法
US20180167198A1 (en) 2016-12-09 2018-06-14 Cisco Technology, Inc. Trust enabled decentralized asset tracking for supply chain and automated inventory management
DE112017006701T5 (de) 2016-12-30 2019-09-19 Intel Corporation Internet der Dinge
CN106911470B (zh) 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
CN106845960B (zh) 2017-01-24 2018-03-20 上海壹账通区块链科技有限公司 基于区块链的安全交易方法及***
US11082418B2 (en) 2017-02-13 2021-08-03 Avalanche Cloud Corporation Privacy ensured brokered identity federation
CN107025602A (zh) 2017-02-24 2017-08-08 杭州象链网络技术有限公司 一种基于联盟链的金融资产交易***构建方法
JP6961960B2 (ja) 2017-03-13 2021-11-05 ソニーグループ株式会社 情報処理装置および情報処理方法
JP6719410B2 (ja) 2017-03-17 2020-07-08 Kddi株式会社 生成装置、検証装置、及びプログラム
US20180293576A1 (en) 2017-04-05 2018-10-11 Samsung Sds Co., Ltd. System for custom currency transaction based on blockchain and operating method thereof
US11095432B2 (en) 2017-04-05 2021-08-17 Samsung Sds Co., Ltd. System for processing data based on blockchain and operating method thereof
GB201705621D0 (en) 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201705749D0 (en) 2017-04-10 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201705858D0 (en) 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201706132D0 (en) 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
US10320758B2 (en) 2017-04-25 2019-06-11 International Business Machines Corporation Cryptography using multi-factor key system and finite state machine
US10198949B2 (en) 2017-04-28 2019-02-05 Mastercard International Incorporated Method and system for parking verification via blockchain
US10560270B2 (en) * 2017-05-03 2020-02-11 International Business Machines Corporation Optimal data storage configuration in a blockchain
GB201707168D0 (en) 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
GB201707296D0 (en) 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US11165589B2 (en) 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
CN107451175B (zh) 2017-05-23 2020-01-31 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107239951A (zh) 2017-06-07 2017-10-10 北京天德科技有限公司 一种基于第三代区块链的可扩展央行数字货币交易方法
CN110771088B (zh) 2017-06-14 2024-04-19 区块链控股有限公司 用于解决在网络故障情况下与区块链外通道相关出现的安全性相关漏洞的***和方法
GB201710283D0 (en) 2017-06-28 2017-08-09 Nchain Holdings Ltd Computer-implemented system and method
US10333710B2 (en) * 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
TWI636411B (zh) 2017-09-13 2018-09-21 現代財富控股有限公司 對非區塊鏈節點提供交易不可否認性之系統及其方法
US10361870B2 (en) 2017-09-14 2019-07-23 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data using permissioned distributed ledgers
EP3688705B1 (en) 2017-09-29 2023-08-02 Leverage Rock LLC Transaction privacy in public distributed ledger systems
CN107679857B (zh) 2017-10-10 2021-04-27 马晶瑶 区块链的跨链交易方法和存储介质
CN108062671A (zh) 2017-11-03 2018-05-22 深圳市轱辘车联数据技术有限公司 数据交易方法、区块链节点服务器及数据提交终端
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护***及方法
CN108418689B (zh) 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
US11257077B2 (en) 2017-11-30 2022-02-22 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
US10831764B2 (en) 2017-12-02 2020-11-10 International Business Machines Corporation Query processing and access control in a blockchain network
US11227284B2 (en) 2017-12-13 2022-01-18 Mastercard International Incorporated Method and system for consumer-initiated transactions using encrypted tokens
CN108282459B (zh) 2017-12-18 2020-12-15 ***股份有限公司 基于智能合约的数据传递方法及***
US10896418B2 (en) 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
TWM561861U (zh) 2018-01-11 2018-06-11 網家金融科技股份有限公司 網路支付轉帳系統
US10388097B1 (en) 2018-01-29 2019-08-20 Accenture Global Solutions Limited Blockchain-based cryptologic ballot verification
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US20210089676A1 (en) 2018-02-16 2021-03-25 Ecole Polytechnique Fédérale De Lausanne Epfl-Tto Methods and systems for secure data exchange
CN108512650B (zh) 2018-02-28 2021-03-09 南京思利华信息科技有限公司 面向区块链的动态哈希计算方法、装置、节点及存储介质
CN108288159A (zh) 2018-03-07 2018-07-17 物数(上海)信息科技有限公司 基于多区块链的跨链交易方法、***、设备及存储介质
CN108320228A (zh) 2018-03-07 2018-07-24 物数(上海)信息科技有限公司 跨区块链资产交易方法、平台、设备及存储介质
US10708243B2 (en) 2018-04-24 2020-07-07 Capital One Services, Llc Message encryption using public keychains
CN108711105A (zh) 2018-05-16 2018-10-26 四川吉鼎科技有限公司 一种基于区块链的安全交易验证方法及***
CN108764874B (zh) 2018-05-17 2021-09-07 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、***及存储介质
CN108683669B (zh) 2018-05-19 2021-09-17 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算***
CN108876332B (zh) 2018-06-04 2020-09-22 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
CN108769054B (zh) * 2018-06-14 2019-05-21 北京邮电大学 一种基于等值测试承诺的区块链交易验证方法及装置
CN109003184A (zh) 2018-06-22 2018-12-14 中链科技有限公司 区块链资产管理方法及装置
US11032068B2 (en) 2018-06-29 2021-06-08 International Business Machines Corporation Leakage-deterring encryption for message communication
US10917233B2 (en) 2018-10-16 2021-02-09 International Business Machines Corporation Selective exchange of transaction data
JP6956062B2 (ja) * 2018-10-30 2021-10-27 株式会社Crypto Garage 取引方法、プログラム、検証装置及び生成方法
US11240001B2 (en) 2018-11-06 2022-02-01 International Business Machines Corporation Selective access to asset transfer data
JP6830530B2 (ja) 2018-11-07 2021-02-17 アドバンスド ニュー テクノロジーズ カンパニー リミテッド アカウントモデルの下でパブリックおよびプライベートトランザクションをサポートするブロックチェーンシステム
SG11201902778UA (en) 2018-11-27 2019-05-30 Alibaba Group Holding Ltd System and method for information protection
RU2735439C2 (ru) 2018-11-27 2020-11-02 Алибаба Груп Холдинг Лимитед Система и способ для защиты информации
KR102248154B1 (ko) 2018-11-27 2021-05-06 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 정보 보호를 위한 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317034A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Transparent virtual currency using verifiable tokens
US20150033301A1 (en) * 2012-03-02 2015-01-29 Alcatel Lucent Decentralized electronic transfer system
US20150371224A1 (en) * 2014-06-24 2015-12-24 Phaneendra Ramaseshu Lingappa Cryptocurrency infrastructure system
US20180253702A1 (en) * 2015-11-24 2018-09-06 Gartland & Mellina Group Blockchain solutions for financial services and other transactions-based industries
US20170250972A1 (en) * 2016-02-29 2017-08-31 Troy Jacob Ronda Systems and methods for distributed identity verification

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2793082C1 (ru) * 2022-04-11 2023-03-28 Общество с ограниченной ответственностью "АВАДС СОФТ" (ООО "АВАДС СОФТ") Способ хранения и способ извлечения данных

Also Published As

Publication number Publication date
EP3545644A2 (en) 2019-10-02
CN110337665A (zh) 2019-10-15
CA3040357A1 (en) 2019-04-18
RU2019111926A (ru) 2020-10-19
SG11201903425PA (en) 2019-05-30
MX2019004357A (es) 2019-08-05
US20200153801A1 (en) 2020-05-14
PH12019500836A1 (en) 2019-12-02
JP6714156B2 (ja) 2020-06-24
WO2019072277A3 (en) 2019-09-26
BR112019008036A2 (pt) 2019-11-12
MY188126A (en) 2021-11-23
EP3545644B1 (en) 2021-01-06
ES2859569T3 (es) 2021-10-04
US20200053054A1 (en) 2020-02-13
CA3040357C (en) 2021-03-09
RU2019111926A3 (ru) 2020-10-19
EP3545644A4 (en) 2020-02-19
AU2018347195B2 (en) 2020-09-24
AU2018347195A1 (en) 2020-06-11
KR20200066258A (ko) 2020-06-09
JP2020507222A (ja) 2020-03-05
EP3545644B8 (en) 2021-03-10
CN110337665B (zh) 2023-06-06
PL3545644T3 (pl) 2021-06-28
WO2019072277A2 (en) 2019-04-18
ZA201902471B (en) 2020-08-26
US10715500B2 (en) 2020-07-14
KR102150814B1 (ko) 2020-09-02
US11218455B2 (en) 2022-01-04

Similar Documents

Publication Publication Date Title
RU2735439C2 (ru) Система и способ для защиты информации
RU2719423C1 (ru) Система и способ защиты информации
RU2716740C1 (ru) Система и способ защиты информации
RU2721959C1 (ru) Система и способ для защиты информации
AU2019101582A4 (en) System and method for information protection
AU2019101589A4 (en) System and method for information protection
AU2019101590A4 (en) System and method for information protection

Legal Events

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

Effective date: 20210303

PC41 Official registration of the transfer of exclusive right

Effective date: 20210414