ES2863573T3 - Almacenamiento de cadena de bloques basado en secreto con privacidad - Google Patents

Almacenamiento de cadena de bloques basado en secreto con privacidad Download PDF

Info

Publication number
ES2863573T3
ES2863573T3 ES18865720T ES18865720T ES2863573T3 ES 2863573 T3 ES2863573 T3 ES 2863573T3 ES 18865720 T ES18865720 T ES 18865720T ES 18865720 T ES18865720 T ES 18865720T ES 2863573 T3 ES2863573 T3 ES 2863573T3
Authority
ES
Spain
Prior art keywords
data
blockchain
stored
data item
network
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
ES18865720T
Other languages
English (en)
Inventor
Pengfei Ying
Zheng Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2863573T3 publication Critical patent/ES2863573T3/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/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Un procedimiento implementado por ordenador (400) para un almacenamiento de datos distribuidos en una red de cadena de bloques (102, 212), comprendiendo el procedimiento: recibir (402) una solicitud de almacenamiento de un elemento de datos en la red de cadena de bloques; en respuesta a la recepción de la solicitud: dividir (404) el elemento de datos en una pluralidad de particiones de datos; asignar (406) cada partición de datos a un nodo diferente de la red de cadena de bloques, donde cada nodo almacena la partición de datos asignada en una tabla hash distribuida mantenida de forma privada y los diferentes nodos no comparten la partición de datos asignada; y almacenar (408) información asociada a cada partición de datos en una cadena de bloques (216) mantenida por la red de cadenas de bloques, incluyendo la información una ubicación de almacenamiento de cada partición de datos.

Description

DESCRIPCIÓN
Almacenamiento de cadena de bloques basado en secreto con privacidad
ANTECEDENTES
Los sistemas de libro mayor distribuido (DLS), que también pueden denominarse redes de consenso y/o redes de cadena de bloques, permiten a las entidades participantes almacenar datos de forma segura e inmutable. Los DLS se denominan comúnmente redes de cadena de bloques sin hacer referencia a ningún caso de uso particular (por ejemplo, criptomonedas). Ejemplos de redes de cadena de bloques pueden incluir redes públicas de cadena de bloques, redes privadas de cadena de bloques y redes de consorcio de cadena de bloques. Una red pública de cadena de bloques está abierta para que todas las entidades utilicen el DLS y participen en el proceso de consenso. Una red privada de cadena de bloques se proporciona a una entidad en particular, que controla de manera centralizada los permisos de lectura y escritura. Una red de consorcio de cadena de bloques se proporciona a un grupo selecto de entidades, que controla el proceso de consenso, e incluye una capa de control de acceso.
En algunas situaciones, cada entidad de una cadena de bloques almacena y controla sus propios datos, por ejemplo, en una tabla hash privada. Aunque dicho esquema de almacenamiento de datos aumenta la seguridad y la privacidad de los datos, dificulta el intercambio de datos y la cooperación entre entidades. El documento CN 107809484 describe un procedimiento de procesamiento de información de transacciones de cadena de bloques y un nodo de cadena de bloques. De acuerdo con el procedimiento, información de parte de transacción relacionada con una información de transacción y una información de dirección de un nodo de cadena de bloques en el que se almacena un segmento de la información de transacción se publican en la red de cadena de bloques, de modo que se puede aliviar la presión de transmisión de la red de cadena de bloques y también se puede reducir el espacio de almacenamiento del nodo único en la red de cadena de bloques, se evita un fallo causado por la modificación maliciosa en el contenido de segmento realizada por el nodo de cadena de bloques y se mejora la seguridad de la red de cadena de bloques. El documento US 2018/101684 describe un procedimiento para el almacenamiento distribuido de datos de identidad. El procedimiento incluye recibir datos de entidad para una pluralidad de entidades, donde los datos incluyen una clave pública asociada, atributos asociados y una jurisdicción geográfica, y donde una entidad es una subordinada; generar un archivo de datos para cada entidad, que incluye los atributos asociados y la clave pública, y donde el archivo de datos de la entidad subordinada incluye una firma digital asociada a una entidad superior; generar un valor de identidad para cada entidad aplicando una función hash al archivo de datos asociado; y almacenar, en una tabla hash distribuida, un par clave-valor para cada entidad, donde la clave es el valor de identidad asociado, el valor comprende los atributos asociados, y el par clave-valor se almacena en un dispositivo de almacenamiento físico de datos situado en un área geográfica correspondiente a la jurisdicción geográfica asociada.
RESUMEN
La invención se refiere a un procedimiento implementado por ordenador, tal como se define en la materia objeto de la reivindicación 1, un medio de almacenamiento no transitorio legible por ordenador, tal como se define en la materia objeto de la reivindicación 9, y un sistema, tal como se define en la materia objeto de la reivindicación 10.
DESCRIPCIÓN DE LOS DIBUJOS
La FIG. 1 representa un entorno de ejemplo que puede ser utilizado para ejecutar implementaciones de la presente solicitud.
La FIG. 2 representa una arquitectura conceptual de ejemplo de acuerdo con las implementaciones de la presente solicitud.
La FIG. 3 representa un sistema de ejemplo que implementa un esquema de almacenamiento de datos distribuidos en una cadena de bloques.
La FIG. 4 representa un proceso de ejemplo que puede ser ejecutado de acuerdo con las implementaciones de la presente solicitud.
Los símbolos de referencia similares en los distintos dibujos indican elementos similares.
DESCRIPCIÓN DETALLADA
Las implementaciones de la presente solicitud incluyen procedimientos implementados por ordenador para el almacenamiento de datos distribuidos en una cadena de bloques. Más en particular, las implementaciones de la presente solicitud se refieren a mejorar la seguridad de los datos y la compartición de datos en una cadena de bloques utilizando tablas hash distribuidas y computación de múltiples partes. En algunas implementaciones, las acciones incluyen recibir una solicitud de almacenamiento de un elemento de datos en la red de cadena de bloques, y en respuesta: dividir el elemento de datos en una pluralidad de particiones de datos; asignar cada partición de datos a un nodo diferente de la red de cadena de bloques, donde cada nodo almacena la partición de datos asignada en una tabla hash distribuida mantenida de forma privada; y almacenar información asociada a cada partición de datos en una cadena de bloques mantenida por la red de cadena de bloques, donde la información incluye una ubicación de almacenamiento de cada partición de datos; recibir una solicitud de recuperación del elemento de datos almacenado, y en respuesta: recuperar cada partición de datos almacenada a partir de los nodos asignados en base a la información que incluye la ubicación de cada partición de datos almacenada en la cadena de bloques; reconstruir el elemento de datos almacenado a partir de las particiones de datos almacenadas; y enviar una respuesta a la solicitud de recuperación del elemento de datos almacenado, donde la respuesta incluye el elemento de datos reconstruido.
Para proporcionar un contexto adicional para las implementaciones de la presente solicitud, y como se ha introducido anteriormente, los sistemas de libro mayor distribuido (DLS), que también pueden denominarse redes de consenso (por ejemplo, formada por nodos de par a par) y redes de cadena de bloques, permiten a las entidades participantes realizar transacciones de forma segura e inmutable y almacenar datos. Aunque el término "cadena de bloques" se asocia generalmente a la red de criptomonedas Bitcoin, en el presente documento se utiliza el término "cadena de bloques" para hacer referencia, en general, a un DLS sin hacer referencia a ningún caso de uso particular. Como se ha introducido anteriormente, una red de cadena de bloques puede proporcionarse como una red pública de cadena de bloques, una red privada de cadena de bloques o una red de consorcio de cadena de bloques.
En una red pública de cadena de bloques, el proceso de consenso es controlado por nodos de la red de consenso. Por ejemplo, cientos, miles, incluso millones de entidades pueden cooperar en una red pública de cadena de bloques, cada una de las cuales hace funcionar al menos un nodo en la red pública de cadena de bloques. En consecuencia, la red pública de cadena de bloques puede considerarse una red pública con respecto a las entidades participantes. En algunos ejemplos, la mayoría de entidades (nodos) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques (libro mayor distribuido) de la red de cadena de bloques. Una red pública de cadena de bloques de ejemplo incluye la red Bitcoin, que es una red de pagos entre pares. La red Bitcoin utiliza un libro mayor distribuido, denominado cadena de bloques. Sin embargo, como se ha indicado anteriormente, el término cadena de bloques se utiliza para hacer referencia, en general, a libros mayores distribuidos, sin referencia particular a la red Bitcoin.
En general, una red pública de cadena de bloques admite transacciones públicas. Una transacción pública se comparte con todos los nodos de la red pública de cadena de bloques y se almacena en una cadena de bloques global. Una cadena de bloques global es una cadena de bloques que se repite en todos los nodos. Es decir, todos los nodos están en perfecto estado de consenso con respecto a la cadena de bloques global. Para lograr el consenso (por ejemplo, el acuerdo para la adición de un bloque a una cadena de bloques), se implementa un protocolo de consenso en la red pública de cadena de bloques. Un protocolo de consenso de ejemplo incluye, sin limitación, el protocolo de prueba de trabajo (POW) implementado en la red Bitcoin.
En general, una red privada de cadena de bloques se proporciona a una entidad en particular, que controla de manera centralizada los permisos de lectura y escritura. La entidad controla qué nodos pueden participar en la red de cadena de bloques. En consecuencia, las redes privadas de cadena de bloques se denominan generalmente redes de permisos que imponen restricciones sobre quién puede participar en la red y sobre su nivel de participación (por ejemplo, sólo en determinadas transacciones). Se pueden utilizar varios tipos de mecanismos de control de acceso (por ejemplo, los participantes existentes votan para añadir nuevas entidades, una autoridad reguladora puede controlar la admisión).
En general, una red de consorcio de cadena de bloques es privada entre las entidades participantes. En una red de consorcio de cadena de bloques, el proceso de consenso es controlado por un conjunto autorizado de nodos, donde uno o más nodos se hacen funcionar por una entidad respectiva (por ejemplo, una institución financiera, una compañía de seguros). Por ejemplo, un consorcio de diez (10) entidades (por ejemplo, instituciones financieras, compañías de seguros) puede hacer funcionar una red de consorcio de cadena de bloques, cada una de las cuales hace funcionar al menos un nodo de la red de consorcio de cadena de bloques. En consecuencia, la red de consorcio de cadena de bloques puede considerarse una red privada con respecto a las entidades participantes. En algunos ejemplos, cada entidad (nodo) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques. En algunos ejemplos, al menos un subconjunto de entidades (nodos) (por ejemplo, al menos 7 entidades) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques.
Implementaciones de la presente solicitud se describen con más detalle en el presente documento con referencia a una red pública de cadena de bloques, que es pública entre las entidades participantes. Sin embargo, se contempla que las implementaciones de la presente solicitud pueden realizarse en cualquier tipo apropiado de red de cadena de bloques.
Las implementaciones de la presente solicitud se describen con más detalle en el presente documento en vista del contexto anterior. Más en particular, y como se ha introducido anteriormente, las implementaciones de la presente solicitud se refieren a mejorar la seguridad de los datos y la compartición de datos en una cadena de bloques utilizando tablas hash distribuidas y computación de múltiples partes.
En algunas implementaciones, un elemento de datos se divide en diferentes porciones y cada porción se almacena en una tabla hash de una entidad que participa en la red de cadena de bloques. Cada entidad o un servicio externo puede ver los datos y realizar operaciones en los datos utilizando un programa, por ejemplo, un contrato inteligente, desplegado en la cadena de bloques. Como resultado, aunque ninguna entidad tiene acceso a la totalidad de los datos, cada entidad puede, sin embargo, obtener determinadas mediciones de los datos.
La FIG. 1 representa un entorno 100 de ejemplo que puede ser utilizado para ejecutar implementaciones de la presente solicitud. En algunos ejemplos, el entorno 100 de ejemplo permite a las entidades participar en una red de cadena de bloques 102. La red de cadena de bloques 102 puede ser una red pública de cadena de bloques, una red privada de cadena de bloques o una red de consorcio de cadena de bloques. El entorno 100 de ejemplo incluye dispositivos informáticos 106, 108 y una red 110. En algunos ejemplos, la red 110 incluye una red de área local (LAN), una red de área amplia (WAN), Internet o una combinación de las mismas, y conecta sitios web, dispositivos de usuario (por ejemplo, dispositivos informáticos) y sistemas de sección de procesamiento (baok-end). En algunos ejemplos, se puede acceder a la red 110 a través de un enlace de comunicaciones por cable y/o inalámbrico.
En el ejemplo representado, los sistemas informáticos 106 y 108 pueden incluir cada uno cualquier sistema informático apropiado que permita la participación como nodo en la red de cadena de bloques 102. Los dispositivos informáticos de ejemplo incluyen, sin limitación, un servidor, un ordenador de sobremesa, un ordenador portátil, un dispositivo informático de tableta y un teléfono inteligente. En algunos ejemplos, cada sistema informático 106 y 108 aloja uno o más servicios implementados por ordenador para interactuar con la red de cadena de bloques 102. Por ejemplo, el sistema informático 106 puede alojar servicios implementados por ordenador de una primera entidad (por ejemplo, un usuario A), tal como un sistema de gestión de transacciones que la primera entidad utiliza para gestionar sus transacciones con una o más entidades (por ejemplo, otros usuarios). El sistema informático 108 puede alojar servicios implementados por ordenador de una segunda entidad (por ejemplo, un usuario B), tal como un sistema de gestión de transacciones que la segunda entidad utiliza para gestionar sus transacciones con una o más entidades (por ejemplo, otros usuarios). En el ejemplo de la FIG. 1, la red de cadena de bloques 102 se representa como una red de nodos entre pares, y los sistemas informáticos 106 y 108 proporcionan nodos de la primera entidad, y de la segunda entidad respectivamente, que participan en la red de cadena de bloques 102.
La FIG. 2 representa una arquitectura conceptual 200 de ejemplo de acuerdo con las implementaciones de la presente solicitud. La arquitectura conceptual 200 de ejemplo incluye una capa de entidad 202, una capa de servicios alojados 204 y una capa de red de cadena de bloques 206. En el ejemplo representado, la capa de entidad 202 incluye tres entidades, Entidad_1 (E1), Entidad_2 (E2) y Entidad_3 (E3), teniendo cada entidad un sistema de gestión de transacciones respectivo 208.
En el ejemplo representado, la capa de servicios alojados 204 incluye interfaces 210 para cada sistema de gestión de transacciones 208. En algunos ejemplos, un sistema de gestión de transacciones respectivo 208 se comunica con una interfaz respectiva 210 a través de una red (por ejemplo, la red 110 de la FIG. 1) utilizando un protocolo (por ejemplo, protocolo de transferencia de hipertexto seguro (HTTPS)). En algunos ejemplos, cada interfaz 210 proporciona una conexión de comunicación entre un sistema de gestión de transacciones respectivo 208 y la capa de red de cadena de bloques 206. Más en particular, la interfaz 210 se comunica con una red de cadena de bloques 212 de la capa de red de cadena de bloques 206. En algunos ejemplos, la comunicación entre una interfaz 210 y la capa de red de cadena de bloques 206 se lleva a cabo mediante llamadas a procedimientos remotos (RPC). En algunos ejemplos, las interfaces 210 "alojan" nodos de red de cadena de bloques para los sistemas de gestión de transacciones respectivos 208. Por ejemplo, las interfaces 210 proporcionan la interfaz de programación de aplicaciones (API) para acceder a la red de cadena de bloques 212.
Como se describe en el presente documento, la red de cadena de bloques 212 se proporciona como una red entre pares que incluye una pluralidad de nodos 214 que registran de forma inmutable información en una cadena de bloques 216. Aunque se representa esquemáticamente una única cadena de bloques 216, se proporcionan múltiples copias de la cadena de bloques 216, que se mantienen en la red de cadena de bloques 212. Por ejemplo, cada nodo 214 almacena una copia de la cadena de bloques. En algunas implementaciones, la cadena de bloques 216 almacena información asociada a transacciones que se realizan entre dos o más entidades que participan en la red de cadena de bloques.
La FIG. 3 representa un sistema 300 de ejemplo que implementa un esquema de almacenamiento de datos distribuidos en una red de cadena de bloques. El sistema 300 incluye una red de cadena de bloques, por ejemplo, la red de cadena de bloques 212 de la FIG. 2, para proporcionar datos a una aplicación 308. Cada entidad de la red de cadena de bloques, por ejemplo, los nodos 214a-214c, mantiene una tabla hash distribuida (DHT) para almacenar datos privados no publicados en la cadena de bloques 216. Por ejemplo, el nodo 214b está asociado a una DHT 304b, y el nodo 214c está asociado a una DHT 304c diferente.
En algunas implementaciones, un usuario que desea almacenar datos A 302 en la red de cadena de bloques 212 primero particiona los datos A 302 en dos o más fragmentos, por ejemplo, A1 302a, A2 302b y A3 302c. Cada uno de los datos particionados se envía a un nodo diferente y se mantiene en la DHT del nodo. Por ejemplo, A1 302a se almacena en la DHT 304a asociada al nodo 214a, A2302b se almacena en la DHT 304b asociada al nodo 214b, y A3 302c se almacena en la DHT 304c asociada al nodo 214c. Por lo tanto, los datos del usuario se almacenan de manera descentralizada y permanecen seguros ya que ninguno de los nodos de almacenamiento individuales tiene acceso completo a los datos del usuario. Los datos del usuario sólo se restauran cuando un servicio de confianza solicita y recibe las particiones de datos individuales desde los respectivos nodos de almacenamiento, como se describe posteriormente con respecto a la FIG. 4.
Cada nodo puede publicar la ruta a los datos particionados almacenados en la cadena de bloques. Por ejemplo, después de que los datos A sean particionados y almacenados en la red de cadena de bloques 212, una transacción de cadena de bloques almacenada en la cadena de bloques 216 puede registrar la ubicación de cada porción de los datos particionados, donde la ubicación incluye el nodo que almacena los datos, así como la ruta de archivo interna en la DHT asociada al nodo. En algunas implementaciones, la ruta de archivo es un localizador uniforme de recursos (URL) u otras cadenas de caracteres para identificar una ubicación de datos en una red. Esta transacción de cadena de bloques se incluye entonces en el último bloque de la cadena de bloques 216, haciéndola visible para todos los nodos de la red de cadena de bloques 212. Una transacción de cadena de bloques de ejemplo que resume el almacenamiento de datos A se muestra a continuación en la tabla 1:
Tabla 1
Figure imgf000005_0001
Para utilizar los datos A 302, un servicio 310 solicita a una aplicación 308 que recopile los datos particionados de la red de cadena de bloques 212. Por ejemplo, la aplicación 308 puede ser un programa de contratos inteligentes almacenado en la cadena de bloques 216 y ejecutado en la red de cadena de bloques 212. La aplicación 308 puede, en primer lugar, buscar en la cadena de bloques 216 para localizar dónde se almacena cada uno de los datos particionados y, a continuación, recupera y genera una copia de los datos A 302. En un ejemplo, la aplicación 308 puede concatenar los datos particionados A1 302a, A2 302b, y A3 302c para generar una copia de los datos A 302. En otro ejemplo, la aplicación 308 puede realizar una operación de resumen en los datos particionados para restaurar los datos A 302. En algunos casos, aunque el servicio 310 recibe la copia generada de los datos A 302 desde la aplicación 308, el servicio 310 no tiene acceso a ninguna partición de datos individual. Como resultado, este esquema de acceso protege la seguridad y la privacidad de los datos en nodos individuales. En un ejemplo, cada nodo puede representar un banco que almacena las transacciones financieras de un usuario en el banco particular. El servicio intenta determinar una hipoteca para el usuario basándose en sus transacciones financieras anteriores. Aunque el servicio tiene acceso a las transacciones financieras agregadas del usuario, por ejemplo, los datos A 302, el servicio no ve las transacciones financieras del usuario en ningún banco en particular, por ejemplo, los datos particionados A1 302a, A2302b y A3302c.
En algunos casos, la transacción de cadena de bloques que resume el almacenamiento de los datos A puede incluir un hash de cada partición de los datos. La aplicación 308 u otra aplicación que procese los datos particionados puede utilizar estos hashes para verificar que cada partición no ha sido modificada desde que se almacenó por primera vez. La transacción de cadena de bloques que resume el almacenamiento de los datos A también puede incluir un hash del conjunto completo de datos formado por la unión de todas las particiones, que puede ser utilizado para verificar que los datos no han sido modificados desde que fueron originalmente particionados y almacenados.
En algunos casos, la aplicación 308 puede registrar las operaciones en la cadena de bloques 216. Por ejemplo, la aplicación 308 puede registrar la identidad del servicio 310 que solicitó los datos, el éxito o el fracaso de la operación de recuperación de datos, la hora de las operaciones u otra información relativa a las operaciones. Esta información puede servir como un registro de acceso para registrar cada vez que se recupera un elemento de datos en particular.
En algunas implementaciones, una vez que la aplicación 308 termina de recuperar datos y la transacción es verificada por la red de cadena de bloques 212, cada uno de los nodos de almacenamiento puede ser recompensado con una cantidad específica de moneda digital admitida por la red de cadena de bloques 212. Esta recompensa puede servir como incentivo para que los nodos de la red de cadena de bloques 212 participen en el esquema de almacenamiento de datos distribuidos. Los datos recuperados se devuelven entonces al servicio 310 para que se realicen otras operaciones.
En algunos casos, las solicitudes de datos pueden estar sujetas a autenticación. Por ejemplo, se puede requerir que un servicio 310 proporcione su identidad u otras credenciales con su solicitud de datos. El sistema puede incluir permisos para cada elemento de datos almacenado en la red de cadena de bloques, y puede verificar que el servicio 310 esté autorizado a ver el elemento de datos basándose en las credenciales antes de reconstruir el elemento de datos a partir de los fragmentos particionados. En algunas implementaciones, la transacción de cadena de bloques que resume el almacenamiento de los datos A (mostrados anteriormente en la Tabla 1) puede incluir información de permiso para cada partición de datos o para el elemento de datos completo.
En algunos casos, la transacción de cadena de bloques que resume el almacenamiento de datos A puede incluir un valor hash cifrado para el elemento de datos que el servicio 310 debe descifrar correctamente para demostrar que está autorizado a acceder al elemento de datos almacenado. Por ejemplo, en un caso en el que el usuario que almacenó el elemento de datos desea ser el único con permiso para acceder al mismo, el hash podría estar cifrado con la clave pública del usuario, y por lo tanto sólo puede ser descifrado utilizando la clave privada del usuario. En algunas implementaciones, el propio elemento de datos puede cifrarse antes de ser particionado y almacenado en la red de cadena de bloques, permitiendo así que sólo las entidades con la clave correcta puedan descifrar el contenido una vez que las particiones sean reensambladas y devueltas.
La FIG. 4 representa un proceso 400 de ejemplo que puede ser ejecutado de acuerdo con las implementaciones de la presente solicitud. En algunas implementaciones, el proceso 400 puede realizarse utilizando uno o más programas ejecutables por ordenador que se ejecutan utilizando uno o más dispositivos informáticos. Por conveniencia, el proceso 400 se describirá como realizado por un sistema, por ejemplo, el sistema 300 de la FIG. 3.
El sistema primero recibe una solicitud de almacenamiento de un elemento de datos en una red de cadena de bloques (402). Por ejemplo, un usuario puede enviar datos de transacciones bancarias para su almacenamiento en la red de cadena de bloques. El almacenamiento de los datos mediante las técnicas descritas en el presente documento puede mejorar la seguridad de la red de cadena de bloques, ya que los datos se almacenan de forma descentralizada y ningún nodo de la red de cadena de bloques almacena la totalidad de los datos.
En respuesta a la solicitud, el sistema recibe el elemento de datos y lo divide en una pluralidad de particiones de datos (404). Por ejemplo, el sistema puede utilizar un programa para particionar los datos en porciones de igual tamaño, o particionar los datos en base a un número de porciones especificado por el usuario. En algunos casos, el sistema puede registrar cómo se particionaron los datos y almacenar el procedimiento de particionamiento con la partición de datos individual o en una entrada dentro de la cadena de bloques.
A continuación, el sistema asigna cada partición de datos a un nodo diferente de la red de cadena de bloques y almacena información asociada a cada partición de datos en una cadena de bloques (406). Los diferentes nodos no comparten los datos asignados y almacenan los datos asignados en una tabla hash distribuida (DHT) mantenida de forma privada. Por ejemplo, la tabla hash distribuida puede almacenar la ruta de archivo a la partición de datos, la identidad del nodo y el valor de la partición de datos o un hash del valor. A continuación, el sistema almacena información asociada a cada partición de datos en la cadena de bloques (408). Por ejemplo, el sistema publica en la cadena de bloques la ruta de archivo a cada partición de datos. Como resultado, la ubicación de las particiones de datos se hace pública para cualquier programa que interactúe con la cadena de bloques. El sistema puede seleccionar los nodos de almacenamiento de forma aleatoria para garantizar que ningún nodo pueda tener acceso a todas las particiones de datos. En algunas implementaciones, el sistema puede seleccionar los nodos de almacenamiento para que ningún nodo almacene más de un determinado número de particiones de los datos. Como resultado, el elemento de datos se almacena de forma descentralizada y permanece seguro ya que ninguno de los nodos de almacenamiento tiene acceso completo a todas las particiones de datos. El elemento de datos sólo se restaura cuando un servicio de confianza solicita y recibe las particiones de datos.
A continuación, el sistema recibe una solicitud de recuperación del elemento de datos almacenado (410). Por ejemplo, un servicio de terceros puede solicitar ver las transacciones bancarias del usuario para determinar su solvencia. El servicio puede enviar la solicitud al sistema utilizando una interfaz de programación de aplicaciones (API) admitida por el sistema. Por ejemplo, la solicitud puede estar en un formato de archivo JSON. En este punto, los datos se particionan y se reparten por la red de cadena de bloques.
Para devolver los datos solicitados, que están particionados y almacenados en diferentes nodos de la red de cadena de bloques, el sistema utiliza una aplicación y las rutas de archivo publicadas para recuperar cada partición de datos almacenada a partir de los nodos asignados en la red de cadena de bloques (412). Por ejemplo, la aplicación puede ser un contrato inteligente al que se le ha concedido acceso a la tabla hash distribuida de cada nodo. La aplicación puede ejecutar instrucciones especificadas para reconstruir los datos a partir de las particiones de datos. En algunos casos, las instrucciones se escriben en la cadena de bloques cuando los datos se particionaron por primera vez. A continuación, el sistema reconstruye el elemento de datos almacenado a partir de las particiones de datos almacenadas. Por ejemplo, el sistema puede concatenar las particiones de datos, o realizar una adición en los valores de los datos, tal como devolviendo hashes de los valores de los datos (414). En otro ejemplo, el sistema puede entrelazar las particiones de datos para reconstruir el elemento de datos almacenado cuando cada partición de datos incluye bits no continuos de datos del elemento de datos. En algunos casos, el sistema también registra la solicitud de datos por parte del servicio en la cadena de bloques. Esta información puede utilizarse para compensar al nodo de almacenamiento en función del tamaño de la partición de datos y la duración del almacenamiento.
Como última etapa, el sistema envía una respuesta a la solicitud de recuperación del elemento de datos almacenado, donde la respuesta incluye el elemento de datos reconstruido (416). Por ejemplo, el sistema puede enviar la respuesta a la aplicación 308. En algunas implementaciones, el sistema audita las particiones de datos y el elemento de datos reconstruido antes de enviar la respuesta. Por ejemplo, el sistema puede auditar el elemento de datos o las particiones de datos individuales comprobando los valores hash.
Las características descritas pueden implementarse en circuitos electrónicos digitales, o en hardware informático, firmware, software o en combinaciones de los mismos. El aparato puede implementarse en un producto de programa informático incorporado de forma tangible en un soporte de información (por ejemplo, en un dispositivo de almacenamiento legible por máquina) para su ejecución mediante un procesador programable, y las etapas de procedimiento pueden ser realizadas por un procesador programable que ejecute un programa de instrucciones para llevar a cabo funciones de las implementaciones descritas operando en datos de entrada y generando una salida. Las características descritas pueden implementarse de forma ventajosa en uno o más programas informáticos que pueden ejecutarse en un sistema programable que incluye al menos un procesador programable acoplado para recibir datos e instrucciones desde, y transmitir datos e instrucciones a, un sistema de almacenamiento de datos, al menos un dispositivo de entrada y al menos un dispositivo de salida. Un programa informático es un conjunto de instrucciones que pueden ser utilizadas, directa o indirectamente, en un ordenador para realizar una determinada actividad o conseguir un determinado resultado. Un programa informático puede estar escrito en cualquier forma de lenguaje de programación, incluidos lenguajes compilados o interpretados, y puede implantarse en cualquier forma, lo que incluye un programa independiente o un módulo, componente, subrutina u otra unidad adecuada para su uso en un entorno informático.
Procesadores adecuados para la ejecución de un programa de instrucciones incluyen, a modo de ejemplo, tanto microprocesadores de propósito general como de propósito especial, y un único procesador o uno de múltiples procesadores de cualquier tipo de ordenador. Por lo general, un procesador recibirá instrucciones y datos de una memoria de sólo lectura o de una memoria de acceso aleatorio, o de ambas. Los elementos de un ordenador pueden incluir un procesador para ejecutar instrucciones y una o más memorias para almacenar instrucciones y datos. Por lo general, un ordenador también puede incluir, o estar acoplado de forma operativa para comunicarse con, uno o más dispositivos de almacenamiento masivo para almacenar archivos de datos; dichos dispositivos incluyen discos magnéticos, tales como discos duros internos y discos extraíbles, discos magnetoópticos y discos ópticos. Dispositivos de almacenamiento adecuados para incorporar de forma tangible instrucciones y datos de programa informático incluyen todas las formas de memoria no volátil, incluidos, a modo de ejemplo, dispositivos de memoria semiconductores, tales como EPROM, EEPROM y dispositivos de memoria flash, discos magnéticos, tales como discos duros internos y discos extraíbles, discos magnetoópticos y discos CD-ROM y DVD-ROM. El procesador y la memoria pueden ser complementados por, o incorporados en, circuitos integrados específicos de la aplicación (ASIC).
Para facilitar la interacción con un usuario, las características pueden implementarse en un ordenador que tenga un dispositivo de visualización, tal como un tubo de rayos catódicos (CRT) o un monitor de cristal líquido (LCD), para mostrar información al usuario, y un teclado y un dispositivo de puntero, tal como un ratón o una bola de seguimiento, mediante los cuales el usuario pueda proporcionar datos de entrada al ordenador.
Las características pueden implementarse en un sistema informático que incluya un componente de sección de procesamiento, tal como un servidor de datos, o que incluya un componente de middleware, tal como un servidor de aplicaciones o un servidor de Internet, o que incluya un componente de sección de entrada (front-end), tal como un ordenador cliente que tenga una interfaz gráfica de usuario o un navegador de Internet, o cualquier combinación de los mismos. Los componentes del sistema pueden estar conectados mediante cualquier forma o medio de comunicación de datos digitales, tal como una red de comunicación. Ejemplos de redes de comunicación incluyen, por ejemplo, una red de área local (LAN), una red de área amplia (WAN) y los ordenadores y redes que forman Internet.
El sistema informático puede incluir clientes y servidores. Un cliente y un servidor están generalmente alejados el uno del otro y suelen interactuar a través de una red, tal como la descrita. La relación de cliente y servidor surge en virtud de los programas informáticos que se ejecutan en los respectivos ordenadores y que tienen una relación clienteservidor entre sí.
Además, los flujos lógicos representados en las figuras no requieren el orden particular mostrado, o el orden secuencial, para lograr los resultados deseados. Además, se pueden proporcionar otras etapas, o se pueden eliminar etapas, de los flujos descritos, y otros componentes se pueden añadir a, o eliminar de, los sistemas descritos.

Claims (10)

REIVINDICACIONES
1. Un procedimiento implementado por ordenador (400) para un almacenamiento de datos distribuidos en una red de cadena de bloques (102, 212), comprendiendo el procedimiento:
recibir (402) una solicitud de almacenamiento de un elemento de datos en la red de cadena de bloques;
en respuesta a la recepción de la solicitud:
dividir (404) el elemento de datos en una pluralidad de particiones de datos;
asignar (406) cada partición de datos a un nodo diferente de la red de cadena de bloques, donde cada nodo almacena la partición de datos asignada en una tabla hash distribuida mantenida de forma privada y los diferentes nodos no comparten la partición de datos asignada; y
almacenar (408) información asociada a cada partición de datos en una cadena de bloques (216) mantenida por la red de cadenas de bloques, incluyendo la información una ubicación de almacenamiento de cada partición de datos.
2. El procedimiento (400) de la reivindicación 1, que comprende además:
recibir (410) una solicitud de recuperación del elemento de datos almacenado; y
en respuesta a la recepción de la solicitud de recuperación del elemento de datos almacenado:
recuperar (412) cada partición de datos almacenada a partir de los nodos asignados en función de la información que incluye la ubicación de cada partición de datos almacenada en la cadena de bloques (216);
reconstruir (414) el elemento de datos almacenado a partir de las particiones de datos almacenadas; y
enviar (416) una respuesta a la solicitud de recuperación del elemento de datos almacenado, donde la respuesta incluye el elemento de datos reconstruido.
3. El procedimiento (400) de la reivindicación 1, que comprende además almacenar instrucciones en la cadena de bloques para restaurar el elemento de datos a partir de las particiones de datos almacenadas.
4. El procedimiento (400) de la reivindicación 2, en el que la reconstrucción del elemento de datos almacenado incluye concatenar las particiones de datos recuperadas para generar una copia del elemento de datos.
5. El procedimiento (400) de la reivindicación 2, que comprende además almacenar un registro de la solicitud de recuperación del elemento de datos almacenado en la cadena de bloques (216).
6. El procedimiento (400) de la reivindicación 2, en el que la recuperación de cada partición de datos almacenada, la reconstrucción del elemento de datos almacenado a partir de las particiones de datos almacenadas y el envío de la respuesta a la solicitud de recuperación se realizan mediante un contrato inteligente almacenado en la cadena de bloques (216) y que se ejecuta en la red de cadena de bloques (102, 212).
7. El procedimiento (400) de la reivindicación 1, en el que cada tabla hash distribuida almacena la ruta de archivo a la partición de datos, el valor de la partición de datos y una identidad del nodo asociado.
8. El procedimiento (400) de la reivindicación 1, en el que almacenar información asociada a cada partición de datos en la cadena de bloques (216) incluye almacenar una ruta a cada partición de datos en la cadena de bloques.
9. Un medio de almacenamiento no transitorio legible por ordenador acoplado a uno o más ordenadores (106, 108) y configurado con instrucciones ejecutables por el uno o más ordenadores para realizar el procedimiento (400) de una cualquiera de las reivindicaciones 1 a 8.
10. Un sistema (300), que comprende:
uno o más ordenadores (106, 108); y
una o más memorias legibles por ordenador acopladas al uno o más ordenadores y configuradas con instrucciones ejecutables por el uno o más ordenadores para realizar el procedimiento (400) de una cualquiera de las reivindicaciones 1 a 8.
ES18865720T 2018-12-19 2018-12-19 Almacenamiento de cadena de bloques basado en secreto con privacidad Active ES2863573T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/122145 WO2019072298A2 (en) 2018-12-19 2018-12-19 STORING BLOCK CHAIN ON THE BASIS OF A SHARED SECRET

Publications (1)

Publication Number Publication Date
ES2863573T3 true ES2863573T3 (es) 2021-10-11

Family

ID=66100131

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18865720T Active ES2863573T3 (es) 2018-12-19 2018-12-19 Almacenamiento de cadena de bloques basado en secreto con privacidad

Country Status (9)

Country Link
EP (1) EP3574630B1 (es)
JP (1) JP7005639B2 (es)
KR (1) KR102285798B1 (es)
CN (1) CN110720204B (es)
ES (1) ES2863573T3 (es)
PH (1) PH12019501730A1 (es)
PL (1) PL3574630T3 (es)
SG (1) SG11201906827XA (es)
WO (1) WO2019072298A2 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417889B (zh) * 2019-07-30 2022-02-01 中国联合网络通信集团有限公司 一种基于ipfs的数据传输方法及装置
CN112632569B (zh) * 2019-10-09 2024-05-24 华控清交信息科技(北京)有限公司 数据处理方法、系统、装置、电子设备及可读存储介质
US11368285B2 (en) * 2019-12-05 2022-06-21 International Business Machines Corporation Efficient threshold storage of data object
US20220012668A1 (en) * 2020-07-10 2022-01-13 Genetec Inc. Blockchain based work and resource data management
CN111914029A (zh) * 2020-08-06 2020-11-10 平安科技(深圳)有限公司 基于区块链的医疗数据调用方法、装置、电子设备及介质
CN114117459A (zh) * 2020-09-01 2022-03-01 中国移动通信有限公司研究院 一种数据处理方法、装置、设备及可读存储介质
CN112163036A (zh) * 2020-09-11 2021-01-01 泰康保险集团股份有限公司 区块链信息的构建和查询方法及相关装置
CN112328565B (zh) * 2020-11-06 2024-09-06 中国银联股份有限公司 一种基于区块链的资源共享的方法及装置
CN112416875B (zh) * 2020-11-24 2024-04-09 平安消费金融有限公司 日志管理方法、装置、计算机设备及存储介质
CN112733194A (zh) * 2021-01-26 2021-04-30 长威信息科技发展股份有限公司 一种区块链数据可信流通方法及系统
CN112800450B (zh) * 2021-02-05 2022-02-18 北京众享比特科技有限公司 数据存储方法、系统、装置、设备和存储介质
JP7684072B2 (ja) * 2021-03-31 2025-05-27 株式会社Ihiエアロスペース 情報処理方法、情報処理システム、情報処理装置及び情報処理プログラム
CN115186029A (zh) * 2021-04-06 2022-10-14 中移(上海)信息通信科技有限公司 数据存储方法、装置、数据存储设备及服务器
CN113238996A (zh) * 2021-05-18 2021-08-10 中国信息通信研究院 基于dht的区块链数据归档方法、电子设备及存储介质
CN114157670A (zh) * 2021-11-05 2022-03-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN114416734B (zh) * 2021-12-30 2025-08-29 浪潮工业互联网股份有限公司 基于区块链分布式哈希列表的信息存储方法、设备及介质
US12353744B2 (en) * 2022-01-14 2025-07-08 SanDisk Technologies, Inc. Cold storage partition management in proof of space blockchain systems
CN115659410A (zh) * 2022-07-29 2023-01-31 湖南工商大学 一种保证网络安全的智慧医保支付系统
KR102915860B1 (ko) * 2022-11-11 2026-01-27 계명대학교 산학협력단 분산 스토리지 관리 방법, 이를 수행하기 위한 기록매체 및 분산 스토리지 관리 시스템
CN116599753A (zh) * 2023-06-09 2023-08-15 山东万腾电子科技有限公司 基于区块链的标识解析数据网关及其方法
WO2025211431A1 (ja) * 2024-04-03 2025-10-09 一也 西本 リアルタイム退避・復元型デジタル資産ガードサービス提供システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6441160B2 (ja) * 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
CN108701276B (zh) * 2015-10-14 2022-04-12 剑桥区块链有限责任公司 用于管理数字身份的系统和方法
CN106372533B (zh) * 2016-09-14 2020-04-21 中国银联股份有限公司 基于区块链技术的内容存储方法
CN109791591B (zh) * 2016-10-06 2023-07-07 万事达卡国际公司 经由区块链进行身份和凭证保护及核实的方法和系统
WO2018124297A1 (ja) * 2016-12-28 2018-07-05 株式会社Okeios Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム
JP6414269B1 (ja) * 2017-04-19 2018-10-31 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US10560270B2 (en) * 2017-05-03 2020-02-11 International Business Machines Corporation Optimal data storage configuration in a blockchain
JP2018190227A (ja) * 2017-05-09 2018-11-29 野田 真一 ネットワーク分散型重複排除ファイルストレージシステム
JP7150732B2 (ja) * 2017-05-19 2022-10-11 シータ インフォメーション ネットワーキング コンピューティング ユーケー リミテッド 乗客またはユーザ情報を提供するためのシステム、デバイス、および方法
CN107748850A (zh) * 2017-10-30 2018-03-02 北京计算机技术及应用研究所 一种利用区块链保存设备维修作业数据的方法和系统
CN107809484B (zh) * 2017-10-30 2020-08-18 中国联合网络通信集团有限公司 区块链交易信息处理方法及区块链节点
JP6326173B1 (ja) * 2017-10-31 2018-05-16 株式会社インフォマート データ送受信システム及びデータ送受信方法
JP2019101719A (ja) * 2017-12-01 2019-06-24 株式会社bitFlyer ブロックチェーン・ネットワークにおいてスマートコントラクトを実行可能にするための方法及び当該ネットワークを構成するためのノード
CN108062202A (zh) * 2017-12-15 2018-05-22 中链科技有限公司 一种文件分块存储方法及系统
CN108959563B (zh) * 2018-07-04 2020-05-15 东北大学 一种容量可扩展区块链查询方法及系统

Also Published As

Publication number Publication date
SG11201906827XA (en) 2019-08-27
JP7005639B2 (ja) 2022-01-21
JP2020511808A (ja) 2020-04-16
KR102285798B1 (ko) 2021-08-05
CN110720204B (zh) 2022-06-03
KR20200078419A (ko) 2020-07-01
CN110720204A (zh) 2020-01-21
EP3574630A2 (en) 2019-12-04
WO2019072298A3 (en) 2019-10-10
EP3574630A4 (en) 2020-01-01
PL3574630T3 (pl) 2021-08-02
PH12019501730A1 (en) 2020-03-09
WO2019072298A2 (en) 2019-04-18
EP3574630B1 (en) 2021-02-03

Similar Documents

Publication Publication Date Title
ES2863573T3 (es) Almacenamiento de cadena de bloques basado en secreto con privacidad
US20190278765A1 (en) Shared secret-based blockchain storage
EP3669280B1 (en) Shared blockchain data storage
CN111837115B (zh) 共享的区块链数据存储
CN112119610B (zh) 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法
CN106503574B (zh) 区块链安全存储方法
US11496313B2 (en) User identity and trust models in decentralized and distributed systems
JP6880255B2 (ja) ブロックチェーン機密トランザクションの管理
WO2019120328A2 (en) Processing and storing blockchain data under a trusted execution environment
JP2020525875A (ja) 信頼できる実行環境において実行されるスマートコントラクト動作に基づくブロックチェーンデータの処理
BR112019008168A2 (pt) métodos implementados por computador, meio de armazenamento legível por computador e sistema
US11374755B1 (en) Entangled token structure for blockchain networks
US12047507B2 (en) Creating non-fungible token shards
US11314885B2 (en) Cryptographic data entry blockchain data structure
KR102430135B1 (ko) 에러 정정 코드에 기초하는 동적 블록체인 데이터 저장
CN111226209A (zh) 在基于区块链的系统中执行映射迭代
US12463837B2 (en) Secret smart operations in blockchain
US12549376B2 (en) Compressible blockchains
US20220303121A1 (en) Blockchain data segregation
Gaurav et al. Conceptual insights in blockchain technology: Security and applications
Mukherjee et al. Web3db: Web 3.0 rdbms for individual data ownership
AU2021276530A1 (en) Systems and methods for use in segregating data blocks to distributed storage
US20220399988A1 (en) Linking blockchain operations
HK40027032A (en) Blockchain storage method based on shared secret, storage medium and system
US20250029098A1 (en) Blockchain facilitation of asset transfers between computing systems