ES2965381T3 - Capacidad para olvidar en una cadena de bloques - Google Patents
Capacidad para olvidar en una cadena de bloques Download PDFInfo
- Publication number
- ES2965381T3 ES2965381T3 ES21150793T ES21150793T ES2965381T3 ES 2965381 T3 ES2965381 T3 ES 2965381T3 ES 21150793 T ES21150793 T ES 21150793T ES 21150793 T ES21150793 T ES 21150793T ES 2965381 T3 ES2965381 T3 ES 2965381T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- record
- blockchain
- block
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013500 data storage Methods 0.000 claims abstract description 68
- 238000012217 deletion Methods 0.000 claims abstract description 56
- 230000037430 deletion Effects 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000000151 deposition Methods 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 58
- 230000010365 information processing Effects 0.000 claims description 51
- 238000012790 confirmation Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Power Engineering (AREA)
- Quality & Reliability (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
Una realización ejemplar de la presente invención es un método para realizar una eliminación imperativa de al menos un registro de datos entre pares para respaldar la capacidad de olvidar en blockchain. Cada par que participa en un sistema blockchain tiene su propia copia de una cadena de bloques en un sistema blockchain. El método incluye depositar al menos un registro de datos en su sistema de almacenamiento de datos designado por al menos un par; almacenar un puntero de hash criptográfico como un elemento de datos en un primer bloque de su propia copia de la cadena de bloques por parte de cada par; almacenar un elemento de eliminación en un segundo bloque de su propia copia de la cadena de bloques por parte de cada par; y eliminar el registro de datos del sistema de almacenamiento de datos designado por cada par cuando el elemento de eliminación para el registro de datos se encuentra en la cadena de bloques. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Capacidad para olvidar en una cadena de bloques
CAMPO DE LA INVENCIÓN
[0001]La presente invención se refiere a un método de tratamiento de datos que utiliza un sistema de cadenas de bloques.
ANTECEDENTES DE LA INVENCIÓN
[0002]Muchos sistemas de información almacenan datos que son privados y confidenciales, como información personal, transacciones ‘online’, historiales médicos y registros fiscales, contraseñas de cuentas bancarias y correos electrónicos. Es fundamental que este tipo de datos no se filtren al público o a una persona equivocada, ya que las consecuencias pueden ser extremadamente perjudiciales. También existe el requisito, ya sea por ley o por la práctica empresarial, de que determinados datos han de destruirse tras un determinado período de tiempo.
[0003]Los métodos tradicionales para proteger la información confidencial se basan en mantener la integridad del sistema. Si un ordenador está a salvo de piratas informáticos y software malicioso, también lo están sus datos. Sin embargo, garantizar la integridad en el mundo interconectado de hoy en día, donde los mismos datos pueden estar replicados en numerosos servidores de diferentes lugares, resulta extremadamente difícil. Por consiguiente, existe una necesidad de contar con un método robusto y avanzado y de contar con la ‘capacidad de olvidar’ para la eliminación imperativa de registros de datos por parte de personas autorizadas.
Tschuchnig Maximilian Ernst et al., ‘Immutable and Democratic Data in Permissionless Peer-to-Peer Systems’, 2019, Sexta Conferencia Internacional sobre Sistemas Definidos por Software (SDS), IEEE, 10 de junio de 2019, explican diversos métodos para cumplir con el RGPD y otros requisitos de privacidad similares en un entorno de cadenas de bloques que es inmutable por naturaleza. Para ello, los datos se almacenan en bases de datos tradicionales y sólo los correspondientes ‘hashes’ se almacenan en la cadena de bloques. Cuando hay que borrar un registro de datos, la solicitud de eliminación se agrega a la cadena de bloques y se propaga a todos los demás nodos, que se espera que eliminen su copia local de los datos al ver la solicitud de eliminación.
RESUMEN DE LA INVENCIÓN
[0004]Una realización ejemplar consiste en un método para llevar a cabo una eliminación imperativa de al menos un registro de datos entre pares. Cada par que participa en un sistema de cadena de bloques tiene su propia copia de una cadena de bloques en un sistema de cadena de bloques. El método incluye depositar el al menos un registro de datos en su sistema de almacenamiento de datos designado mediante al menos un par; almacenar un puntero de ‘hash’ criptográfico como un elemento de datos en un primer bloque de su propia copia de la cadena de bloques mediante cada par; almacenar un elemento de eliminación en un segundo bloque de su propia copia de la cadena de bloques mediante cada par; y eliminar el registro de datos del sistema de almacenamiento de datos designado mediante cada par cuando el elemento de eliminación para el registro de datos se encuentra en la cadena de bloques. El puntero identifica de forma única el registro de datos en su sistema de almacenamiento de datos designado. El elemento de eliminación indica que el registro de datos está marcado para eliminarse.
[0005]Otra realización ejemplar se refiere a un método para llevar a cabo una eliminación imperativa de un conjunto de datos entre pares. Cada par que participa en un sistema de cadena de bloques tiene su propia copia de una cadena de bloques en el sistema de cadena de bloques. El método incluye depositar un conjunto de datos en su sistema de almacenamiento de datos designado mediante al menos un par; almacenar un puntero de ‘hash’ criptográfico como un elemento de datos en un primer bloque de su propia copia de la cadena de bloques mediante cada par; almacenar múltiples solicitudes de eliminación en múltiples bloques de su propia copia de la cadena de bloques mediante cada par; almacenar un elemento de eliminación en un segundo bloque de su propia copia de la cadena de bloques mediante cada par; y eliminar el conjunto de datos del al menos un sistema de almacenamiento de datos mediante al menos un par cuando el elemento de eliminación del conjunto de datos se encuentra en la cadena de bloques. El conjunto de datos incluye múltiples registros de datos. El puntero señala el conjunto de datos en su sistema de almacenamiento de datos designado. Cada solicitud de eliminación indica que un registro de datos del conjunto de datos está marcado para eliminarse. El elemento de eliminación indica que todos los registros de datos del conjunto de datos han recibido sus propias solicitudes de eliminación y están marcados para eliminarse.
[0006]Una realización ejemplar de la presente invención se refiere a un sistema de procesamiento de información que lleva a cabo una eliminación imperativa de al menos un registro digital. El sistema de procesamiento de información incluye al menos un sistema de almacenamiento de datos que almacena el registro digital; al menos un sistema de cadena de bloques; y un procesador y una memoria que almacena instrucciones y que está comunicada electrónicamente con el procesador. El sistema de cadena de bloques almacena una cadena de bloques que incluye un primer bloque y un segundo bloque, de manera que el primer bloque almacena un puntero de ‘hash’ criptográfico como un elemento de datos que señala el registro digital en el sistema de almacenamiento de datos, y el segundo bloque almacena un elemento de eliminación que indica que el registro digital está marcado para eliminarse del sistema de almacenamiento de datos. El primer bloque precede al segundo bloque en la cadena de bloques. El procesador está configurado para ejecutar las instrucciones para eliminar el registro digital del sistema de almacenamiento de datos al identificar el elemento de eliminación en la cadena de bloques.
BREVE DESCRIPCIÓN DE LAS FIGURAS
[0007]
La Figura 1 muestra un método para llevar a cabo una eliminación imperativa de al menos un registro de datos entre pares de acuerdo con una realización ejemplar.
La Figura 2 muestra un sistema de procesamiento de información de acuerdo con una realización ejemplar. La Figura 3 muestra un sistema de procesamiento de información con una memoria de estado de acuerdo con una realización ejemplar.
La Figura 4 muestra otro sistema de procesamiento de información de acuerdo con una realización ejemplar.
La Figura 5 muestra otro sistema de procesamiento de información con un sistema de almacenamiento de estado de acuerdo con una realización ejemplar.
La Figura 6 muestra un sistema de procesamiento de información de acuerdo con una realización ejemplar.
DESCRIPCIÓN DETALLADA DE LAS REALIZACIONES PREFERIDAS
[0008]Tal y como se utiliza en el presente documento, la expresión ‘que comprende(n)’ significa que incluye(n) los siguientes elementos, pero sin excluir otros.
[0009]Tal y como se utiliza en el presente documento, el término ‘cadena de bloques’ se refiere a una cadena de bloques vinculados mediante criptografía. Cada bloque contiene un puntero ‘hash’ que apunta al bloque anterior. A partir del último bloque, es posible verificar la integridad de los bloques anteriores, vinculados a lo largo de la cadena. Por consiguiente, una base de datos de una cadena de bloques conserva el historial completo de todos los activos e instrucciones ejecutados desde el primer bloque, es decir, el bloque génesis, por lo que sus datos son verificables y auditables de manera independiente.
[0010]Tal y como se utiliza en el presente documento, el ‘primer bloque’ no es necesariamente el bloque génesis de la cadena de bloques y el ‘segundo bloque’ no es necesariamente el bloque siguiente al primer bloque.
[0011]Tal y como se utiliza en el presente documento, el ‘puntero’ facilita a un usuario u operador la identificación de una información. Así, si la información está almacenada en la memoria de un ordenador, un puntero es la dirección de memoria de dicha información. Si la información está almacenada en un archivo de un servidor de archivos, un puntero es la ruta del directorio y el nombre de archivo de dicho archivo. Si la información está almacenada en un registro de una tabla de una base de datos relacional, un puntero es el nombre de la tabla relacional más el desplazamiento respecto a dicho registro.
[0012]Tal y como se utiliza en el presente documento, un ‘puntero hash’ es un valor hash calculado a partir del registro de datos en el que el valor hash puede usarse para identificar de forma única el registro en el sistema de almacenamiento. Un puntero hash criptográfico es un puntero hash que identifica de forma única un registro de datos en el sistema de almacenamiento de datos y que tiene unas propiedades de función hash criptográfica comunes: libre de colisiones, ocultación, etc. El puntero hash puede usarse junto con otras claves de direccionamiento u otros identificadores para identificar un registro de datos por razones de rendimiento o de otro tipo, aunque el puntero hash también puede usarse por sí solo para direccionar un registro de datos. De este modo, si el registro de datos existe en el sistema de almacenamiento de datos, puede verificarse la integridad de los datos. Además, los datos pueden borrarse, pero no pueden modificarse bajo el mismo supuesto de la cadena de bloques.
[0013]Existen muchos casos en los que los datos sensibles deben eliminarse de forma irrecuperable. A veces esto viene impuesto por la ley y en otras ocasiones es por un acuerdo entre las partes. Nos referimos a esto como ‘eliminación imperativa’. Sin embargo, cuando los datos ya no están disponibles en el almacenamiento de datos, es difícil rastrear si los datos se eliminaron del almacenamiento de datos y si los datos estuvieron presentes alguna vez en el almacenamiento de datos. Además, la tecnología de cadena de bloques existente no proporciona ningún mecanismo para eliminar datos de su cadena. Las realizaciones ejemplares de la presente invención permiten realizar una operación de eliminación de datos que puede rastrearse. Los punteros hash criptográficos de la cadena de bloques no se ven afectados cuando se elimina el registro de datos.
[0014]Las realizaciones ejemplares de la presente invención proporcionan un método para almacenar, compartir, buscar y eliminar datos usando cadenas de bloques. También se desvelan mejoras especiales a nivel de arquitectura para optimizar el rendimiento del sistema sin poner en riesgo la integridad del mismo, de modo que se conserva la ventaja de contar con un historial de transacciones verificable en la cadena de bloques, mientras que el tiempo de respuesta del sistema no se ve perjudicado cuando la cadena de bloques se vuelve cada vez más larga.
[0015]Para salvaguardar la confidencialidad, la integridad y la disponibilidad de los registros digitales, las realizaciones ejemplares proporcionan un sistema de procesamiento de información que puede añadir, modificar y eliminar registros digitales, datos o información de manera verificable y no invalidable.
[0016]Las realizaciones ejemplares hacen posible que una cadena de bloques pueda usarse para el tratamiento de datos. Puesto que la integridad de la cadena de bloques puede verificarse, la integridad del historial del registro de datos también puede verificarse.
[0017]La realización ejemplar proporciona un método 100 para llevar a cabo una eliminación imperativa de al menos un registro de datos entre pares tal y como se muestra en la Figura 1. Cada par que participa en un sistema de cadena de bloques tiene su propia copia de una cadena de bloques en un sistema de cadena de bloques.
[0018]El bloque 110 muestra cómo se deposita -mediante al menos un par- el al menos un registro de datos en su sistema de almacenamiento de datos designado.
[0019]El bloque 120 muestra cómo se almacena -mediante cada par- un puntero hash criptográfico como un elemento de datos en un primer bloque de su propia copia de la cadena de bloques.
[0020]A modo de ejemplo, el puntero hash criptográfico identifica y direcciona de forma única el registro en el sistema de almacenamiento de datos, y señala el registro de datos en su sistema de almacenamiento de datos designado.
[0021]El bloque 130 muestra cómo se almacena -mediante cada par- un elemento de eliminación en un segundo bloque de su propia copia de la cadena de bloques.
[0022]A modo de ejemplo, el elemento de eliminación indica que el registro de datos está marcado para eliminarse.
[0023]El bloque 140 muestra cómo se elimina -mediante cada par- el registro de datos del sistema de almacenamiento de datos designado cuando el elemento de eliminación para el registro de datos se encuentra en la cadena de bloques.
[0024]A modo de ejemplo, el método también incluye enviar mediante cada par -al recibir una solicitud de consulta para el registro de datos- una respuesta que indica que el registro de datos se ha eliminado y no está disponible en el sistema de almacenamiento de datos cuando el elemento de eliminación para el registro de datos se encuentra en la cadena de bloques.
[0025]A modo de ejemplo, el método incluye buscar mediante cada par -al recibir una solicitud de consulta para el registro de datos- un elemento de datos que hace referencia al registro de datos desde el último bloque de la cadena de bloques hacia el bloque génesis de la cadena de bloques.
[0026]A modo de ejemplo, el método incluye añadir -mediante el al menos un par- un registro de eliminación en un bloque de la cadena de bloques, de manera que el registro de eliminación indica que el registro de datos se ha eliminado del sistema de almacenamiento de datos.
[0027]A modo de ejemplo, el método incluye almacenar simultáneamente -mediante el par- un puntero hash criptográfico para un registro particular en el sistema de almacenamiento de datos y también en una memoria de estado. En una realización, la memoria de estado es una memoria de clave-valor en la que cada clave puede identificar de forma única el puntero hash criptográfico. Al recibir una solicitud de consulta, la unidad de información accede a la clave para recuperar el puntero hash criptográfico de la memoria de estado y utiliza el puntero hash criptográfico para recuperar el registro particular. En otra realización, el puntero hash se almacena en la memoria de estado junto con el elemento de datos bajo otra clave generada de forma única. Al recibir una solicitud de consulta, la unidad de información accede a la clave para recuperar la otra clave generada de forma única y el puntero hash, de manera que utiliza la clave recuperada para recuperar el registro particular y utiliza el puntero hash criptográfico para verificar el registro.
[0028]Refiriéndonos ahora a la Figura 2, una realización ejemplar consiste en un sistema de procesamiento de información que comprende al menos una unidad de procesamiento de información 200. Cada unidad de procesamiento de información 200 comprende un procesador y una memoria (no se muestra en la Figura 2), una cadena de bloques 220 que está alojada en el área de almacenamiento de la memoria, y una interfaz para acceder a un sistema de almacenamiento de datos 210. El sistema de almacenamiento de datos 210 almacena múltiples registros de datos. La cadena de bloques comprende múltiples bloques. Cada bloque almacena múltiples elementos de datos y un puntero hash que apunta al bloque anterior. A modo de ejemplo, tal y como se muestra en la Figura 2, el bloque 202 es el ‘bloque genio’ de la cadena de bloques 220. Algunos de los elementos de datos son punteros hash criptográficos que apuntan a los correspondientes registros de datos en el sistema de almacenamiento de datos 210. Por ejemplo, cuando la unidad de procesamiento de información 200 recibe un nuevo registro de datos 212, primero lo almacena en el sistema de almacenamiento de datos 210. A continuación se crea un puntero hash criptográfico 223 que apunta a este registro de datos. Después, el puntero hash criptográfico 223 se almacena como un elemento de datos en un bloque 222 de la cadena de bloques 220. En adelante, nos referiremos al bloque 222 como ‘primer bloque’. Al recibir una instrucción para acceder al registro de datos, la unidad de procesamiento de información 220 primero recuperará el puntero hash criptográfico 223 del bloque 222 y después accederá al registro de datos 212.
[0029] Cuando la unidad de procesamiento de información 220 recibe una instrucción para eliminar el registro de datos 212, primero se crea y almacena un elemento de eliminación 225 en un segundo bloque 224 de la cadena de bloques 220. El elemento de eliminación 225 indica que el registro de datos 212 está marcado para eliminarse del sistema de almacenamiento de datos 210. Mientras tanto, la unidad de procesamiento de información 220 también emite la orden de eliminar el registro de datos 212 del sistema de almacenamiento de datos 210.
[0030] Debe entenderse que el puntero hash criptográfico 223 y el elemento de borrado 225 son elementos de datos diferentes. Pueden estar alojados en el mismo bloque (es decir, el elemento de datos 225 está alojado en el bloque 222) o en bloques diferentes, pero generalmente el puntero hash criptográfico 223 precede al elemento de eliminación 225, ya que un registro de datos sólo puede eliminarse después de haberse creado.
[0031] En una realización, un sistema de procesamiento de información puede comprender múltiples unidades de procesamiento de información 200. Cada unidad, denominada ‘par’ de aquí en adelante, puede tener diferentes configuraciones de procesamiento y memoria, pero todas tienen una cadena de bloques con una estructura y un contenido similares, y pueden acceder a un sistema de almacenamiento de datos 210. En una realización, múltiples pares comparten el mismo sistema de almacenamiento de datos 210, mientras que en otra realización, cada par tiene su propio sistema de almacenamiento de datos. Cuando se modifica una cadena de bloques de un par, la modificación se transmite a todos los demás pares, de modo que todos los pares realizarán la misma modificación a su propio ritmo. No obstante, debido a la naturaleza de la operación asíncrona entre pares, algunos pares pueden recibir la instrucción de modificación más tarde y completar su modificación más tarde que otros. Por ello, cuando los pares están actualizando sus propias cadenas de bloques y sistemas de almacenamiento de datos, durante un breve período de tiempo puede haber discrepancias entre los pares sobre si el registro de datos se ha eliminado. Tras este período de tiempo transitorio, todas las cadenas de bloques de todos los pares tendrán el mismo contenido. Durante este período de tiempo transitorio, es posible que, para un par, un registro de datos ya se haya marcado para su eliminación, mientras que, para otro par, todavía está disponible para su recuperación.
[0032] En una realización, cuando se recibe una solicitud de consulta de un registro de datos particular, el par comprobará primero si ya se ha creado un elemento de eliminación 225 de ese registro de datos en su cadena de bloques. Si es así, informará de que el registro de datos no está disponible.
[0033] En otra realización, cada par también emite un mensaje de confirmación de eliminación después de que el registro de datos 212 se haya eliminado realmente del sistema de almacenamiento de datos 210.
[0034] En una realización, el mensaje de confirmación de eliminación se envía de vuelta al solicitante que ha solicitado eliminar el registro de datos. Cuando el solicitante recibe todos los mensajes de confirmación de eliminación de todos los pares, el solicitante crea un elemento de datos de registro de eliminación 227 en un bloque 226.
[0035] En otra realización, el mensaje de confirmación de eliminación se envía a un módulo de administración central de este sistema de procesamiento de información. Al recibir todos los mensajes de confirmación de eliminación de todos los pares, el módulo de administración central crea un elemento de datos de registro de eliminación 227 en un bloque 226.
[0036] A modo de ejemplo, cuando se crea el elemento de eliminación en la cadena de bloques, al menos un par envía un comando de eliminación al módulo de administración central. El módulo de administración central elimina el registro del sistema de almacenamiento de datos 210 y envía una confirmación de eliminación indicando que el registro de datos se ha eliminado del sistema de almacenamiento de datos 210 al -al menos un- par.
[0037] A modo de ejemplo, el registro de eliminación confirma que el registro de datos se ha eliminado del sistema de almacenamiento de datos 210 y el registro de eliminación también indica que el registro de datos existía anteriormente pero ya no está disponible en el sistema de almacenamiento de datos 210.
[0038] Tal y como se ha mencionado anteriormente, cuando se recibe una solicitud de consulta para un registro de datos 212, el par comprobará primero si ya se ha creado un elemento de eliminación 225 de ese registro de datos. Como el elemento de eliminación 225 se encuentra en un bloque 224 que está detrás del bloque 222 que contiene el puntero hash criptográfico 223, una manera de conseguirlo consiste en buscar hacia atrás en la cadena de bloques, es decir, comenzando desde el último bloque y avanzando hacia el bloque genio 202. De este modo, la búsqueda hallará primero el elemento de eliminación 225 antes de llegar al puntero hash criptográfico 223. En una implementación, esto puede lograrse incorporando punteros de enlace inverso en cada bloque de la cadena de bloques 220, de modo que una vez que está disponible un puntero que apunta al último bloque de la cadena, se puede avanzar hacia atrás hasta el bloque génesis 202. En otra implementación alternativa, para cada registro de datos actualizado para un elemento de datos, el registro actualizado almacena un puntero hacia el registro de datos anterior para el elemento de datos, de manera que el historial de un elemento de datos puede recuperarse retrocediendo y siguiendo los enlaces hacia atrás de los registros de elementos de datos. En otra implementación alternativa, el registro de datos para un elemento de datos almacena ‘punteros hacia atrás’ hacia todos los registros de datos anteriores para el elemento de datos. Otra alternativa es utilizar una memoria de estado 310 tal y como se muestra en la Figura 3.
[0039]La Figura 3 muestra un sistema de procesamiento de información de otra realización ejemplar, de manera que las partes correspondientes a las de la Figura 2 se indican con los mismos números y caracteres de referencia; en este caso, no se ofrecerá una descripción detallada. En la Figura 3, la unidad de procesamiento de información 300 es igual que en la Figura 2, salvo por el hecho de que se añade una memoria de estados 310 a su arquitectura. A modo de ejemplo, la memoria de estados 310 puede acceder a la cadena de bloques 220 y también utiliza los mismos punteros hash criptográficos para acceder a los registros de datos en el sistema de almacenamiento de datos 210. Mientras que la cadena de bloques 220 registra las transacciones históricas en los registros de datos, la memoria de estados proporciona una instantánea del estado más reciente de cada registro de datos. Así, cuando un nuevo registro de datos 212 se añade al sistema de almacenamiento de datos 210, y un puntero hash criptográfico 223 que apunta al registro de datos 212 se añade a un elemento de datos 223 del bloque 222, el mismo puntero hash criptográfico se almacena en la memoria de estados 310. En una realización, la memoria de estados es una memoria de clave-valor en la que cada clave puede identificar de forma única el puntero hash criptográfico. Por tanto, se crea una pareja de clave-valor que comprende la clave 312 y el puntero hash criptográfico 314. Cuando el par recibe una instrucción de eliminación para eliminar el registro de datos 212, también se eliminan la clave 312 y el correspondiente puntero hash criptográfico 314 de la memoria de estados 310.
[0040]Cuando el par recibe una solicitud de consulta para el registro de datos 212, la unidad de procesamiento de información 300 accederá a la memoria de estados 310 e intentará utilizar la clave correspondiente 312 para obtener el puntero hash criptográfico 314. Si la clave 312 está disponible, recuperará el registro de datos 212 para el solicitante de la consulta. De lo contrario, el registro de datos debe haberse eliminado y la memoria de estados envía una respuesta indicando que el registro de datos se ha eliminado o no está disponible, de manera que el par notifica al solicitante de la consulta que los datos no están disponibles.
[0041]Con esta configuración, no es necesario que la unidad de procesamiento de información 300 recorra la cadena de bloques 220 desde el último bloque hacia atrás, tal y como se ha explicado en el párrafo anterior, para acceder a un registro de datos. Por lo tanto, añadir una memoria de estado 310 puede acelerar enormemente el tiempo de respuesta del sistema. Por otro lado, la memoria de estado sólo registra la información más reciente sobre si un registro de datos está disponible o no, pero no muestra cuándo y quién ha creado o ha eliminado el registro de datos. Esta información se conserva en la cadena de bloques 220. Por consiguiente, la cadena de bloques 220 proporciona un historial de transacciones verificable sobre cada registro de datos, mientras que la memoria de estado ofrece un acceso rápido para recuperarlos.
[0042]En una realización, en cualquier momento dado, el contenido de la memoria de estado 310 puede reconstruirse a partir de la cadena de bloques 220.
[0043]La Figura 4 muestra una unidad de procesamiento de información 400 de otra realización ejemplar, de manera que las partes correspondientes a las de la Figura 2 se indican con los mismos números y caracteres de referencia; en este caso, no se ofrecerá una descripción detallada. La unidad de procesamiento de información 400 comprende un procesador y una memoria, una cadena de bloques 220 y una interfaz para acceder a un sistema de almacenamiento de datos 210, tal y como se describe en la Figura 2. En esta configuración, algunos registros de datos se agrupan para formar un conjunto de datos y se crea un único puntero hash criptográfico para apuntar al conjunto de datos. A modo de ejemplo, los registros de datos A, B y C (no mostrados en la Figura 4) se agrupan y se almacenan en el sistema de almacenamiento de datos 210 como un conjunto de datos o un registro digital 440. El bloque 401 incluye un puntero hash criptográfico 420 que apunta al conjunto de datos 440.
[0044]Cuando un registro de datos ocupa sólo unos pocos bytes de memoria, pero un puntero hash criptográfico requiere más espacio de almacenamiento que el registro de datos, se ahorrará espacio de almacenamiento si se agrupan unos cuantos registros de datos cortos para formar un conjunto de datos y se crea un puntero hash criptográfico que apunte a ese conjunto de datos. En esta situación, las operaciones de creación, consulta y eliminación de conjuntos de datos son similares a las del caso anterior, pero se modifican ligeramente para manejar conjuntos de datos en vez de registros de datos individuales.
[0045]A modo de ejemplo, se crea un conjunto de datos agrupando múltiples registros de datos cortos. Los criterios sobre cómo agrupar y qué agrupar pueden determinarse para que se adapten a un entorno de aplicación particular y son irrelevantes para la presente invención. A modo de ejemplo, la unidad de procesamiento de información 400 registra que el conjunto de datos 440 consta de tres registros de datos: A, B y C (no se muestran en la Figura 4).
[0046]A modo de ejemplo, cuando se recibe una solicitud de consulta para un registro de datos particular, por ejemplo A, la unidad de procesamiento de la información 400 primero comprueba que el registro de datos A se encuentra en el conjunto de datos 400. Después de recuperar el puntero hash criptográfico 420 del bloque 401, accede al conjunto de datos 440 del sistema de almacenamiento de datos 210 y después extrae el registro de datos A del conjunto de datos 440 e informa al solicitante.
[0047]A modo de ejemplo, cuando se recibe una solicitud de eliminación para eliminar el registro de datos A, la unidad de procesamiento de información 400 añadirá un elemento de solicitud de eliminación 422 al bloque 402 de la cadena de bloques 220, indicando que el registro de datos A está marcado para eliminarse. Sin embargo, no emitirá una instrucción para eliminar el conjunto de datos 440 del sistema de almacenamiento de datos 210, ya que otros registros de datos del conjunto de datos 440 siguen estando disponibles para su consulta. De un modo similar, cuando se recibe una solicitud de eliminación para eliminar el registro de datos B, se crea otro elemento de solicitud de eliminación 424 en el bloque 403 para indicar que el registro de datos B está marcado para eliminarse. Finalmente, cuando se recibe una solicitud para eliminar el registro de datos C, se crea otro elemento de solicitud de eliminación 426 en el bloque 403 para indicar que el registro de datos C debe eliminarse. Como todos los registros de datos del conjunto de datos 440 están marcados para eliminarse, la unidad de procesamiento de información 440 procederá a eliminar el conjunto de datos 440 del sistema de almacenamiento de datos 210. Mientras tanto, también creará un elemento de eliminación 428 en el bloque 404, indicando que todo el conjunto de datos 440 y sus registros de datos asociados se han eliminado y ya no están disponibles.
[0048]Tal y como se ha explicado en párrafos anteriores, el sistema de procesamiento de información puede incluir múltiples unidades de procesamiento de información 400 que operan de forma asíncrona unas respecto a otras. A modo de ejemplo, después de que cada par cree el elemento de eliminación 428, enviará un mensaje de confirmación de eliminación al solicitante de la eliminación o a un módulo de administración central de este sistema de procesamiento de información indicando que el conjunto de datos 440 se ha eliminado. Cuando el solicitante o el administrador central reciben todos los mensajes de confirmación de eliminación de todos los pares, se crea un registro de eliminación 430 como un nuevo elemento de datos en el bloque 404 de la cadena de bloques 220.
[0049]A modo de ejemplo, el registro de eliminación confirma que el conjunto de datos 440 se ha eliminado y ya no está disponible en todos los pares.
[0050]A modo de ejemplo, cada par está configurado para contestar con una respuesta a una solicitud de consulta. La unidad de procesamiento de información 400 primero comprueba si existe un elemento de solicitud de eliminación para ese registro de datos en su cadena de bloques 220. Si lo encuentra, esto indica que el registro de datos está marcado para su eliminación, por lo que responde al solicitante que el registro de datos del conjunto de datos no está disponible. De lo contrario, recupera el puntero hash criptográfico para localizar el conjunto de datos y, a continuación, extrae el registro de datos pertinente del conjunto de datos para informar al solicitante.
[0051]La Figura 5 muestra una unidad de procesamiento de información 500 de otra realización ejemplar, de manera que las partes correspondientes a las de las Figuras 2 a 4 se indican con los mismos números y caracteres de referencia; en este caso, no se ofrecerá una descripción detallada. La unidad de procesamiento de información 500 es similar a la unidad de procesamiento de información 400, excepto porque se ha añadido una memoria de estado 510. En esencia, la memoria de estado 510 capta una instantánea del estado más reciente de cada conjunto de datos y registro de datos. Las funciones y las características de la memoria de estado 510 son similares a las de la memoria de estado 310 de la Figura 3 descrita anteriormente. Funciona de la misma manera que la memoria de estado 310, con el añadido de que no solo trabaja con registros de datos, sino también con conjuntos de datos que agrupan unos cuantos registros de datos. A modo de ejemplo, una clave 512 del puntero hash criptográfico 514 que apunta al conjunto de datos 440 se guarda en su memoria de estado 510. Por lo demás, para las solicitudes de consulta y las solicitudes de eliminación, la unidad de procesamiento de información 500 sigue los mismos principios de funcionamiento que se han mencionado para la Figura 4 y que no repetiremos de nuevo.
[0052]Una realización ejemplar consiste en un sistema de procesamiento de información 900 tal y como se muestra en la Figura 6. A modo de ejemplo, el sistema de procesamiento de información 900 incluye múltiples unidades de procesamiento de información 901, 902, 903, 904, 905 y 906. Cada unidad de procesamiento de información, también denominada ‘par’, es un sistema informático que tiene su propio procesador y memoria. Están interconectadas a una red 930 y cada unidad de procesamiento de información de este sistema de procesamiento de información 900 almacena en su memoria su propia copia de una cadena de bloques. Algunas unidades de procesamiento de información, como la 901, tienen su propio sistema de almacenamiento de datos 911, mientras que otras, como las unidades de procesamiento de información 902 y 903, comparten un sistema de almacenamiento de datos 912. Además, la unidad de procesamiento de información 906 no solo tiene su propio sistema de almacenamiento de datos, sino también una memoria de estado, y juntos conforman una memoria externa 921. De un modo similar, las unidades de información 904 y 905 comparten una memoria externa 922. Las funciones y las propiedades de la memoria de estado y del sistema de almacenamiento de datos se han explicado anteriormente. Cabe señalar que la Figura 6 muestra una configuración ejemplar y plausible de un sistema de procesamiento de información 900. Los expertos en la materia entenderán que la configuración real, el número de pares, el uso compartido de los sistemas de almacenamiento de datos y las memorias de estado dependen de los requisitos específicos de cada aplicación y pueden ampliarse o reconfigurarse según sea necesario.
[0053]Cabe señalar que los bloques 222, 224 y 226 de las Figuras 2 y 3, y los bloques 401,402, 403 y 404 parecen estar uno inmediatamente después del otro, pero, en la práctica, no es necesario que sean adyacentes. Se muestran de esta manera sólo para mayor claridad. En la práctica, puede haber otros bloques entre ellos. Además, los elementos de los bloques, como los punteros hash criptográficos, los elementos de solicitud de eliminación, los elementos de eliminación y los registros de eliminación, pueden estar alojados en el mismo bloque o en bloques separados, o bien algunos en un bloque y otros dispersos en otros bloques. Su disposición en estas figuras es para una mayor claridad.
[0054]A modo de ejemplo, la cadena de bloques 220 es una cadena de bloques pública que puede ser leída por el público en general.
[0055]A modo de ejemplo, la cadena de bloques 220 es una cadena de bloques permisiva en la que está controlado el permiso de lectura o escritura.
[0056]Las unidades de procesamiento de información y los métodos de procesamiento de la presente divulgación pueden implementarse en forma de una aplicación de software que se ejecuta en un sistema informático. Además, algunas partes de los métodos pueden ejecutarse en uno de estos sistemas informáticos, mientras que otras partes se ejecutan en uno o más de estos sistemas informáticos. Los ejemplos de estos sistemas informáticos incluyen los ordenadores centrales, los ordenadores personales, los ordenadores portátiles, los servidores, etc. La aplicación de software puede almacenarse en un medio de grabación localmente accesible mediante el sistema informático y accesible a través de una conexión por cable o inalámbrica a una red, por ejemplo una red de área local o Internet.
[0057]El sistema informático puede incluir, por ejemplo, un procesador, una memoria de acceso aleatorio (RAM), una interfaz de impresora, una unidad de visualización, un controlador de transmisión de datos de red de área local (LAN), una interfaz LAN, un controlador de red, un bus interno y uno o más dispositivos de entrada, por ejemplo un teclado, un ratón, etc. El sistema informático puede estar conectado a un dispositivo de almacenamiento de datos.
[0058]El procesador puede ser una unidad central de procesamiento (CPU), un microprocesador, microcontroladores, procesadores de señales digitales (DSP), matrices de puertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC), etc. para controlar el funcionamiento global de la memoria (por ejemplo la memoria de acceso aleatorio [RAM] para el almacenamiento temporal de datos, la memoria de sólo lectura [ROM] para el almacenamiento permanente de datos, o el firmware). Uno o más procesadores pueden comunicarse entre sí y con la memoria y realizar operaciones y tareas que implementan uno o más bloques de los diagramas de flujo analizados en el presente documento.
[0059]La memoria, por ejemplo, almacena aplicaciones, datos, programas, algoritmos (incluido el software para implementar o ayudar a implementar las realizaciones ejemplares) y otros datos. La memoria puede incluir memorias de acceso aleatorio dinámicas o estáticas (DRAM o SRAM) o memorias de solo lectura, como las memorias de solo lectura programables y borrables (EPROM), las memorias de solo lectura programables y borrables eléctricamente (EEPROM) y las memorias flash, así como otras tecnologías de memoria, solas o combinadas. La memoria, por ejemplo, almacena aplicaciones, datos, programas, algoritmos (incluido el software para implementar o ayudar a implementar las realizaciones ejemplares) y otros datos.
[0060]El sistema de almacenamiento de datos suele incluir almacenamiento persistente, por ejemplo discos magnéticos fijos o extraíbles; otros medios magnéticos, incluidas las cintas; medios ópticos, por ejemplo discos compactos (CD) o discos versátiles digitales (DVD), y dispositivos de almacenamiento semiconductores, como tarjetas de memoria flash, unidades de estado sólido, EPROMs, EEPROMs u otras tecnologías de almacenamiento, por separado o de forma combinada. Cabe señalar que las instrucciones del software mencionado anteriormente pueden proporcionarse en un medio de almacenamiento legible por un ordenador o por una máquina o, alternativamente, pueden proporcionarse en múltiples medios de almacenamiento legibles por ordenador o por máquina distribuidos en un gran sistema que posiblemente tenga varios nodos. Este medio o medios legibles por ordenador o por máquina se consideran parte de un producto (o un artículo de fabricación). Los términos ‘producto’ y ‘artículo de fabricación’ pueden referirse a cualquier componente individual fabricado o a múltiples componentes fabricados.
[0061]Los métodos explicados en el presente documento pueden ejecutarse y/o llevarse a cabo por parte de un usuario, un agente de usuario (incluidos los agentes de aprendizaje automático y los agentes de usuario inteligentes), una aplicación de software, un dispositivo electrónico, un ordenador, un firmware, un hardware, un proceso, un sistema informático y/o un asistente personal inteligente. Además, los bloques y/o los métodos analizados en el presente documento pueden ejecutarse automáticamente con o sin instrucciones de un usuario.
[0062]Los expertos en la materia entenderán que la división entre hardware y software es una división conceptual para facilitar la comprensión y que resulta algo arbitraria. Asimismo, debe entenderse que los dispositivos periféricos de una instalación informática pueden integrarse en el ordenador central de otra. Además, los sistemas de software de aplicación pueden ejecutarse en un entorno informático distribuido. El programa de software y sus bases de datos relacionadas pueden almacenarse en un servidor de archivos separado o en un servidor de bases de datos separado y transferirse al ‘host’ local para ejecutarse. Los expertos en la materia comprenderán que pueden usarse otras realizaciones alternativas para poner en práctica la presente invención.
[0063]Las realizaciones ejemplares de la presente invención se han descrito en su totalidad. Aunque la descripción haga referencia a realizaciones particulares, para un experto en la materia resultará evidente que la presente invención también puede ponerse en práctica modificando estos detalles específicos. Por consiguiente, no debe interpretarse que la presente invención se limita a las realizaciones descritas en el presente documento.
[0064]Por ejemplo, los pares o entidades que llevan a cabo los métodos de las realizaciones ejemplares pueden ser organizaciones gubernamentales, bancos, empresas, departamentos u oficinas de una corporación nacional o multinacional. Juntos forman una comunidad que participa en el sistema de cadena de bloques para almacenar, compartir, buscar y eliminar información digital. Todos los pares que ejecuten la cadena de bloques y acusen recibo del elemento de eliminación de la realización ejemplar deben respetar, aceptar y cooperar con la semántica del método o sistema de la realización ejemplar y eliminar el correspondiente registro digital o conjunto de datos.
[0065]Los métodos analizados en las diferentes figuras pueden añadirse a -o intercambiarse con- los métodos de otras figuras. Además, los valores de datos numéricos específicos (por ejemplo las cantidades, números o categorías específicas, etc.) y otras informaciones específicas deben considerarse ilustrativos, de modo que se usan para explicar las realizaciones ejemplares. Esta información específica no se proporciona para limitar las realizaciones ejemplares. La invención se especifica en las reivindicaciones anexas.
Claims (8)
1. Un método para llevar a cabo una eliminación imperativa de al menos un registro de datos (212) entre pares (200) que participan en un sistema de cadenas de bloques, de manera que cada par tiene su propia copia de una cadena de bloques (220) del sistema de cadenas de bloques y un sistema de almacenamiento de datos designado (210), de manera que el método comprende:
depositar, mediante al menos uno de los pares (200), el al menos un registro de datos (212) en su sistema de almacenamiento de datos designado (210);
almacenar, mediante cada uno de los pares (200), un puntero hash criptográfico (223) como un elemento de datos en un primer bloque (222) de su propia copia de la cadena de bloques, de manera que el puntero apunta al registro de datos (212) en su sistema de almacenamiento de datos designado;
recibir, mediante uno de los pares (200), una instrucción para eliminar el al menos un registro de datos (212), y
en respuesta a la recepción de la instrucción para eliminar el al menos un registro de datos (212):
almacenar, mediante uno de los pares (200), un elemento de eliminación (225) en un segundo bloque (224) de su propia copia de la cadena de bloques (220), de manera que el elemento de eliminación indica que el al menos un registro de datos (212) está marcado para eliminarse de su sistema de almacenamiento de datos designado (210);
emitir, mediante uno de los pares (200), una orden para eliminar el al menos un registro de datos (212) de su sistema de almacenamiento de datos designado (210); y
transmitir, mediante uno de los pares (200), el cambio en su propia copia de la cadena de bloques (220) a cada uno de los demás pares;
almacenar, mediante cada uno de los demás pares (200), un elemento de eliminación en un segundo bloque (224) de su propia copia de la cadena de bloques, de manera que el elemento de eliminación indica que el al menos un registro de datos (212) está marcado para eliminarse de su sistema de almacenamiento de datos designado (210); emitir, mediante cada uno de los demás pares (200), un mensaje de confirmación de eliminación a uno de los pares después de que el al menos un registro de datos (212) se haya eliminado de su sistema de almacenamiento de datos designado (210); y
almacenar, mediante uno de los pares (200), un elemento de datos de registro de eliminación (227) en un tercer bloque (226) de su propia copia de la cadena de bloques (220) tras recibir todos los mensajes de confirmación de eliminación, de manera que el registro de eliminación indica que el al menos un registro de datos (212) existió anteriormente pero ya no está disponible en su sistema de almacenamiento de datos designado (210).
2. El método de la reivindicación 1, que además comprende:
enviar mediante cada uno de los pares, al recibir una solicitud de consulta para el registro de datos (212), una respuesta que indica que el registro de datos se ha eliminado y no está disponible en el sistema de almacenamiento de datos cuando el elemento de eliminación para el registro de datos se encuentra en la cadena de bloques.
3. El método de la reivindicación 1 o la reivindicación 2, que además comprende:
buscar mediante cada uno de los pares, al recibir una solicitud de consulta para el registro de datos (212), un elemento de datos que haga referencia al registro de datos desde el último bloque de la cadena de bloques hacia el bloque génesis de la cadena de bloques.
4. El método de cualquiera de las reivindicaciones anteriores, de manera que el puntero hash criptográfico (223) tiene propiedades hash criptográficas que incluyen la ausencia de colisiones y la ocultación, y de manera que el puntero hash criptográfico identifica de forma única el registro de datos en el sistema de almacenamiento de datos.
5. El método de cualquiera de las reivindicaciones anteriores, que además comprende:
almacenar simultáneamente mediante los pares un puntero hash criptográfico (223) para un registro particular en el sistema de almacenamiento de datos y en una memoria de estado, de manera que la memoria de estado es una base de datos, de manera que cada puntero hash criptográfico identifica de forma única un registro en el sistema de almacenamiento de datos y la memoria de estado, y de manera que el registro particular es el registro más reciente, de tal manera que, ante una consulta, la memoria de estado puede proporcionar el puntero para el registro más reciente.
6. Un sistema de procesamiento de información que lleva a cabo la eliminación imperativa de al menos un registro digital (212) entre pares (200), que comprende:
múltiples pares (200) que participan en un sistema de cadenas de bloques, de manera que cada par comprende: un sistema de almacenamiento de datos designado (210) que almacena el registro digital;
su propia copia de una cadena de bloques (220) del sistema de cadenas de bloques, de manera que la mencionada cadena de bloques (220) incluye un primer bloque (222), un segundo bloque (224) y un tercer bloque (226), de manera que el primer bloque almacena un puntero hash criptográfico (223) como un elemento de datos que apunta al registro digital (212) en el sistema de almacenamiento de datos, de manera que el segundo bloque almacena un elemento de eliminación (225) que indica que el registro digital (212) está marcado para eliminarse del sistema de almacenamiento de datos designado (210), y de manera que el tercer bloque almacena un elemento de datos de registro de eliminación que indica que el registro digital existió anteriormente pero ya no está disponible en el sistema de almacenamiento de datos designado (210), y
un procesador y una memoria que almacena instrucciones y que está comunicada electrónicamente con el procesador, de manera que el procesador está configurado para ejecutar las instrucciones para:
en respuesta a la recepción de una instrucción para eliminar el registro digital (212), mediante uno de los pares:
almacenar el elemento de eliminación (225) en el segundo bloque (224) de su propia copia de la cadena de bloques (220),
emitir un comando para eliminar el registro digital (212) de su sistema de almacenamiento de datos designado (210),
transmitir el cambio en su propia copia de la cadena de bloques (220) a cada uno de los demás pares, y
almacenar el elemento de datos de registro de eliminación (227) en el tercer bloque (226) de su propia copia de la cadena de bloques (220) tras recibir un mensaje de confirmación de eliminación desde todos los demás pares.
7. El sistema de procesamiento de información de la reivindicación 6, de manera que el procesador también está configurado para enviar una respuesta que indica que el registro digital no está disponible al recibir una solicitud de consulta para el registro digital.
8. El sistema de procesamiento de información de la reivindicación 6 o la reivindicación 7, que también comprende: una memoria de estado que almacena una clave y proporciona un puntero hash criptográfico para el registro digital más reciente.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/739,092 US11483131B2 (en) | 2020-01-09 | 2020-01-09 | Ability to forget in blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2965381T3 true ES2965381T3 (es) | 2024-04-15 |
Family
ID=74141393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES21150793T Active ES2965381T3 (es) | 2020-01-09 | 2021-01-08 | Capacidad para olvidar en una cadena de bloques |
Country Status (4)
Country | Link |
---|---|
US (1) | US11483131B2 (es) |
EP (1) | EP3848841B1 (es) |
CN (1) | CN113111121A (es) |
ES (1) | ES2965381T3 (es) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212110B1 (en) * | 2019-03-26 | 2021-12-28 | Wells Fargo Bank, N.A. | Quantum-safe blockchain vault system |
US11741255B2 (en) * | 2020-05-01 | 2023-08-29 | Boomi, LP | System and method of block chain based protection for customized data integration processes |
US11909859B2 (en) * | 2020-06-02 | 2024-02-20 | Sap Se | Removing access to blockchain data |
US20210406394A1 (en) * | 2020-06-25 | 2021-12-30 | Bank Of America Corporation | Pre-registration of secure travel information |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018010197A1 (de) * | 2018-12-18 | 2020-06-18 | GRID INVENT gGmbH | Elektronisches Element und elektrisch angesteuertes Anzeigeelement |
US11429738B2 (en) * | 2019-05-29 | 2022-08-30 | International Business Machines Corporation | Blockchain endorsement with approximate hash verification |
-
2020
- 2020-01-09 US US16/739,092 patent/US11483131B2/en active Active
-
2021
- 2021-01-08 ES ES21150793T patent/ES2965381T3/es active Active
- 2021-01-08 EP EP21150793.4A patent/EP3848841B1/en active Active
- 2021-01-11 CN CN202110031180.XA patent/CN113111121A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113111121A (zh) | 2021-07-13 |
US11483131B2 (en) | 2022-10-25 |
EP3848841B1 (en) | 2023-09-13 |
US20210216529A1 (en) | 2021-07-15 |
EP3848841C0 (en) | 2023-09-13 |
EP3848841A1 (en) | 2021-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2965381T3 (es) | Capacidad para olvidar en una cadena de bloques | |
US11934550B2 (en) | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data | |
Samaraweera et al. | Security and privacy implications on database systems in big data era: A survey | |
US20180307857A1 (en) | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data | |
US10698883B2 (en) | Data coherency between trusted DBMS and untrusted DBMS | |
JP5647754B1 (ja) | 記憶システムにおけるコンテンツの削除のためのコンピュータ化システム、方法、コンピュータ・プログラム、およびデータ記憶媒体(記憶システムにおけるコンテンツの削除) | |
WO2018031940A1 (en) | Fragmenting data for the purposes of persistent storage across multiple immutable data structures | |
EP4395233A2 (en) | Immutable datastore for low-latency reading and writing of large data sets | |
RU2591170C2 (ru) | Система и способ управления зашифрованными данными | |
US20210124730A1 (en) | Blockchain based distributed file systems | |
AU2018391625B2 (en) | Re-encrypting data on a hash chain | |
US9083510B1 (en) | Generation and management of crypto key for cloud data | |
Marangappanavar et al. | Inter-planetary file system enabled blockchain solution for securing healthcare records | |
US10733306B2 (en) | Write-only limited-read filesystem | |
EP1811378A2 (en) | A computer system, a computer and a method of storing a data file | |
AU2018214032A1 (en) | Systems and methods for maintaining group membership records | |
KR20230003238A (ko) | 감소된 볼륨 누출로 암호화된 데이터에 대한 암호화된 검색 | |
US20230274013A1 (en) | Disallowing reads on files associated with compromised data encryption keys | |
JPH08263356A (ja) | コンピュータシステムにおけるシステムクリティカルなファイルに対する不注意による変更を防止するための方法および装置 | |
Zhao et al. | VeriTxn: Verifiable transactions for cloud-native databases with storage disaggregation | |
Sha et al. | Object-oriented Unified Encrypted Memory Management for Heterogeneous Memory Architectures | |
Alouneh et al. | Innovative methodology for elevating big data analysis and security | |
Mullen | CapsuleDB: A Secure Key-Value Store for the Global Data Plane | |
Nasseri et al. | A New Method for Improving the Security and Access Time to Data Blocks in Big Databases | |
Srikanth et al. | Detailed Investigation on Data Duplication Techniques in Cloud Environment |