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

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

Info

Publication number
ES2863552T3
ES2863552T3 ES18863802T ES18863802T ES2863552T3 ES 2863552 T3 ES2863552 T3 ES 2863552T3 ES 18863802 T ES18863802 T ES 18863802T ES 18863802 T ES18863802 T ES 18863802T ES 2863552 T3 ES2863552 T3 ES 2863552T3
Authority
ES
Spain
Prior art keywords
types
data
differences
asset types
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18863802T
Other languages
English (en)
Other versions
ES2863552T8 (es
Inventor
Baoli Ma
Wenbin Zhang
Lichun Li
Zheng Liu
Shan Yin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Application granted granted Critical
Publication of ES2863552T3 publication Critical patent/ES2863552T3/es
Publication of ES2863552T8 publication Critical patent/ES2863552T8/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un método implementado por ordenador para protección de información, que comprende: determinar una o más entradas de datos y una o más salidas de datos para una transacción, en la que una o más entradas de datos corresponden respectivamente a uno o más tipos de activos de entrada, y las una o más salidas de datos corresponden respectivamente a uno o más tipos de activos de salida; aplicar hash al uno o más tipos de activos de entrada y los uno o más tipos de activos de salida; generar una pluralidad de valores de compromiso comprometiendo cada uno de los tipos de activos de entrada con hash y los tipos de activos de salida con hash de acuerdo con un esquema de compromiso, en donde el esquema de compromiso se basa en un punto base G y una pluralidad de factores de ocultación que corresponden, respectivamente, a los tipos de activos de entrada. y los tipos de activos de salida; generar una pluralidad de diferencias, respectivamente, entre una pluralidad de pares de valores de compromiso; concatenar la pluralidad de diferencias generada; generar un valor hash haciendo hash de la pluralidad concatenada de diferencias; generar un parámetro R basado al menos en el valor hash y las diferencias entre una pluralidad de pares de factores de ocultación; y enviar la transacción a uno o más nodos en una red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de activos de entrada y los tipos de activos de salida para que los nodos verifiquen la consistencia entre los tipos de activos de entrada y los tipos de activos de salida sin conocimiento de los tipos de activos de entrada y los tipos de activos de salida.

Description

DESCRIPCIÓN
Sistema y método para protección de información
Campo técnico
Esta divulgación generalmente se refiere a métodos y dispositivos para la protección de información.
Antecedentes
La privacidad es importante para las comunicaciones y transferencias de datos entre varios usuarios. Sin protección, los usuarios están expuestos al riesgo de robo de identidad, transferencia ilegal u otras pérdidas potenciales. El riesgo es aún mayor cuando las comunicaciones y transferencias se implementan en línea, debido al libre acceso a la información en línea. Bin Li et al: "RZKPB: A Privacy-preserving Blockchain-Based Fair Transaction Method for Sharing Economy" desvela un procedimiento basado en la cadena de bloques (blockchain) para transacciones de comercio electrónico. El documento US 2016/358165 A1 desvela 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. Miers et al: "Zerocoin: Anonymous Distributed E-Case from Bitcoin" describe un sistema de dinero electrónico distribuido que utiliza técnicas criptográficas para romper el enlace entre transacciones de Bitcoin individuales sin añadir terceros de confianza.
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 comprende: determinar una o más entradas de datos y una o más salidas de datos para una transacción, en donde las una o más entradas de datos corresponden, respectivamente, a uno o más tipos de activos de entrada y las una o más salidas de datos corresponden, respectivamente, a uno o más tipos de activos de salida; aplicar hash al uno o más tipos de activos de entrada y los uno o más tipos de activos de salida; generar una pluralidad de valores de compromiso comprometiendo cada uno de los tipos de activos de entrada con hash y los tipos de activos de salida con hash de acuerdo con un esquema de compromiso, en el que el esquema de compromiso se basa en un punto base G y una pluralidad de factores de ocultación que corresponden, respectivamente, a los tipos de activos de entrada. y los tipos de activos de salida; generar una pluralidad de diferencias, respectivamente, entre una pluralidad de pares de valores de compromiso; concatenar la pluralidad de diferencias generada; generar un valor hash haciendo hash de la pluralidad concatenada de diferencias; generar un parámetro R basado al menos en el valor hash y las diferencias entre una pluralidad de pares de factores de ocultación; y enviar la transacción a uno o más nodos en una red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de activos de entrada y los tipos de activos de salida para que los nodos verifiquen la coherencia entre los tipos de activos de entrada y los tipos de activos de salida sin conocimiento de los tipos de activos de entrada y los tipos de activos de salida.
En algunas realizaciones: las una o más entradas de datos forman una serie de entradas ordenadas a partir de una primera entrada de datos; las una o más salidas de datos forman una serie de salidas ordenadas a partir de una primera salida de datos; y la pluralidad de diferencias comprende una o más diferencias entre los valores de compromiso correspondientes a cada dos entradas de datos vecinas en la serie de entrada ordenada, una o más diferencias entre los valores de compromiso correspondientes a cada dos salidas de datos vecinas en la serie de salida ordenada y una diferencia entre valores de compromiso correspondientes a la primera entrada de datos y la primera salida de datos.
En algunas realizaciones, generar el parámetro R basado al menos en el valor hash y las diferencias entre la pluralidad de pares de los factores de ocultación comprende: generar el parámetro R basado en el valor hash, una o más diferencias entre los factores de ocultación correspondientes a cada dos entradas de datos vecinas en la serie de entrada ordenada, una o más diferencias entre los factores de ocultación correspondientes a cada dos salidas de datos vecinas en la serie de salida ordenada, y una diferencia entre los factores de ocultación correspondientes a la primera entrada de datos y la primera salida de datos.
En algunas realizaciones, el esquema de compromiso comprende un compromiso de Pedersen.
En algunas realizaciones, dos cualesquiera de las una o más entradas de datos o salidas de datos que se comprometen en diferentes puntos de tiempo corresponden a diferentes factores de ocultación.
En algunas realizaciones, enviar la transacción a los uno o más nodos en la red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de activos de entrada y los tipos de activos de salida para que los nodos verifiquen la coherencia entre los tipos de activos de entrada y los tipos de activo de salida sin conocimiento de los tipos de activos de entrada y los tipos de activos de salida comprende hacer que los nodos: obtengan el parámetro R y un punto base G; obtengan una pluralidad de diferencias no verificadas entre la pluralidad de pares de valores de compromiso; concatenen la pluralidad obtenida de diferencias no verificadas; generen un valor hash no verificado mediante el hash de la pluralidad concatenada de diferencias no verificadas; generen una suma C de polinomios basada al menos en la pluralidad obtenida de diferencias no verificadas y el valor hash no verificado; en respuesta a determinar que la suma C es igual a un producto del parámetro R y el punto base G, determinen que los tipos de activos de entrada y los tipos de activos de salida son consistentes; y en respuesta a determinar que la suma C no es igual a un producto del parámetro R y el punto base G, determinen que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes. En algunas realizaciones, el método comprende además hacer que uno o más nodos, en respuesta a la determinación de que los tipos de activos de entrada y los tipos de activos de salida son consistentes, añadir la transacción a una cadena de bloques.
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, se proporciona un sistema para la protección de la información como se define en la reivindicación 9.
Según otro aspecto, un método implementado por ordenador para la protección de información comprende: obtener, por uno o más nodos en una red de cadena de bloques, una pluralidad de valores de compromiso, un punto base G y un parámetro R. La transacción es iniciada por un nodo iniciador y corresponde a las una o más entradas de datos y las una o más salidas de datos. Las una o más entradas de datos corresponden, respectivamente, a uno o más tipos de activos de entrada, y las salidas de datos corresponden, respectivamente, a uno o más tipos de activos de salida, respectivamente. El uno o más tipos de activos de entrada y el uno o más tipos de activos de salida tienen hash, la pluralidad de valores de compromiso son salidas de compromiso de cada uno de los tipos de activos de entrada con hash y los tipos de activos de salida con hash de acuerdo con un esquema de compromiso basado en un punto base G, y una pluralidad de factores de ocultación correspondientes respectivamente a los tipos de activos de entrada y los tipos de activos de salida. El uno o más tipos de activos de entrada y el uno o más tipos de activos de salida no se desvelan a los uno o más nodos. El método de protección de la información comprende además: generar, mediante uno o más nodos, una pluralidad de diferencias no verificadas entre una pluralidad de pares de valores de compromiso; concatenar la pluralidad de diferencias no verificadas; generar, por el uno o más nodos, un valor hash no verificado, obteniendo el hash de la pluralidad concatenada de diferencias no verificadas; generar, por uno o más nodos, una suma C de polinomios basada al menos en la pluralidad de diferencias no verificadas y el valor hash no verificado; determinar, por uno o más nodos, si la suma C es igual a un producto del parámetro R y el punto base G; y en respuesta a determinar que la suma C es igual al producto del parámetro R y el punto base G, determinar que los tipos de activos de entrada y los tipos de activos de salida son consistentes; y en respuesta a determinar que la suma C no es igual al producto del parámetro R y el punto base G, determinar que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes.
En algunas realizaciones, el método comprende además: en respuesta a determinar que los tipos de activos de entrada y los tipos de activos de salida son consistentes, añadir, por uno o más nodos, la transacción a la red de cadena de bloques; y en respuesta a determinar que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes, rechazar, por uno o más nodos, que la transacción se añada a la red de cadena de bloques.
En algunas realizaciones, las una o más entradas de datos forman una serie de entradas ordenadas a partir de una primera entrada de datos; las una o más salidas de datos forman una serie de salidas ordenadas a partir de una primera salida de datos; y la pluralidad de diferencias no verificadas comprende una pluralidad de diferencias entre los valores de compromiso correspondientes a cada dos entradas de datos vecinas en la serie de entradas ordenadas, una o más diferencias entre los valores de compromiso correspondientes a cada dos salidas de datos vecinas en la serie de salidas ordenadas y una diferencia entre los valores de compromiso correspondientes a la primera entrada de datos y la primera salida de datos.
Según otro aspecto, se proporciona un medio de almacenamiento no transitorio legible por ordenador como se define en la reivindicación 14.
Según otro aspecto, se proporciona un sistema para la protección de la información como 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.
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
La Cadena de bloques puede considerarse como una base de datos descentralizada, comúnmente conocida como un libro de contabilidad distribuido porque la operación es realizada por varios nodos (por ejemplo, dispositivos informáticos) en una red. Cualquier información puede escribirse en la cadena de bloques y guardarse o leerse de ella. Cualquiera puede configurar un servidor y unirse a la red de cadena de bloques para convertirse en un nodo. Cualquier nodo puede aportar potencia de cálculo para mantener la cadena de bloques mediante la realización de cálculos complejos, tal como el cálculo de hash para añadir un bloque a una cadena de bloques actual y el bloque añadido puede contener varios tipos de datos o información. El nodo que aportó la potencia de cálculo para el bloque añadido puede ser recompensado con una unidad de valor (por ejemplo, una unidad de moneda digital). Dado que la cadena de bloques no tiene un nodo central, cada nodo es igual y contiene toda la base de datos de la cadena de bloques.
Los nodos son, por ejemplo, dispositivos informáticos o grandes sistemas informáticos que admiten la red de cadena de bloques y la mantienen funcionando sin problemas. Los nodos pueden ser ejecutados por individuos o grupos de personas que contribuyen con dinero a la compra de potentes sistemas informáticos, conocidos como plataformas de minería. Hay dos tipos de nodos, nodos completos y nodos ligeros. Los nodos completos mantienen una copia completa de la cadena de bloques. Los nodos completos en la red de cadena de bloques validan las transacciones y los bloques que reciben y los transmiten a los pares conectados para proporcionar una verificación de consenso de las transacciones. Los nodos ligeros, por otro lado, solo descargan una fracción de la cadena de bloques. Por ejemplo, los nodos ligeros se utilizan para transacciones de moneda digital. Un nodo ligero se comunicará con un nodo completo cuando desee realizar una transacción.
Esta propiedad de descentralización puede ayudar a prevenir la aparición de un centro de gestión en una posición controlada. Por ejemplo, el mantenimiento de la cadena de bloques bitcoin lo realiza la red de nodos de comunicación del software bitcoin en el área de ejecución. Es decir, en lugar de bancos, instituciones o administradores en el sentido tradicional, existen múltiples intermediarios en forma de servidores informáticos que ejecutan software de bitcoin. Estos servidores informáticos forman una red conectada a través de Internet, en la que cualquiera puede unirse potencialmente a la red. Las transacciones acomodadas por la red pueden ser de una forma: "el usuario A quiere enviar Z bitcoins al usuario B", en el que las transacciones se transmiten a la red utilizando aplicaciones de software fácilmente disponibles. Los servidores informáticos funcionan como servidores de bitcoins que se pueden utilizar para validar estas transacciones financieras, añadir un registro de ellas a su copia del libro de contabilidad y luego transmitir estas adiciones al libro de contabilidad a otros servidores de la red.
El mantenimiento de la cadena de bloques se conoce como "minería", y quienes realizan dicho mantenimiento son recompensados con bitcoins recién creadas y tarifas de transacción como se ha mencionada anteriormente. Por ejemplo, los nodos pueden determinar si las transacciones son válidas basándose en un conjunto de reglas que la red de cadena de bloques ha acordado. Los mineros pueden estar ubicados en cualquier continente y procesar pagos verificando que cada transacción sea válida y añadiéndola a la cadena de bloques. Dicha verificación se logra a través del consenso proporcionado por una pluralidad de mineros y asume que no hay una colusión sistemática. Al final, todos los datos serán consistentes, porque el cálculo debe cumplir ciertos requisitos para ser válido y todos los nodos se sincronizarán para garantizar que la cadena de bloques sea consistente.
A través del proceso de minería, las transacciones, tales como las transferencias de activos, se verifican y se añaden a una cadena creciente de bloques de una cadena de bloques mediante nodos de red. Al atravesar toda la cadena de bloques, la verificación puede incluir, por ejemplo, si la parte que paga tiene acceso al activo que se transfiere, si el activo se ha gastado antes, si la cantidad de la transferencia es correcta, etc. Por ejemplo, en una transacción hipotética ( por ejemplo, una transacción de bitcoins bajo un modelo UTXO (salida de transacción no gastada), firmada por un emisor, la transacción propuesta puede transmitirse a la red de cadena de bloques para minería. Un minero debe comprobar si la transacción es elegible para ejecutarse de acuerdo con el historial de cadena de bloques. Si el saldo de la cartera del emisor tiene fondos suficientes de acuerdo con el historial de cadena de bloques existente, la transacción se considera válida y se puede añadir al bloque. Una vez verificadas, las transferencias de activos pueden incluirse en el siguiente bloque que se añadirá a la cadena de bloques.
Un bloque es muy parecido a un registro de base de datos. Cada vez que se escriben datos se crea un bloque. Estos bloques están unidos y protegidos mediante criptografía para convertirse en redes interconectadas. Cada bloque está conectado al bloque anterior, que también es el origen del nombre "cadena de bloques". Cada bloque generalmente contiene el hash criptográfico del bloque anterior, el tiempo de generación y los datos reales.
Por ejemplo, cada bloque contiene dos partes: un encabezamiento del bloque para registrar el valor de la característica del bloque actual y un cuerpo para registrar los datos reales (por ejemplo, datos de transacciones). La cadena de bloques está unida a través de los encabezamientos de bloque. Cada encabezamiento de bloque puede contener múltiples valores de características, tal como versión, hash de bloque anterior, nodo raíz (raíz Merkle), marca de tiempo, objetivo de dificultad y nonce. El hash del bloque anterior contiene no solo la dirección del bloque anterior, sino también el hash de los datos dentro del bloque anterior, lo que hace que las cadenas de cadena de bloques sean inmutables. El nonce es un número que, cuando se incluye, produce un hash con un número especificado de bits cero iniciales.
Para la minería, el hash de los contenidos del bloque nuevo es captado por un nodo. El nonce (por ejemplo, cadena aleatoria) se añade al hash para obtener una nueva cadena. Se realiza de nuevo un hash sobre la nueva cadena. A continuación, el hash final se compara con el objetivo de dificultad (por ejemplo, un nivel) y se determina si el hash final es realmente menor que el objetivo de dificultad o no. Si no es así, se cambia el nonce y el proceso se repite nuevamente. En caso afirmativo, el bloque se añade a la cadena y el libro de contabilidad público se actualiza y se alerta de la adición. El nodo responsable de la adición con éxito es recompensado con bitcoins, por ejemplo, añadiendo una transacción de recompensa a sí mismo en el nuevo bloque (conocido como generación de base de monedas).
Es decir, para cada salida "Y", si k se elige de una distribución con alta minentropía, no es factible encontrar una entrada x tal que H(k|x)= Y, donde K es el nonce, x es el hash del bloque, Y es el objetivo de dificultad e "I" denota concatenación. Debido a que los hash criptográficos son esencialmente aleatorios, en el sentido de que su salida no se puede predecir a partir de sus entradas, solo hay una forma conocida de encontrar el nonce: probar números enteros uno tras otro, por ejemplo 1, luego 2, luego 3, y así sucesivamente, lo que puede conocerse como fuerza bruta. Cuanto mayor sea el número de ceros iniciales, más tiempo tomará en promedio encontrar un nonce Y necesario. En un ejemplo, el sistema de bitcoins ajusta constantemente el número de ceros iniciales, de modo que el tiempo promedio para encontrar un nonce es de aproximadamente diez minutos. De esa manera, a medida que las capacidades de procesamiento del hardware informático aumentan con el tiempo, a lo largo de los años, el protocolo de bitcoin simplemente requerirá más bits ceros iniciales para que la minería siempre tarde aproximadamente diez minutos en implementarse.
Como se describe, el hash es una piedra angular importante para la cadena de bloques. El algoritmo hash puede entenderse como una función que comprime mensajes de cualquier longitud en un resumen de mensajes de longitud fija. Los más utilizados son MD5 y SHA. En algunas realizaciones, la longitud de hash de la cadena de bloques es de 256 bits, lo que significa que, independientemente del contenido original, finalmente se calcula un número binario de 256 bits. Y se puede garantizar que el hash correspondiente sea único siempre que el contenido original sea diferente. Por ejemplo, el hash de la cadena "123" es a8fdc205a9f19cc1 c7507a60c4f01 b13d11 d7fd0 (hexadecimal), que tiene 256 bits cuando se convierte a binario y solo "123" tiene este hash. El algoritmo hash en la cadena de bloques es irreversible, es decir, el cálculo directo es fácil (de "123" a a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b1 3d11d7fd0) y el cálculo inverso no se puede realizar incluso si se agotan todos los recursos informáticos. Por tanto, el hash de cada bloque de la cadena de bloques es único.
Además, si cambia el contenido del bloque, cambiará su hash. El bloque y el hash están en correspondencia uno a uno, y el hash de cada bloque se calcula específicamente para el encabezamiento del bloque. Es decir, los valores de las características de los encabezamientos de bloque se conectan para formar una cadena larga y luego se calcula el hash para la cadena. Por ejemplo, "Hash = SHA256 (encabezamiento de bloque)" es una fórmula de cálculo de hash de bloque, SHA256 es un algoritmo de hash de la cadena de bloques aplicado al encabezamiento de bloque. El hash está determinado de forma única por el encabezamiento del bloque y no por el cuerpo del bloque. Como se ha mencionado anteriormente, el encabezamiento del bloque contiene una gran cantidad de contenido, incluido el hash del bloque actual y el hash del bloque anterior. Esto significa que si cambia el contenido del bloque actual, o si cambia el hash del bloque anterior, se producirá un cambio de hash en el bloque actual. Si el pirata informático modifica un bloque, el hash de ese bloque cambia. Para que un bloque posterior se conecte al bloque modificado, el pirata informático debe modificar todos los bloques posteriores a su vez, porque el siguiente bloque debe contener el hash del bloque anterior. De lo contrario, el bloque modificado se separará de la cadena de bloques. Por motivos de diseño, los cálculos de hash requieren mucho tiempo y es casi imposible modificar varios bloques en un período corto de tiempo a menos que el pirata informático haya dominado más del 51 % de la potencia de cálculo de toda la red. Por lo tanto, la cadena de bloques garantiza su propia fiabilidad y, una vez que se escriben los datos, no se pueden manipular.
Una vez que el minero encuentra el hash (es decir, una firma o solución elegible) para el nuevo bloque, el minero transmite esta firma a todos los demás mineros (nodos de la cadena de bloques). A continuación, otros mineros verifican a su vez si esa solución se corresponde con el problema del bloqueo del emisor (es decir, determinar si la entrada hash realmente da como resultado esa firma). Si la solución es válida, los otros mineros confirmarán la solución y acordarán que el nuevo bloque se puede agregar a la cadena de bloques. Así se alcanza el consenso del nuevo bloque. Esto también se conoce como "prueba de trabajo". El bloque para el que se ha alcanzado el consenso ahora se puede añadir a la cadena de bloques y se transmite a todos los nodos de la red junto con su firma. Los nodos aceptarán el bloque y lo guardarán en sus datos de transacción siempre que las transacciones dentro del bloque se correspondan correctamente con los saldos actuales de la cartera (historial de transacciones) en ese momento. Cada vez que se añade un nuevo bloque encima de este bloque, la adición también cuenta como otra "confirmación" para los bloques anteriores. Por ejemplo, si una transacción está incluida en el bloque 502 y la cadena de bloques tiene 507 bloques de longitud, significa que la transacción tiene cinco confirmaciones (correspondientes a los bloques 507 a 502). Cuantas más confirmaciones tenga la transacción, más difícil será modificarla para los atacantes.
En algunas realizaciones, un sistema de activos de la cadena de bloques de ejemplo utiliza criptografía de clave pública, en la que se generan dos claves criptográficas, una clave pública y una clave privada. La clave pública se puede considerar como un número de cuenta y la clave privada como credenciales de propiedad. Por ejemplo, una cartera de bitcoin es una colección de claves públicas y privadas. La propiedad de un activo (por ejemplo, moneda digital, activo en efectivo, acciones, capital propio, bonos) asociado con una determinada dirección de activo se puede demostrar con el conocimiento de la clave privada que pertenece a la dirección. Por ejemplo, el software de cartera de bitcoin, a veces denominado "software de cliente bitcoin", permite a un usuario determinado realizar transacciones con bitcoins. Un programa de cartera genera y almacena claves privadas y se comunica con sus pares en la red bitcoin.
En las transacciones de cadena de bloques, los pagadores y beneficiarios se identifican en la cadena de bloques por sus claves criptográficas públicas. Por ejemplo, la mayoría de las transferencias de bitcoins contemporáneas son de una clave pública a una clave pública diferente. En la práctica, los hash de estas claves se utilizan en la cadena de bloques y se denominan "direcciones bitcoin". En principio, si un atacante hipotético, la persona S pudiera robarle dinero a la persona A simplemente añadiendo transacciones al libro de contabilidad de cadena de bloques como "la persona A le paga a la persona S 100 bitcoins", usando las direcciones de bitcoin de los usuarios en lugar de sus nombres. El protocolo de bitcoin previene este tipo de robo al requerir que cada transferencia sea firmada digitalmente con la clave privada del pagador, y solo las transferencias firmadas se pueden añadir al libro de contabilidad de cadena de bloques. Dado que la persona S no puede falsificar la firma de la persona A, la persona S no puede defraudar a la persona A añadiendo una entrada a la cadena de bloques equivalente a "la persona A le paga a la persona S 200 bitcoins". Al mismo tiempo, cualquier persona puede verificar la firma de la persona A utilizando su clave pública y, por lo tanto, que ha autorizado cualquier transacción en la cadena de bloques donde él/ella es el pagador.
En el contexto de la transacción de bitcoins, para transferir algunos bitcoins al usuario B, el usuario A puede construir un registro que contenga información sobre la transacción a través de un nodo. El registro puede estar firmado con la clave de firma del usuario A (clave privada) y contiene la clave de verificación pública del usuario A y la clave de verificación pública del usuario B. La firma se utiliza para confirmar que la transacción proviene del usuario y también evita que alguien la altere una vez que se haya emitido. El registro incluido con otro registro que tuvo lugar en la misma ventana de tiempo en un nuevo bloque puede transmitirse a todos los nodos. Al recibir los registros, los nodos completos pueden trabajar para incorporar los registros en la base de todas las transacciones que alguna vez hayan tenido lugar en el sistema cadena de bloques, añadir el nuevo bloque a una cadena de bloques previamente aceptada a través del proceso de minería descrito anteriormente y validar el bloque añadido contra las reglas de consenso de la red.
El activo del usuario A que se transferirá puede estar en forma de UTXO (salida de transacción no gastada). UTXO es un modelo de objeto de cadena de bloques. Bajo UTXO, los activos están representados por salidas de transacciones de cadena de bloques que no se han gastado, que se pueden usar como entradas en nuevas transacciones. Para gastar (realizar transacciones) el activo, el usuario debe firmar con la clave privada. Bitcoin es un ejemplo de moneda digital que usa el modelo UTXO. En el caso de una transacción de cadena de bloques válida, las salidas no gastadas se pueden utilizar para realizar transacciones adicionales. En algunas realizaciones, solo las salidas no gastadas pueden usarse en transacciones adicionales para evitar el doble gasto y el fraude. Por esta razón, las entradas en una cadena de bloques se eliminan cuando se produce una transacción, mientras que al mismo tiempo, las salidas se crean en forma de UTXO. Estas salidas de transacciones no gastadas pueden ser utilizadas (por los titulares de claves privadas, por ejemplo, personas con carteras de moneda digital) con el propósito de transacciones futuras.
Dado que la cadena de bloques y otros libros de contabilidad similares son completamente públicos, la cadena de bloques en sí no tiene protección de privacidad. El carácter público de la red P2P significa que, si bien quienes la utilizan no están identificados por su nombre, es factible vincular transacciones a personas y empresas. Por ejemplo, en las remesas transfronterizas o en la cadena de suministro, los tipos de activo tienen un nivel extremadamente alto de valor de protección de la privacidad, porque con la información del tipo de activo, es posible deducir la ubicación y las identidades específicas de las partes de la transacción. El tipo de activo puede comprender, por ejemplo, dinero, moneda digital, contrato, escritura, historial médico, detalle del cliente, acciones, bonos, derechos o cualquier otro activo que pueda describirse en forma digital. Aunque el modelo UTXO proporciona anonimato a las identidades y las cantidades de las transacciones, y se ha aplicado a Monero y Zcash, el tipo de activo de la transacción permanece desprotegido. 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 del tipo de activo en las transacciones. Los sistemas y métodos desvelados se pueden integrar en el modelo UTXO para proporcionar protección de privacidad para diversos de contenidos de transacciones.
Durante las transacciones, la protección de la información es importante para asegurar la privacidad del usuario y el tipo de activo de la transacción es un tipo de información que ha carecido de protección. La figura 1 muestra un sistema 100 de ejemplo para protección de información, de acuerdo con diversas realizaciones. Como se muestra, una red de cadena de bloques puede comprender una pluralidad de nodos (por ejemplo, nodos completos implementados en servidores, ordenadores, etc.). Para algunas plataformas de cadena de bloques (por ejemplo, NEO), los nodos completos con cierto nivel de poder de voto pueden denominarse nodos de consenso, que asumen la responsabilidad de la verificación de la transacción. En esta divulgación, los nodos completos, los nodos de consenso u otros nodos equivalentes pueden verificar la transacción.
Asimismo, como se muestra en la figura 1, el usuario A y el usuario B pueden utilizar los dispositivos correspondientes, como ordenadores portátiles y teléfonos móviles, que sirven como nodos ligeros, para realizar transacciones. Por ejemplo, el usuario A puede querer realizar transacciones con el usuario B transfiriendo algún activo de la cuenta del usuario A a la cuenta del usuario B. El usuario A y el usuario B pueden usar los dispositivos correspondientes instalados con un software de cadena de bloques apropiado para la transacción. El dispositivo del usuario A puede denominarse nodo iniciador A que inicia una transacción con el dispositivo del usuario B denominado nodo receptor B. El nodo A puede acceder a la cadena de bloques a través de la comunicación con el nodo 1 y el nodo B puede acceder a la cadena de bloques a través de la comunicación con el nodo 2. Por ejemplo, el nodo A y el nodo B pueden enviar transacciones a la cadena de bloques a través del nodo 1 y el nodo 2 para solicitar que se añadan las transacciones a la cadena de bloques. Fuera de la cadena de bloques, el nodo A y el nodo B pueden tener otros canales de comunicación. Por ejemplo, el nodo A y el nodo B pueden obtener la clave pública del otro a través de la comunicación regular por Internet.
Cada uno de los nodos de la figura 1 puede comprender un procesador y un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que el procesador debe ejecutar para hacer que el nodo (por ejemplo, el procesador del nodo) realice varias etapas para la protección de la información descrita en el presente documento. Cada nodo puede instalarse con un software (por ejemplo, un programa de transacciones) y/o hardware (por ejemplo, cables, conexiones inalámbricas) para comunicarse con otros nodos y/u otros dispositivos. Más adelante se describen más detalles del hardware y software del nodo con referencia a la figura 5.
La figura 2 ilustra etapas de ejemplo para el inicio y la verificación de transacciones, de acuerdo con varias realizaciones.
El inicio de la transacción puede ser implementado por el nodo iniciador. En algunas realizaciones, cada tipo de tipo de activo puede mapearse o asignarse a una identificación única. Por ejemplo, la identificación única puede ser un número de serie sn calculado de la siguiente manera:
Etapa 1.2 sn = Hash (tipo de activo)
donde Hash () es una función hash. Además, el tipo de activo puede cifrarse mediante un esquema de compromiso (por ejemplo, compromiso de Pedersen) de la siguiente manera:
Etapa 1.3 C (sn) = r * G sn * H
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, sn es el valor del compromiso, C(sn) 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). El nodo emisor puede haber publicado H y G en todos los nodos. 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 puedan cambiar después. Si una parte solo conoce el valor de compromiso (por ejemplo, C(sn)), no se pueden determinar a qué valores de datos subyacentes (por ejemplo, sn) se han estado comprometiendo.
Tanto los datos (por ejemplo, sn) 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, sn) 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 sn y un compromiso de ese valor C (sn) no deberían ser relacionados. Es decir, C(sn) no debería revelar información sobre sn. Con C(sn), G y H conocidos, es casi imposible conocer sn 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.
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 una clave de ocultación establecido como la suma de las claves de ocultación): C(BF1, datos1) C(BF2, datos2) == C(BF1+BF2, datos1+datos2); C(BF1, datos1) - C(BF1, datos1) == 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(modn))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 sn está comprometido, se puede obtener el esquema de compromiso descrito anteriormente C(sn) = rxG snxH. 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 sn y el factor r que completa la ecuación del compromiso. La parte que desee abrir el valor C(sn) volverá a calcular el compromiso para verificar que el valor original compartido realmente coincide con el compromiso C(sn) 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 C(sn).
En algunas realizaciones, al incorporar el método de protección de información de tipo de activo bajo el modelo UTXO, la consistencia del tipo de activo de entrada (sn_in) y el tipo de activo de la salida (sn_out) de una transacción puede verificarse para determinar la validez de la transacción. Por ejemplo, los nodos de cadena de bloques pueden rechazar transacciones o bloques que no pasen la prueba de consistencia hat sn_in = = sn_out. Dado que el tipo de activo sn está cifrado (por ejemplo, mediante compromiso de Pedersen), la prueba de coherencia es verificar si C(sn_in) = = C (sn_out).
En algunas realizaciones, como se muestra en la figura 2, etapa 1, una transacción de tipo UTXO puede comprender m entradas (por ejemplo, activos disponibles) y n salidas (por ejemplo, activos transferidos y activos restantes). Las entradas se pueden indicar como sn_in_k, donde 1 <k< m y las salidas se pueden indicar como sn_out_k, donde 1 <k< n. Algunas de las salidas pueden transferirse al nodo receptor B, mientras que las salidas restantes pueden volver al nodo iniciador A. Por ejemplo, en una transacción hipotética, el usuario A puede poseer un total de 5 bitcoins y 10 acciones en su billetero, y para entradas de transacciones, sn_in_1 = Hash (bitcoin) y sn_in_2 = Hash (acciones). Si el usuario A quiere transferir 3 bitcoins al usuario B, para salidas de transacción, sn_out_1 = Hash (bitcoin), sn_out_2 = Hash (bitcoin) y sn_out_3 = Hash (acciones), por lo que se direcciona una de las salidas de bitcoin (3 bitcoins) al usuario B, y la otra salida de bitcoin (2 bitcoins) y la salida de acciones se direccionan al usuario A.
Por lo tanto, en algunas realizaciones, el tipo de activo correspondiente a la entrada puede estar cifrado en la forma: C_in_k = r_in_kxG sn_in_kxH, donde 1 <k< m
El tipo de activo de salida corresponde a la forma de cifrado:
C_out_k = r_out_kxG sn_out_kxH, donde 1 <k< n
Con los tipos de activos ocultos, el iniciador de la transacción debe demostrar a los nodos (por ejemplo, nodos completos, nodos de consenso) que los tipos de activos de entrada de la transacción son, respectivamente, consistentes con los tipos de activos de salida. En consecuencia, los nodos completos pueden verificar si la transacción es válida.
En algunas realizaciones, para iniciar una transacción de tipo UTXO con el tipo de activo oculto por el compromiso de Pedersen, el iniciador de la transacción puede seleccionar entradas y salidas apropiadas para realizar las etapas 2.1 a 2.5 a continuación (correspondientes a la Figura 2, etapa 2):
Etapa 2.1 Calcular
C_1 = C_in_1 - C_in_2,
C 2 = C i n 2 - C in 3,
C_(m-1) = C_in_(m-1) - C_in_m,
C_m = C_out_1 - C_out_2,
C_(m+1) = C_out_2 - C_out_3,
C_(m+n-2) = C_out_(n-1) - C_out_n,
C_(m+n-1) = C_in_1 - C_out_1;
Etapa 2.2 Calcular x = Hash (C_1 || C_2 || C_3 || ... || C_ (m n-1)), donde "||" representa la concatenación;
Etapa 2.3 Calcular C = C_1 x x C_2 x2 x C_3 ... x(m+n'2) x C_(m+n-1). Obsérvese que los términos polinomiales pueden corresponder a los de la Etapa 2.1;
Etapa 2.4 Calcular R = (r_in_1 - r_in_2) x x (r_in_2 - r_in_3) x2 x (r_in_3 - r_in_4) ... x(m+n'2) x (r_in_1 -r_out_1). Obsérvese que los términos polinomiales pueden corresponder a los de la etapa 2.1, por ejemplo, (r_in_1
- r_in_2) corresponde a C_in_1 - C_in_2;
Etapa 2.5 Publicar R en los nodos, por ejemplo, en una transmisión de información de transacciones.
En algunas realizaciones, para verificar que los tipos de activos de entrada y los tipos de activos de salida sean consistentes, debe haber C = R x G. Por ejemplo, durante la verificación de la transacción, los nodos realizan las etapas 3.1 a 3.3 (correspondientes a la figura 2, etapas 3.1-3.3) a continuación para verificar si el tipo de activo de la transacción es consistente:
Etapa 3.1 Calcular x = Hash (C_1 || C_2 || C_3 l|...||C_(m+n-1));
Etapa 3.2 Calcular C = C_1 x x C_2 x2 x C_3 ... x(m+n'2) x C_(m+n-1);
Etapa 3.3 Verificar si C = R x G. Si C = R x G, el tipo de activo es consistente; de lo contrario, el tipo de activo no es consistente y la transacción se rechaza. En algunas realizaciones, el C(sn) puede publicarse en los nodos y los nodos conocen los algoritmos de las Etapas 2.1-2.3 (por ejemplo, incluido el nodo que envía la transacción y los nodos que verifican la transacción). Por lo tanto, los nodos que verifican la transacción pueden llevar a cabo las Etapas 3.1 a 3.3 en consecuencia para realizar la verificación. Por lo tanto, la transacción rechazada no se añadirá a la cadena de bloques. Como se muestra en la etapa 4 de la figura 2, según la determinación de la consistencia, los nodos pueden determinar si añadir la transacción a la cadena de bloques o rechazar la adición de la transacción.
Como tal, un iniciador de transacciones puede enviar información para los nodos de cadena de bloques para verificar la transacción en función de la consistencia de los tipos de activos que entran y salen de la transacción sin revelar los tipos de activos reales y sin la capacidad de alterar la información enviada. La asignación de números de serie (por ejemplo, hashes) para cada tipo de activo amplía y aleatoriza la representación de cada tipo de activo, lo que dificulta que el iniciador de la transacción falsifique un tipo de activo para pasar la verificación. Además, debido a la existencia del número aleatorio r, el mismo tipo de activo cifrado en diferentes momentos no es el mismo. La aplicación del compromiso de Pedersen para cifrar el hash del tipo de activo mejora la protección de la privacidad del tipo de activo a un nivel aún mayor. Por lo tanto, a través de las etapas 2.1 a 2.5, el iniciador de la transacción puede demostrar a los otros nodos que los tipos de activos de la transacción son válidos sin revelar los tipos de activos. Por ejemplo, se obtienen las diferencias entre los tipos de activos de entrada y salida y, en función de las cuales, se construyen polinomios, de modo que el iniciador de la transacción pueda pasar los tipos de activos transformados a los otros nodos para demostrar la consistencia de los tipos de activos y la validez de la transacción. Al mismo tiempo, se puede ignorar la probabilidad de que el iniciador de la transacción u otro nodo pueda falsificar el tipo de activo, porque x se calcula mediante la obtención de hash para que sirva como base de varios exponenciales en polinomios. Además, la divulgación de R permite que los otros nodos verifiquen que los tipos de activos en la transacción sean consistentes sin conocer los tipos de activos a través de las etapas 3.1 a 3.3. Por lo tanto, con los sistemas y métodos desvelados, la información de datos puede ser verificada por terceros mientras se mantiene una protección de privacidad excepcional.
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 implementarse mediante uno o más componentes (por ejemplo, el nodo A) del sistema 100 de la figura 1. El método 300 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones para ser ejecutadas por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 300. Se pretende que las operaciones del método 300 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 300 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 301 comprende: determinar una o más entradas de datos y una o más salidas de datos para una transacción, en la que las entradas de datos están asociadas con tipos de datos de entrada respectivamente, y las salidas de datos están asociadas con tipos de datos de salida respectivamente. Véase, por ejemplo, la etapa 1 en la figura 2. En algunas realizaciones, la transacción se basa al menos en un modelo de salidas de transacciones no gastadas (UTXO); y las entradas y salidas de datos comprenden los tipos de uno o más activos que experimentan la transacción entre un emisor (nodo iniciador) y un receptor (nodo receptor). El tipo de activo puede comprender, por ejemplo, dinero, moneda digital, contrato, escritura, historial médico, detalle del cliente, acciones, bonos, derechos o cualquier otro activo que pueda describirse en forma digital.
El bloque 302 comprende: cifrar los tipos de datos de entrada y los tipos de datos de salida. Véase, por ejemplo, la etapa 1.2 descrita anteriormente. En algunas realizaciones, cifrar los tipos de datos de entrada y los tipos de datos de salida comprende cifrar cada uno de los tipos de datos de entrada y los tipos de datos de salida con una función hash u otra función unidireccional.
El bloque 303 comprende: comprometer cada uno de los tipos de datos de entrada cifrados y los tipos de datos de salida cifrados con un esquema de compromiso para obtener los valores de compromiso correspondientes. Véase, por ejemplo, la etapa 1.3 descrita anteriormente. En algunas realizaciones, el esquema de compromiso comprende un compromiso de Pedersen. En algunas realizaciones, el esquema de compromiso comprende al menos un factor de ocultación; y el factor de ocultación cambia con el tiempo de compromiso de los tipos de datos de entrada cifrados y los tipos de datos de salida cifrados. Es decir, incluso los mismos datos (por ejemplo, el mismo tipo de datos) comprometidos en diferentes momentos serían valores de compromiso diferentes debido al factor de ocultación cambiante.
El bloque 304 comprende: obtener al menos un parámetro R basado al menos en los valores de compromiso. Véase, por ejemplo, las etapas 2.1 a 2.4 descritas anteriormente. En algunas realizaciones, el esquema de compromiso comprende una pluralidad de factores de ocultación correspondientes, respectivamente, a los tipos de datos de entrada y los tipos de datos de salida (véase, por ejemplo, r_in_k y r_out_k); y obtener al menos el parámetro R basado al menos en los valores de compromiso comprende: obtener diferencias entre pares de valores de compromiso (véase, por ejemplo, la etapa 2.1 para varios pares de valores de compromiso entre los tipos de activos de entrada y los tipos de activos de salida, para los cuales se pueden obtener las diferencias); concatenar las diferencias obtenidas (véase, por ejemplo, la etapa 2.2); cifrar las diferencias concatenadas con una función hash para obtener un valor de cifrado x (véase, por ejemplo, la etapa 2.2); y obtener el parámetro R basado al menos en el valor de cifrado x y las diferencias entre pares de factores de ocultación (véase, por ejemplo, la etapa 2.4).
El bloque 305 comprende: enviar la transacción a uno o más nodos en una red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de datos de entrada y tipos de datos de salida para los nodos para verificar la consistencia entre los tipos de datos de entrada y los tipos de datos de salida. En algunas realizaciones, se hace que los nodos verifiquen la consistencia entre los tipos de datos de entrada y los tipos de datos de salida sin conocer los tipos de datos de entrada y los tipos de datos de salida.
En algunas realizaciones, enviar la transacción a uno o más nodos en la red de cadena de bloques con divulgación del parámetro R y sin revelación de los tipos de datos de entrada y tipos de datos de salida para que los nodos verifiquen la consistencia entre los tipos de datos de entrada y los datos de salida. tipos comprende enviar la transacción a uno o más nodos en la red de cadena de bloques con revelación del parámetro R y sin revelación de los tipos de datos de entrada y los tipos de datos de salida para hacer que los nodos: obtengan el parámetro R y un punto base G (véase, por ejemplo, el G en la etapa 3.1. H y G pueden ser parámetros públicos disponibles para todos los nodos); obtengan diferencias entre pares de los valores de compromiso de los tipos de activos de entrada y los tipos de activos de salida (véase, por ejemplo, una etapa similar a la etapa 2.1); concatenen las diferencias obtenidas (véase, por ejemplo, la etapa 3.1); cifren las diferencias concatenadas con una función hash para obtener un valor de cifrado x (véase, por ejemplo, la etapa 3.1); obtengan una suma C de polinomios basada al menos en las diferencias obtenidas y el valor de cifrado x (véase, por ejemplo, la etapa 3.2); en respuesta a determinar que la suma C es igual a un producto del parámetro R y el punto base G, determinar que los tipos de datos de entrada y los tipos de datos de salida son consistentes y añadir la transacción a la cadena de bloques (véase, por ejemplo, la etapa 3.3); y en respuesta a determinar que la suma C no es igual a un producto del parámetro R y el punto base G, determinar que los tipos de datos de entrada y los tipos de datos de salida son inconsistentes y rechazar la adición de la transacción a la cadena de bloques (véase, por ejemplo, la etapa 3.3).
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 implementarse mediante uno o más componentes (por ejemplo, el nodo i) del sistema 100 de la figura 1. El nodo i puede comprender un nodo completo implementado en un servidor. El método 400 puede ser implementado por un sistema o dispositivo (por ejemplo, ordenador) que comprende un procesador y un medio de almacenamiento no transitorio legible por ordenador (por ejemplo, memoria) que almacena instrucciones para ser ejecutadas por el procesador para hacer que el sistema o dispositivo (por ejemplo, el procesador) realice el método 400. Se pretende que las operaciones del método 400 que se presentan a continuación sean ilustrativas. Dependiendo de la implementación, el método 400 de ejemplo puede incluir etapas adicionales, menos o alternativas realizadas en varios órdenes o en paralelo.
El bloque 401 comprende: obtener, por uno o más nodos (por ejemplo, nodos de consenso) en una red de cadena de bloques, una transacción iniciada por un nodo iniciador. La transacción está asociada con una o más entradas de datos y una o más salidas de datos. Las entradas de datos están asociadas respectivamente con los tipos de datos de entrada, y las salidas de datos están asociadas respectivamente con los tipos de datos de salida, respectivamente. Los tipos de datos de entrada y los tipos de datos de salida están cifrados y comprometidos con un esquema de compromiso para obtener los valores de compromiso correspondientes. Los tipos de datos de entrada y los tipos de datos de salida no se revelan a los uno o más nodos.
El bloque 402 comprende: verificar, mediante uno o más nodos, la consistencia entre los tipos de datos de entrada y los tipos de datos de salida. En algunas realizaciones, verificar la consistencia entre los tipos de datos de entrada y los tipos de datos de salida comprende: obtener un parámetro R y un punto base G (véase, por ejemplo, el R en la etapa 2.4 y 2.5, el G en la etapa 3.1); obtener diferencias entre pares de los valores de compromiso de los tipos de activos de entrada y los tipos de activos de salida (véase, por ejemplo, una etapa similar a la etapa 2.1); concatenar las diferencias obtenidas (véase, por ejemplo, la etapa 3.1); cifrar las diferencias concatenadas con una función hash para obtener un valor de cifrado x (véase, por ejemplo, la etapa 3.1); obtener una suma C de polinomios basada al menos en las diferencias obtenidas y el valor de cifrado x (véase, por ejemplo, la etapa 3.2); y determinar si la suma C es igual a un producto del parámetro R y el punto base G (véase, por ejemplo, la etapa 3.3).
El bloque 403 comprende: en respuesta a determinar que los tipos de datos de entrada y los tipos de datos de salida son consistentes, añadir, por uno o más nodos, la transacción a la red de cadena de bloques.
El bloque 404 comprende: en respuesta a la determinación de que los tipos de datos de entrada y los tipos de datos de salida son inconsistentes, rechazar, por el uno o más nodos, que la transacción se añada a la red de cadena de bloques.
En algunas realizaciones, el método comprende además: en respuesta a determinar que la suma C es igual al producto del parámetro R y el punto base G, determinar que los tipos de datos de entrada y los tipos de datos de salida son consistentes; y en respuesta a determinar que la suma C no es igual al producto del parámetro R y el punto base G, determinar que los tipos de datos de entrada y los tipos de datos de salida son inconsistentes.
Como tal, un iniciador de transacciones puede enviar información para los nodos de cadena de bloques para verificar la transacción en función de la consistencia de los tipos de activos que entran y salen de la transacción sin revelar los tipos de activos reales y sin la capacidad de alterar la información enviada. La asignación de números de serie (por ejemplo, hashes) para cada tipo de activo amplía y aleatoriza la representación de cada tipo de activo, lo que dificulta que el iniciador de la transacción falsifique un tipo de activo para pasar la verificación. Además, debido a la existencia del número aleatorio r, el mismo tipo de activo cifrado en diferentes momentos no es el mismo. La aplicación del compromiso de Pedersen para cifrar el hash del tipo de activo mejora la protección de la privacidad del tipo de activo a un nivel aún mayor. Por lo tanto, a través de las etapas 2.1 a 2.5, el iniciador de la transacción puede demostrar a los otros nodos que los tipos de activos de la transacción son válidos sin revelar los tipos de activos. Por ejemplo, se obtienen las diferencias entre los tipos de activos de entrada y salida y, en función de las cuales, se construyen polinomios, de modo que el iniciador de la transacción pueda pasar los tipos de activos transformados a los otros nodos para demostrar la consistencia de los tipos de activos y la validez de la transacción. Al mismo tiempo, se puede ignorar la probabilidad de que el iniciador de la transacción u otro nodo pueda falsificar el tipo de activo, porque x se calcula mediante la obtención de hash para que sirva como base de varios exponenciales en polinomios. Además, la divulgación de R permite que los otros nodos verifiquen que los tipos de activos en la transacción sean consistentes sin conocer los tipos de activos a través de las etapas 3.1 a 3.3. Por lo tanto, con los sistemas y métodos desvelados, la información de datos puede ser verificada por terceros mientras se mantiene una protección de privacidad excepcional.
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 solo 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 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 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.

Claims (14)

REIVINDICACIONES
1. Un método implementado por ordenador para protección de información, que comprende:
determinar una o más entradas de datos y una o más salidas de datos para una transacción, en la que una o más entradas de datos corresponden respectivamente a uno o más tipos de activos de entrada, y las una o más salidas de datos corresponden respectivamente a uno o más tipos de activos de salida;
aplicar hash al uno o más tipos de activos de entrada y los uno o más tipos de activos de salida;
generar una pluralidad de valores de compromiso comprometiendo cada uno de los tipos de activos de entrada con hash y los tipos de activos de salida con hash de acuerdo con un esquema de compromiso, en donde el esquema de compromiso se basa en un punto base G y una pluralidad de factores de ocultación que corresponden, respectivamente, a los tipos de activos de entrada. y los tipos de activos de salida;
generar una pluralidad de diferencias, respectivamente, entre una pluralidad de pares de valores de compromiso; concatenar la pluralidad de diferencias generada;
generar un valor hash haciendo hash de la pluralidad concatenada de diferencias;
generar un parámetro R basado al menos en el valor hash y las diferencias entre una pluralidad de pares de factores de ocultación; y
enviar la transacción a uno o más nodos en una red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de activos de entrada y los tipos de activos de salida para que los nodos verifiquen la consistencia entre los tipos de activos de entrada y los tipos de activos de salida sin conocimiento de los tipos de activos de entrada y los tipos de activos de salida.
2. El método de la reivindicación 1, en donde:
las una o más entradas de datos forman una serie de entradas ordenadas a partir de una primera entrada de datos; las una o más salidas de datos forman una serie de salidas ordenadas a partir de una primera salida de datos; y la pluralidad de diferencias comprende una o más diferencias entre los valores de compromiso correspondientes a cada dos entradas de datos vecinas en la serie de entradas ordenadas, una o más diferencias entre los valores de compromiso correspondientes a cada dos salidas de datos vecinas en la serie de salidas ordenadas, y una diferencia entre los valores de compromiso correspondientes a la primera entrada de datos y la primera salida de datos.
3. El método de la reivindicación 1, en donde generar el parámetro R basado al menos en el valor hash y las diferencias entre la pluralidad de pares de factores de ocultación comprende:
generar el parámetro R basado en el valor hash, una o más diferencias entre los factores de ocultación correspondientes a cada dos entradas de datos vecinas en la serie de entradas ordenadas una o más diferencias entre los factores de ocultación correspondientes a cada dos salidas de datos vecinas en la serie de salidas ordenadas, y una diferencia entre los factores de ocultación correspondientes a la primera entrada de datos y la primera salida de datos.
4. El método de la reivindicación 1, en donde: el esquema de compromiso comprende un compromiso de Pedersen.
5. El método de la reivindicación 1, en donde: dos cualesquiera de las una o más entradas de datos o salidas de datos que se comprometen en diferentes puntos de tiempo corresponden a diferentes factores de ocultación.
6. El método de la reivindicación 1, en donde enviar la transacción a los uno o más nodos en la red de cadena de bloques con divulgación del parámetro R y sin divulgación de los tipos de activos de entrada y los tipos de activos de salida para que los nodos verifiquen la consistencia entre los tipos de activos de entrada y los tipos de activos de salida sin conocimiento de los tipos de activos de entrada y los tipos de activos de salida comprende hacer que los nodos:
obtengan el parámetro R y un punto base G;
obtengan una pluralidad de diferencias no verificadas entre la pluralidad de pares de valores de compromiso; concatenen la pluralidad obtenida de diferencias no verificadas;
generen un valor hash no verificado mediante el hash de la pluralidad concatenada de diferencias no verificadas; generen una suma C de polinomios basada al menos en la pluralidad obtenida de diferencias no verificadas y el valor hash no verificado;
en respuesta a determinar que la suma C es igual a un producto del parámetro R y el punto base G, determinen que los tipos de activos de entrada y los tipos de activos de salida son consistentes; y
en respuesta a determinar que la suma C no es igual a un producto del parámetro R y el punto base G, determinen que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes.
7. El método de la reivindicación 6, que comprende además hacer que los uno o más nodos, en respuesta a la determinación de que los tipos de activos de entrada y los tipos de activos de salida son consistentes, añadan la transacción a una cadena de bloques.
8. Un medio de almacenamiento legible por ordenador no transitorio que almacena instrucciones que debe ejecutar un procesador para hacer que el procesador realice el método de acuerdo con 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 debe ejecutar el procesador para hacer que el sistema realice el método de una cualquiera de las reivindicaciones 1 a 7.
10. Un método implementado por ordenador para protección de información, que comprende:
obtener, mediante uno o más nodos en una red de cadena de bloques, una pluralidad de diferencias no verificadas entre una pluralidad de pares de valores de compromiso, un punto base G y un parámetro R, en donde:
una transacción iniciada por un nodo iniciador corresponde a una o más entradas de datos y una o más salidas de datos,
las una o más entradas de datos corresponden, respectivamente, a uno o más tipos de activos de entrada, las una o más salidas de datos corresponden, respectivamente, a uno o más tipos de activos de salida, los uno o más tipos de activos de entrada y los uno o más tipos de activos de salida tienen hash, la pluralidad de valores de compromiso son salidas de compromiso de cada uno de los tipos de activos de entrada con hash y los tipos de activos de salida con hash de acuerdo con un esquema de compromiso basado en el punto base G, y una pluralidad de factores de ocultación correspondientes, respectivamente, a los tipos de activos de entrada y los tipos de activos de salida, y
los uno o más tipos de activos de entrada y los uno o más tipos de activos de salida no se desvelan a los uno o más nodos;
concatenar la pluralidad de diferencias no verificadas;
generar, por el uno o más nodos, un valor hash no verificado, obteniendo el hash de la pluralidad concatenada de diferencias no verificadas;
generar, por uno o más nodos, una suma C de polinomios basada al menos en la pluralidad de diferencias no verificadas y el valor hash no verificado;
determinar, por uno o más nodos, si la suma C es igual a un producto del parámetro R y el punto base G; y en respuesta a determinar que la suma C es igual al producto del parámetro R y el punto base G, determinar que los tipos de activos de entrada y los tipos de activos de salida son consistentes; y
en respuesta a determinar que la suma C no es igual al producto del parámetro R y el punto base G, determinar que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes.
11. El método de la reivindicación 10, que comprende adicionalmente:
en respuesta a determinar que los tipos de activos de entrada y los tipos de activos de salida son consistentes, añadir, por uno o más nodos, la transacción a la red de cadena de bloques; y en respuesta a determinar que los tipos de activos de entrada y los tipos de activos de salida son inconsistentes, rechazar, por uno o más nodos, que la transacción se añada a la red de cadena de bloques.
12. El método de la reivindicación 10, en donde:
las una o más entradas de datos forman una serie de entradas ordenadas a partir de una primera entrada de datos; las una o más salidas de datos forman una serie de salidas ordenadas a partir de una primera salida de datos; y la pluralidad de diferencias no verificadas comprende una pluralidad de diferencias entre los valores de compromiso correspondientes a cada dos entradas de datos vecinas en la serie de entradas ordenadas, una o más diferencias entre los valores de compromiso correspondientes a cada dos salidas de datos vecinas en la serie de salidas ordenadas, y una diferencia entre valores de compromiso correspondientes a la primera entrada de datos y la primera salida de datos.
13. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones para ser ejecutadas por un procesador para hacer que el procesador lleve a cabo las operaciones que comprenden el método de una cualquiera de las reivindicaciones 10 a 12.
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, almacenando el medio de almacenamiento instrucciones que, cuando son ejecutadas por el procesador, hacen que el sistema realice el método de una cualquiera de las reivindicaciones 10 a 12.
ES18863802T 2018-11-27 2018-11-27 Sistema y método para protección de información Active ES2863552T3 (es)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
ES2863552T3 true ES2863552T3 (es) 2021-10-11
ES2863552T8 ES2863552T8 (es) 2022-08-19

Family

ID=66100052

Family Applications (1)

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

Country Status (16)

Country Link
US (1) US10938549B2 (es)
EP (1) EP3552158B1 (es)
JP (1) JP6756041B2 (es)
KR (1) KR102128210B1 (es)
CN (1) CN110730963B (es)
AU (1) AU2018322507B2 (es)
BR (1) BR112019007232B1 (es)
CA (1) CA3037833C (es)
ES (1) ES2863552T3 (es)
MX (1) MX384681B (es)
PH (1) PH12019500532B1 (es)
PL (1) PL3552158T3 (es)
RU (1) RU2719311C1 (es)
SG (1) SG11201902773VA (es)
WO (1) WO2019072275A2 (es)
ZA (1) ZA201902459B (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019034951A1 (en) 2017-08-15 2019-02-21 nChain Holdings Limited METHOD AND SYSTEM FOR DIGITAL THRESHOLD SIGNATURE
EP3669491B1 (en) * 2017-08-15 2024-02-07 nChain Licensing AG Threshold ecdsa for securing bitcoin wallet
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
US11409734B2 (en) * 2018-10-29 2022-08-09 Electronics And Telecommunications Research Institute Blockchain system and operation method thereof
US10790990B2 (en) * 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
CN111353886A (zh) * 2020-02-17 2020-06-30 杭州溪塔科技有限公司 基于utxo模型的资产交易方法、装置和电子设备
CN111340494B (zh) * 2020-05-15 2020-08-28 支付宝(杭州)信息技术有限公司 资产类型一致性证据生成、交易、交易验证方法及系统
CN111858769B (zh) * 2020-07-28 2024-05-03 北京金山云网络技术有限公司 数据使用方法、装置、节点设备及存储介质
US11558374B2 (en) * 2021-03-31 2023-01-17 Lenovo (Singapore) Pte. Ltd. Systems, apparatus, and methods for verifying a password utilizing commitments
CN114092242B (zh) * 2021-11-03 2024-12-17 萨思数字科技(北京)有限公司 基于范围证明实现隐私交易的方法和系统
CN114154989B (zh) * 2021-12-07 2025-07-25 深圳前海微众银行股份有限公司 交易处理方法、设备及系统
CN114390065B (zh) * 2022-01-24 2024-03-19 浙江数秦科技有限公司 一种区块链网络数据快速传输方法

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
JP2000207466A (ja) 1999-01-18 2000-07-28 Nippon Telegr & Teleph Corp <Ntt> 電子商取引文書を媒介とした電子商取引方法および電子商取引手段、ならびにプログラムを記録した記録媒体。
JP2000299683A (ja) 1999-02-10 2000-10-24 Nippon Telegr & Teleph Corp <Ntt> 複数公開鍵保存方法、その装置およびそのプログラム記録媒体
US7716484B1 (en) 2000-03-10 2010-05-11 Rsa Security Inc. System and method for increasing the security of encrypted secrets and authentication
AU2001255183A1 (en) 2000-04-14 2001-10-30 Wu Wen Delayed commitment scheme to prevent attacks based on compromised certificates
EP1205889A1 (en) 2000-11-10 2002-05-15 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Returning of change in an electronic payment system
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7509498B2 (en) 2001-06-29 2009-03-24 Intel Corporation Digital signature validation
GB2378282A (en) 2001-07-31 2003-02-05 Hewlett Packard Co Automated multivariate negotiation using convertable undeniable signatures
EP1436967A2 (en) 2001-10-19 2004-07-14 Matsushita Electric Industrial Co., Ltd. Device authentication system and device authentication method
JP2007510947A (ja) 2003-11-03 2007-04-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多数当事者の効率的な乗算のための方法及び装置
US8156029B2 (en) 2005-02-24 2012-04-10 Michael Gregory Szydlo Process for verifiably communicating risk characteristics of an investment portfolio
ES2380026T3 (es) 2005-05-10 2012-05-07 Dts Ltd. Procedimiento de transación y procedimiento de verificación
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
US7676042B2 (en) 2006-01-25 2010-03-09 Panasonic Corporation Terminal apparatus, server apparatus, and digital content distribution system
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 日本電信電話株式会社 ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム
KR20110105841A (ko) 2008-12-23 2011-09-27 엠티엔 모바일 머니 에스에이 (피티와이) 엘티디 거래를 안전하게 처리하기 위한 방법 및 시스템
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
BR112014007665B1 (pt) * 2011-09-29 2021-07-13 Amazon Technologies, Inc Método, meio de armazenamento e sistema de computação de derivação chave baseada em parâmetros
JP5364141B2 (ja) 2011-10-28 2013-12-11 楽天株式会社 携帯端末、店舗端末、送信方法、受信方法、決済システム、決済方法、プログラムおよびコンピュータ読み取り可能な記憶媒体
EP2634738A1 (en) 2012-03-02 2013-09-04 Alcatel Lucent Decentralized electronic transfer system
FR2993382B1 (fr) 2012-07-13 2015-07-03 Oberthur Technologies Entite electronique securisee pour l'autorisation d'une transaction
GB201310084D0 (en) 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
US9853819B2 (en) 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US11055707B2 (en) 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
KR20160024185A (ko) 2014-08-25 2016-03-04 아이보 (주) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법
GB201419016D0 (en) 2014-10-24 2014-12-10 Visa Europe Ltd Transaction Messaging
HK1249791A1 (zh) 2015-03-31 2018-11-09 Nasdaq, Inc. 区块链交易记录的系统和方法
WO2016164496A1 (en) 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
US9397985B1 (en) 2015-04-14 2016-07-19 Manifold Technology, Inc. System and method for providing a cryptographic platform for exchanging information
US10026082B2 (en) 2015-05-21 2018-07-17 Mastercard International Incorporated Method and system for linkage of blockchain-based assets to fiat currency accounts
US9870562B2 (en) 2015-05-21 2018-01-16 Mastercard International Incorporated Method and system for integration of market exchange and issuer processing for blockchain-based transactions
WO2016200885A1 (en) 2015-06-08 2016-12-15 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
AU2016287732A1 (en) 2015-06-30 2017-12-07 Visa International Service Association Mutual authentication of confidential communication
US12452075B2 (en) 2015-07-14 2025-10-21 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
WO2017091530A1 (en) 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
CN109089428B (zh) 2015-11-30 2022-03-25 舍普施福特股份公司 数字资产零保管转换
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
US10652014B2 (en) 2016-02-23 2020-05-12 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
JP6995762B2 (ja) 2016-02-23 2022-01-17 エヌチェーン ホールディングス リミテッド ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム
SG11201805542TA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
WO2017147696A1 (en) 2016-02-29 2017-09-08 Troy Jacob Ronda Systems and methods for distributed identity verification
WO2017178956A1 (en) 2016-04-11 2017-10-19 nChain Holdings Limited A method for secure peer-to-peer communication on a blockchain
CN107306183B (zh) 2016-04-22 2021-12-21 索尼公司 客户端、服务端、方法和身份验证系统
KR101780635B1 (ko) 2016-04-28 2017-09-21 주식회사 코인플러그 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
KR101802655B1 (ko) 2016-06-10 2017-11-29 인하대학교 산학협력단 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법
US11062366B2 (en) 2016-06-24 2021-07-13 Raise Marketplace Inc. Securely processing exchange items in a data communication system
US20180006823A1 (en) 2016-07-01 2018-01-04 Qualcomm Incorporated Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
KR101795695B1 (ko) * 2016-07-14 2017-12-01 주식회사 코인플러그 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
KR20190028517A (ko) 2016-07-15 2019-03-18 비자 인터네셔널 서비스 어소시에이션 트랜잭션 장치에 의한 디지털 자산 분산
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
US10769600B2 (en) 2016-09-26 2020-09-08 International Business Machines Corporation Cryptocurrency transactions using debit and credit values
JP6971019B2 (ja) 2016-09-26 2021-11-24 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、及び、データ管理方法
CN106549749B (zh) 2016-12-06 2019-12-24 杭州趣链科技有限公司 一种基于加法同态加密的区块链隐私保护方法
US11196623B2 (en) 2016-12-30 2021-12-07 Intel Corporation Data packaging protocols for communications between IoT devices
CN106911470B (zh) 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
US20180211313A1 (en) * 2017-01-23 2018-07-26 Viswanatham Narahari Systems, methods and devices for providing and receiving pledges
CN106845960B (zh) 2017-01-24 2018-03-20 上海壹账通区块链科技有限公司 基于区块链的安全交易方法及系统
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
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 北京天德科技有限公司 一种基于第三代区块链的可扩展央行数字货币交易方法
CN117640099A (zh) 2017-06-14 2024-03-01 区块链控股有限公司 用于避免或减少区块链网络上的加密滞留资源的系统和方法
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
CN107679857B (zh) 2017-10-10 2021-04-27 马晶瑶 区块链的跨链交易方法和存储介质
CN108062671A (zh) 2017-11-03 2018-05-22 深圳市轱辘车联数据技术有限公司 数据交易方法、区块链节点服务器及数据提交终端
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
WO2019109003A1 (en) 2017-11-30 2019-06-06 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108418689B (zh) 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
US10831764B2 (en) * 2017-12-02 2020-11-10 International Business Machines Corporation Query processing and access control in a blockchain network
US11227284B2 (en) * 2017-12-13 2022-01-18 Mastercard International Incorporated Method and system for consumer-initiated transactions using encrypted tokens
CN108282459B (zh) * 2017-12-18 2020-12-15 中国银联股份有限公司 基于智能合约的数据传递方法及系统
US11544708B2 (en) 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
TWM561861U (zh) 2018-01-11 2018-06-11 網家金融科技股份有限公司 網路支付轉帳系統
US10504314B2 (en) 2018-01-29 2019-12-10 Accenture Global Solutions Limited Blockchain-based anonymized cryptologic voting
CN108512650B (zh) * 2018-02-28 2021-03-09 南京思利华信息科技有限公司 面向区块链的动态哈希计算方法、装置、节点及存储介质
CN108288159A (zh) 2018-03-07 2018-07-17 物数(上海)信息科技有限公司 基于多区块链的跨链交易方法、系统、设备及存储介质
CN108320228A (zh) 2018-03-07 2018-07-24 物数(上海)信息科技有限公司 跨区块链资产交易方法、平台、设备及存储介质
US10708243B2 (en) 2018-04-24 2020-07-07 Capital One Services, Llc Message encryption using public keychains
CN108711105A (zh) 2018-05-16 2018-10-26 四川吉鼎科技有限公司 一种基于区块链的安全交易验证方法及系统
CN108764874B (zh) 2018-05-17 2021-09-07 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质
CN108683669B (zh) * 2018-05-19 2021-09-17 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
CN108667599A (zh) * 2018-05-21 2018-10-16 平安科技(深圳)有限公司 加密方法、装置、计算机设备和存储介质
CN108876332B (zh) 2018-06-04 2020-09-22 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
CN109003184A (zh) 2018-06-22 2018-12-14 中链科技有限公司 区块链资产管理方法及装置
JP6956062B2 (ja) 2018-10-30 2021-10-27 株式会社Crypto Garage 取引方法、プログラム、検証装置及び生成方法
CA3041157C (en) 2018-11-07 2020-09-08 Alibaba Group Holding Limited Blockchain system supporting public and private transactions under account models
MY193900A (en) 2018-11-27 2022-10-31 Advanced New Technologies Co Ltd System and method for information protection
BR112019008036A2 (pt) 2018-11-27 2019-11-12 Alibaba Group Holding Ltd sistemas, meios de armazenamento e métodos para proteção de informações
BR112019008058A2 (pt) 2018-11-27 2019-11-12 Alibaba Group Holding Ltd sistema e método para proteção de informações

Also Published As

Publication number Publication date
PL3552158T3 (pl) 2021-07-26
EP3552158A4 (en) 2020-02-26
KR20200066256A (ko) 2020-06-09
PH12019500532B1 (en) 2022-04-22
PH12019500532A1 (en) 2019-10-28
AU2018322507B2 (en) 2020-10-08
WO2019072275A2 (en) 2019-04-18
CA3037833A1 (en) 2020-04-18
ES2863552T8 (es) 2022-08-19
EP3552158A2 (en) 2019-10-16
KR102128210B1 (ko) 2020-06-30
EP3552158B1 (en) 2021-02-17
BR112019007232B1 (pt) 2022-02-15
MX2019004201A (es) 2019-08-05
MX384681B (es) 2025-03-14
JP2020500458A (ja) 2020-01-09
CA3037833C (en) 2022-04-19
AU2018322507A1 (en) 2020-01-30
US10938549B2 (en) 2021-03-02
JP6756041B2 (ja) 2020-09-16
CN110730963A (zh) 2020-01-24
BR112019007232A2 (pt) 2019-11-05
ZA201902459B (en) 2020-08-26
WO2019072275A3 (en) 2019-10-03
US20200228317A1 (en) 2020-07-16
RU2719311C1 (ru) 2020-04-17
CN110730963B (zh) 2023-12-01
SG11201902773VA (en) 2019-05-30

Similar Documents

Publication Publication Date Title
ES2863552T3 (es) Sistema y método para protección de información
ES2833552T3 (es) Sistema y método para la protección de información
ES2833550T3 (es) Sistema y método para la protección de información
ES2859569T3 (es) Sistema y método para la protección de información
ES2875581T3 (es) Sistema y método para protección de información
US10892888B2 (en) System and method for information protection
AU2019101581A4 (en) System and method for information protection
AU2019101590A4 (en) System and method for information protection
HK40027034B (zh) 用於信息保护的系统和方法