ES2875581T3 - Sistema y método para protección de información - Google Patents
Sistema y método para protección de información Download PDFInfo
- Publication number
- ES2875581T3 ES2875581T3 ES18863790T ES18863790T ES2875581T3 ES 2875581 T3 ES2875581 T3 ES 2875581T3 ES 18863790 T ES18863790 T ES 18863790T ES 18863790 T ES18863790 T ES 18863790T ES 2875581 T3 ES2875581 T3 ES 2875581T3
- Authority
- ES
- Spain
- Prior art keywords
- transaction
- node
- key
- receiver
- blockchain
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0841—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Power Engineering (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (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)
Abstract
Un método implementado por ordenador para protección de información, que comprende: generar (301), mediante un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de transacción T comprometiendo una cantidad de transacción de transacción t de acuerdo con un esquema de compromiso basado en al menos un factor de ocultación de transacción r_t; generar (302), mediante el nodo emisor, una primera clave de un par de claves simétricas; cifrar (303), mediante el nodo emisor, una combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t con la primera clave; transmitir (304), mediante el nodo emisor, el valor de compromiso de transacción T y la combinación cifrada a un nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción; recibir (205), mediante el nodo emisor desde el nodo receptor, una firma del receptor SGIB generada por el nodo receptor, significando la firma del receptor SGIB que el receptor ha aprobado la transacción; generar (206), mediante el nodo emisor, una firma del emisor SIGA al firmar la transacción, significando la firma del emisor SIGA que el emisor ha aprobado la transacción; generar, mediante el nodo emisor, una versión actualizada de la transacción que comprende la combinación cifrada, el valor de compromiso de transacción T, la firma del emisor SIGA y la firma del receptor SGIB; y presentar (207), mediante 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 para añadirlos a la cadena de bloques.
Description
DESCRIPCIÓN
Sistema y método para 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 D1 (US2016/0358165) desvela sistemas y métodos para cifrar una cantidad negociada en un libro de contabilidad de la cadena de cadena de bloques, mientras se preserva la capacidad de verificación de la transacción. Se añade una cantidad de ocultación a un valor de entrada y se genera y cifra un valor de salida. Tanto el valor de entrada como el valor de salida están dentro de un rango de valores, donde la suma de dos valores cualesquiera dentro del rango no excede un umbral de desbordamiento. La suma del valor de entrada cifrado y el valor de salida cifrado puede ser igual a cero. Se generan pruebas de rango asociadas a cada uno de los valores de entrada y de salida. Las pruebas de rango demuestran que el valor de entrada y el valor de salida se encuentran dentro del rango de valores y cada prueba de rango puede estar asociada a una clave pública diferente. Cada clave pública se puede firmar con una firma de anillo basada en una clave pública de un receptor en la transacción.
Sumario
Aspectos de la invención se exponen en las reivindicaciones adjuntas. 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.
De acuerdo con un aspecto, un método implementado por ordenador para protección de información comprende: generar, mediante un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de la transacción T comprometiendo una cantidad de transacción de transacción t de acuerdo con un esquema de compromiso basado al menos en un factor de ocultación de transacción r_t; generar, mediante el nodo emisor, una primera clave de un par de claves simétricas; cifrar, mediante el nodo emisor, una combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t con la primera clave; transmitir, mediante el nodo emisor, el valor de compromiso de transacción T y la combinación cifrada a un nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción; recibir, mediante el nodo emisor desde el nodo receptor, una firma del receptor SGIB generada por el nodo receptor, significando la firma del receptor SGIB que el receptor ha aprobado la transacción; generar, mediante el nodo emisor, una firma del emisor SIGA al firmar la transacción, significando la firma del emisor SIGA que el emisor ha aprobado la transacción; generar, mediante el nodo emisor, una versión actualizada de la transacción que comprende la combinación cifrada, el valor de compromiso de transacción T, la firma del emisor SIGA y la firma del receptor SGIB; y presentar, mediante 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 para añadirlos a la cadena de bloques.
En algunos ejemplos, generar la primera clave comprende: generar la primera clave basada tanto en una clave privada SK_A del emisor como en una clave pública PK_B del receptor bajo un protocolo de intercambio de claves Diffie-Hellman.
En algunos ejemplos, el esquema de compromiso comprende un compromiso de Pedersen en el que la cantidad de transacción t es un valor comprometido.
En algunos ejemplos, la combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t comprende una concatenación del factor de ocultación de la transacción r_t y la cantidad de transacción t.
En algunos ejemplos, transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción comprende transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción, provocando que el nodo receptor: genere una segunda clave del par de claves simétricas basada en una clave privada SK_B del receptor y una clave pública PK_A del emisor; descifrar la combinación cifrada con la segunda clave generada por el nodo receptor para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t; y verificar la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t.
En algunos ejemplos, hacer que el nodo receptor verifique la transacción basándose al menos en el valor de compromiso de transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t comprende
hacer que el nodo receptor: en respuesta a determinar que el valor de compromiso de transacción T no coincide con el esquema de compromiso de la cantidad de transacción t 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 de compromiso de transacción T coincide con el esquema de compromiso de la cantidad de transacción t basado en el factor de ocultación de transacción r_t, aprobar la transacción firmando la transacción para generar una firma de receptor SIGB.
En algunos ejemplos, antes de transmitir la combinación cifrada al nodo receptor asociado al receptor, el método comprende además: generar un valor de compromiso de cambio Y comprometiendo n cambio y de la transacción de acuerdo con el esquema de compromiso basado al menos en un factor de ocultación r_y de cambio, en donde el cambio y es uno o más activos de un emisor de la transacción extraídos para la transacción menos la cantidad de transacción t; generar una clave diferente basada en una clave privada SK_A del emisor y la clave pública PK_A del emisor; y cifrar una combinación diferente del factor de ocultación del cambio r_y y el cambio y con la clave diferente.
En algunos ejemplos, en donde presentar la versión actualizada de la transacción a uno o más nodos de cadena de bloques de la cadena de bloques para añadir a la cadena de bloques comprende enviar la versión actualizada de la transacción al uno o más nodos para la verificación de consenso.
En algunos ejemplos, presentar la versión actualizada de la transacción al uno o más nodos de cadena de bloques de la cadena de bloques para añadir a la cadena de bloques comprende enviar la versión actualizada de la transacción al uno o más nodos de cadena de bloques de la cadena de bloques para añadir a la cadena de bloques, lo que hace que el uno o más nodos, en respuesta a la verificación con éxito de la transacción, emitan la cantidad de transacción t al receptor, eliminen el uno o más activos extraídos para la transacción y emitan el cambio y al emisor.
De acuerdo con otro aspecto proporcionado en las reivindicaciones adjuntas, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones para ser ejecutadas por un procesador para hacer que el procesador realice las operaciones de etapas del método de cualquiera de los ejemplos de método anteriores.
De acuerdo con otro aspecto proporcionado en las reivindicaciones adjuntas, un sistema para la protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, el medio de almacenamiento almacena instrucciones para ser ejecutadas por el procesador para hacer que el sistema realice las operaciones de etapas del método de cualquiera de los ejemplos de métodos anteriores.
Según otro aspecto, según se proporciona en las reivindicaciones adjuntas, un método implementado por ordenador para la protección de la información comprende: obtener, mediante un nodo receptor asociado a un receptor de una transacción desde un nodo emisor asociado a un emisor de la transacción: i) un combinación de un factor de ocultación de transacción r_t y una cantidad de transacción t cifrada con una primera clave de un par de claves simétricas; y ii) un valor de compromiso de transacción T generado por el nodo emisor que compromete la cantidad de transacción t de acuerdo con un esquema de compromiso basado en el factor de ocultación de la transacción r_t; generar, mediante el nodo receptor, una segunda clave del par de claves simétricas; descifrar, mediante el nodo receptor, la combinación obtenida con la segunda clave para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t; y verificar, mediante el nodo receptor, la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t.
De acuerdo con otro aspecto proporcionado en las reivindicaciones adjuntas, un medio de almacenamiento no transitorio legible por ordenador almacena instrucciones para ser ejecutadas por un procesador para hacer que el procesador realice las operaciones del método de cualquiera de los ejemplos de método anteriores.
De acuerdo con otro aspecto proporcionado en las reivindicaciones adjuntas, un sistema para la protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, el medio de almacenamiento almacena instrucciones para ser ejecutadas por el procesador para hacer que el sistema realice las operaciones del método de cualquiera de los ejemplos de métodos anteriores.
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 cadena de bloques y guardarse o leerse de ella. Cualquiera puede configurar un servidor y unirse a la red de cadena de bloques para convertirse en un nodo. Cualquier nodo puede aportar potencia de cálculo para mantener la cadena de 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 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 cadena de bloques no tiene un nodo central, cada nodo es igual y contiene toda la base de datos de la cadena de cadena de bloques.
Los nodos son, por ejemplo, dispositivos informáticos o grandes sistemas informáticos que admiten la red de cadena de bloques 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 cadena de bloques. Los nodos completos en la red de cadena de bloques 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 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 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 cadena 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 cadena 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 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 cadena de bloques 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 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 cadena de bloques sea consistente. Por lo tanto, los datos se pueden almacenar de manera consistente en un sistema distribuido de nodos de cadena de bloques.
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 cadena de bloques mediante nodos de red. Al atravesar toda la cadena de 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 cadena de bloques para minería. Un minero debe comprobar si
la transacción es elegible para ejecutarse de acuerdo con el historial de cadena de bloques. Si el saldo de la cartera del emisor tiene fondos suficientes de acuerdo con el historial de cadena 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 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 "cadena de bloques". 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 cadena 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 hash 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 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 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 b13d11 d7fd0 (hexadecimal), que tiene 256 bits cuando se convierte a binario y solo "123" tiene este hash. El algoritmo hash en la cadena de cadena de bloques es irreversible, es decir, el cálculo directo es fácil (de "123" a a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b1 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 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 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 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 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 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 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 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 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 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 a 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 cadena de bloques, los pagadores y beneficiarios se identifican en la cadena de 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 hash de estas claves se utilizan en la cadena de 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 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 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 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 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 cadena de bloques, añadir el nuevo bloque a una cadena de 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 cadena de bloques. UTXO es un modelo de objeto de cadena de bloques. Bajo UTXO, los activos están representados por salidas de transacciones de cadena de bloques 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 cadena de bloques 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 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 cadena de bloques y otros libros de contabilidad similares son completamente públicos, la cadena de 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 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 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 las claves simétricas obtenidas mediante el protocolo de intercambio de claves de Diffie-Hellman (DH) para cifrar/descifrar los números aleatorios y los balances de texto sin formato, proporcionando así una gestión conveniente. Además, almacenar la información cifrada en cadena de bloques 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.
Antes de discutir las cifras de la presente divulgación, el protocolo de intercambio de claves de compromiso de Pedersen y Diffie-Hellman (DH) se describe a continuación.
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).
En algunas realizaciones, se puede utilizar el intercambio de claves de Diffie-Hellman (DH) como método para intercambiar de forma segura claves criptográficas a través de un canal público. El intercambio de claves DH, también llamado intercambio de claves exponencial, es un método de cifrado digital que utiliza números elevados a potencias específicas para producir claves de descifrado sobre la base de componentes que nunca se transmiten directamente, lo que hace que la tarea de un posible descifrador de códigos sea matemáticamente abrumadora.
En un ejemplo de implementación de intercambio de claves Diffie-HeNman (DH), los dos usuarios finales Alice y Bob, mientras se comunican a través de un canal que saben que es privado, acuerdan mutuamente los números enteros positivos p y q, de modo que p es un número primo y q es un generador de p. El generador q es un número que, cuando se eleva a potencias de números enteros positivos menores que p, nunca produce el mismo resultado para dos números enteros cualesquiera. El valor de p puede ser grande, pero el valor de q suele ser pequeño. Es decir, q es un módulo raíz primitivo p.
Una vez que Alice y Bob han acordado p y q en privado, eligen claves personales de números enteros positivos a y b, ambas menores que el módulo de números primos p y ambas pueden generarse al azar. Ninguno de los usuarios divulga su clave personal a nadie, e idealmente, memorizan estos números y no los escriben ni los guardan en ningún lugar. A continuación, Alice y Bob calculan las claves públicas a* y b* en función de sus claves personales de acuerdo con las fórmulas
a* = qa mod p
y
b* = qb mod p
Los dos usuarios pueden compartir sus claves públicas a* y b* a través de un medio de comunicación que se supone inseguro, como Internet o una red corporativa de área amplia (WAN). A partir de estas claves públicas, cualquiera de los usuarios puede generar un número k1 sobre la base de sus propias claves personales.
Alice calcula k1 usando la fórmula: k1 = (b*)a mod p Bob calcula k1 usando la fórmula: k1 = (a*)b mod p
El valor de k1 resulta ser el mismo según cualquiera de las dos fórmulas anteriores. Sin embargo, las claves personales a y b, críticas en el cálculo de k1, no han sido transmitidas por un medio público. Incluso con p, q, a* y b*, sigue siendo muy difícil calcular a y b. Debido a que es un número grande y aparentemente aleatorio, un pirata informático potencial casi no tiene posibilidades de adivinar correctamente k1, incluso con la ayuda de un ordenador potente ara realizar millones de pruebas. Por lo tanto, los dos usuarios pueden, en teoría, comunicarse de forma privada a través de un medio público con un método de cifrado de su elección utilizando la clave de descifrado k1.
En otro ejemplo de implementación de intercambio de claves Diffie-Hellman (DH), todos los cálculos ocurren en un grupo discreto de tamaño suficiente, donde el problema Diffie-Hellman se considera difícil, generalmente el módulo de grupo multiplicativo un primo grande (por ejemplo, para DH clásico) o un grupo de curvas elípticas (por ejemplo, para la curva elíptica Diffie-Hellman).
Para dos partes en la transacción, cada parte elige una clave privada a o b.
Cada parte calcula la clave pública correspondiente aG o bG.
Cada parte envía la clave pública aG o bG a la otra parte.
Cada parte utiliza la clave pública recibida junto con su propia clave privada para calcular el nuevo secreto compartido a(bG) = b(aG), que pueden denominarse claves simétricas de un par de claves simétricas.
Como se describe más adelante, este método de ejemplo puede usarse para generar claves simétricas abG y baG. El resultado de este intercambio de claves es un secreto compartido, que luego se puede usar con una función de derivación de claves (por ejemplo, función de cifrado E() usando otra entrada conocida por ambas partes, tal como una concatenación de un número aleatorio y un valor de activo) para derivar un conjunto de claves para un esquema de cifrado simétrico. Como alternativa, se pueden usar varios otros métodos de cálculo, por ejemplo, generando claves públicas ga y gb y clave compartida gab o gba.
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 cadena de bloques puede comprender una pluralidad de nodos (por ejemplo, nodos completos implementados en servidores, ordenadores, etc.). Para algunas plataformas de cadena de bloques (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 cadena de bloques 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 cadena de bloques a través de la comunicación con el nodo 1 y el nodo B puede acceder a la cadena de 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 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 cadena de bloques. Fuera de la cadena de 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 debe ejecutar para hacer que el nodo (por ejemplo, el procesador) 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 un par de claves criptográficas privada (clave secreta)-pública. La clave privada puede indicarse como SK = x, y la clave pública puede indicarse como PK = xG, donde G es un generador del grupo. Cada cuenta puede contener varios activos, cada uno denotado como: (V = PC (r, v), E (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, E () es un algoritmo de cifrado (por ejemplo, algoritmo de cifrado de clave simétrica) y K es una clave de cifrado. En un ejemplo, cada activo se puede denotar como (V = PC (r, v), E (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 cadena de bloques, las direcciones y los activos en la cuenta de A y la cuenta de B son las siguientes:
Para la cuenta de A (cuenta A):
Dirección: (SK_A=a, PK_A=aG)
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), E(K_A, r_{a_1}||a_1)),
(A_2=PC(r_{a_2}, a_2), E(K_A, r_{a_2}||a_2)),
(A_m=PC(r_{a_m}, a_m), E(K_A, r_{a_m}||a_m))
Para la cuenta de B (cuenta B):
Dirección: (SK_B=b, PK_B=bG)
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), E(K_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), E(K_B, r_{b 2}||b 2)),
(B_n=PC(r_{b_n}, b_n), E(K_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 de transacción t 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 a diversa información de la cadena de cadena de bloques almacenada en bloques de la cadena de cadena de bloques, comprendiendo la información de la cadena de 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 a un segundo campo E (...) como se ha descrito anteriormente. El segundo campo E (...) puede representar un cifrado del número aleatorio correspondiente y el valor del activo cifrado con la clave K_A. Por ejemplo, el cifrado puede ser E(K_A, r_{a-i}||a_i)). El PC (...) y E (...) de cada activo pueden heredarse de transacciones anteriores. El mismo mecanismo se puede aplicar a la cuenta B y sus activos.
En algunas realizaciones, K_A puede comprender varios tipos de clave de cifrado. Por ejemplo, K_A puede ser un *PK_A = aaG que se describe con más detalle a continuación y K_B puede ser un *PK_B = abG que se describe con más detalle a continuación, donde a, b y G se pueden multiplicar por la multiplicación de ECC.
En algunas realizaciones, para satisfacer la cantidad de transacción t, el usuario A puede extraer uno o más activos de un valor agregado al menos t de la cuenta A. Por ejemplo, con referencia a la figura 1, el nodo A puede seleccionar los activos A_1 y A_2 para esta transacción. El nodo A puede leer los activos PC(r_1, a_1) y PC(r_2, a_2) del nodo 1. Con los números aleatorios r_1 y r_2 conocidos por el nodo A, el nodo A puede descifrar los activos leídos PC(r_1, a_1) y PC(r_2, a_2) para obtener los valores de activos a_1 y a_2, para asegurar que la suma de a_1 y a_2 es no menos que la cantidad de transacción t. Se pueden intercambiar diferentes activos entre sí dentro de la cuenta en función de varias velocidades.
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 - 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 (por ejemplo, cifrado homomórfico) para obtener el valor de compromiso T = PC(r_t, t) y comprometer y r_y a un esquema de compromiso (por ejemplo, cifrado homomórfico) para obtener el valor de compromiso Y = PC(r_y, y).
Además, en algunas realizaciones, el nodo A genera una primera clave de un par de claves simétricas a*PK_B = abG y genera otra clave a *PK_A = aaG. El nodo A usa la primera clave abG para cifrar (r_t||t), que proporciona el cifrado E(abG, r_t||t) y utiliza la clave aaG para cifrar (r_y||y), que proporciona el cifrado E(aaG, r_y||y). La figura 3A y la figura 3B pueden seguir este ejemplo. Como alternativa a la obtención del cifrado E(abG, 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 del par de claves simétricas b*PK_A=baG para cifrar (r_t||t). 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 cadena de bloques si el valor de T=PC(r_t, t) y el valor de PC(rt, t) y el valor PC(ry, y) están cada uno dentro de un rango válido. Por ejemplo, para tener valores válidos de PC(rt, t), la cantidad de transacción t puede estar dentro de un rango válido [0, 2n-1]; y para tener valores válidos de PC(ry, 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 cadena de bloques (por ejemplo, nodos de consenso) para verificar en una etapa posterior si la cantidad de transacción t 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 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 E(abG, r_t||t), cifrado E(aaG, r_y||y), prueba de rango RP etc. El valor de compromiso Y = PC (r_y, y), el cifrado E(aaG, 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 cadena de bloques puede evitar que la información de la transacción se registre en la cadena de 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 E(aaG, 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 de transacción t y el valor T de compromiso. En algunas realizaciones, el nodo B puede generar una segunda clave del par de claves simétricas b*PK_A=baG y usar la segunda clave baG para descifrar el cifrado E(abG, r_t||t) para 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 de transacción t 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 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 (E(abG, r_t||t); E(aaG, 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 cadena de bloques, haciendo que los nodos de la cadena de cadena de bloques verifiquen la transacción y determinen si añadir la transacción a la cadena de cadena de bloques. En una realización, el nodo A puede presentar la transacción (E(abG, r_t||t); E(aaG, r_y||y); Y; T; RP; SIGA; SIGB) a la cadena de cadena de bloques a través del nodo 1 para ejecutar la transacción. 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 cadena de bloques para su verificación. Si la verificación tiene éxito, la transacción se añade a la cadena de cadena de bloques. Si la verificación falla, se rechaza la transacción para que no se añada a la cadena de 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 cadena de bloques. 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 cadena de bloques, uno o más activos extraídos de la cuenta de la cadena de 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 cadena de bloques, el o los tipos de activos del o los activos del receptor, el o los valor(es) 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".
En algunas realizaciones, los uno o más nodos de la cadena de cadena de bloques pueden verificar la transacción presentada (E(abG, r_t||t); E(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_2 son consistentes con el o los tipos de activos de la cantidad de transacción t. 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(rt, t) y el valor de PC(ry, y). En una realización, los nodos pueden comprobar la prueba de rango RP para verificar si la cantidad de transacción t 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. Si la comprobación falla, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 213.
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 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 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 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 extraídos y recibe sus activos no extraídos. Por ejemplo, los activos extraídos pueden ser A_1 y A_2 que se eliminan en la transacción con el cambio y devuelto a la cuenta A y los activos no seleccionados son A_3, A_m. La cuenta B recibe la cantidad de transacción t y recibe sus activos originales (por ejemplo, B_1, ..., 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), E(aaG, r_y||y)),
(A_m=PC(r_{a_m}, a_m), E(K_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), E(K_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), E(K_B, r_{b_2}||b_2)),
(B_n=PC(r_{b_n}, b_n), E(K_B, r_{b_n}||b_n)),
(T=PC(r_t, t), E(abG, 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 para ser ejecutadas 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. Por ejemplo, como se ha descrito anteriormente, T=PC(r_t, 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 de transacción t un valor comprometido.
El bloque 302 comprende: generar una primera clave de un par de claves simétricas. Por ejemplo, como se ha descrito anteriormente, SK_A = a, PK_B = bG y la primera clave puede ser *PK_B = abG. En algunas realizaciones, generar la primera clave y la segunda clave comprende: generar la primera clave y la segunda clave basándose en una clave privada SK_A de un emisor de la transacción y una clave pública PK_B del receptor bajo el protocolo de intercambio de claves Diffie-Hellman (DH).
El bloque 303 comprende: cifrar una combinación (por ejemplo, concatenación) del factor de ocultación de la transacción r_t y la cantidad de transacción t con la primera clave. Por ejemplo, como se ha descrito anteriormente, el nodo A puede usar la primera clave abG para cifrar (r_t||t), lo que proporciona el cifrado E(abG, r_t||t).
El bloque 304 comprende: transmitir el valor de compromiso de transacción T y la combinación cifrada a un nodo receptor asociado al receptor para que el nodo receptor verifique la transacción. En algunas realizaciones, transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique que la transacción comprende transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción, provocando que el nodo receptor: genere una segunda clave del par de claves simétricas basada en una clave privada SK_B del destinatario y una clave pública PK_A del emisor, descifre la combinación cifrada con la segunda clave generada por el nodo receptor para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t, y verificar la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t. Véase, por ejemplo, la Etapa 203. Por ejemplo, como se ha descrito anteriormente, el nodo receptor puede generar independientemente la segunda clave b* PK_A = baG. Las claves abG y baG son simétricas e iguales. Es decir, el nodo receptor puede no recibir la primera clave abG del nodo emisor y, en cambio, el nodo receptor genera independientemente la segunda clave baG como un equivalente de abG.
En algunas realizaciones, hacer que el nodo receptor verifique la transacción basándose al menos en el valor de compromiso de transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t comprende hacer que el nodo receptor: en respuesta a determinar que el valor de compromiso de transacción T no coincide con el esquema de compromiso de la cantidad de transacción t 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 de compromiso de transacción T coincide con el esquema de compromiso de la cantidad de transacción t basado en el factor de ocultación de transacción r_t, aprobar la transacción firmando la transacción con la clave privada SK_B del receptor para generar una firma de receptor SIGB para devolver a un nodo emisor asociado al emisor.
En algunas realizaciones, antes de transmitir (bloque 304) la combinación cifrada al nodo receptor asociado al receptor, el método comprende además: comprometer un cambio y de la transacción con el esquema de compromiso para obtener un valor de compromiso de cambio Y, comprendiendo el esquema de compromiso al menos un cambio del factor de ocultación r_y, en donde el cambio y es uno o más activos del emisor extraídos para la transacción menos la cantidad de transacción t; generar otra clave basada en una clave privada SK_A del emisor y la clave pública PK_A del emisor; y cifrar otra combinación del factor de ocultación del cambio r_y y el cambio y con la otra clave. Por ejemplo, como se ha descrito anteriormente, Y = PC (r_y, y), PK_A = a y el nodo A puede generar una clave a*PK_A = aaG y usar la clave aaG para cifrar (r_y||y), lo que proporciona el cifrado E(aaG, r_y||y).
En algunas realizaciones, el método comprende además: en respuesta a recibir la firma del receptor SGIB, aprobar la transacción firmando la transacción 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 de compromiso de transacción T, el valor de compromiso de cambio Y, la firma del emisor SIGA y la firma del receptor SGIB a uno o más nodos en una red de cadena de bloques para uno o más nodos para verificar la transacción. Anteriormente se han descrito más detalles con referencia a las etapas 208-213.
En algunas realizaciones, presentar la transacción que comprende la combinación cifrada, la otra combinación cifrada,
el valor de compromiso de transacción T, el valor de compromiso de cambio Y, la firma del emisor SIGA y la firma del receptor SGIB a los uno o más nodos en la red de cadena de bloques 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 de compromiso de transacción T, el valor de compromiso de cambio Y, la firma del emisor SIGA y la firma del receptor SGIB a los uno o más nodos en la red de cadena de bloques, lo que hace que los uno o más nodos, en respuesta a verificar con éxito la transacción, emitan la cantidad de transacción t al receptor, eliminen los uno o más activos aprovechados para la transacción y emitan el cambio y al emisor. Anteriormente se han descrito más detalles con referencia a la etapa 214.
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 para ser ejecutadas 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 de transacción t cifrada con una primera clave pública de un par de claves simétricas y obtener un valor de compromiso de transacción T. La cantidad de transacción t está comprometida con un esquema de compromiso mediante un nodo emisor asociado a un emisor de una transacción para obtener el valor de compromiso de transacción T, comprendiendo el esquema de compromiso al menos el factor de ocultación r_t de la transacción. En algunas realizaciones, la primera clave es generada por el nodo emisor basándose en una clave privada SK_A del emisor de la transacción y una clave pública PK_B de un destinatario de la transacción.
El bloque 402 comprende: generar una segunda clave del par de claves simétricas. En algunas realizaciones, generar la segunda clave del par de claves simétricas comprende generar la segunda clave del par de claves simétricas basándose en una clave privada SK_B de un receptor de la transacción y una clave pública PK_A del emisor bajo el protocolo de intercambio de claves Diffie-Hellman (DH).
El bloque 403 comprende: descifrar la combinación obtenida con la segunda clave generada por un nodo receptor asociado al receptor para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t.
El bloque 404 comprende: verificar la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t.
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 para ser ejecutadas 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 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 un factor de ocultación de la transacción r_t.
El bloque 442 comprende: enviar la cantidad de transacción t, el factor de ocultación de la transacción r_t y el valor de compromiso de la transacción T a un nodo receptor asociado a 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 de transacción t con una segunda clave de un par de claves simétricas. 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 baG para obtener E(baG, r_t||t).
El bloque 443 comprende: obtener una combinación cifrada (por ejemplo, E(baG, r_t||t)) del factor de ocultación de la transacción r_t y la cantidad de transacción t del nodo receptor.
El bloque 444 comprende: generar una primera clave del par de claves simétricas para descifrar la combinación cifrada para verificar la transacción. Por ejemplo, el nodo A puede generar la primera clave abG para descifrar E(baG, r_t||t) y verificar si r_t y t son correctos. Una vez que r_t y t son verificados mutuamente por los nodos emisor y receptor, la transacción puede presentarse a la cadena de bloques para su verificació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 para ser ejecutadas 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 de transacción t de una transacción, un factor de ocultación de la transacción r_t y un valor de compromiso de transacción T.
El bloque 452 comprende: verificar la transacción basándose en la cantidad de transacción t obtenido, el factor de ocultación de la transacción obtenido r_t y el valor de compromiso de la transacción T 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 de transacción t con una segunda clave de un par de claves simétricas para obtener una combinación cifrada (por ejemplo, E(baG, r_t||t)).
El bloque 454 comprende: transmitir la combinación cifrada a un nodo emisor asociado a 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 al 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 al número aleatorio del compromiso de Pedersen y el valor del activo (por ejemplo, el segundo campo es E (...)). 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 cadena de bloques.
Para otro ejemplo, se usa una clave simétrica para cifrar el número aleatorio de cada compromiso de Pedersen y el valor de activo correspondiente, y almacenar la transacción, incluidos los números aleatorios cifrados y los valores de activos en la cadena de cadena de bloques. De esta manera, se evita la gestión local de dichos números aleatorios y se promueve la seguridad basada en el almacenamiento de cadena de bloques distribuido y consistente.
Además, bajo el protocolo de intercambio de claves DH o un protocolo alternativo, incluso sin comunicación directa, el usuario A y el usuario B comparten un secreto común (el par de claves simétricas abG y baG) para cifrar/descifrar el número aleatorio del compromiso y el valor del activo. Dado que el par de claves simétricas se obtiene del par de claves pública-privada de las cuentas correspondientes, el número aleatorio para el compromiso se puede almacenar de manera efectiva a través de cadena de bloques, sin agregar una clave de cifrado.
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 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 principal 506, 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 principal 506 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 principal 506. Tales instrucciones pueden leerse en la memoria principal 506 desde otro medio de almacenamiento, tal como el dispositivo 510 de almacenamiento. La ejecución de las secuencias de instrucciones contenidas en la memoria principal 506 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 principal 506, 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 principal 506. 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 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 operar para soportar la realización de las operaciones pertinentes en un entorno de "informática en la nube" o como un ''software como un 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)
1. Un método implementado por ordenador para protección de información, que comprende:
generar (301), mediante un nodo emisor asociado a un emisor de una transacción, un valor de compromiso de transacción T comprometiendo una cantidad de transacción de transacción t de acuerdo con un esquema de compromiso basado en al menos un factor de ocultación de transacción r_t;
generar (302), mediante el nodo emisor, una primera clave de un par de claves simétricas;
cifrar (303), mediante el nodo emisor, una combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t con la primera clave;
transmitir (304), mediante el nodo emisor, el valor de compromiso de transacción T y la combinación cifrada a un nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción; recibir (205), mediante el nodo emisor desde el nodo receptor, una firma del receptor SGIB generada por el nodo receptor, significando la firma del receptor SGIB que el receptor ha aprobado la transacción;
generar (206), mediante el nodo emisor, una firma del emisor SIGA al firmar la transacción, significando la firma del emisor SIGA que el emisor ha aprobado la transacción;
generar, mediante el nodo emisor, una versión actualizada de la transacción que comprende la combinación cifrada, el valor de compromiso de transacción T, la firma del emisor SIGA y la firma del receptor SGIB; y presentar (207), mediante 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 para añadirlos a la cadena de bloques.
2. El método de la reivindicación 1, en donde generar (302) la primera clave comprende:
generar (302) la primera clave basada tanto en una clave privada SK_A del emisor como en una clave pública PK_B del receptor bajo un protocolo de intercambio de claves Diffie-Hellman.
3. El método de la reivindicación 1, en donde: el esquema de compromiso comprende un compromiso de Pedersen en donde la cantidad de transacción t es un valor comprometido.
4. El método de la reivindicación 1, en donde: la combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t comprende una concatenación del factor de ocultación de la transacción r_t y la cantidad de transacción t.
5. El método de la reivindicación 1, en donde transmitir (304) el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción comprende transmitir el valor de compromiso de transacción T y la combinación cifrada al nodo receptor asociado al receptor de la transacción, lo que hace que el nodo receptor:
genere (402) una segunda clave del par de claves simétricas basándose en una clave privada SK_B del receptor y una clave pública PK_A del emisor;
descifre (403) la combinación cifrada con la segunda clave generada por el nodo receptor para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t; y
verifique (404) la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t.
6. El método de la reivindicación 5, en el que hacer que el nodo receptor verifique la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t comprende hacer que el nodo receptor:
en respuesta a la determinación de que el valor de compromiso de la transacción T no coincide con el esquema de compromiso de la cantidad de transacción t basado en el factor de ocultación de transacción r_t, rechace la transacción; y
en respuesta a determinar que el valor de compromiso de transacción T coincide con el esquema de compromiso de la cantidad de transacción t basado en el factor de ocultación de transacción r_t, apruebe la transacción firmando la transacción para generar la firma del receptor SGIB.
7. El método de la reivindicación 6, antes de transmitir (304) la combinación cifrada al nodo receptor asociado al receptor, que comprende además:
generar un valor de compromiso de cambio Y al comprometer un cambio y de la transacción de acuerdo con el esquema de compromiso basado en al menos un factor de ocultación de cambio r_y, en donde el cambio y son uno o más activos del emisor extraído para la transacción menos la cantidad de transacción t;
generar una clave diferente basada en una clave privada SK_A del emisor y la clave pública PK_A del emisor; y cifrar una combinación diferente del factor de ocultación del cambio r_y y el cambio y con la clave diferente.
8. El método de la reivindicación 7, en el que:
presentar (207) la versión actualizada de la transacción al uno o más nodos de cadena de bloques de la cadena de
bloques para añadir a la cadena de bloques comprende enviar (207) la versión actualizada de la transacción al uno o más nodos para verificación de consenso.
9. El método de la reivindicación 7, en donde presentar (207) la versión actualizada de la transacción al uno o más nodos de cadena de bloques de la cadena de bloques para añadir a la cadena de bloques comprende: presentar (207) la versión actualizada de la transacción al uno o más nodos de cadena de bloques de la cadena de bloques para añadir a la cadena de bloques, lo que hace que el uno o más nodos, en respuesta a verificar con éxito la transacción, emitan la cantidad de transacción t al emisor, eliminen uno o más activos extraídos para la transacción y emitan el cambio y al emisor.
10. Un medio de almacenamiento no transitorio legible por ordenador (506) que almacena instrucciones para ser ejecutadas por un procesador (504) para hacer que el procesador (504) lleve a cabo el método de una cualquiera de las reivindicaciones 1 a 9.
11. Un sistema (500) para la protección de la información, que comprende un procesador (504) y un medio de almacenamiento no transitorio legible por ordenador (506) acoplado al procesador (504), almacenando el medio de almacenamiento (506) instrucciones para ser ejecutadas por el procesador (504) para hacer que el sistema (500) realice operaciones que comprenden:
generar (301) un valor de compromiso de transacción T comprometiendo una cantidad de transacción t de una transacción de acuerdo con un esquema de compromiso basado en al menos un factor de ocultación de transacción r_t;
generar (302) una primera clave de un par de claves simétricas;
cifrar (303) una combinación del factor de ocultación de la transacción r_t y la cantidad de transacción t con la primera clave;
transmitir (304) el valor de compromiso de transacción T y la combinación cifrada a un nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción;
recibir (205), mediante un nodo emisor desde el nodo receptor, una firma del receptor SGIB generada por el nodo receptor, significando la firma del receptor SGIB que el receptor ha aprobado la transacción;
generar (206), mediante el nodo emisor, una firma del emisor SIGA al firmar la transacción, significando la firma del emisor SIGA que el emisor ha aprobado la transacción;
generar, mediante el nodo emisor, una versión actualizada de la transacción que comprende la combinación cifrada, el valor de compromiso de transacción T, la firma del emisor SIGA y la firma del receptor SGIB; y presentar (207), mediante 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 para añadirlos a la cadena de bloques.
12. Un método implementado por ordenador para protección de información, que comprende:
obtener (401), mediante un nodo receptor asociado a un receptor de una transacción desde un nodo emisor asociado a un emisor de la transacción:
i) una combinación de un factor de ocultación de transacción r_t y una cantidad de transacción t cifrada con una primera clave de un par de claves simétricas; y
ii) un valor de compromiso de transacción T generado por el nodo emisor que compromete la cantidad de transacción t de acuerdo con un esquema de compromiso basado en el factor de ocultación de la transacción r_t;
generar (402), mediante el nodo receptor, una segunda clave del par de claves simétricas;
descifrar (403), mediante el nodo receptor, la combinación obtenida con la segunda clave para obtener el factor de ocultación de la transacción r_t y la cantidad de transacción t;
verificar (404), mediante el nodo receptor, la transacción basándose al menos en el valor de compromiso de la transacción T, el factor de ocultación de la transacción r_t y la cantidad de transacción t;
en respuesta a la verificación con éxito de la transacción, generar, por parte del nodo receptor, una firma del receptor SGIB que significa que el receptor ha aprobado la transacción; y
transmitir (205), mediante el nodo receptor, la firma del receptor SGIB al nodo emisor.
13. El método de la reivindicación 12, en donde:
generar (206) la segunda clave del par de claves simétricas comprende generar (206) la segunda clave del par de claves simétricas basándose tanto en una clave privada SK_B del receptor como en una clave pública PK_A del emisor bajo un protocolo de intercambio de claves Diffie-Hellman; y
el esquema de compromiso comprende un compromiso de Pedersen siendo la cantidad de transacción t un valor comprometido.
14. Un medio de almacenamiento no transitorio legible por ordenador (506) que almacena instrucciones para ser ejecutadas por un procesador (504) para hacer que el procesador (504) lleve a cabo el método de una cualquiera de
las reivindicaciones 12 a 13.
15. Un sistema (500) para la protección de la información, que comprende un procesador (504) y un medio de almacenamiento no transitorio legible por ordenador (506) acoplado al procesador (504), almacenando el medio de almacenamiento (506) instrucciones para ser ejecutadas por el procesador (504) para hacer que el sistema (500) realice el método de una cualquiera de las reivindicaciones 12 a 13.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/117552 WO2019072276A2 (en) | 2018-11-27 | 2018-11-27 | INFORMATION PROTECTION SYSTEM AND METHOD |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2875581T3 true ES2875581T3 (es) | 2021-11-10 |
Family
ID=66100013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES18863790T Active ES2875581T3 (es) | 2018-11-27 | 2018-11-27 | Sistema y método para protección de información |
Country Status (18)
Country | Link |
---|---|
US (2) | US11277389B2 (es) |
EP (2) | EP3866382B1 (es) |
JP (1) | JP6724249B2 (es) |
KR (1) | KR102170346B1 (es) |
CN (1) | CN109937557B (es) |
AU (1) | AU2018327218B2 (es) |
BR (1) | BR112019007727A2 (es) |
CA (1) | CA3040601C (es) |
ES (1) | ES2875581T3 (es) |
MX (1) | MX2019004202A (es) |
MY (1) | MY193900A (es) |
PH (1) | PH12019500556A1 (es) |
PL (1) | PL3549303T3 (es) |
RU (1) | RU2719423C1 (es) |
SG (1) | SG11201902778UA (es) |
TW (1) | TWI706275B (es) |
WO (1) | WO2019072276A2 (es) |
ZA (1) | ZA201902470B (es) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220253821A1 (en) * | 2019-05-24 | 2022-08-11 | nChain Holdings Limited | Streaming portions of data over a side channel |
US12047443B2 (en) | 2019-05-24 | 2024-07-23 | Nchain Licensing Ag | Malleability of transactions for inclusion in a blockchain |
US12093941B2 (en) | 2019-05-24 | 2024-09-17 | Nchain Licensing Ag | Multi-input transactions |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201805633D0 (en) * | 2018-04-05 | 2018-05-23 | Nchain Holdings Ltd | Computer implemented method and system |
CN109377215B (zh) | 2018-08-06 | 2020-04-21 | 阿里巴巴集团控股有限公司 | 区块链交易方法及装置、电子设备 |
CA3040791C (en) | 2018-11-27 | 2020-12-15 | Alibaba Group Holding Limited | System and method for information protection |
MX2019004357A (es) | 2018-11-27 | 2019-08-05 | Alibaba Group Holding Ltd | Sistema y método para protección de la información. |
CA3040601C (en) | 2018-11-27 | 2021-03-30 | Alibaba Group Holding Limited | System and method for information protection |
US10700850B2 (en) | 2018-11-27 | 2020-06-30 | Alibaba Group Holding Limited | System and method for information protection |
US11127002B2 (en) | 2018-11-27 | 2021-09-21 | Advanced New Technologies Co., Ltd. | System and method for information protection |
CA3037833C (en) | 2018-11-27 | 2022-04-19 | Alibaba Group Holding Limited | System and method for information protection |
US10764029B1 (en) * | 2019-04-02 | 2020-09-01 | Carey Patrick Atkins | Asymmetric Encryption Algorithm |
SG11201909630TA (en) * | 2019-04-26 | 2019-11-28 | Alibaba Group Holding Ltd | Anti-replay attack authentication protocol |
CN110399735A (zh) * | 2019-06-21 | 2019-11-01 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN112150281B (zh) * | 2019-06-28 | 2023-09-26 | 北京国盾量子信息技术有限公司 | 一种数字货币的交易方法、装置及系统 |
CN111030821B (zh) * | 2019-08-27 | 2022-07-12 | 杭州云象网络技术有限公司 | 一种基于双线性映射技术的联盟链的加密方法 |
CN113570460A (zh) * | 2019-08-30 | 2021-10-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN110545279A (zh) * | 2019-09-05 | 2019-12-06 | 国网区块链科技(北京)有限公司 | 兼具隐私和监管功能的区块链交易方法、装置及系统 |
CN112465500A (zh) * | 2019-09-09 | 2021-03-09 | 本田技研工业株式会社 | 用于在区块链内保护私钥交易的系统和方法 |
CN110781503B (zh) * | 2019-09-18 | 2022-05-17 | 深圳壹账通智能科技有限公司 | 数据调用方法、装置及计算机可读存储介质 |
JP7372527B2 (ja) * | 2019-09-26 | 2023-11-01 | 富士通株式会社 | 通信中継プログラム、中継装置、及び通信中継方法 |
CN112769548B (zh) * | 2019-11-05 | 2022-09-20 | 深圳市迅雷网络技术有限公司 | 一种区块链数值信息传输方法、系统、装置及计算机介质 |
CN110933045A (zh) * | 2019-11-08 | 2020-03-27 | 中国电子科技网络信息安全有限公司 | 一种基于承诺的区块链数字资产隐私保护方法 |
CN111475849B (zh) * | 2019-11-08 | 2024-03-12 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
CN113055178B (zh) * | 2019-12-27 | 2022-08-16 | 深圳市迅雷网络技术有限公司 | 区块链系统及数值信息传输方法、系统、装置、介质 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
CN111340489B (zh) * | 2020-02-21 | 2023-11-14 | 数据通信科学技术研究所 | 可监管的交易接收者保护方法和装置 |
CN111523894A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
CN111600703B (zh) * | 2020-05-12 | 2023-08-04 | 京东科技信息技术有限公司 | 基于sm2的签名方法、系统、电子设备及存储介质 |
CN111709738B (zh) * | 2020-05-18 | 2023-08-01 | 杜晓楠 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
WO2020169124A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Distributed storage of custom clearance data |
CN111989707B (zh) * | 2020-06-08 | 2024-04-16 | 支付宝实验室(新加坡)有限公司 | 管理基于区块链的海关清关服务的用户权限 |
WO2020169122A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based import custom clearance data processing |
CN114930330A (zh) | 2020-06-08 | 2022-08-19 | 支付宝实验室(新加坡)有限公司 | 基于区块链的海关清关服务平台的用户管理 |
WO2020169125A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based document registration for custom clearance |
EP3841491B1 (en) | 2020-06-08 | 2023-08-02 | Alipay Labs (Singapore) Pte. Ltd. | Blockchain-based smart contract pools |
CN113014384B (zh) * | 2021-03-16 | 2022-07-15 | 平安付科技服务有限公司 | 基于dh密钥交换算法的数据比较方法、装置、计算机设备及存储介质 |
US11849032B2 (en) * | 2021-05-14 | 2023-12-19 | Verizon Patent And Licensing Inc. | Systems and methods for blockchain-based secure key exchange |
US11748333B2 (en) | 2021-06-30 | 2023-09-05 | Dropbox, Inc. | Verifying data consistency using verifiers in a content management system for a distributed key-value database |
CN113706150B (zh) * | 2021-10-27 | 2022-02-08 | 深圳前海微众银行股份有限公司 | 一种区块确认方法及装置 |
CN114565382A (zh) * | 2022-03-01 | 2022-05-31 | 汪泽希 | 一种交易账户匿名支付方法及系统 |
JP2024022912A (ja) | 2022-08-08 | 2024-02-21 | 富士通株式会社 | 情報秘匿化プログラム、情報秘匿化方法及び情報管理装置 |
CN115955315B (zh) * | 2022-12-27 | 2024-08-23 | 浙江吉利控股集团有限公司 | 环机密交易的签名验证方法、系统、设备及可读存储介质 |
CN115809482B (zh) * | 2023-02-01 | 2023-05-16 | 上海金仕达软件科技股份有限公司 | 基于随机数混淆的数据聚合计算方法、装置、介质及设备 |
CN116389164B (zh) * | 2023-05-26 | 2023-09-12 | 建信金融科技有限责任公司 | 数据的检测方法及装置 |
CN118316605A (zh) * | 2024-06-07 | 2024-07-09 | 浪潮软件科技有限公司 | 一种多方安全通信方法及装置 |
Family Cites Families (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4926480A (en) | 1983-08-22 | 1990-05-15 | David Chaum | Card-computer moderated systems |
US7107246B2 (en) * | 1998-04-27 | 2006-09-12 | Esignx Corporation | Methods of exchanging secure messages |
JP2000207466A (ja) | 1999-01-18 | 2000-07-28 | Nippon Telegr & Teleph Corp <Ntt> | 電子商取引文書を媒介とした電子商取引方法および電子商取引手段、ならびにプログラムを記録した記録媒体。 |
JP2000299683A (ja) | 1999-02-10 | 2000-10-24 | Nippon Telegr & Teleph Corp <Ntt> | 複数公開鍵保存方法、その装置およびそのプログラム記録媒体 |
US7716484B1 (en) | 2000-03-10 | 2010-05-11 | Rsa Security Inc. | System and method for increasing the security of encrypted secrets and authentication |
WO2001069843A2 (en) | 2000-03-10 | 2001-09-20 | Absolutefuture, Inc. | Method and system for coordinating secure transmission of information |
AU2001255183A1 (en) | 2000-04-14 | 2001-10-30 | Wu Wen | Delayed commitment scheme to prevent attacks based on compromised certificates |
EP1205889A1 (en) | 2000-11-10 | 2002-05-15 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Returning of change in an electronic payment system |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7509498B2 (en) | 2001-06-29 | 2009-03-24 | Intel Corporation | Digital signature validation |
GB2378282A (en) | 2001-07-31 | 2003-02-05 | Hewlett Packard Co | Automated multivariate negotiation using convertable undeniable signatures |
EP1436967A2 (en) | 2001-10-19 | 2004-07-14 | Matsushita Electric Industrial Co., Ltd. | Device authentication system and device authentication method |
WO2005043808A1 (en) | 2003-11-03 | 2005-05-12 | 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 |
WO2006121322A1 (en) | 2005-05-10 | 2006-11-16 | Dts Ltd. | Transaction method and verification method |
JP4435076B2 (ja) | 2005-11-18 | 2010-03-17 | フェリカネットワークス株式会社 | 携帯端末,データ通信方法,およびコンピュータプログラム |
US7725446B2 (en) | 2005-12-19 | 2010-05-25 | International Business Machines Corporation | Commitment of transactions in a distributed system |
JP4016061B2 (ja) | 2006-01-25 | 2007-12-05 | 松下電器産業株式会社 | 端末装置、サーバ装置及びデジタルコンテンツ配信システム |
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 | 日本電信電話株式会社 | ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム |
US20120116978A1 (en) | 2008-12-23 | 2012-05-10 | Mtn Mobile Money Sa (Pty) Ltd | Method of and system for securely processing a transaction |
US8762741B2 (en) | 2009-01-29 | 2014-06-24 | Microsoft Corporation | Privacy-preserving communication |
US8825555B2 (en) | 2010-06-30 | 2014-09-02 | International Business Machines Corporation | Privacy-sensitive sample analysis |
US8527777B2 (en) | 2010-07-30 | 2013-09-03 | International Business Machines Corporation | Cryptographic proofs in data processing systems |
US8661240B2 (en) | 2011-04-29 | 2014-02-25 | International Business Machines Corporation | Joint encryption of data |
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 |
SG10201903265PA (en) | 2011-09-29 | 2019-05-30 | Amazon Tech 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 |
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)를 이용한 암호화폐 관리 시스템 및 그 방법 |
GB201419016D0 (en) | 2014-10-24 | 2014-12-10 | Visa Europe Ltd | Transaction Messaging |
AU2016242888A1 (en) | 2015-03-31 | 2017-11-16 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
SG11201708295XA (en) | 2015-04-06 | 2017-11-29 | Bitmark Inc | System and method for decentralized title recordation and authentication |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
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 |
US11062303B2 (en) * | 2015-06-08 | 2021-07-13 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
US11080665B1 (en) * | 2015-06-08 | 2021-08-03 | Blockstream Corporation | Cryptographically concealing amounts and asset types for independently verifiable transactions |
US10826712B2 (en) | 2015-06-30 | 2020-11-03 | Visa International Service Association | Confidential authentication and provisioning |
US20170085555A1 (en) | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
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 |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
WO2017091530A1 (en) | 2015-11-24 | 2017-06-01 | Gartland & Mellina Group | Blockchain solutions for financial services and other transaction-based industries |
JP2018536957A (ja) | 2015-11-30 | 2018-12-13 | シェイプシフト・アーゲーShapeShift AG | ブロックチェーン資産取引におけるセキュリティを向上させるためのシステム及び方法 |
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 |
AU2017223133B2 (en) | 2016-02-23 | 2022-09-08 | nChain Holdings Limited | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
KR20180115768A (ko) | 2016-02-23 | 2018-10-23 | 엔체인 홀딩스 리미티드 | 블록체인으로부터 데이터의 안전한 추출을 위한 암호화 방법 및 시스템 |
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 |
EP3424177B1 (en) | 2016-02-29 | 2021-10-13 | SecureKey Technologies Inc. | Systems and methods for distributed identity verification |
US11455630B2 (en) | 2016-04-11 | 2022-09-27 | nChain Holdings Limited | Method for secure peer-to-peer communication on a blockchain |
CN107306183B (zh) | 2016-04-22 | 2021-12-21 | 索尼公司 | 客户端、服务端、方法和身份验证系统 |
KR101780635B1 (ko) | 2016-04-28 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버 |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US10447478B2 (en) | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
KR101802655B1 (ko) | 2016-06-10 | 2017-11-29 | 인하대학교 산학협력단 | 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법 |
US11062366B2 (en) | 2016-06-24 | 2021-07-13 | Raise Marketplace Inc. | Securely processing exchange items in a data communication system |
US20180006823A1 (en) | 2016-07-01 | 2018-01-04 | Qualcomm Incorporated | Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms |
KR101795695B1 (ko) | 2016-07-14 | 2017-12-01 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
CN109478282A (zh) | 2016-07-15 | 2019-03-15 | 维萨国际服务协会 | 通过交易装置进行数字资产分发 |
EP3273635B1 (en) * | 2016-07-20 | 2019-10-30 | Mastercard International Incorporated | Secure channel establishment |
EP3491572B1 (en) | 2016-07-26 | 2021-09-01 | NEC Corporation | Method for controlling access to a shared resource |
US10067810B2 (en) | 2016-07-28 | 2018-09-04 | Cisco Technology, Inc. | Performing transactions between application containers |
GB201613176D0 (en) | 2016-07-29 | 2016-09-14 | Eitc Holdings Ltd | Computer-implemented method and system |
JP6971019B2 (ja) * | 2016-09-26 | 2021-11-24 | Gmoインターネット株式会社 | データ管理システム、情報処理装置、プログラム、及び、データ管理方法 |
US10769600B2 (en) | 2016-09-26 | 2020-09-08 | International Business Machines Corporation | Cryptocurrency transactions using debit and credit values |
CN106549749B (zh) | 2016-12-06 | 2019-12-24 | 杭州趣链科技有限公司 | 一种基于加法同态加密的区块链隐私保护方法 |
US20180167198A1 (en) | 2016-12-09 | 2018-06-14 | Cisco Technology, Inc. | Trust enabled decentralized asset tracking for supply chain and automated inventory management |
EP3934203A1 (en) | 2016-12-30 | 2022-01-05 | INTEL Corporation | Decentralized data storage and processing for 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株式会社 | 生成装置、検証装置、及びプログラム |
US11095432B2 (en) | 2017-04-05 | 2021-08-17 | Samsung Sds Co., Ltd. | System for processing data based on blockchain and operating method thereof |
US20180293576A1 (en) | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | System for custom currency transaction 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 | 北京天德科技有限公司 | 一种基于第三代区块链的可扩展央行数字货币交易方法 |
EP3639469B1 (en) | 2017-06-14 | 2024-04-03 | nChain Licensing AG | Systems and methods for addressing security-related vulnerabilities arising in relation to off-blockchain channels in the event of failures in a network |
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 | 深圳市轱辘车联数据技术有限公司 | 数据交易方法、区块链节点服务器及数据提交终端 |
CN108418689B (zh) | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
US11257077B2 (en) | 2017-11-30 | 2022-02-22 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
US10831764B2 (en) | 2017-12-02 | 2020-11-10 | International Business Machines Corporation | Query processing and access control in a blockchain network |
US11227284B2 (en) | 2017-12-13 | 2022-01-18 | Mastercard International Incorporated | Method and system for consumer-initiated transactions using encrypted tokens |
CN108282459B (zh) | 2017-12-18 | 2020-12-15 | 中国银联股份有限公司 | 基于智能合约的数据传递方法及系统 |
US10896418B2 (en) | 2017-12-29 | 2021-01-19 | Ebay Inc. | Secure management of data files using a blockchain |
TWM561861U (zh) | 2018-01-11 | 2018-06-11 | 網家金融科技股份有限公司 | 網路支付轉帳系統 |
US10388097B1 (en) | 2018-01-29 | 2019-08-20 | Accenture Global Solutions Limited | Blockchain-based cryptologic ballot verification |
US10373129B1 (en) | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US20210089676A1 (en) | 2018-02-16 | 2021-03-25 | Ecole Polytechnique Fédérale De Lausanne Epfl-Tto | Methods and systems for secure data exchange |
CN108512650B (zh) | 2018-02-28 | 2021-03-09 | 南京思利华信息科技有限公司 | 面向区块链的动态哈希计算方法、装置、节点及存储介质 |
CN108320228A (zh) | 2018-03-07 | 2018-07-24 | 物数(上海)信息科技有限公司 | 跨区块链资产交易方法、平台、设备及存储介质 |
CN108288159A (zh) | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
US10708243B2 (en) | 2018-04-24 | 2020-07-07 | Capital One Services, Llc | Message encryption using public keychains |
US11159306B2 (en) | 2018-04-24 | 2021-10-26 | Duvon Corporation | Autonomous exchange via entrusted ledger token and transaction management |
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 |
CN110326013A (zh) | 2018-11-07 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 在账户模型下支持公开交易和私有交易的区块链系统 |
CA3040601C (en) | 2018-11-27 | 2021-03-30 | Alibaba Group Holding Limited | System and method for information protection |
CA3040791C (en) | 2018-11-27 | 2020-12-15 | Alibaba Group Holding Limited | System and method for information protection |
MX2019004357A (es) | 2018-11-27 | 2019-08-05 | Alibaba Group Holding Ltd | Sistema y método para protección de la información. |
-
2018
- 2018-11-27 CA CA3040601A patent/CA3040601C/en active Active
- 2018-11-27 MY MYPI2019001887A patent/MY193900A/en unknown
- 2018-11-27 US US16/342,605 patent/US11277389B2/en active Active
- 2018-11-27 JP JP2019520982A patent/JP6724249B2/ja active Active
- 2018-11-27 KR KR1020197011444A patent/KR102170346B1/ko active IP Right Grant
- 2018-11-27 BR BR112019007727-8A patent/BR112019007727A2/pt active Search and Examination
- 2018-11-27 EP EP21167258.9A patent/EP3866382B1/en active Active
- 2018-11-27 WO PCT/CN2018/117552 patent/WO2019072276A2/en unknown
- 2018-11-27 AU AU2018327218A patent/AU2018327218B2/en active Active
- 2018-11-27 SG SG11201902778UA patent/SG11201902778UA/en unknown
- 2018-11-27 ES ES18863790T patent/ES2875581T3/es active Active
- 2018-11-27 CN CN201880004148.9A patent/CN109937557B/zh active Active
- 2018-11-27 MX MX2019004202A patent/MX2019004202A/es unknown
- 2018-11-27 RU RU2019111969A patent/RU2719423C1/ru active
- 2018-11-27 PL PL18863790T patent/PL3549303T3/pl unknown
- 2018-11-27 EP EP18863790.4A patent/EP3549303B1/en active Active
-
2019
- 2019-03-14 PH PH12019500556A patent/PH12019500556A1/en unknown
- 2019-04-17 ZA ZA2019/02470A patent/ZA201902470B/en unknown
- 2019-07-16 TW TW108125043A patent/TWI706275B/zh active
- 2019-12-09 US US16/708,297 patent/US11102184B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220253821A1 (en) * | 2019-05-24 | 2022-08-11 | nChain Holdings Limited | Streaming portions of data over a side channel |
US12047443B2 (en) | 2019-05-24 | 2024-07-23 | Nchain Licensing Ag | Malleability of transactions for inclusion in a blockchain |
US12093941B2 (en) | 2019-05-24 | 2024-09-17 | Nchain Licensing Ag | Multi-input transactions |
US12095859B2 (en) | 2019-05-24 | 2024-09-17 | Nchain Licensing Ag | Malleability of transactions for inclusion in a blockchain |
Also Published As
Publication number | Publication date |
---|---|
CN109937557B (zh) | 2022-02-22 |
EP3549303B1 (en) | 2021-05-26 |
AU2018327218B2 (en) | 2020-07-16 |
EP3866382A1 (en) | 2021-08-18 |
AU2018327218A1 (en) | 2020-01-30 |
KR20200066257A (ko) | 2020-06-09 |
WO2019072276A2 (en) | 2019-04-18 |
CA3040601C (en) | 2021-03-30 |
JP6724249B2 (ja) | 2020-07-15 |
PL3549303T3 (pl) | 2021-11-22 |
MY193900A (en) | 2022-10-31 |
TWI706275B (zh) | 2020-10-01 |
JP2019537744A (ja) | 2019-12-26 |
RU2719423C1 (ru) | 2020-04-17 |
US20200120074A1 (en) | 2020-04-16 |
US20190268312A1 (en) | 2019-08-29 |
PH12019500556A1 (en) | 2019-12-16 |
US11277389B2 (en) | 2022-03-15 |
WO2019072276A3 (en) | 2019-09-19 |
EP3549303A4 (en) | 2020-02-26 |
EP3866382B1 (en) | 2023-06-21 |
SG11201902778UA (en) | 2019-05-30 |
BR112019007727A2 (pt) | 2019-11-12 |
TW202020710A (zh) | 2020-06-01 |
US11102184B2 (en) | 2021-08-24 |
MX2019004202A (es) | 2019-08-05 |
KR102170346B1 (ko) | 2020-10-28 |
EP3549303A2 (en) | 2019-10-09 |
CN109937557A (zh) | 2019-06-25 |
CA3040601A1 (en) | 2019-04-18 |
ZA201902470B (en) | 2021-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2875581T3 (es) | Sistema y método para protección de información | |
ES2881674T3 (es) | Sistema y método para la protección de información | |
ES2833552T3 (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 | |
AU2019101582A4 (en) | System and method for information protection | |
AU2019101589A4 (en) | System and method for information protection | |
AU2019101590A4 (en) | System and method for information protection |