ES2859569T3 - Sistema y método para la protección de información - Google Patents
Sistema y método para la protección de información Download PDFInfo
- Publication number
- ES2859569T3 ES2859569T3 ES18865370T ES18865370T ES2859569T3 ES 2859569 T3 ES2859569 T3 ES 2859569T3 ES 18865370 T ES18865370 T ES 18865370T ES 18865370 T ES18865370 T ES 18865370T ES 2859569 T3 ES2859569 T3 ES 2859569T3
- Authority
- ES
- Spain
- Prior art keywords
- transaction
- commitment
- blockchain
- value
- factor
- 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
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
-
- 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
-
- 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
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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
-
- 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
- G06Q2220/00—Business processing using cryptography
-
- 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/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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
- H04L9/3255—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 using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
Un método implementado por ordenador para la protección de información, realizado por un nodo emisor asociado a un emisor de una transacción, comprendiendo el método: comprometer una cantidad t de transacción de la transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor Y de compromiso de cambio, comprendiendo el primer esquema de compromiso un factor de ocultación de la transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación del cambio ry; cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA; transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de la transacción, y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción; en respuesta a que el nodo receptor verifique con éxito la transacción, obteniendo, del nodo receptor, (1) una segunda combinación cifrada del factor de ocultación de la transacción rt y la cantidad t de la transacción cifrada con una segunda clave KB y (2) una firma SIGB generada por el nodo receptor que firma al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor; generar una firma SIGA firmando al menos la primera combinación y el valor T de compromiso de la transacción con una clave privada del emisor; y transmitir información de transacción que comprende la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma SIGA y la firma SIGB a una pluralidad de nodos en una cadena de blockchain para que los nodos de la cadena de blockchain verifiquen la información de la transacción y añadan la información de la transacción a la cadena de blockchain.
Description
DESCRIPCIÓN
Sistema y método para la protección de información
Campo técnico
Esta divulgación generalmente se refiere a métodos y dispositivos para la protección de información.
Antecedentes
La privacidad es importante para las comunicaciones y transferencias de datos entre varios usuarios. Sin protección, los usuarios están expuestos al riesgo de robo de identidad, transferencia ilegal u otras pérdidas potenciales. El riesgo es aún mayor cuando las comunicaciones y transferencias se implementan en línea, debido al libre acceso a la información en línea. El documento US 2016/358165 A1 describe la ocultación cifrada de cantidades negociadas en un libro de contabilidad al tiempo que se preserva la capacidad de la red para verificar la transacción.
Sumario
Varias realizaciones de la presente divulgación incluyen sistemas, métodos y medios legibles por ordenador no transitorios para la protección de la información.
De acuerdo con un aspecto, un método implementado por ordenador para la protección de la información, realizado por un nodo emisor asociado a un emisor de una transacción, comprende: comprometer una cantidad t de transacción de la transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor Y de compromiso del cambio, comprendiendo el primer esquema de compromiso un factor de ocultación de transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación de cambio ry; cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA; transmitir, a través de un canal seguro fuera de la cadena de blockchain (cadena de bloques), el factor de ocultación de la transacción rt, la cantidad t de la transacción, y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción; en respuesta a que el nodo receptor verifique con éxito la transacción, obteniendo, del nodo receptor, (1) una segunda combinación CIFRADA del factor de ocultación de la transacción rt y la cantidad t de la transacción cifrada con una segunda clave KB y (2) una firma SIGB generada por el nodo receptor que firma al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor; generar una firma SIGA firmando al menos la primera combinación y el valor T de compromiso de la transacción con una clave privada del emisor; y transmitir la información de la transacción que comprende la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma SIGA y la firma SIGB a una pluralidad de nodos en una cadena de blockchain para los nodos en la cadena de blockchain para verificar la información de la transacción y añadir la información de la transacción a la cadena de blockchain.
En algunas realizaciones, el primer esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción rt y siendo la cantidad t de la transacción un valor comprometido correspondiente; y el segundo esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación del cambio ry y siendo el cambio y un valor comprometido correspondiente.
En algunas realizaciones, transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción comprende: transmitir el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción, haciendo que el nodo receptor verifique si el valor T de compromiso de la transacción es igual al primer esquema de compromiso que compromete la cantidad t de la transacción con el factor de ocultación de la transacción rt.
En algunas realizaciones, la cantidad t de transacción se extrae de uno o más activos A1, A2, ..., Ak de un emisor de la transacción; cada uno de los activos está asociado a (1) un compromiso de Pedersen basado al menos en un factor de ocultación rak y un valor de cada activo y (2) un cifrado basado al menos en el factor de ocultación rak y el valor de cada activo; y el cambio y es una diferencia entre la cantidad t de la transacción y los activos aprovechados.
En algunas realizaciones, generar la firma SIGA firmando al menos la primera combinación y el valor T de compromiso de transacción con la clave privada del emisor comprende: verificar la firma SIGB; y en respuesta a la verificación con éxito de la firma SIGB, firmando al menos los activos A1, A2, ..., Ak, la primera combinación, la segunda combinación, el valor T de compromiso de transacción, el valor Y de compromiso de cambio y una diferencia entre un suma de factores de ocultación correspondiente a los activos A1, A2, ..., Aky una suma del factor de ocultación de la transacción rt y el factor de ocultación del cambio ry con una clave privada del emisor.
En algunas realizaciones, la información de la transacción comprende: los activos Ai, A2, ..., Ak, la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la diferencia entre la suma de factores de ocultación correspondientes a los activos Ai, A2 , ..., Ak y la suma del factor de ocultación de la transacción rt y el factor de ocultación del cambio ry, la firma SIGA y la firma SIGB.
En algunas realizaciones, transmitir la información de la transacción a la pluralidad de nodos en una cadena de blockchain para que los nodos en la cadena de blockchain verifiquen la información de la transacción comprende: transmitir la información de la transacción a la pluralidad de nodos en la cadena de blockchain, haciendo que los nodos en la cadena de blockchain, en respuesta a la verificación con éxito de la transacción, emitan la cantidad t de la transacción al receptor, eliminen los activos Ai A2, ..., Ak y emitan el cambio y al emisor.
Según otro aspecto, se proporciona un medio de almacenamiento no transitorio legible por ordenador como se define en la reivindicación 8.
Según otro aspecto, un sistema de protección de la información comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, el medio de almacenamiento almacena instrucciones que, cuando son ejecutadas por el procesador, hacen que el sistema realice, mediante un nodo emisor asociado a un emisor de una transacción, operaciones que comprenden: comprometer una cantidad t de transacción de la transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción, y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor Y de compromiso del cambio, comprendiendo el primer esquema de compromiso un factor de ocultación de la transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación de cambio ry; cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA; transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de la transacción, y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción; en respuesta a que el nodo receptor verifique con éxito la transacción, obteniendo, del nodo receptor, (1) una segunda combinación CIFRADA del factor de ocultación de la transacción rt y la cantidad t de la transacción cifrada con una segunda clave KB y (2) una firma SIGB generada por el nodo receptor que firma al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor; generar una firma SIGA firmando al menos la primera combinación y el valor T de compromiso de la transacción con una clave privada del emisor; y transmitir información de transacción que comprende la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor de compromiso de cambio Y, la firma SIGA y la firma SIGB a una pluralidad de nodos en una cadena de blockchain para que los nodos de la cadena de blockchain verifiquen la información de la transacción y añadan la información de la transacción a la cadena de blockchain.
Según otro aspecto, un método implementado por ordenador para la protección de información, realizado por un nodo receptor asociado a un receptor de una transacción, comprende: obtener, a través de un canal seguro fuera de la cadena de blockchain, un factor de ocultación de la transacción rt, una cantidad t de transacción de la transacción, y un valor T de compromiso de transacción de un nodo emisor asociado a un emisor de una transacción, en el que: la cantidad t de transacción se compromete con un primer esquema de compromiso para obtener el valor T de compromiso de transacción, comprendiendo el primer esquema de compromiso el factor de ocultación de la transacción factor rt; verificar la transacción basándose en el factor de ocultación de transacción rt obtenido, la cantidad t de transacción obtenida de una transacción y el valor T de compromiso de transacción obtenido; en respuesta a la verificación con éxito de la transacción, cifrar una segunda combinación del factor de ocultación de la transacción rt y la cantidad t de la transacción con una segunda clave KB; generar una firma SIGB firmando al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor, indicando la firma SIGB que el receptor está de acuerdo con la transacción; y transmitir la segunda combinación cifrada y la firma SIGB al nodo emisor para su verificación.
En algunas realizaciones, verificar la transacción basándose en el factor de ocultación de la transacción obtenido rt, la cantidad t de transacción obtenido de una transacción y el valor T de compromiso de transacción obtenido comprende verificar si el valor T de compromiso de transacción obtenido es igual al primer esquema de compromiso que compromete la cantidad t de transacción obtenido con el factor de ocultación de transacción obtenido rt.
En algunas realizaciones, el primer esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción rt y siendo la cantidad t de la transacción un valor comprometido correspondiente.
Según otro aspecto, se proporciona un medio de almacenamiento no transitorio legible por ordenador como se define en la reivindicación 13.
Según otro aspecto, se proporciona un sistema para la protección de la información como se define en la reivindicación 14. Según otro aspecto, se proporciona un producto de programa informático según se define en la reivindicación 15.
Estos y otros rasgos de los sistemas, métodos y medios no transitorios legibles por ordenador desvelados en el
presente documento, así como los métodos de operación y funciones de los elementos de estructuras relacionados y la combinación de partes y economías de fabricación, se harán más evidentes tras la consideración de la siguiente descripción y las reivindicaciones adjuntas con referencia a los dibujos adjuntos, todos los cuales forman una parte de esta memoria descriptiva, donde números de referencia similares designan partes correspondientes en las diversas figuras. Sin embargo, ha de entenderse expresamente que los dibujos son para fines de ilustración y descripción únicamente y no se pretenden como una definición de los límites de la invención. La invención se define en las reivindicaciones adjuntas.
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 3 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 4 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 blockchain y guardarse o leerse de ella. Cualquiera puede configurar un servidor y unirse a la red de blockchain para convertirse en un nodo. Cualquier nodo puede aportar potencia de cálculo para mantener la cadena de blockchain mediante la realización de cálculos complejos, tal como el cálculo de hash para añadir un bloque a una cadena de blockchain 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 blockchain no tiene un nodo central, cada nodo es igual y contiene toda la base de datos de la cadena de blockchain.
Los nodos son, por ejemplo, dispositivos informáticos o grandes sistemas informáticos que admiten la red de blockchain y la mantienen funcionando sin problemas. Hay dos tipos de nodos, nodos completos y nodos ligeros. Los nodos completos mantienen una copia completa de la cadena de blockchain. Los nodos completos en la red de blockchain validan las transacciones y los bloques que reciben y los transmiten a los pares conectados para proporcionar una verificación de consenso de las transacciones. Los nodos ligeros, por otro lado, solo descargan una fracción de la cadena de blockchain. 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 blockchain 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 blockchain 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 blockchain 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 blockchain se conoce como "minería", y quienes realizan dicho mantenimiento son recompensados con bitcoins recién creadas y tarifas de transacción como se ha mencionada anteriormente. Por ejemplo, los nodos pueden determinar si las transacciones son válidas basándose en un conjunto de reglas que la red
de blockchain ha acordado. Los mineros pueden estar ubicados en cualquier continente y procesar pagos verificando que cada transacción sea válida y añadiéndola a la cadena de blockchain. 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 blockchain sea consistente. Por lo tanto, los datos se pueden almacenar de manera consistente en un sistema distribuido de nodos de blockchain.
A través del proceso de minería, las transacciones, tales como las transferencias de activos, se verifican y se añaden a una cadena creciente de bloques de una cadena de blockchain mediante nodos de red. Al atravesar toda la cadena de blockchain, la verificación puede incluir, por ejemplo, si la parte que paga tiene acceso al activo que se transfiere, si el activo se ha gastado antes, si la cantidad de la transferencia es correcta, etc. Por ejemplo, en una transacción hipotética ( por ejemplo, una transacción de bitcoins bajo un modelo UTXO (salida de transacción no gastada), una transacción de monedas Ethereum bajo un modelo de Cuenta/Saldo) firmada por un emisor, la transacción propuesta puede transmitirse a la red de blockchain para minería. Un minero debe comprobar si la transacción es elegible para ejecutarse de acuerdo con el historial de blockchain. Si el saldo de la cartera del emisor tiene fondos suficientes de acuerdo con el historial de cadena de blockchain 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 blockchain.
Un bloque es muy parecido a un registro de base de datos. Cada vez que se escriben datos se crea un bloque. Estos bloques están unidos y protegidos mediante criptografía para convertirse en redes interconectadas. Cada bloque está conectado al bloque anterior, que también es el origen del nombre "blockchain". Cada bloque generalmente contiene el hash criptográfico del bloque anterior, el tiempo de generación y los datos reales. Por ejemplo, cada bloque contiene dos partes: un encabezamiento del bloque para registrar el valor de la característica del bloque actual y un cuerpo para registrar los datos reales (por ejemplo, datos de transacciones). La cadena de bloques está unida a través de los encabezamientos de bloque. Cada encabezamiento de bloque puede contener múltiples valores de características, tal como versión, hash de bloque anterior, nodo raíz (raíz Merkle), marca de tiempo, objetivo de dificultad y nonce. El hash del bloque anterior contiene no solo la dirección del bloque anterior, sino también el hash de los datos dentro del bloque anterior, lo que hace que las cadenas de blockchain 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 blockchain. 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 blockchain 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 a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0 (hexadecimal), que tiene 256 bits cuando se convierte a binario y solo "123" tiene este hash. El algoritmo hash en la cadena de blockchain es irreversible, es decir, el cálculo directo es fácil (de "123" a a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b13d11d7fd0) 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 blockchain 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 blockchain 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 blockchain. 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 blockchain 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 blockchain). 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 blockchain. 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 blockchain 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 blockchain 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 blockchain 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 blockchain, los pagadores y beneficiarios se identifican en la cadena de blockchain 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 blockchain 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 blockchain 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 blockchain. 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 blockchain 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 blockchain donde él/ella es el pagador.
En el contexto de la transacción de bitcoins, para transferir algunos bitcoins al usuario B, el usuario A puede construir un registro que contenga información sobre la transacción a través de un nodo. El registro puede estar firmado con la clave de firma del usuario A (clave privada) y contiene la clave de verificación pública del usuario A y la clave de verificación pública del usuario B. La firma se utiliza para confirmar que la transacción proviene del usuario y también evita que alguien la altere una vez que se haya emitido. El registro incluido con otro registro que tuvo lugar en la misma ventana de tiempo en un nuevo bloque puede transmitirse a todos los nodos. Al recibir los registros, los nodos completos pueden trabajar para incorporar los registros en la base de todas las transacciones que alguna vez hayan tenido lugar en el sistema blockchain, añadir el nuevo bloque a una cadena de blockchain 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 blockchain. UTXO es un modelo de objeto de blockchain. Bajo UTXO, los activos están representados por salidas de transacciones de blockchain que no se han gastado, que se pueden usar como entradas en nuevas transacciones. Por ejemplo, el activo del usuario A que se transferirá puede estar en forma de UTXO. Para gastar (realizar transacciones) el activo, el usuario A debe firmar con la clave privada. Bitcoin es un
ejemplo de moneda digital que usa el modelo UTXO. En el caso de una transacción de blockchain válida, las salidas no gastadas se pueden utilizar para realizar transacciones adicionales. En algunas realizaciones, solo las salidas no gastadas pueden usarse en transacciones adicionales para evitar el doble gasto y el fraude. Por esta razón, las entradas en una cadena de blockchain 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 blockchain y otros libros de contabilidad similares son completamente públicos, la cadena de blockchain 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 blockchain. 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 blockchain 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. La cantidad de la transacción y el número aleatorio generado por el compromiso de Pedersen son datos sensibles a la privacidad. Las partes distintas de las relacionadas con la transacción no deben tener la oportunidad de conocer los valores. Por lo tanto, dicha información debe cifrarse y guardarse y descifrarse cuando se utilice. El valor comprometido y el número aleatorio son elementos necesarios para gastar el activo negociado en el futuro, pero son fáciles de perder y difíciles de recuperar debido a la falta de una forma segura, estable y eficiente de almacenar correctamente los números aleatorios. Por ejemplo, el esquema de las tecnologías actuales 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. Además, el almacenamiento de los 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 varios protocolos de intercambio de información criptográfica para cifrar/descifrar los números aleatorios y los saldos de texto sin formato, proporcionando así una gestión conveniente. Además, almacenar la información cifrada en blockchain asegura que las cantidades de las transacciones, los valores de los activos y los factores de ocultación en los esquemas de compromiso no se pierdan o alteren fácilmente.
En algunas realizaciones, un esquema de compromiso (por ejemplo, compromiso de Pedersen) puede cifrar cierto valor (por ejemplo, cantidad de transacción, valor de activo, parámetro clave) como sigue:
PC(a) = rxG axH
donde r es un factor de ocultación aleatoria (alternativamente denominado factor de ocultación) que proporciona ocultación, G y H son los generadores/puntos base acordados públicamente de la curva elíptica y pueden elegirse al azar, a es el valor del compromiso, PC (a) es el punto de la curva utilizado como compromiso y dado a la contraparte, y H es otro punto de la curva. Es decir, G y H pueden ser parámetros conocidos para los nodos. Se puede generar una generación de H "no tengo ningún as en mi manga" mediante el hash del punto base G con una función de hash que correlaciona de un punto a otro con H = Hash (G). H y G are son los parámetros públicos del sistema dado (por ejemplo, puntos generados aleatoriamente en una curva elíptica). Aunque lo anterior proporciona un ejemplo de compromiso de Pedersen en forma de curva elíptica, de forma alternativa se pueden usar otras varias formas de compromiso de Pedersen u otros esquemas de compromiso.
Un esquema de compromiso mantiene el secreto de los datos pero se compromete con los datos de modo que el emisor de los datos no los pueda cambiar después. Si una parte solo conoce el valor de compromiso (por ejemplo, PC(a)), no se pueden determinar a qué valores de datos subyacentes (por ejemplo, a) se han estado comprometiendo. Tanto los datos (por ejemplo, a) como el factor de ocultación (por ejemplo, r) se pueden revelar más tarde (por ejemplo, por el nodo iniciador) y un receptor (por ejemplo, nodo consenso) del compromiso puede ejecutar el compromiso y verificar que los datos comprometidos coinciden con los datos revelados. El factor de ocultación está presente porque sin uno, alguien podría intentar adivinar los datos.
Los esquemas de compromiso son una forma por la cual el emisor (parte que se compromete) se compromete con un valor (por ejemplo, a) de modo que el valor comprometido permanece privado pero se puede revelar más tarde cuando la parte que se compromete divulga un parámetro necesario del proceso de compromiso. Los esquemas de compromiso fuertes pueden ocultar información y ser vinculantes computacionalmente. Ocultar se refiere a la noción de que un valor dado a y un compromiso de ese valor PC (a) no deberían ser relacionados. Es decir, PC(a) no debe revelar información sobre a. Con PC(a), G y H conocidos, es casi imposible conocer a debido al número aleatorio r. Un esquema de compromiso es vinculante si no existe una forma plausible de que dos valores diferentes puedan dar como resultado el mismo compromiso. Un compromiso de Pedersen se oculta perfectamente y es vinculante computacionalmente bajo el supuesto de logaritmo discreto. Además, con r, G, H y PC(a) conocidos, es posible verificar PC(a) determinando si PC(a) = rxG axH.
Un compromiso de Pedersen tiene una propiedad adicional: se pueden añadir compromisos y la suma de un conjunto de compromisos es lo mismo que un compromiso con la suma de los datos (con un factor de ocultación establecido como la suma de los factores de ocultación): PC(ri, datosi) PC(r2, datos2) == PC(ri+r2, datos1+datos2); PC(ri, datosi) - PC(ri, datosi) == 0. En otras palabras, el compromiso conserva la adición y se aplica la propiedad conmutativa, es decir, el compromiso de Pedersen es aditivamente homomórfico, ya que los datos subyacentes pueden manipularse matemáticamente como si no estuvieran cifrados.
En una realización, un compromiso de Pedersen utilizado para cifrar el valor de entrada se puede construir utilizando puntos de curva elíptica. De manera convencional, una clave pública de criptografía de curva elíptica (ECC) se crea multiplicando un generador para el grupo (G) con la clave secreta (r): Pub = rG. El resultado se puede serializar como una matriz de 33 bytes. Las claves públicas ECC pueden obedecer a la propiedad aditiva homomórfica mencionada anteriormente con respecto a los compromisos de Pedersen. Es decir: Pub1+Pub2=(r1+r2(mod n))G.
El compromiso de Pedersen para el valor de entrada se puede crear seleccionando un generador adicional para el grupo (H, en las ecuaciones siguientes) de modo que nadie conozca el registro discreto del segundo generador H con respecto al primer generador G (o viceversa), lo que significa que nadie conoce una x tal que xG = H. Esto se puede lograr, por ejemplo, utilizando el hash criptográfico de G para elegir H: H=to_point(SHA256(ENCODE(G))).
Dados los dos generadores G y H, un esquema de compromiso de ejemplo para cifrar el valor de entrada puede definirse como: compromiso = rG aH. Aquí, r puede ser el factor de ocultación secreto y a puede ser el valor de entrada con el que se compromete. Por tanto, si a está comprometido, se puede obtener el esquema de compromiso descrito anteriormente PC(a) = rxG axH. Los compromisos de Pedersen son información teóricamente privada: para cualquier compromiso, existe algún factor de ocultación que haría que cualquier cantidad coincidiera con el compromiso. Los compromisos de Pedersen pueden ser computacionalmente seguros contra compromisos falsos, ya que el mapeo arbitrario puede no ser calculado.
La parte (nodo) que comprometió el valor puede abrir el compromiso revelando el valor original a y el factor r que completa la ecuación del compromiso. La parte que desee abrir el valor PC(a) volverá a calcular el compromiso para verificar que el valor original compartido realmente coincide con el compromiso PC(a) recibido inicialmente. Por lo tanto, la información del tipo de activo se puede proteger asignándola a un número de serie único y luego cifrándola por compromiso de Pedersen. El número aleatorio r elegido al generar el compromiso hace que sea casi imposible para cualquiera inferir el tipo de tipo de activo comprometido de acuerdo con el valor de compromiso PC(a).
En algunas realizaciones, se pueden utilizar varios protocolos de intercambio de información criptográfica, tal como el protocolo de clave pública, el protocolo de cifrado simétrico, el intercambio de claves Diffie-Hellman (DH), etc. Por ejemplo, el intercambio de claves DH se puede utilizar como un 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-Hellman (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, 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 usa la clave pública recibida junto con su propia clave privada para calcular el nuevo secreto compartido a(bG) = b(aG), que luego puede usarse con una función de derivación de clave para derivar un conjunto de claves para un esquema de cifrado simétrico. Alternativamente, 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 blockchain puede comprender una pluralidad de nodos (por ejemplo, nodos completos implementados en servidores,
ordenadores, etc.). Para algunas plataformas de blockchain (por ejemplo, NEO), los nodos completos con cierto nivel de poder de voto pueden denominarse nodos de consenso, que asumen la responsabilidad de la verificación de la transacción. En esta divulgación, los nodos completos, los nodos de consenso u otros nodos equivalentes pueden verificar la transacción.
Asimismo, como se muestra en la figura 1, el usuario A y el usuario B pueden utilizar los dispositivos correspondientes, como ordenadores portátiles y teléfonos móviles, que sirven como nodos ligeros, para realizar transacciones. Por ejemplo, el usuario A puede querer realizar transacciones con el usuario B transfiriendo algún activo de la cuenta del usuario A a la cuenta del usuario B. El usuario A y el usuario B pueden usar los dispositivos correspondientes instalados con un software de blockchain apropiado para la transacción. El dispositivo del usuario A puede denominarse nodo iniciador A que inicia una transacción con el dispositivo del usuario B denominado nodo receptor B. El nodo A puede acceder a la cadena de blockchain a través de la comunicación con el nodo 1 y el nodo B puede acceder a la cadena de blockchain 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 blockchain a través del nodo 1 y el nodo 2 para solicitar que se añadan las transacciones a la cadena de blockchain. Fuera de la cadena de blockchain, 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 acoplado al procesador, de modo que el medio de almacenamiento almacena instrucciones que, cuando son ejecutadas por el procesador, hacen 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 con un par de claves criptográficas privada (clave secreta)-pública. La clave privada puede indicarse como SK y la clave pública puede indicarse como PK. La clave privada puede usarse para firmar la información transmitida (por ejemplo, información de transacciones). La clave pública se puede utilizar para verificar la información firmada y generar la dirección de la cuenta. 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 criptográfica) y K es una clave de cifrado única para cada cuenta. Por ejemplo, cada activo se puede denotar como (V=PC(r, v), Ei<(r||v)), donde || representa la concatenación. Aunque la concatenación se usa en las siguientes realizaciones, se pueden usar otras representaciones alternativas que implican r y v. La clave de cifrado K (por ejemplo, KA, KB) se puede generar mediante varios métodos, tal como el protocolo de clave privada, la función de derivación de clave, etc. Cada activo también puede incluir información diferente a la indicada, tal como la información de origen del activo.
En un ejemplo, antes de que el usuario A transmita con éxito una cantidad t al usuario B en una transacción verificada por blockchain, 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: AddrA
Clave pública: PKa
Clave privada: SKa
Primera clave: KA
Los activos A1 a Am, respectivamente, de valores a1 a am se indican como:
(A-i=PC(ra1, a-i), EKA(ra1, a-i)),
(A2=PC(ra2, a2) EKA(ra2, a2)),
(Am=PC(r am, am) EKA(r am, am))
Para la cuenta de B (cuenta B):
Dirección: AddrB
Clave pública: PKb
Clave privada: SKb
Segunda clave: KB
Los activos B1 a Bn, respectivamente, de valores b1 a bn se indican como:
(B-i=PC(rb1, b1), EKB(rb1, b1)),
(B2=PC(rb2, b2), EKB(rb2, b2)),
(Bn=PC(rbn, bn), EKB(rbn, bn))
En algunas realizaciones, en la etapa 201, el nodo A puede iniciar una transacción con el nodo B. Por ejemplo, el usuario A y el usuario B pueden negociar una cantidad t de la transacción desde la cuenta A del usuario A a la cuenta B del usuario B. La cuenta A y la cuenta B pueden corresponder a las "carteras" descritas en el presente documento. La cuenta A puede tener uno o más activos. El activo puede comprender, por ejemplo, dinero, unidad de valor, moneda digital, contrato, escritura, registro médico, detalle del cliente, acciones, bonos, acciones o cualquier otro activo que pueda describirse en forma digital. La cuenta B puede tener uno o más activos o ningún activo. Cada activo puede estar asociado a diversa información de la cadena de blockchain almacenada en bloques, comprendiendo la información de la cadena de blockchain, 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 A1 a Am corresponden, respectivamente, a los valores de los activos a1 a am y números aleatorios ra1 a ram. Basándose en los números aleatorios ra1 a ram,, 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, para la cuenta A, los valores de compromiso cifrados pueden ser PC1 to PCm,, donde PCi= PC(rai, ai) = raixG aixH, G y H se conocen, e i es una variable 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 KA. Por ejemplo, el cifrado puede ser EKA(ra1, ai). 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, para satisfacer la cantidad t de la transacción, el usuario A puede usar una primera clave KA (por ejemplo, una clave de cifrado simétrica) para descifrar uno o más activos de un valor añadido al menos t de la cuenta A. Por ejemplo, el nodo A puede utilizar los activos A1, A2, ..., Ak para esta transacción, donde k es menor o igual que m. Los activos restantes AAk+1, Ak+2, ..., Am de la cuenta A están sin utilizar. En consecuencia, el nodo A puede leer los activos PC(ra1, a1), PC(ra2, a2), ..., PC(rak, ak) del nodo 1. Con los números aleatorios ra1, ra2, ..., rak conocidos para el nodo A, el nodo A puede descifrar los activos leídos PC(ra1, a1), PC(ra2, a2 ), ..., PC(rak, ak) para obtener los valores de activos a1, a2, ..., ak para garantizar que la suma (a1 + a2 + ... ak) no es menor que la cantidad t de la transacción. Se pueden intercambiar diferentes activos entre sí dentro de la cuenta en función de varias tasas.
En algunas realizaciones, la clave de cifrado simétrica puede hacer referencia a las mismas claves criptográficas utilizadas en el algoritmo de clave simétrica criptográfica tanto para el cifrado de texto sin formato como para el descifrado de texto cifrado. Las claves pueden ser idénticas o puede haber una transformación simple entre las dos claves. Las claves pueden representar un secreto compartido entre dos o más partes que se puede utilizar para mantener un enlace de información privada.
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 = (a1 + a2 + ... ak) - 1. El nodo A puede seleccionar números aleatorios rt y ry como factores de ocultación para generar compromisos de Pedersen para t e y: T=PC(rt, t), Y=PC(ry, y). Es decir, el nodo A puede generar un número aleatorio rt para t y un número aleatorio ry para y. El nodo A puede comprometer t y rt a un esquema de compromiso (por ejemplo, cifrado homomórfico) para obtener
el valor de compromiso T=PC(rt, t), y comprometer y y ry a un esquema de compromiso (por ejemplo, cifrado homomórfico) para obtener el valor de compromiso Y = PC(ry, y). Además, el nodo A puede determinar r' = (ri r2 ...
+ rk) - rt - ry.
En algunas realizaciones, el nodo A puede usar la primera clave KA para cifrar(ry, y), obteniendo el cifrado EKA(ry, y).
El nodo A puede almacenar EKA(ry, y) localmente.
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 la cadena de blockchain, a través de un canal seguro fuera de la cadena de blockchain). La información de transacción enviada puede comprender, por ejemplo, el número aleatorio rt, la cantidad de t transacción y el valor T de compromiso. La información de transacción puede enviarse en texto plano.
En la etapa 203, el nodo B puede verificar el número aleatorio rt, la cantidad t de transacción y el valor T de compromiso.
En algunas realizaciones, el nodo B puede verificar si la cantidad t para enviar al usuario B es correcta y si T = PC( rt, t). Para la etapa 203, si la coincidencia/verificación falla, el nodo B puede rechazar la transacción. Si la coincidencia/verificación tiene éxito, el nodo B puede responder al nodo A en la etapa 204.
En la etapa 204, el nodo B puede cifrar (rt, t) con una segunda clave KB (por ejemplo, una clave de cifrado simétrica) para obtener el cifrado EKB(rt, t) y firmar la transacción (EKB(rt, t),, T) con SKb de la clave privada 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 EKB(rt, t) y la firma SIGB de vuelta al nodo A.
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 generar una prueba de rango RP para probar a los nodos de blockchain si el valor de PC(rt, t) y el valor de 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 t de la transacción 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 (T, rt, t, Y, ry, y) para los nodos de blockchain
(por ejemplo, nodos de consenso) para verificar en una etapa posterior si la cantidad t de la transacción y el cambio y están dentro del rango válido según la prueba de rango. La prueba de rango puede comprender, por ejemplo, Bulletproofs, firma del nudo borromeo, etc.
Además, el nodo A puede firmar la transacción con la clave privada de A SKa 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 ({PC(ra1, ai), EKA(ra1, ai); PC(ra2 , a2 ), Eka(^ 2 , a2 ); ... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), E t)}; Y; T; r'; RP) con la clave privada del usuario A para generar la firma SIGA, donde {PC(rai, ai), EKA(rai, ai); PC(ra2 , a2), EKA(ra2 , a2 ); ... PC(rak, ak), EKA(rak, ak)} representa los activos utilizados Ai, A2 , ..., Ak desde la cuenta A para la transacción. {PC(ry, y), EKA(ry, y)} representa el cambio que la cuenta A recibirá de la transacción. {PC(rt, t), EKB(rt, t)} representa el activo transferido que la cuenta B recibirá de la transacción.
En la etapa 207, el nodo A puede presentar la transacción a la cadena de blockchain, haciendo que los nodos de la cadena de blockchain verifiquen la transacción y determinen si añadir la transacción a la cadena de blockchain. En una realización, el nodo A puede enviar la transacción ({PC(rai, ai), EKA(rai, ai); PC(ra2 , a2 ), Eka( ^ 2, a2 ); ... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), Eka(^, y)}; {PC(rt, t), EKB,(rt, t)}; Y; T; r'; RP; SIGA; SIGB) a la cadena de blockchain a través del nodo i 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 blockchain para su verificación. Si la verificación tiene éxito, la transacción se añade a la cadena de blockchain. Si la verificación falla, se rechaza la transacción para que no se añada a la cadena de blockchain.
En las etapas 208-2i3, uno o más nodos (por ejemplo, nodos de consenso) verifican las firmas, la prueba de rango y otra información de la transacción presentada. Si la verificación falla, los nodos rechazan la transacción. Si la verificación tiene éxito, los nodos aceptan la transacción, actualizan la cuenta del usuario A y la cuenta del usuario B por separado.
En algunas realizaciones, para ejecutar la transacción, la información de la transacción puede ser verificada por varios nodos de blockchain. La información de la transacción puede comprender la dirección de la transacción TXID, la(s) firma(s), la entrada y la salida. TXID puede comprender el hash del contenido de la transacción. Las firmas pueden comprender firmas de claves criptográficas del emisor y el receptor. La entrada puede comprender una dirección de la cuenta del emisor en la cadena de blockchain, uno o más activos extraídos de la cuenta de la cadena de blockchain del emisor para la transacción, etc. La salida puede comprender una dirección de la cuenta del receptor en la cadena de blockchain, el o los tipos de activos del o los activos del receptor, el o los valor(es) de compromiso del o los activo(s)
i2
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 blockchain pueden verificar la transacción presentada ({PC(ra1, a-i), EKA(ra1, a-,); PC(ra2, a2), E<a( ^ 2, a2 ); ... PC(rak, ak), EKA(rak, ak)}; {PC(ry, y), Y; T; r'; 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 Ai a Ak son consistentes con el o los tipos de activos de la cantidad t de la transacción. Si alguno de los tipos de activos es inconsistente, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 211. En algunas realizaciones, el tipo de activo original en la cartera puede haberse convertido en otro tipo basado en un tipo de intercambio y esta etapa puede omitirse.
En la etapa 211, los nodos pueden comprobar la prueba de rango RP para validar el valor de PC(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 t de la transacción no es menor que cero y el cambio y no es menor que cero. Si la verificación falla, los nodos pueden rechazar la transacción; de lo contrario, el método puede proceder a la etapa 212.
En la etapa 212, los nodos pueden verificar si las entradas y salidas de la transacción son consistentes. En una realización, r' puede corresponder al valor del activo t' = a1 + a2 ... ak-1- y basado en la propiedad homomórfica, donde r'= (n r2 ... rk) - rt - ry. Dado que los activos de entrada son a1 + a2 ... ak y la salida es t y, t' = 0 cuando la entrada y la salida son consistentes: a1 + a2 ... ak = t y. Por tanto, el valor de compromiso correspondiente a r' es PC(r', t') = r'xG t'xH = r'G. Dado que r' = (n r2 ... rk) - rt - ry, los nodos pueden determinar si las entradas y salidas son iguales mediante la verificación de si r'G es igual a PC1 + ... PCk - T - Y correspondiendo a (n r2 ... rk) - rt - ry. Si r'G es igual a PC1 + ... PCk - T - Y, los nodos pueden determinar que las entradas y salidas de la transacción son consistentes y proceden a la etapa siguiente; de lo contrario, los nodos pueden determinar que las entradas y salidas de la transacción son inconsistentes y rechazan la transacción.
En la etapa 213, los nodos pueden verificar si el nodo A tiene el o los activos utilizados para la transacción. En una realización, los nodos pueden realizar esta verificación basándose en información almacenada en la cadena de blockchain, 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(ry, y) y el nodo 1 conoce ry y puede acceder al valor de compromiso Y desde la cadena de blockchain, 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 rt del nodo 1 y puede obtener de la cadena de blockchain el valor de compromiso T.
Por lo tanto, el nodo 2 puede descifrar T para obtener el valor t del activo y añadir el mismo a la cuenta B.
En un ejemplo, después de la actualización de la cuenta A y la cuenta B, la cuenta A recibe el cambio y en los activos utilizados A1, A2 , ..., Ak y recibe sus activos no utilizados Aak+1, ..., Am y la cuenta B recibe la cantidad t de la transacción y recibe sus activos originales B1, B2 , ..., Bn. 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(ry, y), EKA(ry, y)),
(Aak+1 = PC(rak+1, ak+1), E|<A(rak+1, ak+1))
(Aak+2=PC(rak+2, ak+2), E<A^ak+2, ak+2))
(Am=PC( ram, am), E<A(r am, am))
Para la cuenta de B (cuenta B), los activos actualizados se indican como:
(Bi=PC(rbi, b-i), EKB(rb1, b-i)),
(B2=PC(rb2, b2), EKB(rb2, b2)),
(Bn=PC(rbn, bn), EKB(rbn, bn)),
(T=PC(rt, t), EKB(rt, 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 3 ilustra un diagrama de flujo de un método 300 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 300 puede ser implementado por uno o más componentes (por ejemplo, nodo A, nodo 1, una combinación de nodo A y nodo 1) del sistema 100 de la figura 1. El método 300 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando las ejecuta el procesador, hacen 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 transacción de una transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción, y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor de compromiso de cambio Y, comprendiendo el primer esquema de compromiso un factor de ocultación de transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación de cambio ry. En algunas realizaciones, el primer esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción rt y siendo la cantidad t de la transacción un valor comprometido correspondiente. Véase, por ejemplo, T = PC (rt, t). El segundo esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación del cambio ry y siendo la cantidad t de la transacción un valor comprometido correspondiente. Véase, por ejemplo, Y=PC(ry, y).
El bloque 302 comprende: cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA.
El bloque 303 comprende: transmitir el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción. En algunas realizaciones, transmitir el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción comprende: transmitir el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción, haciendo que el nodo receptor verifique si el valor T de compromiso de la transacción es igual al primer esquema de compromiso que compromete la cantidad t de la transacción con el factor de ocultación de la transacción rt.
El bloque 304 comprende: en respuesta a que el nodo receptor verifique con éxito la transacción, obtener una segunda combinación cifrada del factor de ocultación de la transacción rt y la cantidad de la transacción t cifrada con una segunda clave KB. En algunas realizaciones, obtener la segunda combinación cifrada comprende recibir desde el nodo receptor la segunda combinación cifrada y una firma SIGB asociada con la segunda combinación cifrada y el valor T de compromiso de transacción.
El bloque 305 comprende: transmitir la primera combinación cifrada y la segunda combinación cifrada a una pluralidad de nodos en una cadena de blockchain para que los nodos en la cadena de blockchain verifiquen la transacción.
En algunas realizaciones, la cantidad t de transacción se extrae de uno o más activos A1, A2, ..., Ak de un emisor de la transacción; cada uno de los activos está asociado a (1) un compromiso de Pedersen basado al menos en un factor de ocultación rak y un valor de cada activo y (2) un cifrado basado al menos en el factor de ocultación rak y el valor de cada activo; y el cambio y es una diferencia entre la cantidad t de la transacción y los activos aprovechados.
En algunas realizaciones, antes de transmitir la primera combinación cifrada y la segunda combinación cifrada a la pluralidad de nodos en la cadena de blockchain, el método comprende además: verificar la firma SIGB; y, en respuesta a la verificación con éxito de la firma SIGB, generar una firma SIGA asociada con los activos A1, A2 , ..., Ak, la primera combinación, la segunda combinación, el valor T de compromiso de transacción, el valor Y de compromiso de cambio y una diferencia entre un suma de factores de ocultación correspondiente a los activos A1, A2, ..., Ak y una suma del factor de ocultación de la transacción rt y el factor de ocultación del cambio ry. Es decir, la diferencia r' = (n r2 ... rk) -(rt ry).
En algunas realizaciones, transmitir la primera combinación cifrada y la segunda combinación cifrada a la pluralidad de nodos en la cadena de blockchain comprende: transmitir los activos A1, A2, ..., Ak, la primera combinación, la segunda combinación, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, una diferencia entre una suma de factores de ocultación correspondientes a los activos A1, A2 , ..., Ak y una suma del factor de ocultación de la transacción rt y el factor de ocultación de cambio ry, la firma SIGA y la firma SIGB a la pluralidad de nodos en la cadena de blockchain.
En algunas realizaciones, transmitir la primera combinación cifrada y la segunda combinación cifrada a la pluralidad de nodos en una cadena de blockchain para que los nodos en la cadena de blockchain verifiquen la transacción comprende: transmitir la primera combinación cifrada y la segunda combinación cifrada a la pluralidad de nodos en una cadena de blockchain, lo que hace que los nodos de la cadena de blockchain, en respuesta a verificar con éxito la transacción, emitan la cantidad t de la transacción al receptor, eliminen los activos A1, A2 , ..., Ak y emitan el cambio y al emisor.
La figura 4 ilustra un diagrama de flujo de un método 400 de ejemplo para la protección de la información, de acuerdo con diversas realizaciones de la presente divulgación. El método 400 puede ser implementado por uno o más componentes (por ejemplo, nodo b, nodo 2, una combinación de nodo B y nodo 2, etc.) del sistema 100 de la figura 1. El método 400 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador, servidor) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones. Las instrucciones, cuando las ejecuta el procesador, hacen 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 un factor de ocultación de transacción rt, una cantidad t de transacción de una transacción y un valor T de compromiso de transacción desde un nodo emisor asociado a un emisor de una transacción, en el que: la cantidad t de transacción se compromete con un primer esquema de compromiso para obtener el valor T de compromiso de transacción, comprendiendo el primer esquema de compromiso el factor de ocultación de transacción rt.
El bloque 402 comprende: verificar la transacción basándose en el factor de ocultación de transacción rt obtenido, la cantidad t de transacción obtenido de una transacción y el valor T de compromiso de transacción obtenido.En algunas realizaciones, verificar la transacción basándose en el factor de ocultación de transacción rt obtenido, la cantidad t de transacción obtenida de una transacción, y el valor T de compromiso de transacción obtenido comprende verificar si el valor T de compromiso de transacción obtenido es igual al primer esquema de compromiso comprometiendo la cantidad t de transacción obtenida con el factor de ocultación de transacción obtenido rt.
El bloque 403 comprende: en respuesta a la verificación con éxito de la transacción, cifrar una segunda combinación del factor de ocultación de la transacción rt y la cantidad t de la transacción con una segunda clave KB.
El bloque 404 comprende: transmitir la segunda combinación cifrada al nodo emisor. En algunas realizaciones, antes de transmitir la segunda combinación cifrada al nodo emisor, comprende además generar una firma SIGB asociada con la segunda combinación cifrada y el valor T de compromiso de transacción; y transmitir la segunda combinación cifrada al nodo emisor comprende transmitir la segunda combinación cifrada y la firma SIGB al nodo emisor.
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(rai, ai), 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, siendo el segundo campo EKA(ra1, ai), estando i entre 1 y m). 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 blockchain.
PARA otro ejemplo, se utiliza una clave criptográfica para cifrar el número aleatorio de cada compromiso de Pedersen y el valor del activo correspondiente. La clave criptográfica para el cifrado/descifrado está en manos del propietario de la cuenta, por lo que la privacidad de los valores de los activos está protegida de los usuarios sin la clave criptográfica. Además, la transacción, incluidos los números aleatorios cifrados y los valores de los activos, se almacena en la cadena de blockchain. Esta forma proporciona comodidad para administrar los números aleatorios, minimiza las
posibilidades de pérdida y alteración de los números aleatorios y los valores de los activos, y promueve la seguridad basada en el almacenamiento distribuido y consistente de la cadena de blockchain.
Las etapas antes de enviar la transacción a la cadena de blockchain pueden tratarse como un comportamiento "fuera de la cadena" o "antes de la transacción", ya que los procesos de cifrado y descifrado ocurren en el lado del cliente, mientras que la cadena de blockchain almacena el "valor del activo número aleatorio correspondiente" cifrado. representado por la función E (). El compromiso de Pedersen puede ser similar a una caja fuerte con activos dentro y el "valor del activo número aleatorio correspondiente" es similar a la llave de la caja fuerte. La clave cifrada y su caja fuerte asociada pueden almacenarse en la cadena de blockchain, que es a prueba de manipulaciones y anti-pérdida. Cada vez que el usuario quiere gastar los activos, el usuario puede recuperar la caja fuerte y la clave cifrada de blockchain y descifrar la clave en el lado del cliente, de modo que se puedan realizar las etapas "previas a la transacción" para ensamblar una nueva transacción que gasta el(los) activo(s).
Como tal, los números aleatorios de compromisos de Pedersen se pueden administrar de manera conveniente, sin el riesgo de corrupción y sin incurrir en una carga adicional de administración de claves. Por lo tanto, la privacidad de la transacción se puede proteger completamente y las cantidades de la transacción se pueden mantener en secreto.
Las técnicas descritas en este documento se implementan mediante uno o más dispositivos informáticos de uso especial. Los dispositivos informáticos de uso especial pueden ser sistemas informáticos de escritorio, sistemas informáticos servidores, sistemas informáticos portátiles, dispositivos portátiles, dispositivos de red o cualquier otro dispositivo o combinación de dispositivos que incorpora lógica por cable y/o de programa para implementar las técnicas. El o los dispositivos informáticos generalmente están controlados y coordinados por el software del sistema operativo. Los sistemas operativos convencionales controlan y programan procesos informáticos para su ejecución, realizan administración de memoria, proporcionan sistema de archivos, redes, servicios de E/S y proporcionan una funcionalidad de interfaz de usuario, tal como una interfaz gráfica de usuario ("GUI"), entre otras cosas.
La figura 5 es un diagrama de bloques que ilustra un sistema informático 500 en el que se puede implementar cualquiera de las realizaciones descritas en el presente documento. El sistema 500 puede implementarse en cualquiera de los nodos descritos en el presente documento y configurarse para realizar las etapas correspondientes para los métodos de protección de la información. El sistema 500 informático incluye un bus 502 u otro mecanismo de comunicación para comunicar información, y uno o más procesador(es) 504 de hardware acoplados con el bus 502 para procesar información. El o los procesadores 504 de hardware pueden ser, por ejemplo, uno o más microprocesadores de uso general.
El sistema 500 informático también incluye una memoria 506 principal, tal como una memoria de acceso aleatorio (RAM) u otro dispositivo de almacenamiento dinámico, acoplado al bus 502 para almacenar información e instrucciones a ejecutar por el o los procesadores 504. La memoria 506 principal también puede usarse para almacenar variables temporales u otra información intermedia durante la ejecución de instrucciones a ejecutarse por el o los procesadores 504. Tales instrucciones, cuando se almacenan en medios de almacenamiento accesibles al o los procesadores 504, representan el sistema 500 informático en una máquina de uso especial que se personaliza para realizar las operaciones especificadas en las instrucciones. El sistema 500 informático incluye adicionalmente una memoria 508 de sólo lectura (ROM) u otro dispositivo de almacenamiento estático acoplado al bus 502 para almacenar información estática e instrucciones para el o los procesadores 504. Se proporciona un dispositivo 510 de almacenamiento, tal como un disco magnético, un disco óptico o una unidad de memoria USB (unidad flash), etc. y se acopla al bus 502 para almacenar información e instrucciones.
El sistema 500 informático puede implementar las técnicas descritas en el presente documento usando lógica por cable personalizada, uno o más ASIC o FPGA, firmware y/o lógica de programa que, en combinación con el sistema informático, provoca o programa que el sistema 500 informático sea una máquina de uso especial. De acuerdo con una realización, las operaciones, métodos y procesos descritos en el presente documento son realizados por el sistema 500 informático en respuesta al o los procesadores 504 que ejecutan una o más secuencias de una o más instrucciones contenidas en la memoria 506 principal. Tales instrucciones pueden leerse en la memoria 506 principal desde otro medio de almacenamiento, tal como el dispositivo 510 de almacenamiento. La ejecución de las secuencias de instrucciones contenidas en la memoria 506 principal provoca que el o los procesadores 504 realicen las etapas del proceso descritas en el presente documento. En realizaciones alternativas, puede usarse circuitería por cable en lugar de o en combinación con instrucciones de software.
La memoria 506 principal, la ROM 508 y/o el dispositivo 510 de almacenamiento pueden incluir medios de almacenamiento no transitorios. La expresión "medios no transitorios" y términos similares, como se usan en el presente documento, se refieren a medios que almacenan datos y/o instrucciones que hacen que una máquina funcione de una manera específica; los medios excluyen las señales transitorias. Tales medios no transitorios pueden comprender medios no volátiles y/o medios volátiles. Los medios no volátiles incluyen, por ejemplo, discos ópticos o magnéticos, tal como el dispositivo 510 de almacenamiento. Los medios volátiles incluyen memoria dinámica, tal como la memoria 506 principal. Las formas comunes de medios no transitorios incluyen, por ejemplo, un disco flexible, un disco flexible, disco duro, disco de estado sólido, cinta magnética, o cualquier otro medio de almacenamiento de datos magnético, un CD-ROM, cualquier otro medio de almacenamiento de datos óptico, cualquier medio físico con patrones
de agujeros, una RAM, una PROM y EPROM, una FLASH- EPROM, NVRAM, cualquier otro chip o cartucho de memoria y versiones en red de los mismos.
El sistema 500 informático también incluye una interfaz 518 de comunicación acoplada al bus 502. La interfaz 518 de red proporciona un acoplamiento de comunicación de datos bidireccional a uno o más enlaces de red que están conectados a una o más redes locales. Por ejemplo, la interfaz 518 de red puede ser una tarjeta de red digital de servicios integrados (ISDN), módem por cable, módem por satélite o un módem para proporcionar una conexión de comunicación de datos a un correspondiente tipo de línea telefónica. Como otro ejemplo, la interfaz 518 de red puede ser una tarjeta de red de área local (LAN) para proporcionar una conexión de comunicación de datos a una LAN compatible (o componente WAN para comunicarse con una WAN). También pueden implementarse enlaces inalámbricos. En cualquier implementación de este tipo, la interfaz 518 de red envía y recibe señales eléctricas, electromagnéticas u ópticas que transportan flujos de datos digitales que representan diversos tipos de información.
El sistema 500 informático puede enviar mensajes y recibir datos, incluyendo código de programa, a través de la o las redes, el enlace de red y la interfaz 518 de comunicación. En el ejemplo de Internet, un servidor podría transmitir un código solicitado para un programa de aplicación a través de Internet, el ISP, la red local y la interfaz 518 de red.
El código recibido puede ser ejecutado por el o los procesadores 504 a medida que se recibe y/o se almacena en el dispositivo 510 de almacenamiento u otro almacenamiento no volátil para la posterior ejecución.
Cada uno de los procesos, métodos y algoritmos descritos en las secciones anteriores puede estar incorporado y automatizado total o parcialmente por módulos de código ejecutados por uno o más sistemas informáticos o procesadores informáticos que comprenden hardware informático. Los procesos y algoritmos pueden implementarse parcial o totalmente en circuitos específicos de la aplicación.
Las diversas características y procesos anteriormente descritos pueden usarse de manera independiente unos de otros, o pueden combinarse de diversas maneras. Se pretende que todas las posibles combinaciones y subcombinaciones entren dentro del alcance de la presente divulgación. Además, ciertos bloques de métodos o proceso pueden omitirse en algunas implementaciones. Los métodos y procesos descritos en el presente documento tampoco están limitados a ninguna secuencia particular y los bloques o estados relacionados con los mismos pueden realizarse en otras secuencias que sean apropiadas. Por ejemplo, los bloques o estados descritos pueden realizarse en un orden distinto del específicamente desvelado o múltiples bloques o estados pueden combinarse en un único bloque o estado. Los bloques o estados de ejemplo pueden realizarse en serie, en paralelo o de alguna otra manera. Los bloques o estados pueden añadirse a o eliminarse de las realizaciones de ejemplo desveladas. Los sistemas y componentes de ejemplo descritos en el presente documento pueden configurarse de manera diferente a lo descrito. Por ejemplo, pueden añadirse elementos, eliminarse, o reorganizarse en comparación con las realizaciones de ejemplo desveladas.
Las diversas operaciones de los métodos de ejemplo descritos en el presente documento pueden realizarse, al menos parcialmente, mediante un algoritmo. El algoritmo puede estar comprendido en códigos de programa o instrucciones almacenadas en una memoria (por ejemplo, un medio de almacenamiento no transitorio legible por ordenador descrito anteriormente). Dicho algoritmo puede comprender un algoritmo de aprendizaje automático. En algunas realizaciones, es posible que un algoritmo de aprendizaje automático no programe explícitamente los ordenadores para que realicen una función, pero puede aprender de los datos de entrenamiento para hacer un modelo de predicciones que realice la función.
Las diversas operaciones de los métodos de ejemplo descritos en el presente documento pueden ser realizadas, al menos parcialmente, por uno o más procesadores que están configurados temporalmente (por ejemplo, por software) o configurados permanentemente para realizar las operaciones relevantes. Ya sea que estén configurados de forma temporal o permanente, dichos procesadores pueden constituir motores implementados por procesadores que operan para realizar una o más operaciones o funciones descritas en el presente documento.
De manera similar, los métodos descritos en el presente documento pueden implementarse al menos parcialmente con un procesador, siendo un procesador o procesadores particulares un ejemplo de hardware. Por ejemplo, al menos algunas de las operaciones de un método pueden ser realizadas por uno o más procesadores o motores implementados por procesador. Además, el uno o más procesadores también pueden funcionar para respaldar el desempeño de las operaciones relevantes en un entorno de "computación en la nube" o como un "software como servicio" (SaaS). Por ejemplo, al menos algunas de las operaciones pueden ser realizadas por un grupo de ordenadores (como ejemplos de máquinas que incluyen procesadores), siendo estas operaciones accesibles a través de una red (por ejemplo, Internet) y a través de una o más interfaces apropiadas (por ejemplo, una Interfaz de Programa de Aplicación (API)).
El rendimiento de algunas de las operaciones puede distribuirse entre los procesadores, que no solo se encuentran dentro de una sola máquina, sino que están desplegados en varias máquinas. En algunas realizaciones de ejemplo, los procesadores o motores implementados por procesador pueden estar ubicados en una única ubicación geográfica (por ejemplo, dentro de un entorno doméstico, un entorno de oficina o una granja de servidores). En otras realizaciones
de ejemplo, los procesadores o motores implementados por procesador pueden distribuirse a través de varias ubicaciones geográficas.
A lo largo de la presente memoria descriptiva, varias instancias pueden implementar componentes, operaciones o estructuras descritas como una única instancia. Aunque las operaciones individuales de uno o más métodos se ilustran y describen como operaciones separadas, una o más de las operaciones individuales pueden realizarse simultáneamente y nada requiere que las operaciones se realicen en el orden ilustrado. Las estructuras y la funcionalidad presentadas como componentes separados en las configuraciones de ejemplo se pueden implementar como una estructura o componente combinado. De forma similar, las estructuras y la funcionalidad presentadas como un único componente se pueden implementar como componentes separados. Estas y otras variaciones, modificaciones, adiciones y mejoras entran dentro del alcance de la materia objeto del presente documento.
Aunque se ha descrito una descripción general de la materia objeto con referencia a realizaciones de ejemplo específicas, se pueden realizar diversas modificaciones y cambios a estas realizaciones sin apartarse del alcance más amplio de realizaciones de la presente divulgación. Se puede hacer referencia en el presente documento a tales realizaciones de la materia objeto, individual o colectivamente, mediante el término "invención" meramente por razones de conveniencia y sin tener por objeto limitar voluntariamente el alcance de la presente solicitud a cualquier divulgación o concepto único si, de hecho, se desvelan más de uno. La presente descripción detallada no se ha de interpretar en un sentido limitante y el alcance de diversas realizaciones se define solo mediante las reivindicaciones adjuntas, junto con la gama completa de equivalentes a la que tienen derecho tales reivindicaciones.
Claims (15)
1. Un método implementado por ordenador para la protección de información, realizado por un nodo emisor asociado a un emisor de una transacción, comprendiendo el método:
comprometer una cantidad t de transacción de la transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor Y de compromiso de cambio, comprendiendo el primer esquema de compromiso un factor de ocultación de la transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación del cambio ry;
cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA; transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de la transacción, y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción;
en respuesta a que el nodo receptor verifique con éxito la transacción, obteniendo, del nodo receptor, (1) una segunda combinación cifrada del factor de ocultación de la transacción rt y la cantidad t de la transacción cifrada con una segunda clave KB y (2) una firma SIGB generada por el nodo receptor que firma al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor; generar una firma SIGA firmando al menos la primera combinación y el valor T de compromiso de la transacción con una clave privada del emisor; y
transmitir información de transacción que comprende la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma SIGA y la firma SIGB a una pluralidad de nodos en una cadena de blockchain para que los nodos de la cadena de blockchain verifiquen la información de la transacción y añadan la información de la transacción a la cadena de blockchain.
2. El método según la reivindicación 1, en el que:
el primer esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción rt y siendo la cantidad t de la transacción un valor comprometido correspondiente; y el segundo esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación del cambio ry y siendo el cambio y un valor comprometido correspondiente.
3. El método de las reivindicaciones 1 o 2, en el que transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción para que el nodo receptor verifique la transacción comprende:
transmitir el factor de ocultación de la transacción rt, la cantidad t de transacción y el valor T de compromiso de la transacción al nodo receptor asociado al receptor de la transacción, haciendo que el nodo receptor verifique si el valor T de compromiso de la transacción es igual al primer esquema de compromiso que compromete la cantidad t de transacción con el factor de ocultación de la transacción rt.
4. El método de cualquier reivindicación anterior, en el que:
la cantidad t de transacción se extrae de uno o más activos A1, A2, ..., Ak de un emisor de la transacción; cada uno de los activos está asociado a (1) un compromiso de Pedersen basado al menos en un factor de ocultación rak y un valor de cada activo y (2) un cifrado basado al menos en el factor de ocultación rak y el valor de cada activo; y
el cambio y es una diferencia entre la cantidad t de transacción y los activos aprovechados.
5. El método de la reivindicación 4 cuando depende de la reivindicación 3, en el que generar la firma SIGA firmando al menos la primera combinación y el valor T de compromiso de transacción con la clave privada del emisor comprende:
verificar la firma SIGB; y
en respuesta a la verificación con éxito de la firma SIGB, firmar al menos los activos A1, A2, ..., Ak, la primera combinación, la segunda combinación, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, y una diferencia entre una suma de los factores de ocultación correspondientes a los activos A1, A2, ..., Ak y una suma del factor de ocultación de la transacción rt y el factor de ocultación del cambio ry con la clave privada del emisor.
6. El método de la reivindicación 5, en el que la información de la transacción comprende:
los activos A1, A2, ..., Ak, la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la diferencia entre la suma de los factores cegadores correspondientes a los activos A1, A2 , ..., Ak y la suma del factor de ocultación de la transacción rt y el factor de ocultación del cambio ry, la firma SIGA y la firma SIGB.
7. El método de la reivindicación 6, en el que transmitir la información de la transacción a la pluralidad de nodos en la
cadena de blockchain para que los nodos en la cadena de blockchain verifiquen la información de la transacción comprende:
transmitir la información de la transacción a la pluralidad de nodos en la cadena de blockchain, haciendo que los nodos en la cadena de blockchain, en respuesta a verificar con éxito la transacción, emitan la cantidad t de la transacción al receptor, eliminen los activos A1, A2, ..., Ak y emitan el cambio y al emisor.
8. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador lleve a cabo el método de una cualquiera de las reivindicaciones 1 a 7.
9. Un sistema para la protección de la información, que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador acoplado al procesador, almacenando el medio de almacenamiento instrucciones que, cuando son ejecutadas por el procesador, hacen que el sistema realice, mediante un nodo emisor asociado a un emisor de una transacción, operaciones que comprenden:
comprometer una cantidad t de transacción de la transacción con un primer esquema de compromiso para obtener un valor T de compromiso de transacción y comprometer un cambio y de la transacción con un segundo esquema de compromiso para obtener un valor Y de compromiso de cambio, comprendiendo el primer esquema de compromiso un factor de ocultación de la transacción rt y comprendiendo el segundo esquema de compromiso un factor de ocultación del cambio ry;
cifrar una primera combinación del factor de ocultación del cambio ry y el cambio y con una primera clave KA; transmitir, a través de un canal seguro fuera de la cadena de blockchain, el factor de ocultación de la transacción rt, la cantidad t de la transacción y el valor T de compromiso de la transacción a un nodo receptor asociado a un receptor de la transacción para que el nodo receptor verifique la transacción;
en respuesta a que el nodo receptor verifique con éxito la transacción, obteniendo, del nodo receptor, (1) una segunda combinación cifrada del factor de ocultación de la transacción rt y la cantidad t de la transacción cifrada con una segunda clave KB y (2) una firma SIGB generada por el nodo receptor que firma al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor; generar una firma SIGA firmando al menos la primera combinación y el valor T de compromiso de la transacción con una clave privada del emisor;
transmitir información de transacción que comprende la primera combinación cifrada, la segunda combinación cifrada, el valor T de compromiso de transacción, el valor Y de compromiso de cambio, la firma SIGA y la firma SIGB a una pluralidad de nodos en una cadena de blockchain para que los nodos de la cadena de blockchain verifiquen la información de la transacción y añadan la información de la transacción a la cadena de blockchain.
10. Un método implementado por ordenador para la protección de la información, realizado por un nodo receptor asociado a un receptor de una transacción, comprendiendo el método:
obtener, a través de un canal seguro fuera de una cadena de blockchain, un factor de ocultación de la transacción rt, una cantidad t de transacción de la transacción y un valor T de compromiso de transacción de un nodo emisor asociado a un emisor de una transacción, en donde: la cantidad t de transacción está comprometida con un primer esquema de compromiso para obtener el valor T de compromiso de transacción, comprendiendo el primer esquema de compromiso el factor de ocultación de transacción rt;
verificar la transacción basándose en el factor de ocultación de transacción rt obtenido, la cantidad t de la transacción obtenida de una transacción y el valor T de compromiso de transacción obtenido;
en respuesta a la verificación con éxito de la transacción, cifrar una segunda combinación del factor de ocultación de la transacción rt y la cantidad t de la transacción con una segunda clave KB;
generar una firma SIGB firmando al menos la segunda combinación cifrada y el valor T de compromiso de transacción con una clave privada del receptor, indicando la firma SIGB que el receptor está de acuerdo con la transacción; y
transmitir la segunda combinación cifrada y la firma SIGB al nodo emisor para su transmisión a la cadena de blockchain.
11. El método según la reivindicación 10, en el que:
verificar la transacción basándose en el factor de ocultación de la transacción rt obtenido, la cantidad t de transacción obtenida de una transacción y el valor T de compromiso de transacción obtenido comprende verificar si el valor T de compromiso de transacción obtenido es igual al primer esquema de compromiso que compromete la cantidad t de transacción obtenida con el factor de ocultación de la transacción rt obtenido.
12. El método de las reivindicaciones 10 u 11, en el que:
el primer esquema de compromiso comprende un compromiso de Pedersen basado al menos en el factor de ocultación de la transacción rt y siendo la cantidad t de la transacción un valor comprometido correspondiente.
13. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador realice el método de acuerdo con la reivindicación 10.
14. Un sistema para la protección de la información, que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador, acoplado al procesador, en el que el medio de almacenamiento almacena instrucciones que, cuando son ejecutadas por el procesador, hacen que el sistema realice el método de la reivindicación 10.
15. Un producto de programa informático que comprende instrucciones de programa operativas, cuando son realizadas por un procesador, para hacer que el procesador realice un método de acuerdo con una cualquiera de las reivindicaciones 1 a 7 o 10 a 12.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/117558 WO2019072277A2 (en) | 2018-11-27 | 2018-11-27 | SYSTEM AND METHOD FOR INFORMATION PROTECTION |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2859569T3 true ES2859569T3 (es) | 2021-10-04 |
Family
ID=66100034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES18865370T Active ES2859569T3 (es) | 2018-11-27 | 2018-11-27 | Sistema y método para la protección de información |
Country Status (17)
Country | Link |
---|---|
US (2) | US11218455B2 (es) |
EP (1) | EP3545644B8 (es) |
JP (1) | JP6714156B2 (es) |
KR (1) | KR102150814B1 (es) |
CN (1) | CN110337665B (es) |
AU (1) | AU2018347195B2 (es) |
BR (1) | BR112019008036A2 (es) |
CA (1) | CA3040357C (es) |
ES (1) | ES2859569T3 (es) |
MX (1) | MX2019004357A (es) |
MY (1) | MY188126A (es) |
PH (1) | PH12019500836A1 (es) |
PL (1) | PL3545644T3 (es) |
RU (1) | RU2735439C2 (es) |
SG (1) | SG11201903425PA (es) |
WO (1) | WO2019072277A2 (es) |
ZA (1) | ZA201902471B (es) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7361706B2 (ja) | 2018-03-23 | 2023-10-16 | エヌチェーン ライセンシング アーゲー | ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法 |
CN109377215B (zh) | 2018-08-06 | 2020-04-21 | 阿里巴巴集团控股有限公司 | 区块链交易方法及装置、电子设备 |
US10700850B2 (en) | 2018-11-27 | 2020-06-30 | 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. |
US11127002B2 (en) | 2018-11-27 | 2021-09-21 | Advanced New Technologies Co., Ltd. | System and method for information protection |
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 |
CA3037833C (en) | 2018-11-27 | 2022-04-19 | Alibaba Group Holding Limited | System and method for information protection |
DE102019002731A1 (de) | 2019-04-15 | 2020-10-15 | Giesecke+Devrient Gesellschaft mit beschränkter Haftung | Gerät zum direkten Übertragen von elektronischen Münzdatensätzen an ein anderes Gerät sowie Bezahlsystem |
CN110224985B (zh) * | 2019-05-07 | 2022-07-08 | 平安科技(深圳)有限公司 | 数据处理的方法及相关装置 |
US10764062B2 (en) * | 2019-06-03 | 2020-09-01 | Alibaba Group Holding Limited | Blockchain ledger compression |
US10790990B2 (en) * | 2019-06-26 | 2020-09-29 | Alibaba Group Holding Limited | Ring signature-based anonymous transaction |
WO2021033026A1 (en) * | 2019-08-19 | 2021-02-25 | Bitfury Surround Gmbh | Techniques for enhanced data privacy in smart contracts for royalty distribution via a distributed ledger network |
CN111415252A (zh) * | 2020-01-23 | 2020-07-14 | 众安信息技术服务有限公司 | 一种基于区块链的隐私交易处理方法和装置 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11405191B2 (en) | 2020-05-13 | 2022-08-02 | Apple Inc. | Guaranteed encryptor authenticity |
CN111612600B (zh) * | 2020-05-29 | 2023-07-14 | 深圳市迅雷网络技术有限公司 | 区块链拍卖方法、设备、存储介质及区块链系统 |
JP7250288B2 (ja) * | 2020-08-28 | 2023-04-03 | ジャスミー株式会社 | 端末装置及びプログラム |
WO2022104132A1 (en) * | 2020-11-12 | 2022-05-19 | University Of South Florida | Systems and methods for energy efficient and useful blockchain proof of work |
CN113055179B (zh) * | 2021-02-21 | 2022-07-26 | 西安电子科技大学 | 一种链上结算数据的多类函数零知识审计方法、系统 |
CN113609510B (zh) * | 2021-09-28 | 2021-12-24 | 武汉泰乐奇信息科技有限公司 | 一种基于分布式存储的大数据加密传输方法与装置 |
KR102435349B1 (ko) * | 2021-11-05 | 2022-08-23 | 주식회사 스마트엠투엠 | 프라이빗 블록체인 기반의 비식별화된 센싱 데이터 처리 방법 및 시스템 |
CN114338027B (zh) * | 2021-12-29 | 2024-05-28 | 浙江吉利控股集团有限公司 | 区块链的隐私处理方法、请求终端及存储介质 |
CN115955315B (zh) * | 2022-12-27 | 2024-08-23 | 浙江吉利控股集团有限公司 | 环机密交易的签名验证方法、系统、设备及可读存储介质 |
Family Cites Families (139)
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> | 複数公開鍵保存方法、その装置およびそのプログラム記録媒体 |
WO2001069843A2 (en) | 2000-03-10 | 2001-09-20 | Absolutefuture, Inc. | Method and system for coordinating secure transmission of information |
US7716484B1 (en) | 2000-03-10 | 2010-05-11 | Rsa Security Inc. | System and method for increasing the security of encrypted secrets and authentication |
AU2001255183A1 (en) | 2000-04-14 | 2001-10-30 | Wu Wen | Delayed commitment scheme to prevent attacks based on compromised certificates |
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 |
US9473306B2 (en) * | 2013-08-05 | 2016-10-18 | Guardtime IP Holdings, Ltd. | Document verification with ID augmentation |
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 |
US9578505B2 (en) * | 2015-04-21 | 2017-02-21 | International Business Machines Corporation | Authentication of user computers |
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 |
US11080665B1 (en) | 2015-06-08 | 2021-08-03 | Blockstream Corporation | Cryptographically concealing amounts and asset types for independently verifiable transactions |
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 |
US10826712B2 (en) | 2015-06-30 | 2020-11-03 | Visa International Service Association | Confidential authentication and provisioning |
US20180191503A1 (en) | 2015-07-14 | 2018-07-05 | Fmr Llc | Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
US20170085555A1 (en) | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
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 |
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 |
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 |
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株式会社 | 生成装置、検証装置、及びプログラム |
US20180293576A1 (en) | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | System for custom currency transaction based on blockchain and operating method thereof |
US11095432B2 (en) | 2017-04-05 | 2021-08-17 | Samsung Sds Co., Ltd. | System for processing data based on blockchain and operating method thereof |
GB201705621D0 (en) | 2017-04-07 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201705749D0 (en) | 2017-04-10 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201705858D0 (en) | 2017-04-11 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201706132D0 (en) | 2017-04-18 | 2017-05-31 | Nchain Holdings Ltd | Computer-implemented system and method |
US10320758B2 (en) | 2017-04-25 | 2019-06-11 | International Business Machines Corporation | Cryptography using multi-factor key system and finite state machine |
US10198949B2 (en) * | 2017-04-28 | 2019-02-05 | Mastercard International Incorporated | Method and system for parking verification via blockchain |
US10560270B2 (en) | 2017-05-03 | 2020-02-11 | International Business Machines Corporation | Optimal data storage configuration in a blockchain |
GB201707168D0 (en) | 2017-05-05 | 2017-06-21 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201707296D0 (en) | 2017-05-08 | 2017-06-21 | Nchain Holdings Ltd | Computer-implemented system and method |
US11165589B2 (en) | 2017-05-11 | 2021-11-02 | Shapeshift Ag | Trusted agent blockchain oracle |
CN107451175B (zh) | 2017-05-23 | 2020-01-31 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107239951A (zh) | 2017-06-07 | 2017-10-10 | 北京天德科技有限公司 | 一种基于第三代区块链的可扩展央行数字货币交易方法 |
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 | 深圳市轱辘车联数据技术有限公司 | 数据交易方法、区块链节点服务器及数据提交终端 |
CN108021821A (zh) * | 2017-11-28 | 2018-05-11 | 北京航空航天大学 | 多中心区块链交易隐私保护系统及方法 |
CN108418689B (zh) | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
US11257077B2 (en) | 2017-11-30 | 2022-02-22 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
US10831764B2 (en) | 2017-12-02 | 2020-11-10 | International Business Machines Corporation | Query processing and access control in a blockchain network |
US11227284B2 (en) | 2017-12-13 | 2022-01-18 | Mastercard International Incorporated | Method and system for consumer-initiated transactions using encrypted tokens |
CN108282459B (zh) | 2017-12-18 | 2020-12-15 | 中国银联股份有限公司 | 基于智能合约的数据传递方法及系统 |
US10896418B2 (en) | 2017-12-29 | 2021-01-19 | Ebay Inc. | Secure management of data files using a blockchain |
TWM561861U (zh) | 2018-01-11 | 2018-06-11 | 網家金融科技股份有限公司 | 網路支付轉帳系統 |
US10388097B1 (en) | 2018-01-29 | 2019-08-20 | Accenture Global Solutions Limited | Blockchain-based cryptologic ballot verification |
US10373129B1 (en) | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US20210089676A1 (en) | 2018-02-16 | 2021-03-25 | Ecole Polytechnique Fédérale De Lausanne Epfl-Tto | Methods and systems for secure data exchange |
CN108512650B (zh) | 2018-02-28 | 2021-03-09 | 南京思利华信息科技有限公司 | 面向区块链的动态哈希计算方法、装置、节点及存储介质 |
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 |
CN108711105A (zh) | 2018-05-16 | 2018-10-26 | 四川吉鼎科技有限公司 | 一种基于区块链的安全交易验证方法及系统 |
CN108764874B (zh) * | 2018-05-17 | 2021-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的匿名转账方法、系统及存储介质 |
CN108683669B (zh) | 2018-05-19 | 2021-09-17 | 深圳市图灵奇点智能科技有限公司 | 数据验证方法和安全多方计算系统 |
CN108876332B (zh) | 2018-06-04 | 2020-09-22 | 清华大学 | 一种基于生物特征标记认证的区块链安全交易方法及装置 |
CN108769054B (zh) * | 2018-06-14 | 2019-05-21 | 北京邮电大学 | 一种基于等值测试承诺的区块链交易验证方法及装置 |
CN109003184A (zh) | 2018-06-22 | 2018-12-14 | 中链科技有限公司 | 区块链资产管理方法及装置 |
US11032068B2 (en) | 2018-06-29 | 2021-06-08 | International Business Machines Corporation | Leakage-deterring encryption for message communication |
US10917233B2 (en) | 2018-10-16 | 2021-02-09 | International Business Machines Corporation | Selective exchange of transaction data |
JP6956062B2 (ja) * | 2018-10-30 | 2021-10-27 | 株式会社Crypto Garage | 取引方法、プログラム、検証装置及び生成方法 |
US11240001B2 (en) | 2018-11-06 | 2022-02-01 | International Business Machines Corporation | Selective access to asset transfer data |
CN110326013A (zh) | 2018-11-07 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 在账户模型下支持公开交易和私有交易的区块链系统 |
MX2019004357A (es) | 2018-11-27 | 2019-08-05 | Alibaba Group Holding Ltd | Sistema y método para protección de la información. |
CA3040791C (en) | 2018-11-27 | 2020-12-15 | Alibaba Group Holding Limited | System and method for information protection |
CA3040601C (en) | 2018-11-27 | 2021-03-30 | Alibaba Group Holding Limited | System and method for information protection |
-
2018
- 2018-11-27 MX MX2019004357A patent/MX2019004357A/es active IP Right Grant
- 2018-11-27 CA CA3040357A patent/CA3040357C/en active Active
- 2018-11-27 PL PL18865370T patent/PL3545644T3/pl unknown
- 2018-11-27 SG SG11201903425PA patent/SG11201903425PA/en unknown
- 2018-11-27 MY MYPI2019002096A patent/MY188126A/en unknown
- 2018-11-27 BR BR112019008036-8A patent/BR112019008036A2/pt not_active IP Right Cessation
- 2018-11-27 KR KR1020197011445A patent/KR102150814B1/ko active IP Right Grant
- 2018-11-27 WO PCT/CN2018/117558 patent/WO2019072277A2/en unknown
- 2018-11-27 US US16/342,653 patent/US11218455B2/en active Active
- 2018-11-27 ES ES18865370T patent/ES2859569T3/es active Active
- 2018-11-27 AU AU2018347195A patent/AU2018347195B2/en active Active
- 2018-11-27 CN CN201880011494.XA patent/CN110337665B/zh active Active
- 2018-11-27 RU RU2019111926A patent/RU2735439C2/ru active
- 2018-11-27 JP JP2019520853A patent/JP6714156B2/ja active Active
- 2018-11-27 EP EP18865370.3A patent/EP3545644B8/en active Active
-
2019
- 2019-04-16 PH PH12019500836A patent/PH12019500836A1/en unknown
- 2019-04-17 ZA ZA2019/02471A patent/ZA201902471B/en unknown
- 2019-12-09 US US16/708,329 patent/US10715500B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2018347195A1 (en) | 2020-06-11 |
AU2018347195B2 (en) | 2020-09-24 |
KR20200066258A (ko) | 2020-06-09 |
BR112019008036A2 (pt) | 2019-11-12 |
EP3545644A4 (en) | 2020-02-19 |
US20200053054A1 (en) | 2020-02-13 |
US20200153801A1 (en) | 2020-05-14 |
PH12019500836A1 (en) | 2019-12-02 |
KR102150814B1 (ko) | 2020-09-02 |
JP6714156B2 (ja) | 2020-06-24 |
CA3040357C (en) | 2021-03-09 |
RU2019111926A3 (es) | 2020-10-19 |
EP3545644B8 (en) | 2021-03-10 |
RU2735439C2 (ru) | 2020-11-02 |
JP2020507222A (ja) | 2020-03-05 |
RU2019111926A (ru) | 2020-10-19 |
US11218455B2 (en) | 2022-01-04 |
MX2019004357A (es) | 2019-08-05 |
CN110337665B (zh) | 2023-06-06 |
US10715500B2 (en) | 2020-07-14 |
CN110337665A (zh) | 2019-10-15 |
WO2019072277A3 (en) | 2019-09-26 |
MY188126A (en) | 2021-11-23 |
EP3545644A2 (en) | 2019-10-02 |
ZA201902471B (en) | 2020-08-26 |
CA3040357A1 (en) | 2019-04-18 |
EP3545644B1 (en) | 2021-01-06 |
SG11201903425PA (en) | 2019-05-30 |
WO2019072277A2 (en) | 2019-04-18 |
PL3545644T3 (pl) | 2021-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2859569T3 (es) | Sistema y método para la protección de información | |
ES2875581T3 (es) | Sistema y método para protección de información | |
ES2833552T3 (es) | Sistema y método para la protección de información | |
ES2881674T3 (es) | Sistema y método para la protección de información | |
ES2863552T3 (es) | Sistema y método para protección de información | |
AU2019101589A4 (en) | System and method for information protection | |
AU2019101582A4 (en) | System and method for information protection | |
AU2019101590A4 (en) | System and method for information protection |