ES2881674T3 - Sistema y método para la protección de información - Google Patents

Sistema y método para la protección de información Download PDF

Info

Publication number
ES2881674T3
ES2881674T3 ES20187066T ES20187066T ES2881674T3 ES 2881674 T3 ES2881674 T3 ES 2881674T3 ES 20187066 T ES20187066 T ES 20187066T ES 20187066 T ES20187066 T ES 20187066T ES 2881674 T3 ES2881674 T3 ES 2881674T3
Authority
ES
Spain
Prior art keywords
transaction
node
receiver
amount
commitment
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES20187066T
Other languages
English (en)
Inventor
Baoli Ma
Wenbin Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2881674T3 publication Critical patent/ES2881674T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Abstract

Un método implementado por ordenador para la protección de información, que comprende: generar, por un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de transacción T mediante la confirmación de una cantidad de transacción t de la transacción con un esquema de compromiso basado al menos en un factor de ocultación de transacción r_t, en donde la transacción comprende la transferencia de la cantidad de la transacción t de una dirección asociada a una clave pública PK_1_A del emisor a una dirección asociada a una primera clave pública PK_1_B de un receptor de la transacción, y la cantidad de la transacción t es de uno o más activos del emisor registrados en una cadena de bloques; transmitir, por el nodo emisor y a través de un canal fuera de la cadena de bloques, la cantidad de transacción t, el factor de cegamiento de transacción r_t , el valor de compromiso de cantidad de transacción T a un nodo de receptor asociado al receptor para que el nodo de receptor verifique la transacción y para cifrar una primera combinación del factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor; recibir, por el nodo emisor del nodo receptor, (i) la primera combinación del factor de cegamiento de transacción r_t y la cantidad de transacción t y (ii) una firma de receptor SIGB generada por el nodo de receptor que firma la transacción con una clave privada SK_1_B del receptor en respuesta a la verificación correcta de la transacción, en donde la primera clave pública PK_1_B y la clave privada SK_1_B son un par de claves público-privada del receptor; generar, por el nodo emisor, una firma de emisor SIGA firmando la transacción con una clave privada SK_1_A del emisor, en donde la clave pública PK_1_A y la clave privada SK_1_A son un par de claves público-privada del emisor; generar, por el nodo emisor, una versión actualizada de la transacción, comprendiendo la versión actualizada de la transacción la primera combinación encriptada, el valor de compromiso de transacción T, la firma de emisor SIGA, y la firma de receptor SIGB; y envía, por el nodo emisor, la versión actualizada de la transacción a uno o más nodos de cadena de bloques de la cadena de bloques.

Description

DESCRIPCIÓN
Sistema y método para la protección de información
Campo técnico
Esta divulgación generalmente se refiere a métodos y dispositivos para la protección de información.
Antecedentes
La privacidad es importante para las comunicaciones y transferencias de datos entre varios usuarios. Sin protección, los usuarios están expuestos al riesgo de robo de identidad, transferencia ilegal u otras pérdidas potenciales. El riesgo es aún mayor cuando las comunicaciones y transferencias se implementan en línea, debido al libre acceso a la información en línea. El documento US 2016/0358165 A1 divulga cantidades que ocultan criptográficamente en un libro mayor, preservando al mismo tiempo la capacidad de una red para verificar la transacción.
Sumario
Varias realizaciones de la presente divulgación incluyen sistemas, métodos y medios legibles por ordenador no transitorios para la protección de la información. Los objetivos de la presente invención se consiguen mediante el conjunto de reivindicaciones anexado.
De acuerdo con un aspecto, un método implementado por ordenador para la protección de la información comprende: la confirmación de una cantidad de transacción t de una transacción con un esquema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos un factor de ocultación de transacción r_t, encriptar una combinación del factor de ocultación de transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción, en donde: el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción t; y transmitir, el valor de compromiso de transacción T y la combinación encriptada con un nodo de receptor asociado con el receptor para que el nodo de receptor verifique la transacción.
En algunas realizaciones, la segunda clave pública PK_2_B es una clave de cifrado homomórfica.
En algunas realizaciones, el esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción r_t y siendo la cantidad t de la transacción un valor comprometido.
En algunas realizaciones, la combinación del factor de ocultación de la transacción r_t y la cantidad t de la transacción comprende una concatenación del factor de ocultación de la transacción r_t y la cantidad t de la transacción.
En algunas realizaciones, transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo de receptor asociado con el receptor para que el nodo de receptor verifique que la transacción comprende la transmisión del valor de compromiso de transacción T y la combinación cifrada al nodo de receptor asociado con el receptor, haciendo que el nodo de receptor: descifre la combinación cifrada con una segunda clave privada SK_2_B del receptor para obtener el factor cegador de la transacción r_t y la cantidad de la transacción t; y verifique la transacción basándose al menos en el valor de compromiso de transacción T, el factor cegador de la transacción r_t, y la cantidad de la transacción t.
En algunas realizaciones, hacer que el nodo receptor verifique la transacción basada al menos en el valor de compromiso de transacción T, el factor de ocultación de transacciones r_t y la cantidad de la transacción t comprende la causa de que el nodo receptor: en respuesta a determinar que el valor T de compromiso de transacción no coincide con el esquema de compromiso de la cantidad t de la transacción basado en el factor de ocultación de la transacción r_t, rechazar la transacción; y en respuesta a determinar que el valor T de compromiso de transacción coincide con el esquema de compromiso de la cantidad t de la transacción basado en el factor de ocultación de transacción r_t, aprobar la transacción firmando la transacción con una primera clave privada SK_B del receptor para generar una firma SIGB del receptor.
En algunas realizaciones, antes de transmitir la combinación encriptada al nodo receptor asociado al receptor, el método comprende, además: el compromiso de un cambio y de la transacción con el esquema de compromiso obtener un valor de compromiso de modificación Y, comprendiendo el esquema de compromiso al menos un factor de ocultación de cambio r_y, en el que el cambio y es uno o más activos de un emisor de la transacción que se aprovechan para la transacción menos la cantidad de la transacción t; y encriptar otra combinación del factor de ocultación de cambio r_y y el cambio y con una segunda clave pública PK_2_A del emisor.
En algunas realizaciones, el método comprende, además: en respuesta a la recepción de la firma del receptor SIGB, aprobar la transacción firmando la transacción con una primera clave privada s K_1_A del emisor para generar una firma de emisor SIGA; y la presentación de la transacción que comprende la combinación cifrada, el cifrado de otra combinación, el valor de compromiso de transacción T, el valor de compromiso de modificación Y, la firma del emisor SIGA, y la firma del receptor SIGB a uno o más nodos en una red de cadena de bloque para que uno o más nodos verifiquen la transacción.
En algunas realizaciones, y la presentación de la transacción que comprende la combinación cifrada, el cifrado de otra combinación, el valor de compromiso de transacción T, el valor de compromiso de modificación Y, la firma del emisor SIGA, y la firma del receptor SIGB al uno o más nodos en la red de cadena de bloque para que uno o más nodos verifiquen la transacción comprende: y la presentación de la transacción que comprende la combinación cifrada, el cifrado de otra combinación, el valor de compromiso de transacción T, el valor de compromiso de modificación Y, la firma del emisor SIGA, y la firma del receptor SIGB a uno o más nodos en la red de cadena de bloque, haciendo que uno o más nodos, en respuesta a la verificación satisfactoria de la transacción, expidan la cantidad de la transacción t al receptor, eliminen uno o más activos intervenidos para la transacción, y emitan el cambio y al emisor.
De acuerdo con otro aspecto, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones que, cuando se ejecutan por un procesador, hacen que el procesador realice operaciones que comprenden: comprometer un cantidad de transacción t de una transacción con un sistema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos un factor cegador de las transacciones r_t; cifrar una combinación del factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción, en donde: el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción t; y transmitir el valor de compromiso de transacción T y la combinación cifrada a un nodo de receptor asociado con el receptor para que el nodo de receptor verifique la transacción.
De acuerdo con otro aspecto, un sistema de protección de la información, compuesto por un procesador y un medio de almacenamiento legible por ordenador no transitorio acoplado al procesador, almacenando el medio de almacenamiento instrucciones que, cuando se ejecutan por el procesador, hacer que el sistema realice operaciones que comprenden: la confirmación de una cantidad de transacción t de una transacción con un esquema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el esquema de compromiso al menos en un factor de ocultación de transacción r_t, encriptar una combinación del factor de ocultación de transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción, en donde: el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción t; y transmitir el valor de compromiso de transacción T y la combinación encriptada con un nodo de receptor asociado al receptor para que el nodo de receptor verifique la transacción.
De acuerdo con otro aspecto, un método implementado por ordenador para la protección de la información comprende: obtener una combinación de un factor de ocultación de transacción r_t y una cantidad de la transacción t encriptada con una segunda clave pública PK_2_B de un receptor de una transacción, y obtener un valor de compromiso de transacción T en donde: la cantidad de la transacción t se confirma con un esquema de compromiso por un nodo emisor asociado a un emisor de la transacción para obtener el valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos el factor de ocultación de la transacción r_t; desencriptar la combinación obtenida con una segunda clave privada SK_2_B de un receptor de la transacción para obtener el factor de ocultación de la transacción r_t y la cantidad de la transacción t, y verificar la transacción basada al menos en el valor de compromiso de transacción T, el factor de ocultación de transacciones r_t, y la cantidad de la transacción t.
En algunas realizaciones, la segunda clave pública PK_2_B del receptor y la segunda clave privada SK_2_B del receptor son un par de claves de encriptación homomórficas.
De acuerdo con otro aspecto, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones de que, cuando se ejecutan por un procesador, hacen que el procesador realice operaciones que comprenden: obtener una combinación de un factor de ocultación de transacción r_t y una cantidad de la transacción t encriptada con una segunda clave pública PK_2_B de un receptor de una transacción, y obtener un valor de compromiso de transacción T, en donde: la cantidad de la transacción t se confirma con un esquema de compromiso por un nodo emisor asociado a un emisor de la transacción para obtener el valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos el factor de ocultación de la transacción r_t; desencriptar la combinación obtenida con una segunda clave privada SK_2_B de un receptor de la transacción para obtener el factor de ocultación de la transacción r_t y la cantidad de la transacción t y verificar la transacción basada al menos en el valor de compromiso de transacción T, el factor de ocultación de transacciones r_t, y la cantidad de la transacción t.
De acuerdo con otro aspecto, un sistema de protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, almacenando el medio de almacenamiento instrucciones que, cuando se ejecutan por el procesador, hacer que el sistema realice operaciones que comprenden: obtener una combinación de un factor de ocultación de transacción r_t y una cantidad de la transacción t encriptada con una segunda clave pública PK_2_B de un receptor de una transacción, y obtener un valor de compromiso de transacción T, en donde: la cantidad de la transacción t se confirma con un esquema de compromiso por un nodo emisor asociado a un emisor de la transacción para obtener el valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos el factor de ocultación de la transacción r_t; desencriptar la combinación obtenida con una segunda clave privada SK_2_B de un receptor de la transacción para obtener el factor de ocultación de la transacción r_t y la cantidad de la transacción t, y verificar la transacción basada al menos en el valor de compromiso de transacción T, el factor de ocultación de transacciones r_t, y la cantidad de la transacción t.
De acuerdo con otro aspecto, un método implementado por ordenador para la protección de la información comprende: comprometer un cantidad de transacción t de una transacción con un sistema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos un factor cegador de las transacciones r_t; enviar la cantidad de la transacción t, el factor cegador de la transacción r_t, y el valor de compromiso de transacción T a un nodo de receptor asociado a un receptor de la transacción para que el nodo de receptor verifique la transacción y cifre el factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor, en donde el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción; obtener una combinación cifrada del factor cegador de transacciones r_t y la cantidad de la transacción t del nodo receptor; y transmitir la combinación cifrada y el valor de compromiso de transacción T a una pluralidad de nodos en una cadena de bloques para la pluralidad de nodos para verificar la transacción.
De acuerdo con otro aspecto, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones que, cuando se ejecutan por un procesador, hacen que el procesador realice operaciones que comprenden: comprometer un cantidad de transacción t de una transacción con un sistema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos un factor cegador de las transacciones r_t; enviar la cantidad de la transacción t, el factor cegador de la transacción r_t, y el valor de compromiso de transacción T a un nodo de receptor asociado a un receptor de la transacción para que el nodo de receptor verifique la transacción y cifre el factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor, en donde el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción; obtener una combinación cifrada del factor cegador de transacciones r_t y la cantidad de la transacción t del nodo receptor; y transmitir la combinación cifrada y el valor de compromiso de transacción T a una pluralidad de nodos en una cadena de bloques para la pluralidad de nodos para verificar la transacción.
De acuerdo con otro aspecto, un sistema de protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, el soporte de almacenamiento de instrucciones que, cuando se ejecutan por el procesador, hacen que el sistema realice operaciones que comprenden: comprometer un cantidad de transacción t de una transacción con un sistema de compromiso para obtener un valor de compromiso de transacción T, comprendiendo el sistema de compromiso al menos un factor cegador de las transacciones r_t; enviar la cantidad de la transacción t, el factor cegador de la transacción r_t, y el valor de compromiso de transacción T a un nodo de receptor asociado a un receptor de la transacción para que el nodo de receptor verifique la transacción y cifre el factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor, en donde el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción; obtener una combinación cifrada del factor cegador de transacciones r_t y la cantidad de la transacción t del nodo receptor; y transmitir la combinación cifrada y el valor de compromiso de transacción T a una pluralidad de nodos en una cadena de bloques para la pluralidad de nodos para verificar la transacción.
De acuerdo con otro aspecto, un método implementado por ordenador para la protección de la información comprende: obtener un cantidad de transacción t de una transacción, un factor cegador de la transacción r_t, y un valor de compromiso de transacción T; verificar la transacción basada en la cantidad de transacción t obtenido, el factor cegador de transacciones r_t obtenido, y el valor de compromiso de transacción T obtenido; en respuesta a la verificación satisfactoria de la transacción, cifrar el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción para obtener una combinación cifrada; y transmitir la combinación cifrada a un nodo emisor asociado a un emisor de la transacción.
De acuerdo con otro aspecto, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones que, cuando se ejecutan por un procesador, hacen que el procesador realice operaciones que comprenden: obtener un cantidad de transacción t de una transacción, un factor cegador de la transacción r_t, y un valor de compromiso de transacción T; verificar la transacción basada en la cantidad de transacción t obtenido, el factor cegador de transacciones r_t obtenido, y el valor de compromiso de transacción T obtenido; en respuesta a la verificación satisfactoria de la transacción, cifrar el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción para obtener una combinación cifrada; y transmitir la combinación cifrada a un nodo emisor asociado a un emisor de la transacción.
De acuerdo con otro aspecto, un sistema de protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, el soporte de almacenamiento de instrucciones que, cuando se ejecutan por el procesador, hacen que el sistema realice operaciones que comprenden: obtener un cantidad de transacción t de una transacción, un factor cegador de la transacción r_t, y un valor de compromiso de transacción T; verificar la transacción basada en la cantidad de transacción t obtenido, el factor cegador de transacciones r_t obtenido, y el valor de compromiso de transacción T obtenido; en respuesta a la verificación satisfactoria de la transacción, cifrar el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción para obtener una combinación cifrada; y transmitir la combinación cifrada a un nodo emisor asociado a un emisor de la transacción.
Estas y otras características de los sistemas, métodos, y medios legibles por ordenador no transitorios divulgados en el presente documento, así como los métodos de operación y funciones de los elementos de estructura relacionados y la combinación de partes y economías de fabricación, se hará más evidente tras el examen de la siguiente descripción y las reivindicaciones anexas con referencia a los dibujos adjuntos, todos los cuales forman parte de esta memoria descriptiva, en el que, como números de referencia, designan las partes correspondientes en las diversas figuras. Debe entenderse expresamente, sin embargo, que los dibujos son sólo para fines ilustrativos y de descripción y no pretenden ser una definición de los límites de la invención.
Breve descripción de los dibujos
Ciertas características de diversas realizaciones de la presente tecnología se exponen con particularidad en las reivindicaciones adjuntas. Se obtendrá un mejor entendimiento de las características y ventajas de la tecnología mediante referencia a la siguiente descripción detallada que expone realizaciones ilustrativas, en las que se utilizan los principios de la invención, y los dibujos adjuntos de los cuales:
La figura 1 muestra un sistema de ejemplo para protección de información, de acuerdo con diversas realizaciones.
La figura 2 ilustra etapas de ejemplo para el inicio y la verificación de transacciones, de acuerdo con varias realizaciones.
La figura 3A ilustra un diagrama de flujo de un método de ejemplo para la protección de información, de acuerdo con varias realizaciones.
La figura 3B ilustra un diagrama de flujo de un método de ejemplo para la protección de la información, de acuerdo con varias realizaciones.
La figura 4A ilustra un diagrama de flujo de un método de ejemplo para la protección de información, de acuerdo con varias realizaciones.
La figura 4B ilustra un diagrama de flujo de un método de ejemplo para la protección de la información, de acuerdo con varias realizaciones.
La figura 5 ilustra un diagrama de bloques de un sistema informático de ejemplo en el que se puede implementar cualquiera de las realizaciones descritas en el presente documento.
Descripción detallada
Blockchain puede considerarse como una base de datos descentralizada, comúnmente conocida como un libro de contabilidad distribuido porque la operación es realizada por varios nodos (por ejemplo, dispositivos informáticos) en una red. Cualquier información puede escribirse en la cadena de bloques y guardarse o leerse de ella. Cualquiera puede configurar un servidor y unirse a la red de blockchain para convertirse en un nodo. Cualquier nodo puede aportar potencia de cálculo para mantener la cadena de bloques mediante la realización de cálculos complejos, tal como el cálculo de hash para añadir un bloque a una cadena de bloques actual y el bloque añadido puede contener varios tipos de datos o información. El nodo que aportó la potencia de cálculo para el bloque añadido puede ser recompensado con una unidad de valor (por ejemplo, una unidad de moneda digital). Dado que la cadena de bloques no tiene un nodo central, cada nodo es igual y contiene toda la base de datos de la cadena de bloques.
Los nodos son, por ejemplo, dispositivos informáticos o grandes sistemas informáticos que admiten la red de blockchain y la mantienen funcionando sin problemas. Hay dos tipos de nodos, nodos completos y nodos ligeros. Los nodos completos mantienen una copia completa de la cadena de bloques. Los nodos completos en la red de blockchain validan las transacciones y los bloques que reciben y los transmiten a los pares conectados para proporcionar una verificación de consenso de las transacciones. Los nodos ligeros, por otro lado, solo descargan una fracción de la cadena de bloques. Por ejemplo, los nodos ligeros se utilizan para transacciones de moneda digital. Un nodo ligero se comunicará con un nodo completo cuando desee realizar una transacción.
Esta propiedad de descentralización puede ayudar a prevenir la aparición de un centro de gestión en una posición controlada. Por ejemplo, el mantenimiento de la cadena de bloques bitcoin lo realiza la red de nodos de comunicación del software bitcoin en el área de ejecución. La presente divulgación utiliza una o más cadenas de bloques o monedas digitales, tal como bitcoin y Ethereum, como ejemplos. Una persona con conocimientos ordinarios en la técnica debería apreciar que las soluciones técnicas desveladas en la presente divulgación pueden usarse o aplicarse a otro tipo de cadenas de bloques y monedas digitales. Es decir, en lugar de bancos, instituciones o administradores en el sentido tradicional, existen múltiples intermediarios en forma de servidores informáticos que ejecutan software de bitcoin. Estos servidores informáticos forman una red conectada a través de Internet, en la que cualquiera puede unirse potencialmente a la red. Las transacciones acomodadas por la red pueden ser de una forma: "el usuario A quiere enviar Z bitcoins al usuario B", en el que las transacciones se transmiten a la red utilizando aplicaciones de software fácilmente disponibles. Los servidores informáticos funcionan como servidores de bitcoins que se pueden utilizar para validar estas transacciones financieras, añadir un registro de ellas a su copia del libro de contabilidad y luego transmitir estas adiciones al libro de contabilidad a otros servidores de la red.
El mantenimiento de la cadena de bloques se conoce como "minería", y quienes realizan dicho mantenimiento son recompensados con bitcoins recién creadas y tarifas de transacción como se ha mencionada anteriormente. Por ejemplo, los nodos pueden determinar si las transacciones son válidas basándose en un conjunto de reglas que la red de blockchain ha acordado. Los mineros pueden estar ubicados en cualquier continente y procesar pagos verificando que cada transacción sea válida y añadiéndola a la cadena de bloques. Dicha verificación se logra a través del consenso proporcionado por una pluralidad de mineros y asume que no hay una colusión sistemática. Al final, todos los datos serán consistentes, porque el cálculo debe cumplir ciertos requisitos para ser válido y todos los nodos se sincronizarán para garantizar que la cadena de bloques sea consistente. Por lo tanto, los datos se pueden almacenar de manera consistente en un sistema distribuido de nodos de blockchain.
A través del proceso de minería, las transacciones, tales como las transferencias de activos, se verifican y se añaden a una cadena creciente de bloques de una cadena de bloques mediante nodos de red. Al atravesar toda la cadena de bloques, la verificación puede incluir, por ejemplo, si la parte que paga tiene acceso al activo que se transfiere, si el activo se ha gastado antes, si la cantidad de la transferencia es correcta, etc. Por ejemplo, en una transacción hipotética ( por ejemplo, una transacción de bitcoins bajo un modelo UTXO (salida de transacción no gastada), una transacción de monedas Ethereum bajo un modelo de Cuenta/Saldo) firmada por un emisor, la transacción propuesta puede transmitirse a la red de blockchain para minería. Un minero debe comprobar si la transacción es elegible para ejecutarse de acuerdo con el historial de blockchain. Si el saldo de la cartera del emisor tiene fondos suficientes de acuerdo con el historial de cadena de bloques existente, la transacción se considera válida y se puede añadir al bloque. Una vez verificadas, las transferencias de activos pueden incluirse en el siguiente bloque que se añadirá a la cadena de bloques.
Un bloque es muy parecido a un registro de base de datos. Cada vez que se escriben datos se crea un bloque. Estos bloques están unidos y protegidos mediante criptografía para convertirse en redes interconectadas. Cada bloque está conectado al bloque anterior, que también es el origen del nombre "blockchain". Cada bloque generalmente contiene el hash criptográfico del bloque anterior, el tiempo de generación y los datos reales. Por ejemplo, cada bloque contiene dos partes: un encabezamiento del bloque para registrar el valor de la característica del bloque actual y un cuerpo para registrar los datos reales (por ejemplo, datos de transacciones). La cadena de bloques está unida a través de los encabezamientos de bloque. Cada encabezamiento de bloque puede contener múltiples valores de características, tal como versión, hash de bloque anterior, nodo raíz (raíz Merkle), marca de tiempo, objetivo de dificultad y nonce. El hash del bloque anterior contiene no solo la dirección del bloque anterior, sino también el hash de los datos dentro del bloque anterior, lo que hace que las cadenas de bloques sean inmutables. El nonce es un número que, cuando se incluye, produce un hash con un número especificado de bits cero iniciales.
Para la minería, el hash de los contenidos del bloque nuevo es captado por un nodo. El nonce (por ejemplo, cadena aleatoria) se añade al hash para obtener una nueva cadena. Se realiza de nuevo un hash sobre la nueva cadena. A continuación, el hash final se compara con el objetivo de dificultad (por ejemplo, un nivel) y se determina si el hash final es realmente menor que el objetivo de dificultad o no. Si no es así, se cambia el nonce y el proceso se repite nuevamente. En caso afirmativo, el bloque se añade a la cadena y el libro de contabilidad público se actualiza y se alerta de la adición. El nodo responsable de la adición con éxito es recompensado con bitcoins, por ejemplo, añadiendo una transacción de recompensa a sí mismo en el nuevo bloque (conocido como generación de base de monedas).
Es decir, para cada salida "Y", si k se elige de una distribución con alta minentropía, no es factible encontrar una entrada x tal que H(k|x)= Y, donde K es el nonce, x es el hash del bloque, Y es el objetivo de dificultad e "I" denota concatenación. Debido a que los hashes criptográficos son esencialmente aleatorios, en el sentido de que su salida no se puede predecir a partir de sus entradas, solo hay una forma conocida de encontrar el nonce: probar números enteros uno tras otro, por ejemplo 1, luego 2, luego 3, y así sucesivamente, lo que puede conocerse como fuerza bruta. Cuanto mayor sea el número de ceros iniciales, más tiempo tomará en promedio encontrar un nonce Y necesario. En un ejemplo, el sistema de bitcoins ajusta constantemente el número de ceros iniciales, de modo que el tiempo promedio para encontrar un nonce es de aproximadamente diez minutos. De esa manera, a medida que las capacidades de procesamiento del hardware informático aumentan con el tiempo, a lo largo de los años, el protocolo de bitcoin simplemente requerirá más bits ceros iniciales para que la minería siempre tarde aproximadamente diez minutos en implementarse.
Como se describe, el hash es una piedra angular importante para la cadena de bloques. El algoritmo hash puede entenderse como una función que comprime mensajes de cualquier longitud en un resumen de mensajes de longitud fija. Los más utilizados son MD5 y SHA. En algunas realizaciones, la longitud de hash de la cadena de bloques es de 256 bits, lo que significa que, independientemente del contenido original, finalmente se calcula un número binario de 256 bits. Y se puede garantizar que el hash correspondiente sea único siempre que el contenido original sea diferente.
Por ejemplo, el hash de la cadena "123" es a8fdc205a9f19cc1 c7507a60c4f01 b13d11d7fd0 (hexadecimal), que tiene 256 bits cuando se convierte a binario y solo "123" tiene este hash. El algoritmo hash en la cadena de bloques es irreversible, es decir, el cálculo directo es fácil (de "123" a a8fdc205a9fl9cc1c7507a60c4f01b1c7507a60c4f01b1 3d11d7fd0) y el cálculo inverso no se puede realizar incluso si se agotan todos los recursos informáticos. Por tanto, el hash de cada bloque de la cadena de bloques es único.
Además, si cambia el contenido del bloque, cambiará su hash. El bloque y el hash están en correspondencia uno a uno, y el hash de cada bloque se calcula específicamente para el encabezamiento del bloque. Es decir, los valores de las características de los encabezamientos de bloque se conectan para formar una cadena larga y luego se calcula el hash para la cadena. Por ejemplo, "Hash = SHA256 (encabezamiento de bloque)" es una fórmula de cálculo de hash de bloque, SHA256 es un algoritmo de hash de la cadena de bloques aplicado al encabezamiento de bloque. El hash está determinado de forma única por el encabezamiento del bloque y no por el cuerpo del bloque. Como se ha mencionado anteriormente, el encabezamiento del bloque contiene una gran cantidad de contenido, incluido el hash del bloque actual y el hash del bloque anterior. Esto significa que, si cambia el contenido del bloque actual, o si cambia el hash del bloque anterior, se producirá un cambio de hash en el bloque actual. Si el pirata informático modifica un bloque, el hash de ese bloque cambia. Para que un bloque posterior se conecte al bloque modificado, el pirata informático debe modificar todos los bloques posteriores a su vez, porque el siguiente bloque debe contener el hash del bloque anterior. De lo contrario, el bloque modificado se separará de la cadena de bloques. Por motivos de diseño, los cálculos de hash requieren mucho tiempo y es casi imposible modificar varios bloques en un período corto de tiempo a menos que el pirata informático haya dominado más del 51 % de la potencia de cálculo de toda la red. Por lo tanto, la cadena de bloques garantiza su propia fiabilidad y, una vez que se escriben los datos, no se pueden manipular.
Una vez que el minero encuentra el hash (es decir, una firma o solución elegible) para el nuevo bloque, el minero transmite esta firma a todos los demás mineros (nodos de la cadena de bloques). A continuación, otros mineros verifican a su vez si esa solución se corresponde con el problema del bloqueo del emisor (es decir, determinar si la entrada hash realmente da como resultado esa firma). Si la solución es válida, los otros mineros confirmarán la solución y acordarán que el nuevo bloque se puede agregar a la cadena de bloques. Así se alcanza el consenso del nuevo bloque. Esto también se conoce como "prueba de trabajo". El bloque para el que se ha alcanzado el consenso ahora se puede añadir a la cadena de bloques y se transmite a todos los nodos de la red junto con su firma. Los nodos aceptarán el bloque y lo guardarán en sus datos de transacción siempre que las transacciones dentro del bloque se correspondan correctamente con los saldos actuales de la cartera (historial de transacciones) en ese momento. Cada vez que se añade un nuevo bloque encima de este bloque, la adición también cuenta como otra "confirmación" para los bloques anteriores. Por ejemplo, si una transacción está incluida en el bloque 502 y la cadena de bloques tiene 507 bloques de longitud, significa que la transacción tiene cinco confirmaciones (correspondientes a los bloques 507 a 502). Cuantas más confirmaciones tenga la transacción, más difícil será modificarla para los atacantes.
En algunas realizaciones, un sistema de activos de cadena de bloques de ejemplo utiliza criptografía de clave pública, en la que se generan dos claves criptográficas, una clave pública y una clave privada. La clave pública se puede considerar como un número de cuenta y la clave privada como credenciales de propiedad. Por ejemplo, una cartera de bitcoin es una colección de claves públicas y privadas. La propiedad de un activo (por ejemplo, moneda digital, activo en efectivo, acciones, capital propio, bonos) asociado con una determinada dirección de activo se puede demostrar con el conocimiento de la clave privada que pertenece a la dirección. Por ejemplo, el software de cartera de bitcoin, a veces denominado "software de cliente bitcoin", permite a un usuario determinado realizar transacciones con bitcoins. Un programa de cartera genera y almacena claves privadas y se comunica con sus pares en la red bitcoin.
En las transacciones de blockchain, los pagadores y beneficiarios se identifican en la cadena de bloques por sus claves criptográficas públicas. Por ejemplo, la mayoría de las transferencias de bitcoins contemporáneas son de una clave pública a una clave pública diferente. En la práctica, los hashes de estas claves se utilizan en la cadena de bloques y se denominan "direcciones bitcoin". En principio, si un atacante hipotético, la persona S pudiera robarle dinero a la persona A simplemente añadiendo transacciones al libro de contabilidad de cadena de bloques como "la persona A le paga a la persona S 100 bitcoins", usando las direcciones de bitcoin de los usuarios en lugar de sus nombres. El protocolo de bitcoin previene este tipo de robo al requerir que cada transferencia sea firmada digitalmente con la clave privada del pagador, y solo las transferencias firmadas se pueden añadir al libro de contabilidad de cadena de bloques. Dado que la persona S no puede falsificar la firma de la persona A, la persona S no puede defraudar a la persona A añadiendo una entrada a la cadena de bloques equivalente a "la persona A le paga a la persona S 200 bitcoins". Al mismo tiempo, cualquier persona puede verificar la firma de la persona A utilizando su clave pública y, por lo tanto, que ha autorizado cualquier transacción en la cadena de bloques donde él/ella es el pagador.
En el contexto de la transacción de bitcoins, para transferir algunos bitcoins al usuario B, el usuario A puede construir un registro que contenga información sobre la transacción a través de un nodo. El registro puede estar firmado con la clave de firma del usuario A (clave privada) y contiene la clave de verificación pública del usuario A y la clave de verificación pública del usuario B. La firma se utiliza para confirmar que la transacción proviene del usuario y también evita que alguien la altere una vez que se haya emitido. El registro incluido con otro registro que tuvo lugar en la misma ventana de tiempo en un nuevo bloque puede transmitirse a todos los nodos. Al recibir los registros, los nodos completos pueden trabajar para incorporar los registros en la base de todas las transacciones que alguna vez hayan tenido lugar en el sistema blockchain, añadir el nuevo bloque a una cadena de bloques previamente aceptada a través del proceso de minería descrito anteriormente y validar el bloque añadido contra las reglas de consenso de la red.
El modelo UTXO (salida de transacciones no gastadas) y el modelo Cuenta/Saldo son dos modelos de ejemplo para implementar transacciones de cadena de bloques. UTXo es un modelo de objeto de blockchain. Bajo UTXO, los activos están representados por salidas de transacciones de blockchain que no se han gastado, que se pueden usar como entradas en nuevas transacciones. Por ejemplo, el activo del usuario A que se transferirá puede estar en forma de UTXO. Para gastar (realizar transacciones) el activo, el usuario A debe firmar con la clave privada. Bitcoin es un ejemplo de moneda digital que usa el modelo UTXO. En el caso de una transacción de blockchain válida, las salidas no gastadas se pueden utilizar para realizar transacciones adicionales. En algunas realizaciones, solo las salidas no gastadas pueden usarse en transacciones adicionales para evitar el doble gasto y el fraude. Por esta razón, las entradas en una cadena de bloques se eliminan cuando se produce una transacción, mientras que, al mismo tiempo, las salidas se crean en forma de UTXO. Estas salidas de transacciones no gastadas pueden ser utilizadas (por los titulares de claves privadas, por ejemplo, personas con carteras de moneda digital) con el propósito de transacciones futuras.
El modelo de cuenta/saldo (o modelo de transacción basado en cuenta), por otro lado, realiza un seguimiento del saldo de cada cuenta como un estado global. Se verifica el saldo de una cuenta para asegurarse de que sea mayor o igual a la cantidad de la transacción de gasto. Se proporciona un ejemplo de cómo funciona el modelo de cuenta/saldo en Ethereum:
1. Alice gana 5 éteres a través de la minería. Se registra en el sistema que Alice tiene 5 éteres.
2. Alice quiere darle a Bob 1 éter, por lo que el sistema primero deducirá 1 éter de la cuenta de Alice, por lo que Alice ahora tiene 4 éteres.
3. Luego, el sistema aumenta la cuenta de Bob en 1 éter. El sistema sabe que Bob tiene 2 éteres de inicio, por lo tanto, el saldo de Bob se incrementa a 3 éteres.
El mantenimiento de registros de Ethereum puede ser como en un banco. Una analogía es usar una tarjeta de débito/cajero automático. El banco rastrea cuánto dinero tiene cada tarjeta de débito y cuando Bob necesita gastar dinero, el banco verifica su registro para asegurarse de que Bob tenga suficiente saldo antes de aprobar la transacción.
Dado que la cadena de bloques y otros libros de contabilidad similares son completamente públicos, la cadena de bloques en sí no tiene protección de privacidad. El carácter público de la red P2P significa que, si bien quienes la utilizan no están identificados por su nombre, es factible vincular transacciones a personas y empresas. Por ejemplo, en las remesas transfronterizas o en la cadena de suministro, la cantidad de la transacción tiene un nivel extremadamente alto de valor de protección de la privacidad, porque con la información de la cantidad de la transacción, es posible deducir la ubicación y las identidades específicas de las partes de la transacción. El objeto de la transacción puede comprender, por ejemplo, dinero, unidad de valor, moneda digital, contrato, escritura, registro médico, detalle del cliente, acciones, bonos, capital propio o cualquier otro activo que pueda describirse en forma digital. Aunque el modelo UTXO puede proporcionar anonimato a las cantidades de las transacciones, por ejemplo, a través de la firma de anillo en Monero y la criptografía de conocimiento cero Zcash, las cantidades de las transacciones permanecen desprotegidas bajo el Modelo de cuenta/saldo. Por tanto, un problema técnico abordado por la presente divulgación es cómo proteger la información en línea, tal como la privacidad de las cantidades de las transacciones. Tales transacciones pueden estar bajo el Modelo de Cuenta/Saldo.
Algunas tecnologías existentes proponen utilizar el esquema de compromiso de Pedersen para cifrar la cantidad de la transacción y reemplazar el modelo de cuenta/saldo. Según el esquema, el emisor envía la cantidad de la transacción y un número aleatorio correspondiente al compromiso de Pedersen de la cantidad de la transacción al beneficiario a través de un canal seguro fuera de la cadena de bloques. El beneficiario verifica si el número aleatorio coincide con el compromiso de transacción y realiza el almacenamiento local. Por ejemplo, en el Modelo de cuenta/saldo, una cuenta puede tratarse como una cartera (cuenta) para mantener activos que se agregan, pero no se fusionan. Cada activo puede corresponder a un tipo de activo (por ejemplo, criptomoneda) y el saldo de la cuenta es la suma de los valores de los activos. Incluso los activos del mismo tipo no se fusionan. Durante la transacción, se puede especificar un receptor de un activo que se transfiere y el activo correspondiente se puede eliminar de la cartera para financiar la transacción. Los nodos de cadena de bloques verifican que la cartera de pago tenga activo(s) suficientes para cubrir la transacción y, a continuación, los nodos eliminan el activo transferido de la cartera de pago y añaden un activo correspondiente a la cartera del receptor.
Sin embargo, todavía existen limitaciones para dicho esquema. Primero, el esquema requiere que el usuario mantenga un almacenamiento persistente localmente para administrar los números aleatorios y los saldos de texto sin formato correspondientes al saldo de la cuenta cifrada y la implementación de la administración es complicada; en segundo lugar, el almacenamiento de factores de ocultación (por ejemplo, los números aleatorios) y los saldos de texto sin formato correspondientes al "activo de Pedersen" en un solo nodo local es propenso a la pérdida o corrupción, mientras que el almacenamiento de respaldo de múltiples nodos es difícil de realizar debido a la cambio frecuente del saldo de la cuenta.
Los sistemas y el método presentados en esta divulgación pueden superar las limitaciones anteriores y lograr una sólida protección de la privacidad para las cantidades de las transacciones, los valores de los activos y los factores de ocultación en los esquemas de compromiso. Con ese fin, se pueden utilizar protocolos de encriptación para cifrar/descifrar los números aleatorios y los saldos de texto sin formato, proporcionando así una gestión conveniente. Además, almacenar la información cifrada en blockchain asegura que las cantidades de las transacciones, los valores de los activos y los factores de ocultación en los esquemas de compromiso no se pierdan o alteren fácilmente.
En algunas realizaciones, un esquema de compromiso (por ejemplo, compromiso de Pedersen) puede cifrar cierto valor (por ejemplo, cantidad de transacción, valor de activo, parámetro clave) como sigue:
PC(a) = rxG axH
donde r es un factor de ocultación aleatoria (alternativamente denominado factor de ocultación) que proporciona ocultación, G y H son los generadores/puntos base acordados públicamente de la curva elíptica y pueden elegirse al azar, a es el valor del compromiso, PC (a) es el punto de la curva utilizado como compromiso y dado a la contraparte, y H es otro punto de la curva. Es decir, G y H pueden ser parámetros conocidos para los nodos. Se puede generar una generación de H "no tengo ningún as en mi manga" mediante el hash del punto base G con una función de hash que correlaciona de un punto a otro con H = Hash (G). H y G are son los parámetros públicos del sistema dado (por ejemplo, puntos generados aleatoriamente en una curva elíptica). Aunque lo anterior proporciona un ejemplo de compromiso de Pedersen en forma de curva elíptica, de forma alternativa se pueden usar otras varias formas de compromiso de Pedersen u otros esquemas de compromiso.
Un esquema de compromiso mantiene el secreto de los datos, pero se compromete con los datos de modo que el emisor de los datos no los pueda cambiar después. Si una parte solo conoce el valor de compromiso (por ejemplo, PC(a)), no se pueden determinar a qué valores de datos subyacentes (por ejemplo, a) se han estado comprometiendo. Tanto los datos (por ejemplo, a) como el factor de ocultación (por ejemplo, r) se pueden revelar más tarde (por ejemplo, por el nodo iniciador) y un receptor (por ejemplo, nodo consenso) del compromiso puede ejecutar el compromiso y verificar que los datos comprometidos coinciden con los datos revelados. El factor de ocultación está presente porque sin uno, alguien podría intentar adivinar los datos.
Los esquemas de compromiso son una forma por la cual el emisor (parte que se compromete) se compromete con un valor (por ejemplo, a) de modo que el valor comprometido permanece privado, pero se puede revelar más tarde cuando la parte que se compromete divulga un parámetro necesario del proceso de compromiso. Los esquemas de compromiso fuertes pueden ocultar información y ser vinculantes computacionalmente. Ocultar se refiere a la noción de que un valor dado a y un compromiso de ese valor PC (a) no deberían ser relacionados. Es decir, PC(a) no debe revelar información sobre a. Con PC(a), G y H conocidos, es casi imposible conocer a debido al número aleatorio r. Un esquema de compromiso es vinculante si no existe una forma plausible de que dos valores diferentes puedan dar como resultado el mismo compromiso. Un compromiso de Pedersen se oculta perfectamente y es vinculante computacionalmente bajo el supuesto de logaritmo discreto. Además, con r, G, H y PC(a) conocidos, es posible verificar PC(a) determinando si PC(a) = rxG axH.
Un compromiso de Pedersen tiene una propiedad adicional: se pueden añadir compromisos y la suma de un conjunto de compromisos es lo mismo que un compromiso con la suma de los datos (con un factor de ocultación establecido como la suma de los factores de ocultación): PC(ri, datosi) PC(r2, datos2) == PC(ri+r2, datos1+datos2); PC(ri, datosi) - PC(ri, datosi) == 0. En otras palabras, el compromiso conserva la adición y se aplica la propiedad conmutativa, es decir, el compromiso de Pedersen es aditivamente homomórfico, ya que los datos subyacentes pueden manipularse matemáticamente como si no estuvieran cifrados.
En una realización, un compromiso de Pedersen utilizado para cifrar el valor de entrada se puede construir utilizando puntos de curva elíptica. De manera convencional, una clave pública de criptografía de curva elíptica (ECC) se crea multiplicando un generador para el grupo (G) con la clave secreta (r): Pub = rG. El resultado se puede serializar como una matriz de 33 bytes. Las claves públicas ECC pueden obedecer a la propiedad aditiva homomórfica mencionada anteriormente con respecto a los compromisos de Pedersen. Es decir: Pub1+Pub2=(r1+r2(mod n))G.
El compromiso de Pedersen para el valor de entrada se puede crear seleccionando un generador adicional para el grupo (H, en las ecuaciones siguientes) de modo que nadie conozca el registro discreto del segundo generador H con respecto al primer generador G (o viceversa), lo que significa que nadie conoce una x tal que xG = H. Esto se puede lograr, por ejemplo, utilizando el hash criptográfico de G para elegir H: H=to_point(SHA256(ENCODE(G))).
Dados los dos generadores G y H, un esquema de compromiso de ejemplo para cifrar el valor de entrada puede definirse como: compromiso = rG aH. Aquí, r puede ser el factor de ocultación secreto y a puede ser el valor de entrada con el que se compromete. Por tanto, si a está comprometido, se puede obtener el esquema de compromiso descrito anteriormente PC(a) = rxG axH. Los compromisos de Pedersen son información teóricamente privada: para cualquier compromiso, existe algún factor de ocultación que haría que cualquier cantidad coincidiera con el compromiso. Los compromisos de Pedersen pueden ser computacionalmente seguros contra compromisos falsos, ya que el mapeo arbitrario puede no ser calculado.
La parte (nodo) que comprometió el valor puede abrir el compromiso revelando el valor original a y el factor r que completa la ecuación del compromiso. La parte que desee abrir el valor PC(a) volverá a calcular el compromiso para verificar que el valor original compartido realmente coincide con el compromiso PC(a) recibido inicialmente. Por lo tanto, la información del tipo de activo se puede proteger asignándola a un número de serie único y luego cifrándola por compromiso de Pedersen. El número aleatorio r elegido al generar el compromiso hace que sea casi imposible para cualquiera inferir el tipo de tipo de activo comprometido de acuerdo con el valor de compromiso PC(a).
Durante las transacciones, la protección de la información es importante para asegurar la privacidad del usuario y la cantidad de la transacción es un tipo de información que ha carecido de protección. La figura 1 muestra un sistema 100 de ejemplo para protección de información, de acuerdo con diversas realizaciones. Como se muestra, una red de blockchain puede comprender una pluralidad de nodos (por ejemplo, nodos completos implementados en servidores, ordenadores, etc.). Para algunas plataformas de blockchain (por ejemplo, NEO), los nodos completos con cierto nivel de poder de voto pueden denominarse nodos de consenso, que asumen la responsabilidad de la verificación de la transacción. En esta divulgación, los nodos completos, los nodos de consenso u otros nodos equivalentes pueden verificar la transacción.
Asimismo, como se muestra en la figura 1, el usuario A y el usuario B pueden utilizar los dispositivos correspondientes, como ordenadores portátiles y teléfonos móviles, que sirven como nodos ligeros, para realizar transacciones. Por ejemplo, el usuario A puede querer realizar transacciones con el usuario B transfiriendo algún activo de la cuenta del usuario A a la cuenta del usuario B. El usuario A y el usuario B pueden usar los dispositivos correspondientes instalados con un software de blockchain apropiado para la transacción. El dispositivo del usuario A puede denominarse nodo iniciador A que inicia una transacción con el dispositivo del usuario B denominado nodo receptor B. El nodo A puede acceder a la cadena de bloques a través de la comunicación con el nodo 1 y el nodo B puede acceder a la cadena de bloques a través de la comunicación con el nodo. 2. Por ejemplo, el nodo A y el nodo B pueden enviar transacciones a la cadena de bloques a través del nodo 1 y el nodo 2 para solicitar que se añadan las transacciones a la cadena de bloques. Fuera de la cadena de bloques, el nodo A y el nodo B pueden tener otros canales de comunicación (por ejemplo, comunicación regular por Internet sin pasar por los nodos 1 y 2).
Cada uno de los nodos de la figura 1 puede comprender un procesador y un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que el procesador que, cuando ejecuta que el nodo realice varias etapas para la protección de la información descrita en el presente documento. Cada nodo puede instalarse con un software (por ejemplo, un programa de transacciones) y/o hardware (por ejemplo, cables, conexiones inalámbricas) para comunicarse con otros nodos y/u otros dispositivos. Más adelante se describen más detalles del hardware y software del nodo con referencia a la figura 5.
La figura 2 ilustra etapas a modo de ejemplo para la transacción y verificación entre un nodo emisor A, un nodo receptor B y uno o más nodos de verificación, de acuerdo con diversas realizaciones. Se pretende que las operaciones que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, las etapas a modo de ejemplo pueden incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
En varias realizaciones, las cuentas de las partes de la transacción (usuario emisor A y usuario receptor B) se configuran para el modelo Cuenta/Saldo. El usuario A y el usuario B pueden realizar los siguientes pasos para realizar la transacción a través de uno o más dispositivos, tal como su ordenador portátil, teléfono móvil, etc. Los dispositivos pueden instalarse con software y hardware apropiados para realizar las diversas etapas. Cada cuenta puede estar asociada a una o más claves privadas criptográficas (clave secreta) - pares de claves públicas. Por ejemplo, cada cuenta puede estar asociada con (1) un primer par de claves con una primera clave privada SK_1 y una primera clave pública PK_1, y (2) un segundo par de claves con una segunda clave privada SK_2 y una segunda clave pública PK_2. El primer par de claves puede denominarse par de claves de dirección para dirigir la cuenta correspondiente. El segundo par de claves puede denominarse par de claves homomórficas. El segundo par de claves puede basarse en encriptación homomórfica, que es una forma de encriptación que permite el cálculo de textos cifrados (por ejemplo, encriptaciones de realizar la encriptación homomórfico en dos o más conjuntos de datos), generando un resultado encriptado que, cuando se desencripta, coincide con el resultado de las operaciones como si se hubieran realizado en el texto sin formato. La encriptación homomórfica puede comprender, por ejemplo, encriptación homomórfica Elgamal, encriptación homomórfica Paillier, encriptación homomórfica Benaloh Okamoto-encriptación homomórfica Uchiyama, encriptación homomórfica Naccache-Stern, encriptación homomórfica Damgard-Jurik, encriptación homomórfica Boneh-Goh-Nissim, etc. La encriptación homomórfica puede soportar desencriptación de soporte.
Asimismo, para cada cuenta puede contener varios activos, cada uno denotado como: (V = PC (r, v), HE(K, r, v)), donde v representa el valor nominal del activo, V representa un compromiso de Pedersen del valor nominal v, r es un factor de ocultación (por ejemplo, un número aleatorio), PC () es un algoritmo de compromiso de Pedersen, HE() es un algoritmo de cifrado (por ejemplo, algoritmo de cifrado de homomórfico) y K es una clave de cifrado, que puede ser una clave pública. En un ejemplo, cada activo se puede denotar como (V = PC (r, v), HE(K, r || v)), donde || representa la concatenación. Cada activo también puede incluir información distinta a la enumerada, tal como la fuente de información del activo.
En un ejemplo, antes de que el usuario A transmita con éxito una cantidad t al usuario B en una transacción verificada por blockchain, la cuenta del usuario A y la cuenta del usuario B comprende la siguiente información:
Para la cuenta de A (cuenta A):
Primer par de claves de A: (SK_1_A, PK_1_A)
Segundo par de claves de A: (SK_2_A, PK_2_A)
Los activos A_1 a A_m respectivamente de valores a_1 a a_m se denotan como:
(A_1 =PC(r_{a_1}, a_1), HE(PK_2_A, r_{a_1}||a_1)),
(A_2=PC(r_{a_2}, a_2), HE(PK_2_A, r_{a_2}||a_2)),
(A_m=PC(r_{a_m}, a_m), HE(PK_2_A, r_{a_m}||a_m))
Para la cuenta de B (cuenta B):
Primer par de claves de B: (SK_1_B, PK_1_B)
Segundo par de claves de B: (SK_2_B, PK_2_B)
Los activos B_1 a B_n, respectivamente, de valores b_1 a b_n se indican como:
(B_1 =PC(r_{b_1}, b_1), HE(PK_2_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), HE(PK_2_B, r_{b_2}||b_2)),
(B_n=PC(r_{b_n}, b_n), HE(PK_2_B, r_{b_n}||b_n)),
En algunas realizaciones, la generación de claves puede basarse en la curva elíptica ecp256k1 para cada cuenta en el modelo Cuenta/Saldo. Por ejemplo, en Ethereum ecp256k1, cualquier número entre 1 y 2256-1 puede ser una clave privada SK válida. Una buena biblioteca genera una clave privada teniendo en cuenta suficiente aleatoriedad. Ethereum requiere que la clave privada SK tenga 256 bits de longitud. La generación de la clave pública se realiza mediante la operación grupal de criptografía ECC. Para derivar la clave pública PK, la clave privada se puede multiplicar por G. La multiplicación utilizada para derivar la clave pública PK es la multiplicación ECC (multiplicación de puntos de curva elíptica), que es diferente de la multiplicación normal. G es el punto generador que es uno de los parámetros de dominio de la criptografía ECC. G puede tener un valor fijo para ecp256k1. La dirección puede ser, por ejemplo, los últimos 20 bytes del hash de la clave pública PK.
En algunas realizaciones, en la etapa 201, el nodo A puede iniciar una transacción con el nodo B. Por ejemplo, el usuario A y el usuario B pueden negociar una cantidad t de la transacción desde la cuenta A del usuario A a la cuenta B del usuario B. La cuenta A y la cuenta B pueden corresponder a las "carteras" descritas en el presente documento. La cuenta A puede tener uno o más activos. El activo puede comprender, por ejemplo, dinero, unidad de valor, moneda digital, contrato, escritura, registro médico, detalle del cliente, acciones, bonos, acciones o cualquier otro activo que pueda describirse en forma digital. La cuenta B puede tener uno o más activos o ningún activo. Cada activo puede estar asociado con diversa información de la cadena de bloques almacenada en bloques de la cadena de bloques, comprendiendo la información de la cadena de bloques, por ejemplo, NoteType que representa el tipo de activo, NotelD que representa la identificación única del activo, valores de compromiso que representan un compromiso (por ejemplo, compromiso de Pedersen) valor del activo, cifrado de número aleatorio y valor del activo, etc.
Como se describe con respecto a la cuenta A, en algunas realizaciones, los activos A_1 a A_m corresponden, respectivamente, a los valores de los activos a_1 a a_m y números aleatorios r_1 a r_m. Basándose en los números aleatorios r_1 a r_m, el nodo A puede comprometer los valores de los activos en la cuenta A a un esquema de compromiso (por ejemplo, compromiso de Pedersen) para obtener valores de compromiso cifrados. Por ejemplo, los valores de compromiso cifrados pueden ser PC_1 a PC_m, donde PC_i = PC (r_ {a_i}, a_i) = r_ {a_i} xG a_ixH, donde G y H son parámetros conocidos, e i está entre 1 y m. Además del primer PC de campo (...), cada activo también está asociado con un segundo campo HE(...) como se ha descrito anteriormente. El segundo campo HE(...) puede representar un cifrado del número aleatorio correspondiente y el valor del activo cifrado con la clave PK_A. Por ejemplo, el cifrado puede ser HE(PK_2_A, r_{a_i}||a_i)). El PC (...) y HE(...) de cada activo se heredan de transacciones anteriores. El mismo mecanismo se puede aplicar a la cuenta B y sus activos.
En algunas realizaciones, para satisfacer la cantidad t de la transacción, el usuario A puede usar la clave SK_2_A para descifrar uno o más activos de un valor añadido al menos t de la cuenta A. Por ejemplo, el nodo A puede utilizar los activos A_1, A_2, ..., A_k para esta transacción, donde k es menor o igual que m. Los activos restantes A_k 1, A_k 2, ..., A_m de la cuenta A están sin utilizar. En consecuencia, el nodo A puede leer los activos PC (r_ {a_1}, a_1), PC (r_ {a_2}, a_2), ..., PC (r_ {a_k}, a_k) del nodo 1. Con los números aleatorios r_ {a_1}, r_ {a_2}, ..., r_ {a_k} conocidos por el nodo A, el nodo A puede descifrar los activos leídos PC (r_ {a_1}, a_1), PC (r_ {a_2}, a_2), ..., PC (r_ {a_k}, a_k) para obtener valores de activos a_1, a_2, ..., a_k para asegurar que la suma (a_1 a_2 ... a_k) no es menor que la cantidad t de la transacción. Se pueden intercambiar diferentes activos entre sí dentro de la cuenta en función de varias tasas.
En algunas realizaciones, la cantidad de valor de activo seleccionado en exceso de t, si lo hubiera, se establece en y como el cambio. Por ejemplo, el nodo A puede determinar el cambio y = (a_1 a_2 ... a_k) - 1. El nodo A puede seleccionar números aleatorios r_t y r_y como factores de ocultación para generar compromisos de Pedersen para t e y: T=PC(r_t, t), Y=PC(r_y, y). Es decir, el nodo A puede generar un número aleatorio r_t para t y un número aleatorio r_y para y. El nodo A puede comprometer t y r_t a un esquema de compromiso para obtener el valor de compromiso T=PC(r_t, t), y comprometer y y r_y a un esquema de compromiso para obtener el valor de compromiso Y = PC (r_y, y).
Además, en algunas realizaciones, el nodo A puede usar la clave pública PK_2_B del usuario B para cifrar (r_t||t), lo que proporciona el cifrado HE(PK_2_B, r_t||t), y utilizar la clave pública PK_2_A para cifrar (r_y||y), que proporciona el cifrado HE(PK_2_A, r_y||y). La figura 3A y la figura 3B pueden seguir este ejemplo. Como alternativa a la obtención del cifrado HE(PK_2_B, r_t||t) por el nodo A, el usuario A puede enviar r_t y t al nodo B junto con la información de la transacción, lo que hace que el nodo B genere una segunda clave para cifrar (r_t||t) con PK_2_B. El nodo B enviaría el cifrado al nodo A para permitir que el nodo A verifique. La figura 4A y la figura 4B pueden seguir este ejemplo. Aunque la concatenación se usa en varios ejemplos de esta divulgación, se pueden usar combinaciones alternativas de entradas, salidas u otros parámetros para la función de cifrado u otra operación.
Además, en algunas realizaciones, el nodo A puede generar una prueba de rango RP para probar a los nodos de blockchain si el valor de T=PC(r_t, t) y el valor de Y = PC (r_y, y) están cada uno dentro de un rango válido. Por ejemplo, para tener valores válidos de T=PC(r_t, t), la cantidad t de la transacción puede estar dentro de un rango válido [0, 2n-1]; y para tener valores válidos de Y = PC (r_y, y), el cambio y puede estar dentro de un rango válido [0, 2n-1]. En una realización, el nodo A puede usar la técnica de prueba de bloques para generar la prueba de rango Rp relacionada con (r_y, y, Y, r_t, t, T) para los nodos de blockchain (por ejemplo, nodos de consenso) para verificar en una etapa posterior si la cantidad t de la transacción y el cambio y están dentro del rango válido según la prueba de rango. La prueba de rango puede comprender, por ejemplo, Bulletproofs, firma del nudo borromeo, etc.
En la etapa 202, el nodo A puede enviar la información de la transacción al nodo B (por ejemplo, a través de un canal seguro fuera de la cadena de bloques). La información de transacción enviada puede comprender, por ejemplo, valor de compromiso T=PC(r_t, t), valor de compromiso Y = PC (r_y, y), cifrado HE(PK_2_B, r_t||t), cifrado HE(PK_2_A, r_y | | y), prueba de rango RP etc. El valor de compromiso Y = PC (r_y, y), el cifrado HE(PK_2_A, r_y||y) y la prueba de rango RP pueden ser opcionales porque el nodo B puede no preocuparse por el cambio devuelto a la cuenta A. En algunas realizaciones, la transmisión a través del canal de comunicación fuera de la cadena de bloques puede evitar que la información de la transacción se registre en la cadena de bloques y evitar que otros nodos que no sean el nodo emisor A y el nodo receptor B obtengan la información de la transacción. Es posible que no sea necesario enviar HE(PK_2_A, r_y||y) al nodo B, pero es posible que sea necesario en el futuro para que el usuario A gaste el cambio y, ya que el cambio debe devolverse a la cuenta A.
En la etapa 203, el nodo B puede verificar el número aleatorio r_t, la cantidad t de la transacción y el valor T de compromiso. En algunas realizaciones, el nodo B puede usar la clave privada SK_2_B para descifrar el cifrado HE(Pk_2_B, r_t||t) a obtener r_t||t. De r_t||t, el nodo B puede obtener r_t y t, y luego verificar si r_t y t coinciden con T=PC(r_t, t). Es decir, el nodo B puede verificar si el valor de compromiso T=PC(r_t, t) es correcto basándose en el número aleatorio r_t y la cantidad t de la transacción según el algoritmo de compromiso de Pedersen. Si la coincidencia/verificación falla, el nodo B puede rechazar la transacción; y si la coincidencia/verificación tiene éxito, el nodo B puede firmar la transacción para responder al nodo A en la etapa 204.
En la etapa 204, el nodo B puede firmar la transacción con la clave privada SK_B del usuario B para generar una firma SIGB. La firma puede seguir un Algoritmo de Firma Digital (DSA) como el Algoritmo de Firma Digital de Curva Elíptica (ECDSA), mediante el cual el receptor de la firma puede verificar la firma con la clave pública del firmante (por ejemplo, PK_1_B en este caso) para autenticar los datos firmados. La firma SIGB indica que el nodo receptor B está de acuerdo con la transacción.
En la etapa 205, el nodo B puede transmitir la transacción firmada de vuelta al nodo A con la firma SIGB.
En la etapa 206, si SIGB no se verifica satisfactoriamente, el nodo A puede rechazar la transacción. Si SIGB se verifica con éxito, el nodo A puede firmar la transacción con la clave privada SK_A del usuario A para generar una firma SIGA. Del mismo modo, la firma puede seguir el Algoritmo de Firma Digital (DSA). En una realización, el nodo A puede firmar (HE(PK_2_B, r_t||t); HE(PK_2_A, r_y||y); Y; T; RP) con la clave privada del usuario A para generar la firma SIGA.
En la etapa 207, el nodo A puede presentar la transacción a la cadena de bloques, haciendo que los nodos de la cadena de bloques verifiquen la transacción y determinen si añadir la transacción a la cadena de bloques. En una realización, el nodo A puede presentar la transacción (HE(PK_2_B, r_t||t); HE(PK_2_A, r_y||y); Y; T; r'; RP; SIGA; SIGB) a la cadena de bloques a través del nodo 1 para ejecutar la transacción. r'= r_1 ... r_k - r_t - r_y. La transacción puede comprender parámetros adicionales o puede no comprender todos los parámetros enumerados. La transacción puede transmitirse a uno o más nodos (por ejemplo, nodos de consenso) en la cadena de bloques para su verificación. Si la verificación tiene éxito, la transacción se añade a la cadena de bloques. Si la verificación falla, se rechaza la transacción para que no se añada a la cadena de bloques.
En las etapas 208-213, uno o más nodos (por ejemplo, nodos de consenso) verifican las firmas, la prueba de rango y otra información de la transacción presentada. Si la verificación falla, los nodos rechazan la transacción. Si la verificación tiene éxito, los nodos aceptan la transacción, actualizan la cuenta del usuario A y la cuenta del usuario B por separado.
En algunas realizaciones, para ejecutar la transacción, la información de la transacción puede ser verificada por varios nodos de blockchain. La información de la transacción puede comprender la dirección de la transacción TXID, la(s) firma(s), la entrada y la salida. TXID puede comprender el hash del contenido de la transacción. Las firmas pueden comprender firmas de claves criptográficas del emisor y el receptor. La entrada puede comprender una dirección de la cuenta del emisor en la cadena de bloques, uno o más activos extraídos de la cuenta de la cadena de bloques del emisor para la transacción, etc. La salida puede comprender una dirección de la cuenta del receptor en la cadena de bloques, el o los tipos de activos del o los activos del receptor, el o los valores de compromiso del o los activo(s) del receptor, etc. La entrada y la salida pueden comprender información indexada en forma de tabla. En algunas realizaciones, el valor del valor de NotelD puede ser "el TXID un índice del activo en la salida". La primera clave pública PK_1_A del emisor puede servir como dirección para la cuenta A y la primera clave pública PK_1_B del receptor puede servir como dirección para la cuenta B.
En algunas realizaciones, los uno o más nodos de la cadena de bloques pueden verificar la transacción presentada (HE(abG, r_t||t); HE(aaG, r_y||y); Y; T; RP; SIGA; SIGB).
En la etapa 208, los nodos pueden verificar si la transacción se ha ejecutado utilizando un mecanismo anti-doble gasto o un mecanismo anti-repetición-ataque. Si la transacción se ha ejecutado, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 209.
En la etapa 209, los nodos pueden comprobar las firmas SIGA y SIGB (por ejemplo, basándose en la clave pública de A y la clave pública de B respectivamente). Si alguna de las firmas es incorrecta, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 210.
En la etapa 210 opcional, los nodos pueden verificar si los tipos de activos son consistentes. Por ejemplo, los nodos pueden verificar si los tipos de activos en NoteType para A_1 a A_k son consistentes con el o los tipos de activos de la cantidad t de la transacción. Si alguno de los tipos de activos es inconsistente, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 211. En algunas realizaciones, el tipo de activo original en la cartera puede haberse convertido en otro tipo basado en un tipo de intercambio y esta etapa puede omitirse.
En la etapa 211, los nodos pueden comprobar la prueba de rango RP para validar el valor de PC(r_t, t) y el valor de PC (r_y, y). En una realización, los nodos pueden comprobar la prueba de rango RP para verificar si la cantidad t de la transacción no es menor que cero y el cambio y no es menor que cero. Si la verificación falla, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 212.
En la etapa 212, los nodos pueden verificar si las entradas y salidas de la transacción son consistentes. En una realización, r' puede corresponder al valor del activo t' = a_1 ... a_k - 1 - y basado en la propiedad homomórfica, donde r'= r_1 ... r_k - r_t - r_y. Dado que los activos de entrada son a_1 a a_k y la salida es t y, t '= 0 cuando la entrada y la salida son consistentes: a_1 ... a_k = t y. Por tanto, el valor de compromiso correspondiente a r' es PC(r', t') = r'xG t'xH = r'G. Dado que r'= r_1 ... r_k - r_t - r_y, los nodos pueden determinar si las entradas y salidas son iguales mediante la verificación de si r'G es igual a PC_1 ... PC_k - T - Y correspondiente a r_1 ... r_k - r_t - r_y. Si r'G es igual a PC_1 ... PC_k - T - Y, los nodos pueden determinar que las entradas y salidas de la transacción son consistentes y proceden a la etapa siguiente; de lo contrario, los nodos pueden determinar que las entradas y salidas de la transacción son inconsistentes y rechazan la transacción.
En la etapa 213, los nodos pueden verificar si el nodo A tiene el o los activos utilizados para la transacción. En una realización, los nodos pueden realizar esta verificación basándose en información almacenada en la cadena de bloques, tal como la información correspondiente a la cuenta A. La información puede comprender información de transacciones previas de todos los activos. Por tanto, los nodos pueden determinar si la cuenta A tiene el activo de transacción para la transacción. Si la determinación es no, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 214.
En la etapa 214, los nodos pueden actualizar la cuenta A y la cuenta B. Por ejemplo, los nodos pueden eliminar el activo de transacción de la cantidad t de la cuenta A y añadir el mismo a la cuenta B. Según la propiedad homomórfica, ya que Y = PC (r_y, y) y el nodo 1 conoce r_y y puede acceder al valor de compromiso Y desde la cadena de bloques, el nodo 1 puede descifrar Y para obtener el valor del activo y y devolver el mismo a la cuenta A. El nodo 2 obtiene en la etapa 202 el número aleatorio r_t del nodo 1 y puede obtener de la cadena de bloques el valor de compromiso T. Por lo tanto, el nodo 2 puede descifrar T para obtener el valor t del activo y añadir el mismo a la cuenta B.
En un ejemplo, después de la actualización de la cuenta A y la cuenta B, la cuenta A recibe el cambio y en los activos utilizados A_1, A_2, ..., A_k y recibe sus activos no utilizados A_k 1, ..., A_m y la cuenta B recibe la cantidad t de la transacción y recibe sus activos originales B_1, B_2, ..., B_n. Los activos en la cuenta de A y la cuenta de B son los siguientes:
Para la cuenta de A (cuenta A), los activos actualizados se indican como:
(Y=PC(r_y, y), HE(PK_2_A, r_y||y)),
(A_k+1=PC(r_{a_k+1}, a_k+1), HE(PK_2_A, r_{a_k+1}||a_k+1))
(A_k+2=PC(r_{a_k+2}, a_k+2), HE(PK_2_A, r_{a_k+2}||a_k+2))
(A_m=PC(r_{a_m}, a_m), HE(PK_2_A, r_{a_m}||a_m))
Para la cuenta de B (cuenta B), los activos actualizados se indican como:
(B_1 =PC(r_{b_1}, b_1), HE(PK_2_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), HE(PK_2_B, r_{b_2}||b_2)),
(B_n=PC(r_{b_n}, b_n), HE(PK_2_B, r_{b_n}||b_n)),
(T=PC(r_t, t), HE(PK_2_B, r_t||t))
Aunque la presente divulgación utiliza el nodo A/usuario A y el nodo B/usuario B para ilustrar el emisor y el receptor respectivamente, el emisor y el receptor pueden ser el mismo nodo/usuario. Por ejemplo, el cambio y de una transacción (activos totales utilizados en la cuenta A menos la cantidad de la transacción) puede enviarse de vuelta al emisor de la transacción. Por tanto, las diversas etapas realizadas por el nodo B como se describe en el presente documento puede realizarlas alternativamente el nodo A.
La figura 3A ilustra un diagrama de flujo de un método 300 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 300 puede ser implementado por uno o más componentes (por ejemplo, nodo A, nodo 1, una combinación de nodo A y nodo 1) del sistema 100 de la figura 1. El método 300 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando se ejecutan por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 300. Se pretende que las operaciones del método 300 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 300 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 301 comprende: comprometer una cantidad t de la transacción de una transacción con un esquema de compromiso para obtener un valor T de compromiso de transacción, comprendiendo el esquema de compromiso al menos un factor de ocultación de la transacción r_t. En algunas realizaciones, el esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción r_t y siendo la cantidad t de la transacción un valor comprometido.
El bloque 302 comprende: encriptar una combinación del factor de ocultación de transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B de un receptor de la transacción, en el que: el receptor se asocia además con una primera clave pública PK_1_B como dirección para recibir la cantidad de la transacción t. En algunas realizaciones, la segunda clave pública PK_2_B es una clave de encriptación homomórfica. En algunas realizaciones, la combinación del factor de ocultación de la transacción r_t y la cantidad de la transacción t comprende una concatenación del factor de ocultación de la transacción r_t y la cantidad de la transacción t. En algunas realizaciones, la primera clave pública PK_1_B de los servidores receptores como dirección de la cuenta B para recibir la cantidad de la transacción t, y la clave pública PK_1_A de los servidores emisores como dirección de la cuenta A para enviar la cantidad de la transacción t.
El bloque 303 comprende: transmitir el valor T de compromiso de transacción y la combinación cifrada a un nodo receptor asociado con el receptor para que el nodo receptor verifique la transacción (por ejemplo, haciendo que el nodo receptor verifique la transacción). En algunas realizaciones, transmitir el valor T de compromiso de transacción y la combinación cifrada al nodo receptor asociado con el receptor para que el nodo receptor verifique la transacción comprende transmitir el valor T de compromiso de transacción y la combinación cifrada al nodo receptor asociado con el receptor, hacer que el nodo receptor: descifre la combinación cifrada con una segunda clave privada SK_2_B del receptor para obtener el factor de ocultación de la transacción r_t y la cantidad t de la transacción; y verificar la transacción basándose al menos en el valor T de compromiso de la transacción, el factor de ocultación de la transacción r_t y la cantidad t de la transacción.
En algunas realizaciones, hacer que el nodo receptor verifique la transacción basándose al menos en el valor T de compromiso de transacción, el factor de ocultación de la transacción r_t y la cantidad t de la transacción comprende hacer que el nodo receptor: en respuesta a determinar que el valor T de compromiso de transacción no coincide con el esquema de compromiso de la cantidad t de la transacción basado en el factor de ocultación de la transacción r_t, , rechazar la transacción; y en respuesta a determinar que el valor T de compromiso de transacción coincide con el esquema de compromiso de la cantidad t de la transacción basado en el factor de ocultación de transacción r_t, aprobar la transacción firmando la transacción con una primera clave privada SK_1_B del receptor para generar una firma de receptor SIGB.
En algunas realizaciones, antes de transmitir la combinación cifrada al nodo receptor asociado con el receptor, el método comprende además: comprometer un cambio y de la transacción con el esquema de compromiso para obtener un valor Y de compromiso de cambio, comprendiendo el esquema de compromiso al menos un cambio del factor de ocultación r_y, en el que el cambio y es uno o más activos de un emisor de la transacción que se utilizan para la transacción menos la cantidad t de la transacción; y cifrar otra combinación del factor de ocultación del cambio r_y y el cambio y con una segunda clave pública PK_2_A del emisor.
En algunas realizaciones, el método comprende además: en respuesta a recibir la firma SIGB del receptor, aprobar la transacción firmando la transacción con una primera clave privada SK_1_A del emisor para generar una firma del emisor SIGA; y presentar la transacción que comprende la combinación cifrada, la otra combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma SIGA del emisor y la firma SIGB del receptor a uno o más nodos en una red de blockchain para uno o más nodos para verificar la transacción.
En algunas realizaciones, presentar la transacción que comprende la combinación cifrada, la otra combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma del emisor SIGA y la firma SIGB del receptor a los uno o más nodos en la red de blockchain para que el uno o más nodos verifiquen la transacción comprende: presentar la transacción que comprende la combinación cifrada, la otra combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma del emisor SIGA y la firma SIGB del receptor a los uno o más nodos en la red de blockchain, lo que hace que los uno o más nodos, en respuesta a verificar con éxito la transacción, emitan la cantidad t de la transacción al receptor, eliminen los uno o más activos aprovechados para la transacción y emitan el cambio y al emisor.
La figura 3B ilustra un diagrama de flujo de un método 400 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 400 puede ser implementado por uno o más componentes (por ejemplo, nodo b, nodo 2, una combinación de nodo B y nodo 2, etc.) del sistema 100 de la figura 1. El método 400 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando se ejecutan por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 400. Se pretende que las operaciones del método 400 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 400 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 401 comprende: obtener una combinación de un factor de ocultación de transacción r_t y una cantidad t de la transacción cifrada con una segunda clave pública PK_2_B de un receptor de una transacción y obtener un valor T de compromiso de transacción, en el que: la cantidad t de la transacción está comprometida con un esquema de compromiso mediante un nodo emisor asociado con un emisor de la transacción para obtener el valor T de compromiso de transacción, comprendiendo el esquema de compromiso al menos el factor de ocultación de la transacción r_t.
El bloque 402 comprende: descifrar la combinación obtenida con una segunda clave privada SK_2_B de un receptor de la transacción para obtener el factor de ocultación de la transacción r_t y la cantidad t de la transacción. En algunas realizaciones, la segunda clave pública PK_2_B del receptor y la clave privada SK_B del receptor es un par de claves de encriptación homomórfica.
El bloque 403 comprende: verificar la transacción basándose al menos en el valor T de compromiso de la transacción, el factor de ocultación de la transacción r_t y la cantidad t de la transacción.
Alternativamente a cifrar la combinación (r_t, t), tal como (r_t||t) en el nodo A, el nodo A puede transmitir (r_t, t) al nodo B, haciendo que el nodo B cifre la combinación (r_t, t), como se describe a continuación con referencia a la figura 4A y la figura 4B. Otras etapas y descripciones de la figura 1 a la figura 3B pueden aplicarse de forma similar a la figura 4A y la figura 4B.
La figura 4A ilustra un diagrama de flujo de un método 440 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 440 puede ser implementado por uno o más componentes (por ejemplo, nodo A, nodo 1, una combinación de nodo A y nodo 1) del sistema 100 de la figura 1. El método 440 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando se ejecutan por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 440. Se pretende que las operaciones del método 440 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 440 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 441 comprende: comprometer una cantidad t de la transacción de una transacción con un esquema de compromiso para obtener un valor T de compromiso de transacción, comprendiendo el esquema de compromiso al menos un factor de ocultación de la transacción r_t.
El bloque 442 comprende: enviar la cantidad t de la transacción, el factor de ocultación de la transacción r_t y el valor T de compromiso de la transacción a un nodo receptor asociado con un receptor de la transacción para que el nodo receptor verifique la transacción y cifre el factor de ocultación de la transacción r_t y la cantidad t de la transacción con una segunda clave pública PK_2_B del receptor, en el que el receptor se asocia además con una primera clave pública PK_1_B como una dirección para recibir una cantidad de transacción. Por ejemplo, el nodo B puede verificar si T=PC(r_t, t) y el nodo B puede cifrar la combinación con la clave PK_2_B para obtener HE(PK_2_B, r_t||t).
El bloque 443 comprende: obtener una combinación cifrada (por ejemplo, HE(PK_2_B, r_t||t)) del factor de ocultación de la transacción r_t y la cantidad t de la transacción del nodo receptor.
El bloque 444 comprende: transmitir la combinación cifrada y el valor T de compromiso de transacción a una pluralidad de nodos en una cadena de bloques para que la pluralidad de nodos verifique la transacción.
La figura 4B ilustra un diagrama de flujo de un método 450 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 450 puede ser implementado por uno o más componentes (por ejemplo, nodo b, nodo 2, una combinación de nodo B y nodo 2, etc.) del sistema 100 de la figura 1. El método 450 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando se ejecutan por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 450. Se pretende que las operaciones del método 450 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 450 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 451 comprende: obtener una cantidad t de la transacción de una transacción, un factor de ocultación de la transacción r_t y un valor T de compromiso de transacción.
El bloque 452 comprende: verificar la transacción basada en la cantidad t de la transacción obtenido, el factor de ocultación de la transacción r_t obtenido y el valor T de compromiso de la transacción obtenido.
El bloque 453 comprende: en respuesta a la verificación con éxito de la transacción, cifrar el factor de ocultación de la transacción r_t y la cantidad t de la transacción con una segunda clave pública PK_2_B de un receptor de la transacción para obtener una combinación cifrada (por ejemplo, HE(PK_2_B, r_t||t)).
El bloque 454 comprende: transmitir la combinación cifrada a un nodo emisor asociado con un emisor de la transacción.
Como se muestra, la privacidad de la cantidad de la transacción puede protegerse mediante diversas mejoras de la tecnología informática. Por ejemplo, la estructura de la cuenta comprende uno o más campos, tal como un primer campo asociado con el compromiso de Pedersen del valor del activo (por ejemplo, siendo el primer campo PC(r_{a_i}, a_i), estando i entre 1 y m) y un segundo campo asociado con el número aleatorio del compromiso de Pedersen y el valor del activo (por ejemplo, el segundo campo es HE (...)). El primer campo y el segundo campo también se utilizan en las etapas de la transacción y se almacenan en la cadena de bloques.
Para otro ejemplo, el uso de encriptación homomórfica es compatible con el modelo Cuenta/Balance. De este modo, se pueden generar números aleatorios encriptados para la cantidad de la transacción y el cambio y agregarlos a las cuentas correspondientes. El uso de encriptación homomórfica permite el almacenamiento de los factores de ocultación (por ejemplo, números aleatorios) y valores de activos en cadena de bloques con seguridad mejorada, obviar la gestión de factores de ocultación fuera de la cadena. Almacenar los números aleatorios encriptados y los valores de activos en cadena de bloques proporciona comodidad para administrar los números aleatorios, minimiza las posibilidades de pérdida y alteración de los números aleatorios y los valores de los activos, y promueve la seguridad basada en el almacenamiento de cadena de bloques distribuido y consistente.
Para otro ejemplo más, la prueba de rango se usa para demostrar que los activos preexistentes de la transacción están equilibrados con los nuevos activos y la transacción, y que el valor de cada nuevo activo está en un rango razonable. Además, las partes de la transacción pueden transmitir el número aleatorio comprometido y el valor del nuevo activo al receptor a través de un canal seguro fuera de la cadena de bloques para verificar si el valor comprometido coincide con el valor del activo de la transacción.
Como tal, los números aleatorios de compromisos de Pedersen se pueden administrar de manera conveniente, sin el riesgo de corrupción y sin incurrir en una carga adicional de administración de claves. Por lo tanto, la privacidad de la transacción se puede proteger completamente y las cantidades de la transacción se pueden mantener en secreto.
Las técnicas descritas en este documento se implementan mediante uno o más dispositivos informáticos de uso especial. Los dispositivos informáticos de uso especial pueden ser sistemas informáticos de escritorio, sistemas informáticos servidores, sistemas informáticos portátiles, dispositivos portátiles, dispositivos de red o cualquier otro dispositivo o combinación de dispositivos que incorpora lógica por cable y/o de programa para implementar las técnicas. El o los dispositivos informáticos generalmente están controlados y coordinados por el software del sistema operativo. Los sistemas operativos convencionales controlan y programan procesos informáticos para su ejecución, realizan administración de memoria, proporcionan sistema de archivos, redes, servicios de E/S y proporcionan una funcionalidad de interfaz de usuario, tal como una interfaz gráfica de usuario ("GUI"), entre otras cosas.
La figura 5 es un diagrama de bloques que ilustra un sistema informático 500 en el que se puede implementar cualquiera de las realizaciones descritas en el presente documento. El sistema 500 puede implementarse en cualquiera de los nodos descritos en el presente documento y configurarse para realizar las etapas correspondientes para los métodos de protección de la información. El sistema 500 informático incluye un bus 502 u otro mecanismo de comunicación para comunicar información, y uno o más procesador(es) 504 de hardware acoplados con el bus 502 para procesar información. El o los procesadores 504 de hardware pueden ser, por ejemplo, uno o más microprocesadores de uso general.
El sistema 500 informático también incluye una memoria 506 principal, tal como una memoria de acceso aleatorio (RAM) u otro dispositivo de almacenamiento dinámico, acoplado al bus 502 para almacenar información e instrucciones a ejecutar por el o los procesadores 504. La memoria 506 principal también puede usarse para almacenar variables temporales u otra información intermedia durante la ejecución de instrucciones a ejecutarse por el o los procesadores 504. Tales instrucciones, cuando se almacenan en medios de almacenamiento accesibles al o los procesadores 504, representan el sistema 500 informático en una máquina de uso especial que se personaliza para realizar las operaciones especificadas en las instrucciones. El sistema 500 informático incluye adicionalmente una memoria 508 de sólo lectura (ROM) u otro dispositivo de almacenamiento estático acoplado al bus 502 para almacenar información estática e instrucciones para el o los procesadores 504. Se proporciona un dispositivo 510 de almacenamiento, tal como un disco magnético, un disco óptico o una unidad de memoria USB (unidad flash), etc. y se acopla al bus 502 para almacenar información e instrucciones.
El sistema 500 informático puede implementar las técnicas descritas en el presente documento usando lógica por cable personalizada, uno o más ASIC o FPGA, firmware y/o lógica de programa que, en combinación con el sistema informático, provoca o programa que el sistema 500 informático sea una máquina de uso especial. De acuerdo con una realización, las operaciones, métodos y procesos descritos en el presente documento son realizados por el sistema 500 informático en respuesta al o los procesadores 504 que ejecutan una o más secuencias de una o más instrucciones contenidas en la memoria 506 principal. Tales instrucciones pueden leerse en la memoria 506 principal desde otro medio de almacenamiento, tal como el dispositivo 510 de almacenamiento. La ejecución de las secuencias de instrucciones contenidas en la memoria 506 principal provoca que el o los procesadores 504 realicen las etapas del proceso descritas en el presente documento. En realizaciones alternativas, puede usarse circuitería por cable en lugar de o en combinación con instrucciones de software.
La memoria 506 principal, la ROM 508 y/o el dispositivo 510 de almacenamiento pueden incluir medios de almacenamiento no transitorios. La expresión "medios no transitorios" y términos similares, como se usan en el presente documento, se refieren a medios que almacenan datos y/o instrucciones que hacen que una máquina funcione de una manera específica; los medios excluyen las señales transitorias. Tales medios no transitorios pueden comprender medios no volátiles y/o medios volátiles. Los medios no volátiles incluyen, por ejemplo, discos ópticos o magnéticos, tal como el dispositivo 510 de almacenamiento. Los medios volátiles incluyen memoria dinámica, tal como la memoria 506 principal. Las formas comunes de medios no transitorios incluyen, por ejemplo, un disco flexible, un disco flexible, disco duro, disco de estado sólido, cinta magnética, o cualquier otro medio de almacenamiento de datos magnético, un CD-ROM, cualquier otro medio de almacenamiento de datos óptico, cualquier medio físico con patrones de agujeros, una RAM, una PROM y EPROM, una FLASH- EPROM, NVRAM, cualquier otro chip o cartucho de memoria y versiones en red de los mismos.
El sistema 500 informático también incluye una interfaz 518 de comunicación acoplada al bus 502. La interfaz 518 de red proporciona un acoplamiento de comunicación de datos bidireccional a uno o más enlaces de red que están conectados a una o más redes locales. Por ejemplo, la interfaz 518 de red puede ser una tarjeta de red digital de servicios integrados (ISDN), módem por cable, módem por satélite o un módem para proporcionar una conexión de comunicación de datos a un correspondiente tipo de línea telefónica. Como otro ejemplo, la interfaz 518 de red puede ser una tarjeta de red de área local (LAN) para proporcionar una conexión de comunicación de datos a una LAN compatible (o componente WAN para comunicarse con una WAN). También pueden implementarse enlaces inalámbricos. En cualquier implementación de este tipo, la interfaz 518 de red envía y recibe señales eléctricas, electromagnéticas u ópticas que transportan flujos de datos digitales que representan diversos tipos de información.
El sistema 500 informático puede enviar mensajes y recibir datos, incluyendo código de programa, a través de la o las redes, el enlace de red y la interfaz 518 de comunicación. En el ejemplo de Internet, un servidor podría transmitir un código solicitado para un programa de aplicación a través de Internet, el ISP, la red local y la interfaz 518 de red.
El código recibido puede ser ejecutado por el o los procesadores 504 a medida que se recibe y/o se almacena en el dispositivo 510 de almacenamiento u otro almacenamiento no volátil para la posterior ejecución.
Cada uno de los procesos, métodos y algoritmos descritos en las secciones anteriores puede estar incorporado y automatizado total o parcialmente por módulos de código ejecutados por uno o más sistemas informáticos o procesadores informáticos que comprenden hardware informático. Los procesos y algoritmos pueden implementarse parcial o totalmente en circuitos específicos de la aplicación.
Las diversas características y procesos anteriormente descritos pueden usarse de manera independiente unos de otros, o pueden combinarse de diversas maneras. Se pretende que todas las posibles combinaciones y subcombinaciones entren dentro del alcance de la presente divulgación. Además, ciertos bloques de métodos o proceso pueden omitirse en algunas implementaciones. Los métodos y procesos descritos en el presente documento tampoco están limitados a ninguna secuencia particular y los bloques o estados relacionados con los mismos pueden realizarse en otras secuencias que sean apropiadas. Por ejemplo, los bloques o estados descritos pueden realizarse en un orden distinto del específicamente desvelado o múltiples bloques o estados pueden combinarse en un único bloque o estado. Los bloques o estados de ejemplo pueden realizarse en serie, en paralelo o de alguna otra manera. Los bloques o estados pueden añadirse a o eliminarse de las realizaciones de ejemplo desveladas. Los sistemas y componentes de ejemplo descritos en el presente documento pueden configurarse de manera diferente a lo descrito. Por ejemplo, pueden añadirse elementos, eliminarse, o reorganizarse en comparación con las realizaciones de ejemplo desveladas.
Las diversas operaciones de los métodos de ejemplo descritos en el presente documento pueden realizarse, al menos parcialmente, mediante un algoritmo. El algoritmo puede estar comprendido en códigos de programa o instrucciones almacenadas en una memoria (por ejemplo, un medio de almacenamiento no transitorio legible por ordenador descrito anteriormente). Dicho algoritmo puede comprender un algoritmo de aprendizaje automático. En algunas realizaciones, es posible que un algoritmo de aprendizaje automático no programe explícitamente los ordenadores para que realicen una función, pero puede aprender de los datos de entrenamiento para hacer un modelo de predicciones que realice la función.
Las diversas operaciones de los métodos de ejemplo descritos en el presente documento pueden ser realizadas, al menos parcialmente, por uno o más procesadores que están configurados temporalmente (por ejemplo, por software) o configurados permanentemente para realizar las operaciones relevantes. Ya sea que estén configurados de forma temporal o permanente, dichos procesadores pueden constituir motores implementados por procesadores que operan para realizar una o más operaciones o funciones descritas en el presente documento.
De manera similar, los métodos descritos en el presente documento pueden implementarse al menos parcialmente con un procesador, siendo un procesador o procesadores particulares un ejemplo de hardware. Por ejemplo, al menos algunas de las operaciones de un método pueden ser realizadas por uno o más procesadores o motores implementados por procesador. Además, el uno o más procesadores también pueden funcionar para respaldar el desempeño de las operaciones relevantes en un entorno de "computación en la nube" o como un "software como servicio" (SaaS). Por ejemplo, al menos algunas de las operaciones pueden ser realizadas por un grupo de ordenadores (como ejemplos de máquinas que incluyen procesadores), siendo estas operaciones accesibles a través de una red (por ejemplo, Internet) y a través de una o más interfaces apropiadas (por ejemplo, una Interfaz de Programa de Aplicación (API)).
El rendimiento de algunas de las operaciones puede distribuirse entre los procesadores, que no solo se encuentran dentro de una sola máquina, sino que están desplegados en varias máquinas. En algunas realizaciones de ejemplo, los procesadores o motores implementados por procesador pueden estar ubicados en una única ubicación geográfica (por ejemplo, dentro de un entorno doméstico, un entorno de oficina o una granja de servidores). En otras realizaciones de ejemplo, los procesadores o motores implementados por procesador pueden distribuirse a través de varias ubicaciones geográficas.
A lo largo de la presente memoria descriptiva, varias instancias pueden implementar componentes, operaciones o estructuras descritas como una única instancia. Aunque las operaciones individuales de uno o más métodos se ilustran y describen como operaciones separadas, una o más de las operaciones individuales pueden realizarse simultáneamente y nada requiere que las operaciones se realicen en el orden ilustrado. Las estructuras y la funcionalidad presentadas como componentes separados en las configuraciones de ejemplo se pueden implementar como una estructura o componente combinado. De forma similar, las estructuras y la funcionalidad presentadas como un único componente se pueden implementar como componentes separados. Estas y otras variaciones, modificaciones, adiciones y mejoras entran dentro del alcance de la materia objeto del presente documento.
Aunque se ha descrito una descripción general de la materia objeto con referencia a realizaciones de ejemplo específicas, se pueden realizar diversas modificaciones y cambios a estas realizaciones sin apartarse del alcance más amplio de realizaciones de la presente divulgación. Se puede hacer referencia en el presente documento a tales realizaciones de la materia objeto, individual o colectivamente, mediante el término "invención" meramente por razones de conveniencia y sin tener por objeto limitar voluntariamente el alcance de la presente solicitud a cualquier divulgación o concepto único si, de hecho, se desvelan más de uno. La presente descripción detallada no se ha de interpretar en un sentido limitante y el alcance de diversas realizaciones se define solo mediante las reivindicaciones adjuntas, junto con la gama completa de equivalentes a la que tienen derecho tales reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un método implementado por ordenador para la protección de información, que comprende:
generar, por un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de transacción T mediante la confirmación de una cantidad de transacción t de la transacción con un esquema de compromiso basado al menos en un factor de ocultación de transacción r_t, en donde la transacción comprende la transferencia de la cantidad de la transacción t de una dirección asociada a una clave pública PK_1_A del emisor a una dirección asociada a una primera clave pública PK_1_B de un receptor de la transacción, y la cantidad de la transacción t es de uno o más activos del emisor registrados en una cadena de bloques;
transmitir, por el nodo emisor y a través de un canal fuera de la cadena de bloques, la cantidad de transacción t, el factor de cegamiento de transacción r_t , el valor de compromiso de cantidad de transacción T a un nodo de receptor asociado al receptor para que el nodo de receptor verifique la transacción y para cifrar una primera combinación del factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor;
recibir, por el nodo emisor del nodo receptor, (i) la primera combinación del factor de cegamiento de transacción r_t y la cantidad de transacción t y (ii) una firma de receptor SIGB generada por el nodo de receptor que firma la transacción con una clave privada SK_1_B del receptor en respuesta a la verificación correcta de la transacción, en donde la primera clave pública PK_1_B y la clave privada SK_1_B son un par de claves público-privada del receptor;
generar, por el nodo emisor, una firma de emisor SIGA firmando la transacción con una clave privada SK_1_A del emisor, en donde la clave pública PK_1_A y la clave privada SK_1_A son un par de claves público-privada del emisor;
generar, por el nodo emisor, una versión actualizada de la transacción, comprendiendo la versión actualizada de la transacción la primera combinación encriptada, el valor de compromiso de transacción T, la firma de emisor SIGA, y la firma de receptor SIGB; y
envía, por el nodo emisor, la versión actualizada de la transacción a uno o más nodos de cadena de bloques de la cadena de bloques.
2. El método de la reivindicación 1, en el que:
la segunda clave pública PK_2_B es una clave de encriptación homomórfica.
3. El método de las reivindicaciones 1 o 2, en el que el esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción r_t y siendo la cantidad de la transacción t un valor comprometido.
4. El método de cualquier reivindicación anterior, en el que la primera combinación del factor de ocultación de la transacción r_t y la cantidad de la transacción t comprende una concatenación del factor de ocultación de la transacción r_t y la cantidad de la transacción t.
5. El método de cualquier reivindicación anterior, en el que verificar la transacción comprende:
obtener, por el nodo receptor desde el nodo emisor, el valor de compromiso de transacción T, la cantidad de la transacción t y el factor de ocultación de la transacción r_t ; y
verificar, por el nodo receptor, la transacción basada en el valor de compromiso de transacción T, la cantidad de la transacción t, y el factor de ocultación de transacciones r_t.
6. El método de la reivindicación 5, en el que verificar la transacción basada en el valor de compromiso de transacción T, la cantidad de la transacción t, y el factor de ocultación de transacciones r_t comprende en respuesta a la determinación de que el valor del compromiso de transacción T coincide con el esquema de compromiso de la cantidad de la transacción t basado en el factor de ocultación de la transacción r_t, aprobar, por el nodo receptor, la transacción mediante la firma de la transacción con la clave privada SK_1_B del receptor para generar la firma de receptor SIGB.
7. El método de la reivindicación 1, antes de transmitir la cantidad de transacción t, el factor de cegamiento de transacción r_t y el valor de compromiso de transacción T al nodo receptor asociado al receptor, que comprende, además:
generar, por el nodo emisor, un valor de compromiso de cambio Y mediante el compromiso de un cambio y de la transacción con el esquema de compromiso basado al menos en un factor de ocultación de cambio r_y, en donde el cambio y es uno o más activos del emisor menos la cantidad de la transacción t; y encriptar, por el nodo emisor, una segunda combinación del factor de ocultación de cambio r_y y el cambio y con una clave pública PK_2_A del emisor, en donde la clave pública PK_2_A del emisor es diferente de la clave pública PK_1_A del emisor.
8. El método de la reivindicación 7, en el que la versión actualizada de la transacción comprende además la segunda combinación encriptada y el valor de compromiso de cambio Y.
9. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones de que, cuando son ejecutadas por un procesador, hacer que el procesador lleve a cabo el método de una cualquiera de las reivindicaciones 1 a 8.
10. Un sistema de protección de la información, compuesto por un procesador y un medio de almacenamiento legible por ordenador no transitorio acoplado al procesador, almacenando el medio de almacenamiento instrucciones que, cuando son ejecutadas por el procesador, hacer que el sistema realice operaciones que comprenden:
generar, por un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de transacción T mediante la confirmación de una cantidad de transacción t de la transacción con un esquema de compromiso basado al menos en un factor de ocultación de transacción r_t, en donde la transacción comprende la transferencia de la cantidad de la transacción t de una dirección asociada a una clave pública PK_1_A del emisor a una dirección asociada a una primera clave pública PK_1_B de un receptor de la transacción, y la cantidad de la transacción t es de uno o más activos del emisor registrados en una cadena de bloques;
transmitir, por el nodo emisor y a través de un canal fuera de la cadena de bloques, la cantidad de transacción t, el factor de cegamiento de transacción r_t y el valor de compromiso de transacción T a un nodo de receptor asociado al receptor para que el nodo de receptor verifique la transacción y para cifrar una primera combinación del factor de cegamiento de transacción r_t y la cantidad de transacción t con una segunda clave pública PK_2_B del receptor;
recibir, por el nodo emisor del nodo receptor, (i) la primera combinación cifrada del factor de cegamiento de transacción r_t y la cantidad de transacción t y (ii) una firma de receptor SIGB generada por el nodo de receptor que firma la transacción con una clave privada SK_1_B del receptor en respuesta a la verificación correcta de la transacción, en donde la primera clave pública PK_1_B y la clave privada SK_1_B son un par de claves públicoprivada del receptor;
generar, por el nodo emisor, una firma de emisor SIGA firmando la transacción con una clave privada SK_1_A del emisor, en donde la clave pública PK_1_A y la clave privada SK_1_A son un par de claves público-privada del emisor;
generar, por el nodo emisor, una versión actualizada de la transacción, comprendiendo la versión actualizada de la transacción la primera combinación encriptada, el valor de compromiso de transacción T, la firma de emisor SIGA, y la firma de receptor SIGB; y
envía, por el nodo emisor, la versión actualizada de la transacción a uno o más nodos de cadena de bloques de la cadena de bloques.
11. Un método implementado por ordenador para la protección de la información, que comprende:
obtener, por un nodo de receptor asociado a un receptor de una transacción de un nodo emisor asociado a un emisor de la transacción a través de un canal fuera de la cadena de bloques, un factor de ocultación de transacción r_t, una cantidad de la transacción t de la transacción t y un valor de compromiso de transacción T generado por el nodo emisor que confirma la cantidad de la transacción t con un esquema de compromiso basado al menos en el factor de ocultación de la transacción r_t;
verificar, por el nodo receptor, la transacción basada al menos en el valor de compromiso de transacción T obtenido, el factor de ocultación de transacciones r_t obtenido, y la cantidad de la transacción t obtenida; y en respuesta a la determinación de que el valor del compromiso de transacción T coincide con el esquema de compromiso de la cantidad de la transacción t basado en el factor de ocultación de la transacción r_t, encriptar, por el nodo receptor, el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B del receptor para obtener una combinación encriptada, y aprobar, por el nodo receptor, la transacción mediante la firma de la transacción con una clave privada SK_1_B del receptor para generar una firma de receptor SIGB.
12. El método de la reivindicación 11, que comprende, además, la transmisión, por el nodo receptor, de la combinación cifrada y la firma del receptor SIGB al nodo emisor.
13. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que, cuando se ejecutan por un procesador, hacen que el procesador realice operaciones que comprenden:
obtener, por un nodo de receptor asociado a un receptor de una transacción de un nodo emisor asociado a un emisor de la transacción a través de un canal fuera de la cadena de bloques, un factor de ocultación de transacción r_t una cantidad de la transacción t de la transacción, y un valor de compromiso de transacción T generado por el nodo emisor que confirma la cantidad de la transacción t con un esquema de compromiso basado al menos en el factor de ocultación de la transacción r_t;
verificar, por el nodo receptor, la transacción basada al menos en el valor de compromiso de transacción T obtenido, el factor de ocultación de transacciones r_t obtenido, y la cantidad de la transacción t obtenida; y en respuesta a la determinación de que el valor del compromiso de transacción T coincide con el esquema de compromiso de la cantidad de la transacción t basado en el factor de ocultación de la transacción r_t, encriptar, por el nodo receptor, el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B del receptor para obtener una combinación encriptada, y aprobar, por el nodo receptor, la transacción mediante la firma de la transacción con una clave privada SK_1_B del receptor para generar una firma de receptor SIGB.
14. Un sistema de protección de la información, que comprende un procesador y un soporte de almacenamiento no transitorio legible por ordenador acoplado al procesador, el soporte de almacenamiento de instrucciones que, cuando se ejecutan por el procesador, hacen que el sistema realice operaciones que comprenden:
obtener, por un nodo receptor asociado a un receptor de una transacción desde un nodo emisor asociado a un emisor de la transacción a través de un canal fuera de la cadena de bloques, un factor cegador de la transacción r_t, una cantidad de transacción t de la transacción, y un valor de compromiso de transacción T generado por el nodo emisor que confirma la cantidad de la transacción t con un esquema de compromiso basado al menos en el factor de cegamiento de la transacción r_t;
verificar, por el nodo receptor, la transacción basada al menos en el valor de compromiso de transacción T obtenido, el factor cegador de transacciones r_t obtenido, y la cantidad de la transacción obtenida t; y
y en respuesta a la determinación de que el valor de compromiso de transacción T coincide con el sistema de compromiso de la cantidad de transacción t basado en el factor cegador de transacción r_t, encriptar, por el nodo receptor, el factor cegador de la transacción r_t y la cantidad de la transacción t con una segunda clave pública PK_2_B del receptor para obtener una combinación encriptada, y aprobar, por el nodo receptor, la transacción mediante la firma de la transacción con una clave privada SK_1_B del receptor para generar una firma de receptor SIGB.
15. Un producto de programa informático que comprende instrucciones de programa operativas, cuando son ejecutadas por un procesador, para hacer que el procesador realice un método de acuerdo con una de las reivindicaciones 1 a 8, 11 o 12.
ES20187066T 2018-11-27 2018-11-27 Sistema y método para la protección de información Active ES2881674T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2018/117560 WO2019072278A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR INFORMATION PROTECTION
EP20187066.4A EP3745637B1 (en) 2018-11-27 2018-11-27 System and method for information protection

Publications (1)

Publication Number Publication Date
ES2881674T3 true ES2881674T3 (es) 2021-11-30

Family

ID=66100015

Family Applications (2)

Application Number Title Priority Date Filing Date
ES18865369T Active ES2833550T3 (es) 2018-11-27 2018-11-27 Sistema y método para la protección de información
ES20187066T Active ES2881674T3 (es) 2018-11-27 2018-11-27 Sistema y método para la protección de información

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES18865369T Active ES2833550T3 (es) 2018-11-27 2018-11-27 Sistema y método para la protección de información

Country Status (17)

Country Link
US (2) US11127002B2 (es)
EP (2) EP3745637B1 (es)
JP (1) JP6908700B2 (es)
KR (1) KR102139897B1 (es)
CN (1) CN110419053B (es)
AU (1) AU2018347196B2 (es)
BR (1) BR112019007907A2 (es)
CA (1) CA3040611C (es)
ES (2) ES2833550T3 (es)
MX (1) MX2019004360A (es)
MY (1) MY197480A (es)
PH (1) PH12019500860A1 (es)
PL (1) PL3745637T3 (es)
RU (1) RU2721959C1 (es)
SG (1) SG11201903438TA (es)
WO (1) WO2019072278A2 (es)
ZA (1) ZA201902472B (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019022674A1 (en) * 2017-07-27 2019-01-31 Nanyang Technological University AUTHENTICATION REALIZATION METHOD FOR TRANSACTION AND SYSTEM THEREOF
EP3713148B1 (en) * 2019-03-22 2022-08-03 Giesecke+Devrient Mobile Security GmbH White-box ecc implementation
SE544149C2 (en) * 2019-06-25 2022-01-11 Coined Invest Pool Company Ab Method and system for performing electronic transactions
US10790990B2 (en) * 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
US10790961B2 (en) * 2019-07-31 2020-09-29 Alibaba Group Holding Limited Ciphertext preprocessing and acquisition
EP4035307B1 (en) * 2019-09-25 2024-02-14 Visa International Service Association Key-value map commitments system and method
CN111275414A (zh) * 2019-12-31 2020-06-12 深圳市网心科技有限公司 一种基于区块链的数字货币兑换方法、装置及系统
CN111191212B (zh) * 2019-12-31 2020-12-15 卓尔智联(武汉)研究院有限公司 基于区块链的数字凭证处理方法、装置、设备和存储介质
DE102020104906A1 (de) * 2020-02-25 2021-08-26 Giesecke+Devrient Gesellschaft mit beschränkter Haftung Verfahren zum direkten übertragen von elektronischen münzdatensätzen zwischen endgeräten, bezahlsystem, währungssystem und überwachungseinheit
US11645632B2 (en) * 2020-05-26 2023-05-09 Derek Norman La Salle System and method for a decentralized portable information container supporting privacy protected digital information credentialing, remote administration, local validation, access control and remote instruction signaling utilizing blockchain distributed ledger and container wallet technologies
CN112513914A (zh) * 2020-07-03 2021-03-16 支付宝(杭州)信息技术有限公司 基于区块链的隐私交易中提供隐私和安全保护的系统和方法
DE102020004121A1 (de) 2020-07-08 2022-01-13 Giesecke+Devrient Gesellschaft mit beschränkter Haftung Verfahren, teilnehmereinheit, transaktionsregister und bezahlsystem zum verwalten von transaktionsdatensätzen
DE102020004122A1 (de) 2020-07-08 2022-01-13 Giesecke+Devrient Gesellschaft mit beschränkter Haftung Bezahlsystem, münzregister, teilnehmereinheit, transaktionsregister, überwachungsregister und verfahren zum bezahlen mit elektronischen münzdatensätzen
CN113225189B (zh) * 2021-01-05 2024-02-02 上海零数众合信息科技有限公司 一种基于量子抗性的环形保密业务方法
CN112819465B (zh) * 2021-01-28 2023-08-15 武汉天喻聚联科技有限公司 基于Elgamal的同态加密方法及应用系统
DE102021004022A1 (de) 2021-08-04 2023-02-09 Giesecke+Devrient Advance52 Gmbh Münzdepot-Verwaltungseinheit sowie Verfahren in einer Münzdepot-Verwaltungseinheit
DE102021004025A1 (de) 2021-08-04 2023-02-09 Giesecke+Devrient Advance52 Gmbh Münzverwaltungseinheit sowie Verfahren in einer Münzverwaltungseinheit
CN113704733B (zh) * 2021-08-31 2024-03-08 上海万向区块链股份公司 隐私可验证的动态did认证方法及系统
DE102021005040A1 (de) 2021-09-24 2023-03-30 Giesecke+Devrient Advance52 Gmbh Münzverwaltungseinheit sowie Verfahren in einer Münzverwaltungseinheit
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统

Family Cites Families (144)

* 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> 複数公開鍵保存方法、その装置およびそのプログラム記録媒体
AU2001250824A1 (en) 2000-03-10 2001-09-24 Absolutefuture, Inc. Method and system for coordinating secure transmission of information
US7716484B1 (en) 2000-03-10 2010-05-11 Rsa Security Inc. System and method for increasing the security of encrypted secrets and authentication
AU2001255183A1 (en) * 2000-04-14 2001-10-30 Wu Wen Delayed commitment scheme to prevent attacks based on compromised certificates
CN1249972C (zh) * 2000-06-05 2006-04-05 凤凰技术有限公司 使用多个服务器的远程密码验证的系统和方法
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
AU2003304217A1 (en) * 2003-06-13 2005-01-04 Orbid Limited Method and system for performing a transaction and for performing a verification of legitimate use of digital data
EP1683298B1 (en) * 2003-11-03 2008-09-17 Koninklijke Philips Electronics N.V. Method and device for efficient multiparty multiplication
US8156029B2 (en) 2005-02-24 2012-04-10 Michael Gregory Szydlo Process for verifiably communicating risk characteristics of an investment portfolio
ATE534089T1 (de) 2005-05-10 2011-12-15 Dts Ltd Transaktionsverfahren und verifikationsverfahren
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
EP1978462A4 (en) 2006-01-25 2011-11-30 Panasonic Corp END DEVICE, SERVER DEVICE AND DISTRIBUTION SYSTEM FOR DIGITAL CONTENTS
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 日本電信電話株式会社 ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム
ZA200909042B (en) 2008-12-23 2011-05-25 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
GB2490483B (en) * 2011-04-26 2019-05-29 Hewlett Packard Entpr Dev Lp Digital signature method and system
US8661240B2 (en) * 2011-04-29 2014-02-25 International Business Machines Corporation Joint encryption of data
US20120317034A1 (en) 2011-06-13 2012-12-13 Microsoft Corporation Transparent virtual currency using verifiable tokens
US9858401B2 (en) 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
CA2847713C (en) 2011-09-29 2021-02-09 Amazon Technologies, Inc. Parameter based key derivation
JP5364141B2 (ja) 2011-10-28 2013-12-11 楽天株式会社 携帯端末、店舗端末、送信方法、受信方法、決済システム、決済方法、プログラムおよびコンピュータ読み取り可能な記憶媒体
EP2634738A1 (en) 2012-03-02 2013-09-04 Alcatel Lucent Decentralized electronic transfer system
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
JP6497726B2 (ja) * 2014-03-14 2019-04-10 シャープ株式会社 端末、基地局、通信システム、通信方法、およびプログラム
US11055707B2 (en) 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
KR20160024185A (ko) 2014-08-25 2016-03-04 아이보 (주) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법
CN104219056B (zh) * 2014-09-16 2017-05-17 西安电子科技大学 一种智能电网中具有隐私保护的实时电量收集方法
GB201419016D0 (en) 2014-10-24 2014-12-10 Visa Europe Ltd Transaction Messaging
EP3872666A1 (fr) * 2015-01-30 2021-09-01 Enrico Maim Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées
CA2981511C (en) 2015-03-31 2018-08-28 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CA2981952A1 (en) 2015-04-06 2016-10-13 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
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
US10026082B2 (en) 2015-05-21 2018-07-17 Mastercard International Incorporated Method and system for linkage of blockchain-based assets to fiat currency accounts
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
EP3349393A1 (en) 2015-06-30 2018-07-18 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
US20180253702A1 (en) 2015-11-24 2018-09-06 Gartland & Mellina Group Blockchain solutions for financial services and other transactions-based industries
CN109089428B (zh) 2015-11-30 2022-03-25 舍普施福特股份公司 数字资产零保管转换
US10243738B2 (en) * 2015-12-04 2019-03-26 Microsoft Technology Licensing, Llc Adding privacy to standard credentials
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
GB2561729A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN109314636B (zh) 2016-02-23 2022-01-11 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
BR112018016245A2 (pt) 2016-02-23 2018-12-18 Nchain Holdings Ltd método, dispositivo e sistema para determinação de um segredo comum para o intercâmbio seguro de informações e chaves criptoógráficas, sistema para comunicação e programa de computador
WO2017147696A1 (en) 2016-02-29 2017-09-08 Troy Jacob Ronda Systems and methods for distributed identity verification
KR20230164763A (ko) 2016-04-11 2023-12-04 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
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 주식회사 코인플러그 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
CN109478282A (zh) 2016-07-15 2019-03-15 维萨国际服务协会 通过交易装置进行数字资产分发
EP3273635B1 (en) 2016-07-20 2019-10-30 Mastercard International Incorporated Secure channel establishment
US10785167B2 (en) 2016-07-26 2020-09-22 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
CN106375097A (zh) * 2016-10-12 2017-02-01 贵州大学 基于代理盲签名的防倒卖的敏感数据交易方法
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
US11196623B2 (en) 2016-12-30 2021-12-07 Intel Corporation Data packaging protocols for communications between IoT devices
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 北京天德科技有限公司 一种基于第三代区块链的可扩展央行数字货币交易方法
CN110754061A (zh) 2017-06-14 2020-02-04 区块链控股有限公司 用于避免或减少区块链网络上的加密滞留资源的系统和方法
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
CA3113389C (en) 2017-09-29 2023-12-19 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 北京航空航天大学 多中心区块链交易隐私保护系统及方法
WO2019109003A1 (en) 2017-11-30 2019-06-06 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108418689B (zh) 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
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 中国银联股份有限公司 基于智能合约的数据传递方法及系统
US11544708B2 (en) 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
TWM561861U (zh) 2018-01-11 2018-06-11 網家金融科技股份有限公司 網路支付轉帳系統
US10504314B2 (en) 2018-01-29 2019-12-10 Accenture Global Solutions Limited Blockchain-based anonymized cryptologic voting
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
WO2019158209A1 (en) 2018-02-16 2019-08-22 Ecole polytechnique fédérale de Lausanne (EPFL) 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 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
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
CA3041157C (en) 2018-11-07 2020-09-08 Alibaba Group Holding Limited Blockchain system supporting public and private transactions under account models
MX2019004543A (es) 2018-11-27 2019-11-11 Alibaba Group Holding Ltd Sistema y metodo para la proteccion de informacion.
EP3866382B1 (en) 2018-11-27 2023-06-21 Advanced New Technologies Co., Ltd. System and method for information protection
US11218455B2 (en) 2018-11-27 2022-01-04 Advanced New Technologies Co., Ltd. System and method for information protection
TWM651861U (zh) 2023-07-25 2024-02-21 磊興有限公司 帶閉環控制的電動比例閥

Also Published As

Publication number Publication date
PL3745637T3 (pl) 2021-11-02
CN110419053A (zh) 2019-11-05
EP3549082A4 (en) 2020-02-26
WO2019072278A3 (en) 2019-09-19
AU2018347196B2 (en) 2020-05-14
JP2020502856A (ja) 2020-01-23
MY197480A (en) 2023-06-19
US11080694B2 (en) 2021-08-03
US11127002B2 (en) 2021-09-21
KR20200066259A (ko) 2020-06-09
SG11201903438TA (en) 2019-05-30
WO2019072278A2 (en) 2019-04-18
ZA201902472B (en) 2020-08-26
EP3745637A1 (en) 2020-12-02
JP6908700B2 (ja) 2021-07-28
US20200111093A1 (en) 2020-04-09
CN110419053B (zh) 2023-12-01
EP3549082A2 (en) 2019-10-09
KR102139897B1 (ko) 2020-07-31
PH12019500860A1 (en) 2019-12-02
EP3549082B1 (en) 2020-08-26
US20200058022A1 (en) 2020-02-20
RU2721959C1 (ru) 2020-05-25
MX2019004360A (es) 2019-08-05
EP3745637B1 (en) 2021-06-09
CA3040611A1 (en) 2019-04-18
ES2833550T3 (es) 2021-06-15
BR112019007907A2 (pt) 2019-11-12
CA3040611C (en) 2021-06-29

Similar Documents

Publication Publication Date Title
ES2881674T3 (es) Sistema y método para la protección de información
ES2875581T3 (es) Sistema y método para protección de información
ES2879855T3 (es) Sistema y método para la protección de información
ES2859569T3 (es) Sistema y método para la protección de información
ES2863552T3 (es) Sistema y método para protección de información
AU2019101590A4 (en) System and method for information protection
AU2019101582A4 (en) System and method for information protection