ES2878135T3 - Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques - Google Patents

Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques Download PDF

Info

Publication number
ES2878135T3
ES2878135T3 ES18746590T ES18746590T ES2878135T3 ES 2878135 T3 ES2878135 T3 ES 2878135T3 ES 18746590 T ES18746590 T ES 18746590T ES 18746590 T ES18746590 T ES 18746590T ES 2878135 T3 ES2878135 T3 ES 2878135T3
Authority
ES
Spain
Prior art keywords
transaction data
data records
database system
distributed database
data
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
ES18746590T
Other languages
English (en)
Inventor
Rainer Falk
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Application granted granted Critical
Publication of ES2878135T3 publication Critical patent/ES2878135T3/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Procedimiento para formar un conjunto de registros de datos de transacciones clasificados semánticamente y protegidos criptográficamente de un sistema de base de datos distribuida a partir de un conjunto de registros de datos de transacciones no clasificados, que comprende los siguientes pasos: a) Formación de al menos un segundo bloque de datos (B11) de un sistema de base de datos distribuida que ha sido o está concatenado con un primer bloque de datos (B10) del mismo u otro sistema de base de datos distribuida, con lo que los bloques se transmiten a al menos un nodo, b) Determinación de al menos un término de búsqueda en el segundo bloque de datos o lectura de al menos un término de búsqueda determinado previamente que comprende el segundo bloque de datos, c) Selección de un registro de datos de transacciones (Tx0) del conjunto (M) de registros de datos de transacciones sin clasificar (Tx0 a Tx6), de forma que se haya verificado la integridad del registro de datos de transacciones seleccionado, d) Asignación del registro de datos de transacciones (Tx0) seleccionado al término de búsqueda determinado o leído, o a uno de los términos de búsqueda determinados o leídos, e) Repetición de los pasos b) a d) hasta que se haya alcanzado un número predeterminado de registros de datos de transacciones que seleccionar y/o hasta que el conjunto de registros de datos de transacciones sin clasificar esté vacío, f) Clasificación semántica de los registros de datos de transacciones seleccionados y asignados sobre la base de un criterio de clasificación predeterminable, de forma que los términos de búsqueda asignados se coloquen en un orden correspondiente al criterio de clasificación, y g) Formación del conjunto de registros de datos de transacciones (Tx2, Tx1, Tx0, Tx3) protegidos criptográficamente y clasificados semánticamente con la ayuda del orden mencionado.

Description

DESCRIPCIÓN
Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques
La invención se refiere a dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón de una cadena de bloques y a un procedimiento para formar un conjunto de registros de datos de transacciones clasificados, así como a una red de comunicación asociada y a un producto de programa informático asociado.
Antecedentes
Como resultado, la cadena de bloques contiene una gran cantidad de transacciones de varios tipos. Si una cadena de bloques se utiliza para aplicaciones industriales, por ejemplo, para controlar una red inteligente de energía (Smart Energy Grid), los nodos de la red deben procesar una gran pluralidad de transacciones que no son relevantes para estos.
La tecnología de cadenas de bloques (engl. blockchains o block chains) o de libro de registro distribuido ("Distributed Ledgers") es actualmente una tecnología sometida a un intenso debate. Se describe en https://en.wikipedia.org/wiki/Blockchain (database), entre otros.
La Figura 1 muestra un ejemplo de una cadena de bloques de este tipo. Una cadena de bloques o blockchain se entiende en general como una base de datos cuya integridad (protección contra la manipulación posterior) se garantiza almacenando el valor de función unidireccional PH, también llamado valor hash, del registro de datos o bloque o eslabón B10 anterior en el siguiente eslabón B11, es decir, mediante concatenación criptográfica. La protección se crea mediante una mayoría de nodos BCN de confianza, mostrados a modo de ejemplo en la Figura 3, en una red blockchain N, los cuales ejecutan lo que se conoce como minería o validación de bloques. En la red de nodos que participan en una cadena de bloques se forma un nuevo bloque, por ejemplo, B11, en intervalos regulares, por ejemplo, cada 10 minutos, y con ello se almacena el valor hash PH de un bloque existente. De un conjunto M de transacciones, por ejemplo, Tx0, Tx1, Tx2, Tx3, Tx4, Tx5 y Tx6, se selecciona un número predefinible, en el ejemplo 4, por ejemplo, de transacciones Tx0, Tx1, Tx2 y Tx3 y estas se cuelgan a modo de hojas en un árbol hash en un orden arbitrario, en cualquier caso, en un orden sintáctico numerado del 0 al 3. Es habitual el uso del Merkle Tree o del Patricia Tree, por ejemplo, como árboles hash. El nodo raíz TxR de un árbol hash de este tipo está anclado en un bloque, por ejemplo, B11.
Las transacciones Tx0, Tx1, Tx2, Tx3 que aparezcan una vez en la cadena de bloques ya no se pueden cambiar sin que esto se aprecie. En este proceso de minería se comprueba la validez o la integridad de las transacciones que se deben almacenar en el bloque. La transacción se puede ejecutar con la ayuda de un registro de datos de transacciones. Se entiende que una transacción es una transferencia recíproca de bienes virtuales o reales, o un pago (por ejemplo, por medio de Bitcoin o Ethereum) u otra información de un emisor a un receptor. Bitcoin utiliza un entorno de ejecución basado en pilas relativamente simple para verificar la aceptabilidad de una transacción. Una transacción comprende la suma de comprobación para verificar la validez de la transacción. La plataforma de cadena de bloques Ethereum admite un entorno de ejecución programable libremente para que el código de programa de una cadena de bloques se pueda implementar de manera flexible. En este caso, se almacena una lógica de negocios, por ejemplo, como código de programa en el registro de datos de la transacción y, por lo tanto, en la cadena de bloques o en un nodo de infraestructura de la cadena de bloques. Visto de este modo, la transacción que se debe ejecutar se almacena en un eslabón (de cadena) de la cadena de bloques. Según esto, en este contexto, apenas es posible distinguir entre la transacción que se debe realizar y el registro de datos de transacciones que está configurado para ejecutar la transacción.
Con las cadenas de bloques es posible que algunos nodos validen completamente un bloque, es decir, que verifiquen todas las transacciones de un bloque. Dado que esto es complejo, también se pueden concebir nodos de validación simple ("Simple Validation Nodes"), que solo validan transacciones individuales. Para ello, deben buscar y verificar la ruta mediante el árbol hash de las transacciones en cuestión.
Además de un proceso de minería como prueba de trabajo ("Proof of Work"), también se conocen alternativas, en particular una prueba de participación ("Proof of Stake"), en la que un bloque es confirmado por un nodo de cadena de bloques pseudoaleatorio, pero seleccionado determinísticamente, o una cadena de bloques autorizada ("permissioned Block-chain"). Un registro de datos de transacciones protegido por cadena de bloques y, por tanto, protegido criptográficamente, comprende en general un código de programa. Se entiende por contrato inteligente ("smart contract") un código de programa en el que se pueden definir condiciones en el momento de su creación y evaluarlas durante la ejecución para que se puedan ejecutar o no determinadas transacciones en una determinada cantidad de dinero a un determinado destinatario o a varios destinatarios. XP055515223 describe un sistema de cadena de bloques con un algoritmo de consenso.
Un objetivo de la presente invención consiste en proporcionar procedimientos y dispositivos que permitan un procesamiento eficiente o mejorado de las transacciones que son relevantes para los nodos mediante los nodos. El objetivo se consigue mediante las características indicadas en las reivindicaciones independientes. En las reivindicaciones dependientes están representados perfeccionamientos ventajosos de la invención.
Siempre que no se indique lo contrario en la siguiente descripción, los términos "ejecutar", "calcular", "asistido por ordenador", "computar", "descubrir", "generar", "configurar", "reconstruir" y similares se refieren preferentemente a acciones y/o procesos y/o etapas de procesamiento que cambian y/o generan datos y/o convierten los datos en otros datos, con lo que los datos se representan o pueden estar presentes en particular como magnitudes físicas, por ejemplo, como impulsos eléctricos. En particular, la expresión "ordenador" debe interpretarse de la manera más amplia posible, en particular para abarcar todos los dispositivos electrónicos con propiedades de procesamiento de datos. Por tanto, los ordenadores pueden ser, por ejemplo, ordenadores personales, servidores, controladores lógicos programables (PLC), sistemas informáticos de mano, aparatos informáticos de bolsillo, dispositivos de radio móvil y otros dispositivos de comunicación que pueden procesar datos con la ayuda de ordenadores, procesadores y otros dispositivos electrónicos. para el procesamiento de datos.
En relación con la invención, puede entenderse que "asistido por ordenador" significa, por ejemplo, una implementación del procedimiento en la que, en particular, un procesador ejecuta al menos una etapa del procedimiento.
En relación con la invención, puede entenderse que un procesador significa, por ejemplo, una máquina o un circuito electrónico. Un procesador puede ser, en particular, una unidad central de procesamiento (engl. "Central Processing Unit", CPU), un microprocesador o un microcontrolador, por ejemplo, un circuito integrado de aplicación específica o un procesador de señales digitales, posiblemente en combinación con una unidad de almacenamiento para almacenar comandos de programa, etc. Un procesador también puede ser, por ejemplo, un CI (circuito integrado, engl. "Integrated Circuit"), en particular una FPGA (matriz de puertas programables en campo, engl. "Field Programmable Gate Array") o un ASIC (circuito integrado de aplicación específica, engl. "Application-Specific Integrated Circuit"), o un DSP (procesador de señales digitales, engl. "Digital Signal Processor") o un procesador de gráficos GPU (engl. "Graphic Processing Unit"). Un procesador también puede entenderse como un procesador virtualizado, una máquina virtual o una CPU softcore. Por ejemplo, también puede ser un procesador programable que esté equipado con pasos de configuración para realizar el procedimiento mencionado anteriormente de acuerdo con la invención, o que esté configurado con pasos de configuración de tal manera que el procesador programable cumpla con las características inventivas del procedimiento, del componente, de los módulos, o de otros aspectos y/o aspectos parciales implementados de la invención.
Una "unidad de almacenamiento" o "módulo de almacenamiento" y similares pueden entenderse en relación con la invención, por ejemplo, como una memoria volátil en forma de memoria de acceso aleatorio (engl. "Random-Access Memory", RAM) o una memoria permanente, como un disco duro o un soporte de datos.
En relación con la invención, se puede entender "módulo", "medio", "equipo" y similares, por ejemplo, como un procesador y/o una unidad de almacenamiento para almacenar comandos de programa. Por ejemplo, el procesador está especialmente configurado para ejecutar los comandos del programa de tal manera que el procesador realice funciones para implementar o ejecutar el procedimiento de acuerdo con la invención o una etapa del procedimiento de acuerdo con la invención. Un módulo puede ser también, por ejemplo, un nodo del sistema de base de datos distribuida que, por ejemplo, cumpla con las funciones/características específicas de un módulo correspondiente. Los respectivos módulos/medios/equipos también pueden configurarse, por ejemplo, como módulos/medios/equipos separados o independientes. Para ello, los módulos/medios/equipos correspondientes pueden comprender, por ejemplo, otros elementos. Estos elementos son, por ejemplo, una o más interfaces (por ejemplo, interfaces de base de datos, interfaces de comunicación, por ejemplo, interfaz de red, interfaz WLAN) y/o una unidad de evaluación (por ejemplo, un procesador) y/o una unidad de almacenamiento. Por ejemplo, los datos se pueden intercambiar (por ejemplo, recibir, transmitir, enviar o proporcionar) mediante las interfaces. Por medio de la unidad de evaluación se pueden comparar, verificar, procesar, asignar o calcular los datos, por ejemplo, de manera asistida por ordenador y/o de forma automatizada. Por medio de la unidad de almacenamiento, se pueden almacenar, recuperar o proporcionar los datos, por ejemplo, de manera asistida por ordenador y/o de forma automatizada.
En relación con la invención, "comprender", en particular con respecto a datos y/o información, puede significar, por ejemplo, el almacenamiento (asistido por ordenador) de la información correspondiente o de una fecha correspondiente en una estructura de datos / un registro de datos (que, por ejemplo, se almacena a su vez en una unidad de almacenamiento).
En relación con la invención, "asignar", en particular con respecto a datos y/o información, puede significar, por ejemplo, una asignación de datos y/o información asistida por ordenador. Por ejemplo, se asigna una segunda fecha a una primera fecha mediante una dirección de almacenamiento o un identificador único (engl., "unique identifier", u Id ) de forma que, por ejemplo, la primera fecha se almacene junto con la dirección de almacenamiento o el identificador único de la segunda fecha juntos en un registro de datos.
En relación con la invención, "proporcionar", en particular con respecto a datos y/o información, puede significar, por ejemplo, un proporcionamiento asistido por ordenador. El proporcionamiento tiene lugar, por ejemplo, a través de una interfaz (por ejemplo, una interfaz de base de datos, una interfaz de red, una interfaz respecto a una unidad de almacenamiento). En este proporcionamiento, por ejemplo, se pueden transmitir y/o enviar y/o recuperar y/o recibir los datos y/o la información correspondiente a través de esta interfaz.
En relación con la invención, "proporcionar" también puede significar, por ejemplo, cargar o almacenar, por ejemplo, una transacción con los datos correspondientes. Esto se puede hacer, por ejemplo, en o por parte de un módulo de almacenamiento. "Proporcionar" también puede significar, por ejemplo, transferir (o enviar o transmitir) los datos correspondientes de un nodo a otro nodo en la cadena de bloques o del sistema de base de datos distribuida (o de su infraestructura).
En relación con la invención, el proceso de contrato inteligente ("smart contract process") puede significar, en particular, una ejecución del código de programa (por ejemplo, los comandos de control) en un proceso por parte del sistema de base de datos distribuida o su infraestructura.
En relación con la invención, una "suma de verificación", por ejemplo una suma de verificación de bloque de datos, una suma de verificación de datos, una suma de verificación de nodo, una suma de verificación de transacciones, una suma de verificación de concatenación o similares, puede significar, por ejemplo, una suma de verificación criptográfica o un hash criptográfico o valor hash, que en particular se forma o calcula por medio de una función hash criptográfica a través de un registro de datos y/o datos y/o una o varias de las transacciones y/o un área parcial de un bloque de datos (por ejemplo, el encabezado del bloque de un bloque de una cadena de bloques, o un encabezado de bloque de datos de un bloque de datos del sistema de base de datos distribuida, o solo una parte de las transacciones de un bloque de datos). Una suma de verificación puede ser, en particular, una (o más de una) suma de verificación o un (o más de un) valor hash de un árbol hash (por ejemplo, árbol Merkle, árbol Patricia). Además, también puede entenderse, en particular, como una firma digital o un código de autenticación de mensaje criptográfico. Por medio de las sumas de verificación se puede implementar, por ejemplo, una protección criptográfica/protección contra manipulación para las transacciones y los datos (registros) almacenados en las mismas a diferentes niveles del sistema de base de datos. Si, por ejemplo, se requiere un alto nivel de seguridad, las sumas de verificación se generan y verifican, por ejemplo, a nivel de la transacción. Si se requiere un nivel de seguridad menos elevado, por ejemplo, las sumas de verificación se generan y verifican a nivel de bloque (por ejemplo, en todo el bloque de datos o solo en una parte del bloque de datos y/o en una parte de las transacciones).
En relación con la invención, una "suma de verificación de bloque de datos" puede significar una suma de verificación que se calcula, por ejemplo, en una parte o en todas las transacciones de un bloque de datos. Entonces, un nodo puede, por ejemplo, verificar/determinar la integridad/autenticidad de la parte correspondiente de un bloque de datos por medio de la suma de verificación del bloque de datos. De forma adicional o alternativa, la suma de verificación del bloque de datos puede haberse formado en particular también mediante transacciones de un bloque de datos anterior/bloque de datos precedente del bloque de datos. En particular, la suma de verificación del bloque de datos también se puede implementar mediante un árbol hash, por ejemplo, un árbol Merkle [1] o un árbol Patricia, en el que la suma de verificación del bloque de datos sea en particular la suma de verificación de raíz del árbol Merkle o de un árbol Patricia, o de un árbol hash binario. En particular, las transacciones se aseguran por medio de sumas de verificación adicionales del árbol Merkle o del árbol Patricia (por ejemplo, utilizando las sumas de verificación de transacciones), en las que las sumas de verificación adicionales sean en particular hojas en el árbol Merkle o el árbol Patricia. La suma de verificación del bloque de datos puede asegurar así las transacciones, por ejemplo, formando la suma de verificación de raíz a partir de las otras sumas de verificación. La suma de verificación del bloque de datos se puede calcular en particular para transacciones de un bloque de datos determinado de los bloques de datos. En particular, una suma de verificación del bloque de datos de este tipo se puede incluir en un bloque de datos posterior del bloque de datos específico para concatenar este bloque de datos posterior, por ejemplo, con sus bloques de datos anteriores y, en particular, para hacer que la integridad del sistema de base de datos distribuida sea verificable. De esta forma, la suma de verificación del bloque de datos puede, por ejemplo, asumir la función de la suma de verificación de concatenación o incluirse en la suma de verificación de concatenación. El encabezado de un bloque de datos (por ejemplo, de un nuevo bloque de datos o del bloque de datos para el que se formó la suma de verificación del bloque de datos) puede comprender, por ejemplo, la suma de verificación del bloque de datos. En relación con la invención, una "suma de verificación de transacciones" puede significar una suma de verificación que se forma, por ejemplo, mediante una transacción de un bloque de datos. Además, por ejemplo, se puede acelerar el cálculo de una suma de verificación de bloque de datos para un bloque de datos correspondiente, ya que para este propósito, por ejemplo, las sumas de verificación de transacciones que ya se han calculado están disponibles directamente como hojas, por ejemplo, de un árbol Merkle.
En relación con la invención, una "suma de verificación de concatenación" puede significar una suma de verificación que, en particular, indique o haga referencia a un bloque de datos respectivo del sistema de base de datos distribuida al bloque de datos anterior del sistema de base de datos distribuida (a menudo denominado hash del bloque anterior ("previous block hash" en la literatura especializada) [1]. Para ello, se forma una correspondiente suma de verificación de concatenación en particular para el correspondiente bloque de datos anterior. Por ejemplo, una suma de verificación de transacciones o la suma de verificación de bloque de datos de un bloque de datos (es decir, un bloque de datos existente del sistema de base de datos distribuida) se puede utilizar como suma de verificación de concatenación para concatenar un nuevo bloque de datos con un bloque de datos (existente) del sistema de base de datos distribuida. Sin embargo, también es posible, por ejemplo, que se forme una suma de verificación sobre un encabezado del bloque de datos anterior o sobre todo el bloque de datos anterior y se utilice como suma de verificación de concatenación. Esto también se puede calcular, por ejemplo, para varios o todos los bloques de datos anteriores. Por ejemplo, también es posible formar la suma de verificación de concatenación mediante el encabezado de un bloque de datos y de la suma de verificación del bloque de datos. Sin embargo, un bloque de datos respectivo del sistema de base de datos distribuida comprende preferentemente una suma de verificación de concatenación que se calculó para un bloque de datos anterior, en particular, más preferentemente para el bloque de datos directamente anterior, al respectivo bloque de datos o que se relaciona con él. También es posible, por ejemplo, que se forme una suma de verificación de concatenación correspondiente solo sobre una parte del bloque de datos correspondiente (por ejemplo, del bloque de datos anterior). De esta manera, por ejemplo, se puede implementar un bloque de datos que comprenda una parte protegida por integridad y una parte no protegida. De esta forma se podría implementar un bloque de datos, por ejemplo, cuya parte con protegida por integridad no se pueda modificar y cuya parte desprotegida se pueda modificar posteriormente. En este contexto, debe entenderse que la protección por integridad significa en particular que un cambio en los datos protegidos por integridad puede determinarse mediante una suma de verificación.
Los datos que se almacenan, por ejemplo, en una transacción de un bloque de datos se pueden proporcionar en particular de diferentes formas. En lugar de los datos, por ejemplo, datos de usuario como datos de medición o datos/propiedad de activos, por ejemplo, una transacción de un bloque de datos puede incluir solo la suma de verificación para estos datos. La suma de verificación correspondiente se puede implementar de diferentes formas. Esto puede ser, por ejemplo, una suma de verificación de bloque de datos correspondiente de un bloque de datos (con los datos correspondientes) de otra base de datos o del sistema de base de datos distribuida, una suma de verificación de transacciones de un bloque de datos con los datos correspondientes (del sistema de base de datos distribuida o de otra base de datos) o un suma de verificación de datos que se formó a través de los datos.
Además, la transacción correspondiente puede comprender una referencia o información sobre una ubicación de almacenamiento (por ejemplo, una dirección de un servidor de archivos e indicaciones sobre dónde se pueden encontrar los datos correspondientes en el servidor de archivos; o una dirección de otra base de datos distribuida que contiene datos). Entonces, los datos correspondientes también podrían, por ejemplo, proporcionarse en una transacción adicional de un bloque de datos adicional del sistema de base de datos distribuida (por ejemplo, si los datos correspondientes y las sumas de verificación asociadas se incluyen en bloques de datos distintos). Sin embargo, también es concebible, por ejemplo, que estos datos se proporcionen a través de otro canal de comunicación (por ejemplo, a través de otra base de datos y/o un canal de comunicación protegido criptográficamente).
Por ejemplo, además de la suma de verificación, también se puede almacenar un registro de datos adicional (por ejemplo, una referencia o una indicación sobre una ubicación de almacenamiento) en la transacción correspondiente, el cual indica en particular una ubicación de almacenamiento en la que se pueden recuperar los datos. Esto es particularmente ventajoso para mantener el tamaño de los datos de la cadena de bloques o del sistema de base de datos distribuida lo más pequeño posible.
En relación con la invención, "protegido de manera segura" puede significar, por ejemplo, una protección que se implementa en particular mediante un procedimiento criptográfico. Por ejemplo, esto se puede implementar utilizando el sistema de base de datos distribuida para el proporcionamiento o la transmisión o el envío de datos/transacciones correspondientes. Esto se consigue preferentemente mediante una combinación de las diferentes sumas de verificación (criptográficas), en el sentido de que trabajan juntas en particular de forma sinérgica, por ejemplo, para mejorar la seguridad o la seguridad criptográfica de los datos de las transacciones. En otras palabras, "protegido de manera segura" en relación con la invención también puede significar "protegido criptográficamente" y/o "a prueba de manipulación", con lo que "a prueba de manipulación" también puede denominarse "protegido por integridad".
En relación con la invención, "concatenación de los bloques de datos de un sistema de base de datos distribuida" puede significar, por ejemplo, que cada bloque de datos contiene información (por ejemplo, una suma de verificación de concatenación) que se refiere a otro bloque de datos o a otros varios bloques de datos del sistema de base de datos distribuida o hace referencia a estos [1] [4] [5].
En relación con la invención, "introducción en el sistema de base de datos distribuida" y similares puede significar, por ejemplo, que en particular una transacción o las transacciones, o un bloque de datos con sus transacciones, se transmite a uno o varios nodos de un sistema de bases de datos distribuida. Por ejemplo, si estas transacciones se validan con éxito (por ejemplo, mediante los nodos), estas transacciones se concatenan en particular como un nuevo bloque de datos con al menos un bloque de datos existente del sistema de base de datos distribuida [1] [4] [5]. Para ello, las transacciones correspondientes se almacenan, por ejemplo, en un nuevo bloque de datos. En particular, esta validación y/o concatenación puede llevarse a cabo mediante un nodo de confianza (por ejemplo, un nodo de minería, un oráculo de cadena de bloques o una plataforma de cadena de bloques). En particular, una plataforma de cadena de bloques puede entenderse como una cadena de bloques como servicio (engl. "Blockchain as a service"), tal como proponen en particular Microsoft o IBM. En particular, un nodo de confianza y/o un nodo pueden almacenar respectivamente una suma de verificación de nodo (por ejemplo, una firma digital) en un bloque de datos (por ejemplo, en el bloque de datos que han validado y generado, que luego se concatena), en particular para permitir la identificación del creador del bloque de datos y/o para permitir la identificación del nodo. Esta suma de verificación del nodo indica, por ejemplo, qué nodo ha concatenado el bloque de datos correspondiente con al menos otro bloque de datos del sistema de base de datos distribuida.
En relación con la invención, se puede entender por "transacción" o "transacciones", por ejemplo, un contrato inteligente [4] [5], una estructura de datos o un registro de datos de transacciones, que en particular comprende una o varias de las transacciones. En relación con la invención, también se puede entender por "transacción" o "transacciones", por ejemplo, los datos de una transacción de un bloque de datos de una cadena de bloques (engl. "Blockchain"). En particular, una transacción puede comprender un código de programa que, por ejemplo, implementa un contrato inteligente. Por ejemplo, en relación con la invención, una transacción también puede entenderse como una transacción de control y/o una transacción de confirmación. De forma alternativa, una transacción puede ser, por ejemplo, una estructura de datos que almacena datos (por ejemplo, comandos de control y/o datos de contrato y/u otros datos tales como datos de vídeo, datos de usuario, datos de medición, etc.).
En relación con la invención, se puede entender por "objeto", por ejemplo, dispositivos, dispositivos electrónicos, componentes electrónicos, dispositivos electrónicos de comunicación (por ejemplo, un teléfono móvil), instalaciones técnicas, edificios o sistemas técnicos, que en particular comprenden respectivamente un componente electrónico cuyo estado es preferentemente detectable por un sensor. En particular, el sensor también puede detectar un cambio en el estado del objeto o del componente electrónico del objeto. En particular, el cambio en el estado o el estado también pueden referirse a componentes no electrónicos del objeto. Esto puede ser, por ejemplo, un cambio en la estática de un edificio o una deformación de una parte metálica (por ejemplo, un marco). El estado o el cambio de estado se detectan en particular de manera asistida por ordenador y/o de forma automatizada y/o se proporcionan al sistema de control o al sistema de base de datos distribuida por medio de una interfaz.
En particular, "almacenamiento de transacciones en bloques de datos", "almacenamiento de transacciones" y similares deben entenderse como un almacenamiento directo o indirecto. Se puede entender por almacenamiento directo, por ejemplo, que el bloque de datos correspondiente (del sistema de base de datos distribuida) o la transacción correspondiente del sistema de base de datos distribuida) comprende los respectivos datos. Por almacenamiento indirecto puede entenderse, por ejemplo, que el bloque de datos correspondiente o la transacción correspondiente incluye una suma de verificación y opcionalmente un registro de datos adicional (por ejemplo, una referencia o una indicación sobre una ubicación de almacenamiento) para los datos correspondientes y, por lo tanto, los datos correspondientes no se almacenan directamente en el bloque de datos (o la transacción) (sino que, en su lugar, solo se almacena una suma de verificación para estos datos). En particular, al almacenar transacciones en bloques de datos, estas sumas de verificación se pueden validar, por ejemplo, como se explica en “Introducción en el sistema de base de datos distribuida”, por ejemplo.
En relación con la invención, se puede entender que un "código de programa" (por ejemplo, un contrato inteligente) significa, por ejemplo, un comando de programa o varios comandos de programa que se almacenan en particular en una o varias de las transacciones. En particular, el código del programa se puede ejecutar y es ejecutado, por ejemplo, mediante el sistema de base de datos distribuida. Esto se puede implementar, por ejemplo, por medio de un entorno de ejecución (por ejemplo, una máquina virtual), en el que el entorno de ejecución o el código del programa son preferentemente de tipo Turing completo. El código del programa se ejecuta preferentemente mediante la infraestructura del sistema de base de datos distribuida [4] [5]. Por ejemplo, una máquina virtual se implementa a través de la infraestructura del sistema de base de datos distribuida.
En relación con la invención, puede entenderse que un "contrato inteligente" significa, por ejemplo, un código de programa ejecutable [4] [5] (véase en particular la definición de "código de programa"). El contrato inteligente se almacena preferentemente en una transacción de un sistema de base de datos distribuida (por ejemplo, una cadena de bloques), por ejemplo, en un bloque de datos del sistema de base de datos distribuida. El contrato inteligente se puede ejecutar, por ejemplo, de la misma manera que se explica en la definición de "código de programa", en particular en relación con la invención.
En relación con la invención, se puede entender que "prueba de trabajo" significa, por ejemplo, la resolución de una tarea computacionalmente intensiva que debe resolverse, en particular, en función del contenido/contenido del bloque de datos de una transacción específica [1] [4] [5]. Una tarea tan computacionalmente intensiva también se conoce como un rompecabezas criptográfico, por ejemplo.
Por un "sistema de base de datos distribuida", que también puede denominarse, por ejemplo, una base de datos distribuida, en relación con la invención, puede entenderse una base de datos distribuida de manera descentralizada, una cadena de bloques (engl. "Blockchain"), un libro de registro distribuido, un sistema de almacenamiento distribuido, un libro de registro distribuido, sistema basado en tecnología de libro de registro distribuido distribuida (DLT) (sistema DLTS), un sistema de base de datos a prueba de revisión, una nube, un servicio en la nube, una cadena de bloques en la nube o una base de datos Peer-to-Peer. Por ejemplo, también se pueden utilizar diferentes implementaciones de una cadena de bloques o un DLTS, como, por ejemplo, una cadena de bloques o un DLTS que se forman por medio de un Gráfico Acíclico Dirigido (DAG), un rompecabezas criptográfico, un gráfico hash o una combinación de las variantes de implementación mencionadas [6] [7]. Por ejemplo, también se pueden implementar diferentes procedimientos de consenso (engl. "consensus algorithms"). Esto puede ser, por ejemplo, un procedimiento de consenso por medio de un rompecabezas criptográfico, Gossip about Gossip, Virtual Voting o una combinación de los procedimientos mencionados (por ejemplo, Gossip about Gossip combinado con Virtual Voting) [6] [7]. Si, por ejemplo, se utiliza una cadena de bloques, esta se puede implementar en particular por medio de una implementación basada en Bitcoin o una implementación basada en Ethereum [1] [4] [5]. Un “sistema de base de datos distribuida” también puede entenderse, por ejemplo, como un sistema de base de datos distribuida del cual al menos algunos de sus nodos y/o dispositivos y/o infraestructura se implementan por medio de la nube. Por ejemplo, los componentes correspondientes se implementan como nodos/dispositivos en la nube (por ejemplo, como un nodo virtual en una máquina virtual). Esto se puede realizar usando VM-Ware, Amazon Web Services o Microsoft Azure, por ejemplo. Debido a la alta flexibilidad de las variantes de implementación explicadas, en particular los aspectos parciales de las variantes de implementación mencionadas pueden combinarse entre sí, por ejemplo, usando un gráfico hash como cadena de bloques, en el que la propia cadena de bloques, por ejemplo, también puede no tener bloques.
Si, por ejemplo, se utiliza un gráfico acíclico dirigido (DAG) (por ejemplo, IOTA o Tangle), en particular, las transacciones o bloques, o nodos del gráfico se conectan entre sí a través de bordes dirigidos. Esto significa en particular que (todos) los bordes (siempre) tienen la misma dirección, similar a como sucede, por ejemplo, en el tiempo. En otras palabras, en particular, no es posible iniciar o saltar a las transacciones o los bloques, o los nodos del gráfico hacia atrás (es decir, en la dirección opuesta a la misma dirección común). Acíclico significa, en particular, que no hay bucles en un recorrido del gráfico.
El sistema de base de datos distribuida puede ser, por ejemplo, un sistema de base de datos distribuida público (por ejemplo, una cadena de bloques pública) o un sistema de base de datos distribuida cerrado (o privado) (por ejemplo, una cadena de bloques privada).
Por ejemplo, si se trata de un sistema de base de datos distribuida pública, esto significa que nuevos nodos y/o dispositivos pueden unirse o ser aceptados por el sistema de base de datos distribuida sin credenciales o sin autenticación o sin información de inicio de sesión o credenciales. En particular, los operadores de los nodos y/o dispositivos pueden permanecer en el anonimato en tal caso.
Si el sistema de base de datos distribuida es, por ejemplo, un sistema de base de datos distribuida cerrado, los nuevos nodos y/o dispositivos requieren, por ejemplo, una prueba de autorización válida y/o información de autenticación válida y/o credenciales válidas y/o información de inicio de sesión válida para ser capaces de unirse o ser aceptados por el sistema de base de datos distribuida.
Un sistema de base de datos distribuida puede ser, por ejemplo, también un sistema distribuido de comunicación para intercambiar datos. Puede ser una red o una red Peer-to-Peer, por ejemplo.
En relación con la invención, se puede entender por "bloque de datos", que también puede denominarse "elemento" o "bloque" según el contexto y la implementación, por ejemplo, un bloque de datos de un sistema de base de datos distribuida (por ejemplo, una cadena de bloques o una base de datos Peer-to-Peer), los cuales se implementan en particular como una estructura de datos y comprenden preferentemente una o varias de las transacciones, respectivamente. En una implementación, por ejemplo, la base de datos (o el sistema de base de datos) puede ser un sistema basado en d Lt (DLTS) o una cadena de bloques, y un bloque de datos puede ser un bloque de la cadena de bloques o del DLTS. Un bloque de datos puede comprender, por ejemplo, indicaciones sobre el tamaño (tamaño de los datos en bytes) del bloque de datos, un encabezado del bloque de datos (engl. "Block-header"), un contador de transacciones y una o varias transacciones [1]. El encabezado del bloque de datos puede comprender, por ejemplo, una versión, una suma de verificación de concatenación, una suma de verificación de bloque de datos, una marca de tiempo, una prueba de trabajo y un nonce (valor único, valor aleatorio o contador que se utiliza para la prueba de trabajo) [1] [4] [5]. Un bloque de datos puede ser, por ejemplo, solo un área de almacenamiento específica o un área de direcciones de los datos totales que se almacenan en el sistema de base de datos distribuida. Esto permite implementar, por ejemplo, sistemas de base de datos distribuida sin bloques (engl. "blockless"), como, por ejemplo, loT Chain (ITC), IOTA y Byteball. En particular, las funcionalidades de los bloques de una cadena de bloques y de las transacciones se combinan entre sí de tal manera que, por ejemplo, las transacciones en sí mismas aseguran la secuencia o cadena de transacciones (del sistema de base de datos distribuida) (es decir, en particular, se almacenan de manera segura). Para ello, por ejemplo, las propias transacciones se pueden concatenar entre sí mediante una suma de verificación de concatenación, preferentemente utilizando una suma de verificación separada o la suma de verificación de transacciones de una o varias transacciones como suma de verificación de concatenación, que también se almacena en la nueva transacción correspondiente cuando se almacena una nueva transacción en el sistema de base de datos distribuida. En tal realización, un bloque de datos también puede comprender, por ejemplo, una o varias transacciones, de forma que, en el caso más simple, por ejemplo, un bloque de datos corresponde a una transacción.
En relación con la invención, se puede entender que "nonce" significa, por ejemplo, un nonce criptográfico (abreviatura de: "used only once" [2] o "number used only once" [3]). En particular, un nonce designa una única combinación de números o de letras que se utiliza preferentemente solo una vez en el contexto respectivo (por ejemplo, transacción, transmisión de datos).
En relación con la invención, "bloques de datos anteriores de un bloque de datos (específico) del sistema de base de datos distribuida" puede entenderse, por ejemplo, como el bloque de datos del sistema de base de datos distribuida que, en particular, precede directamente a un bloque de datos (específico). De forma alternativa, también se puede entender por "bloques de datos anteriores de un bloque de datos (específico) del sistema de base de datos distribuida", en particular, todos los bloques de datos del sistema de base de datos distribuida que preceden al bloque de datos específico. De esta manera, por ejemplo, la suma de verificación de concatenación o la suma de verificación de transacciones se puede formar, en particular, solo a través del bloque de datos (o sus transacciones) que preceden directamente al bloque de datos específico o a través de todos los bloques de datos (o sus transacciones) que preceden al primer bloque de datos.
En relación con la invención, se puede entender por "nodo de cadena de bloques", "nodo", "nodo de un sistema de base de datos distribuida" y similares, por ejemplo, dispositivos (por ejemplo, dispositivos de campo, teléfonos móviles), ordenadores, teléfonos inteligentes, clientes. o participantes que realizan operaciones (con) el sistema de base de datos distribuida (por ejemplo, una cadena de bloques) [1] [4] [5]. Dichos nodos pueden, por ejemplo, ejecutar transacciones de un sistema de base de datos distribuida o sus bloques de datos o introducir o concatenar nuevos bloques de datos con nuevas transacciones en el sistema de base de datos distribuida por medio de nuevos bloques de datos. En particular, esta validación y/o concatenación puede llevarse a cabo mediante un nodo de confianza (por ejemplo, un nodo de minería) o exclusivamente mediante nodos de confianza. Un nodo de confianza es, por ejemplo, un nodo que cuenta con medidas de seguridad adicionales (por ejemplo, cortafuegos, restricciones de acceso al nodo o similares) para evitar la manipulación del nodo. De forma alternativa o adicional, por ejemplo, un nodo de confianza puede almacenar una suma de verificación de nodo (por ejemplo, una firma digital o un certificado) en el nuevo bloque de datos cuando se concatena un nuevo bloque de datos con el sistema de base de datos distribuida. De esta manera, en particular, se puede proporcionar una prueba que indique que el bloque de datos correspondiente fue introducido por un nodo específico o que indique su origen. Los dispositivos (por ejemplo, el dispositivo correspondiente) son, por ejemplo, dispositivos de un sistema técnico y/o de una planta industrial y/o de una red de automatización y/o de una planta de fabricación, que en particular también son un nodo del sistema de base de datos distribuida. Los dispositivos pueden ser dispositivos de campo, por ejemplo, o dispositivos en el Internet de las cosas, que en particular también son un nodo del sistema de base de datos distribuida. Por ejemplo, los nodos también pueden comprender al menos un procesador para, por ejemplo, ejecutar su funcionalidad implementada en ordenador.
En relación con la invención, se puede entender por "oráculo de cadena de bloques" y similares, por ejemplo, nodos, dispositivos u ordenadores que, por ejemplo, dispongan de un módulo de seguridad que, por ejemplo, cuente con mecanismos de protección de software (por ejemplo, procedimientos criptográficos), equipos mecánicos de protección (por ejemplo, una carcasa cerrable) o equipos de protección eléctricos (por ejemplo, protección contra manipulaciones o un sistema de protección que borre los datos del módulo de seguridad en caso de un uso/tratamiento no autorizado del oráculo de la cadena de bloques). El módulo de seguridad puede comprender, por ejemplo, claves criptográficas que son necesarias para calcular las sumas de verificación (por ejemplo, sumas de verificación de transacciones o sumas de verificación de nodos).
En relación con la invención, un "ordenador" o un "dispositivo" puede significar, por ejemplo, un ordenador (sistema informático), un cliente, un teléfono inteligente, un dispositivo o un servidor, los cuales estén dispuestos fuera de la cadena de bloques o no sean participantes del sistema de base de datos distribuida (por ejemplo, la cadena de bloques) (es decir, que no realicen ninguna operación con el sistema de base de datos distribuida o solo las consulte, no obstante, sin realizar transacciones, introducir bloques de datos o calcular la prueba de trabajo). De forma alternativa, también se puede entender en particular por ordenador un nodo del sistema de base de datos distribuida. En otras palabras, se puede entender por dispositivo en particular un nodo del sistema de base de datos distribuida o un dispositivo fuera de la cadena de bloques o del sistema de base de datos distribuida. Un dispositivo fuera del sistema de base de datos distribuida puede, por ejemplo, acceder a los datos (por ejemplo, transacciones o transacciones de control) del sistema de base de datos distribuida y/o ser activado por nodos (por ejemplo, por medio de contratos inteligentes y/u oráculos de cadena de bloques). Si, por ejemplo, un nodo implementa una activación o un control de un dispositivo (por ejemplo, un dispositivo diseñado como un nodo o un dispositivo fuera del sistema de base de datos distribuida), esto puede llevarse a cabo, por ejemplo, por medio de un contrato inteligente que se almacene en particular en una transacción del sistema de base de datos distribuida.
La invención reivindica un procedimiento para formar o generar un conjunto de registros de datos de transacciones clasificados semánticamente y protegidos criptográficamente de una cadena de bloques a partir de un conjunto de registros de datos de transacciones no clasificados, el cual comprende los siguientes pasos: a) Formación de al menos un segundo eslabón de una cadena de bloques que ha sido o está concatenado con un primer eslabón de la misma o de otra cadena de bloques,
b) Determinación de al menos un término de búsqueda en el segundo eslabón o lectura de al menos un término de búsqueda determinado previamente que comprende el segundo eslabón,
c) Selección de un registro de datos de transacciones del conjunto de registros de datos de transacciones sin clasificar, de forma que se haya verificado la integridad del registro de datos de transacciones seleccionado, d) Asignación del registro de datos de transacciones seleccionado al término de búsqueda determinado o leído, o a uno de los términos de búsqueda determinados o leídos,
e) Repetición de los pasos b) a d) hasta que se haya alcanzado un número predeterminado de registros de datos de transacciones que seleccionar y/o hasta que el conjunto de registros de datos de transacciones sin clasificar esté vacío,
f) Clasificación semántica de los registros de datos de transacciones seleccionados y asignados sobre la base de un criterio de clasificación predeterminable, de forma que los términos de búsqueda asignados se coloquen en un orden correspondiente al criterio de clasificación, y
g) Formación del conjunto de registros de datos de transacciones protegidos criptográficamente y clasificados semánticamente con la ayuda del orden mencionado.
El procedimiento es repetible de tal manera que, en última instancia, se pueden formar o generar una pluralidad de eslabones que comienzan con un eslabón de inicio, que también puede ser el eslabón original (eslabón Génesis), de forma que cada eslabón individualmente puede incluir una función de verificación del tipo mencionado al principio o funciones parciales de este tipo.
En relación con la invención, se entiende que ordenado semánticamente significa que la clasificación depende del significado de un término de búsqueda. Puramente por casualidad, la clasificación semántica puede resultar en el mismo orden que en la clasificación sintáctica mencionada anteriormente en la disposición de las transacciones mencionadas. Sin embargo, este no suele ser el caso. El orden de las transacciones dispuestas suele ser semánticamente distinto al orden sintáctico, o incluso no estar clasificado.
Un término de búsqueda puede estar compuesto por un término genérico y uno o más términos subordinados. Un separador, por ejemplo ".", se puede añadir entre los términos genéricos y subordinados.
En el caso de que se determinen o se lean varios términos de búsqueda en dicho segundo eslabón, estos pueden disponerse en un árbol de búsqueda, preferentemente un árbol hash, de manera que los términos de búsqueda formen los nodos del árbol de búsqueda. Un término de búsqueda también puede disponerse jerárquicamente con el término genérico en el nodo raíz del árbol de búsqueda hasta llegar a un término subordinado en el nodo hoja del árbol de búsqueda, de forma que un separador indique un borde del árbol de búsqueda situado entre los nodos asociados.
Por consiguiente, el árbol de búsqueda de un eslabón se estructura sobre la base de términos de búsqueda. Preferentemente, el procedimiento se lleva a cabo de forma asistida por ordenador. Siempre que no se indique lo contrario en la siguiente descripción, los términos "ejecutar", "calcular", "asistido por ordenador", "computar", "descubrir", "generar", "configurar", "reconstruir" y similares se refieren preferentemente a acciones y/o procesos y/o etapas de procesamiento que cambian y/o generan datos y/o convierten los datos en otros datos, con lo que los datos se representan o pueden estar presentes en particular como magnitudes físicas, por ejemplo, como impulsos eléctricos. En particular, la expresión "ordenador" debe interpretarse de la manera más amplia posible, en particular para abarcar todos los dispositivos electrónicos con propiedades de procesamiento de datos. Por tanto, los ordenadores pueden ser, por ejemplo, ordenadores personales, servidores, controladores lógicos programables (PLC), sistemas informáticos de mano, aparatos informáticos de bolsillo, dispositivos de radio móvil y otros dispositivos de comunicación que pueden procesar datos con la ayuda de ordenadores, procesadores y otros dispositivos electrónicos. para el procesamiento de datos.
En relación con la invención, puede entenderse que "asistido por ordenador" significa, por ejemplo, una implementación del procedimiento en la que, en particular, un procesador ejecuta al menos una etapa del procedimiento.
En relación con la invención, puede entenderse que un procesador significa, por ejemplo, una máquina o un circuito electrónico. Un procesador puede ser, en particular, una unidad central de procesamiento (engl. "Central Processing Unit", CPU), un microprocesador o un microcontrolador, por ejemplo, un circuito integrado de aplicación específica o un procesador de señales digitales, posiblemente en combinación con una unidad de almacenamiento para almacenar comandos de programa, etc. Un procesador también puede ser, por ejemplo, un CI (circuito integrado, engl. "Integrated Circuit"), en particular una FPGA (matriz de puertas programables en campo, engl. "Field Programmable Gate Array") o un ASIC (circuito integrado de aplicación específica, engl. "Application-Specific Integrated Circuit"), o un DSP (procesador de señales digitales, engl. "Digital Signal Processor") o un procesador de gráficos GPU (engl. "Graphic Processing Unit"). Un procesador también puede entenderse como un procesador virtualizado, una máquina virtual o una CPU softcore. Por ejemplo, también puede ser un procesador programable que esté equipado con pasos de configuración para realizar el procedimiento mencionado anteriormente de acuerdo con la invención, o que esté configurado con pasos de configuración de tal manera que el procesador programable cumpla con las características inventivas del procedimiento, del componente, de los módulos, de los elementos o de otros aspectos y/o aspectos parciales implementados de la invención.
En relación con la invención, se puede entender por "unidad de almacenamiento", por ejemplo, una memoria en forma de memoria de acceso aleatorio (engl. Random-Access Memory, RAM) o un disco duro.
En relación con la invención, un elemento puede ser, por ejemplo, un procesador y/o una unidad de almacenamiento para almacenar comandos de programa. Por ejemplo, el procesador está especialmente configurado para ejecutar los comandos del programa de tal manera que el procesador realice funciones para implementar o ejecutar el procedimiento de acuerdo con la invención o una etapa del procedimiento de acuerdo con la invención.
Una cadena de bloques se puede utilizar más eficientemente mediante nodos, en particular, ordenadores o dispositivos de control en un entorno industrial del Internet de las cosas (Internet of Things, IoT). Además, se mejora el comportamiento a tiempo real, ya que es necesario evaluar menos información irrelevante en términos de contenido por parte de estos nodos. Sin embargo, una plataforma de cadena de bloques común se puede utilizar para una pluralidad de tareas diferentes, lo que significa que dicha plataforma de cadena de bloques se puede operar de manera eficiente. Además, la plataforma de cadena de bloques se puede ejecutar en diferentes plataformas de hardware.
Otro aspecto de la invención es un dispositivo para proporcionar un conjunto de registros de datos de transacciones filtrados y protegidos criptográficamente a partir de un conjunto de registros de datos de transacciones con integridad verificada y clasificados semánticamente de un eslabón de una cadena de bloques, el cual se forma de acuerdo con el procedimiento de acuerdo con una de las reivindicaciones del procedimiento anteriores, que comprende:
- Medios de proporcionamiento para proporcionar al menos uno de estos eslabones de una cadena de bloques, y
- Medios de acoplamiento para acoplar los medios de proporcionamiento con un equipo de filtrado que determina el conjunto de registros de datos de transacciones filtrados a partir del conjunto de registros de datos de transacciones verificados y clasificados semánticamente de la cadena de bloques con la ayuda de un criterio de filtrado, y
- Medios de salida para proporcionar el conjunto determinado de registros de datos de transacciones filtrados.
En relación con la invención, puede entenderse que "proporcionar" significa, por ejemplo, crear, cargar o almacenar el registro de datos de transacciones en o desde un soporte de datos o plataforma.
Con la ayuda del criterio de filtrado, se hace posible un filtrado simple de las transacciones relevantes de un bloque de cadena de bloques. El criterio de filtrado se puede organizar de tal manera que un nodo no pueda procesar todo el árbol de búsqueda con todas las transacciones, sino que pueda determinar específicamente un subárbol que contenga las transacciones que sean relevantes para este.
El criterio de filtrado puede diseñarse como un tipo de criterio "Publish-Subscribe". Se pueden utilizar protocolos Publish-Subscribe, como MQTT, XMPP, OPC UA PubSub. Los denominados nodos publicadores publican mensajes; los suscriptores, por ejemplo, los dispositivos de un grupo reciben mensajes. Los términos de búsqueda identifican temas de noticias. Un publicador (nodo publicador) especifica el tema (topic o término de búsqueda) de un mensaje, y los suscriptores se suscriben a los mensajes de ciertos temas. Los mensajes son transmitidos, por ejemplo, por un intermediario de mensajes. Los términos de búsqueda se estructuran generalmente jerárquicamente, por ejemplo, con el modo de realización del árbol de búsqueda mencionado anteriormente.
Otro aspecto de la invención es un equipo de filtrado adecuado para acoplarse con los medios de proporcionamiento del dispositivo mencionado anteriormente, caracterizado por medios de determinación para determinar un conjunto de registros de datos de transacciones filtrados a partir del conjunto de registros de datos de transacciones clasificados y con integridad verificada de una cadena de bloques con la ayuda del criterio de filtrado.
Un modo de realización del equipo de filtrado prevé que el criterio de filtrado se pueda determinar con la ayuda de un término de búsqueda adicional y/o al menos una parte del término de búsqueda adicional que sea idéntico al término de búsqueda en el eslabón de la cadena de bloques proporcionado, o se derive o se pueda derivar de este. El término de búsqueda adicional puede ser un tema del tipo ya mencionado anteriormente (publicaciónsuscripción), que se asigna a un término de búsqueda en el árbol de búsqueda o que, dado el caso, es idéntico a este. En tal caso, la asignación o derivación se puede llevar a cabo mediante una tabla de asignación (término de búsqueda-tema).
Otro aspecto de la invención es una unidad de acceso que comprende un equipo de filtrado del tipo mencionado anteriormente, caracterizada por que el término de búsqueda adicional puede ser determinado por un dispositivo o varios dispositivos de un grupo y/o puede estar suscrito en la medida en que estos estén suscritos a los registros de datos transacción asignados al término de búsqueda, y solo se transmiten al dispositivo o la pluralidad de dispositivos los eslabones de la cadena de bloques que tengan los registros de datos de transacciones determinados y/o suscritos. La unidad de acceso es, por tanto, una especie de puerta de enlace, especialmente para los dispositivos, preferentemente para dispositivos IoT (que a menudo no pueden procesar cadenas de bloques). Los términos de búsqueda o temas adicionales se pueden determinar a través de una interfaz de usuario (UI). Los términos de búsqueda también se pueden determinar como datos de planificación de proyecto para una planta industrial. Entonces, el dispositivo se puede suscribir a determinados términos de búsqueda adicionales. Las transacciones que coinciden con el término de búsqueda adicional se filtran y solo estas se llevan a cabo para el dispositivo mencionado o se ponen a disposición del dispositivo.
Otro aspecto de la invención es una disposición de red de comunicación que comprende los siguientes componentes:
- al menos un nodo de red que procesa cadenas de bloques, cada uno de los cuales tiene un dispositivo del tipo mencionado anteriormente,
- uno o más dispositivos asignados a un grupo,
- al menos un equipo de filtrado del tipo mencionado anteriormente o al menos una unidad de acceso de acuerdo con el tipo mencionado anteriormente, y
- que comprende una infraestructura de red con la ayuda de la cual los componentes nombrados pueden comunicarse entre sí.
En la infraestructura de red, se puede utilizar un protocolo de publicación-suscripción, por ejemplo del tipo ya explicado anteriormente, en el que el equipo de filtrado se diseñe para permitir que uno o varios dispositivos del grupo se suscriban y/o determinen términos de búsqueda.
La infraestructura de la red puede diseñarse de modo que los componentes mencionados puedan comunicarse entre sí de forma alámbrica o inalámbrica a través de una interfaz aérea. La interfaz aérea se puede diseñar de acuerdo con los estándares GSM, UMT, LTE, 5G, WLAN, Zigbee, Bluetooth o NFC, etc.
Los dispositivos, equipos o las disposiciones se pueden perfeccionar de acuerdo con los perfeccionamientos y modos de realización del procedimiento mencionado anteriormente.
Además, se proporciona un (producto de) programa informático con comandos de programa para un nodo de red que procesa una cadena de bloques, en particular del tipo mencionado al principio, que se configura por medio de comandos de programa que son adecuados para ejecutar el procedimiento de acuerdo con una de las reivindicaciones del procedimiento anteriores.
Además, se puede proporcionar una variante del producto de programa informático con comandos de programa para configurar un dispositivo de creación, por ejemplo, una impresora 3D, un sistema informático o una máquina de producción adecuada para crear procesadores y/o dispositivos.
Los usos, dispositivos y (productos de) programas informáticos pueden diseñarse de acuerdo con los perfeccionamientos/modos de realización del procedimiento mencionado anteriormente y sus perfeccionamientos/modos de realización adicionales.
Además, es posible un dispositivo de proporcionamiento para almacenar y/o proporcionar el producto de programa informático. El dispositivo de proporcionamiento es, por ejemplo, un soporte de datos que almacena y/o proporciona el producto de programa informático. De forma alternativa y/o adicional, el dispositivo de proporcionamiento es, por ejemplo, un servicio de red, un sistema informático, un sistema de servidor, en particular un sistema informático distribuido, un sistema de cálculo basado en la nube y/o un sistema de cálculo virtual, que almacena y/o proporciona el producto de programa informático preferentemente en forma de un flujo de datos.
Este proporcionamiento se realiza, por ejemplo, como descarga en forma de un bloque de datos de programa y/o bloque de datos de comando, preferentemente como fichero, en particular como fichero de descarga, o como flujo de datos, en particular como flujo de datos de descarga, del producto de programa informático completo. Pero, este proporcionamiento también se puede realizar, por ejemplo, como descarga parcial, que se compone de varias partes y, en particular, se descarga a través de una red Peer-to-Peer o se proporciona como flujo de datos. Un producto de programa informático de este tipo se lee, por ejemplo, usando el dispositivo de proporcionamiento en forma del soporte de datos en un sistema, y ejecuta los comandos de programa, de modo que el procedimiento de acuerdo con la invención se lleva a un ordenador para la ejecución, o el dispositivo de creación se configura de manera que este crea el eslabón y/o la cadena de bloques.
Las propiedades, características y ventajas descritas anteriormente de esta invención, así como el modo y manera en cómo se consiguen se harán comprensibles de forma más clara y obvia en relación con la siguiente descripción de ejemplos de realización que se explican más en detalle en relación con las figuras. A este respecto muestran en representación esquemática:
la Fig. 1 un ejemplo de modo de realización como cadena de bloques de acuerdo con el estado de la técnica; la Fig. 2 un ejemplo de modo de realización de acuerdo con la invención de uno o varios registros de datos de transacciones incorporados en un eslabón de una cadena de bloques;
la Fig. 3 un ejemplo de modo de realización de cómo se puede integrar la invención en una infraestructura de red,
la Fig. 4 un diagrama de flujo del procedimiento de acuerdo con la invención.
En las figuras, los elementos iguales funcionalmente se proveen de las mismas referencias, siempre y cuando no se indique lo contrario.
Como ya se ha descrito al principio, la Fig. 1 muestra los eslabones, por ejemplo, un primer eslabón B10 y un segundo eslabón B11 de una cadena de bloques. Cada uno de los eslabones incluye varias transacciones Tx0 a Tx3. El valor hash PH, que se forma en función del eslabón anterior, puede ser en particular un valor hash criptográfico que se puede determinar, por ejemplo, por medio de SHA2-256, SHA2-384, SHA-3, BLAKE2.
La Fig. 2 muestra un ejemplo de modo de realización de uno o varios registros de datos de transacciones incorporados en un eslabón de una cadena de bloques.
Cada eslabón puede comprender un valor hash (funcional) para sus transacciones T, que puede servir como el valor hash raíz TxR de un árbol hash TT. El árbol hash, también conocido como árbol de búsqueda, se configura de tal manera que contiene tanto un valor hash, por ejemplo, HOI, H23, respecto al siguiente nodo con los valores hash hO y Hl del árbol hash TT, como al menos un término de búsqueda "eon" o "Telekom", como se muestra en la Fig. 2. El nodo con HO tiene el término de búsqueda "M-Stadt" ("M-Ciudad") y el nodo con HI tiene el término de búsqueda"M-Land" ("M-Estado"), por ejemplo, como término genérico. Se muestran más nodos a partir del nodo con HI, que tienen términos subordinados, como, por ejemplo, los lugares "Vaterstetten", "Poing" o "Aschheim". Cada uno de estos nodos también contiene un valor hash, que no se representa en la Fig. 2. En las hojas del árbol hash TT se prevén posibles designaciones de transacciones, como se muestra en la Figura 2, -"Load sheeding" (desconexión de carga), "Reduce infeed" (reducción de alimentación), que representan prácticamente la raíz de un siguiente árbol hash HT, configurado como árbol Merkle en el ejemplo. Los otros nodos del árbol Merkle no se representan en la Figura 2. En las hojas del árbol Merkle se muestran las transacciones Tx2, Tx1 y Tx0, Tx3, que han alcanzado las posiciones que se muestran en el árbol Merkle mediante la clasificación semántica de un conjunto no clasificado M de transacciones (véase Fig. 1). En otras palabras, el árbol hash HT (por ejemplo, Merkle Tree, Patricia Tree o similar) de un eslabón se clasifica, es decir, se clasifican las transacciones de un eslabón. Esto significa que todas las transacciones que cumplen con un criterio de clasificación común (término de búsqueda) se encuentran en una rama del árbol.
Esto tiene la ventaja de que las transacciones de un "término de búsqueda" se pueden verificar de manera eficiente. Un nodo BCN (véase Figura 3) puede cargar y verificar el área parcial del árbo1HT que comprende las transacciones de este término de búsqueda. De esta forma se puede distinguir fácilmente entre distintos tipos de transacciones. Un nodo que solo deseara evaluar ciertos tipos de transacciones puede procesar específicamente la parte o las partes del árbol HT que contienen transacciones relevantes.
La estructura del árbol HT puede ser fija, o puede determinarse adaptativamente (por bloque o en períodos de tiempo mayores). Además, la estructura del árbol HT (es decir, la clasificación) puede darse a conocer como una transacción en la cadena de bloques. Esto hace que la información sea fácil de evaluar y que, si es necesario, se pueda adaptar.
De esta manera, también es posible una evaluación eficiente de las transacciones de cadena de bloques para los nodos de IoT, por ejemplo, en el Internet de las cosas. Por consiguiente, las transacciones de un "término de búsqueda" no se distribuyen aleatoriamente en el árbol Merkle.
De acuerdo con la Figura 3, un dispositivo, por ejemplo, IoT, se asigna a un grupo AN, por ejemplo, una red de energía, que se ha suscrito a un tema, por ejemplo, "eon.M- Land.Poing.Reduceinfeed", en tal caso, para este dispositivo solo se filtra la transacción Tx0 y Tx1 del árbol semántico clasificado semánticamente y, dado el caso, se ejecuta.
En el ejemplo de la Figura 2, el tema o el término de búsqueda se compone a partir del término genérico "eon" y otros términos subordinados "M-Land" y "Poing" y, en última instancia, de la designación de transacciones "Reduceinfeed", con un separador en forma de punto entre los términos. Dicho separador podría identificar un borde en el árbol TT entre el nodo "eon" y el nodo "M-Land". De manera análoga, todos los bordes del árbol TT podrían marcarse con separadores.
La Figura 3 muestra, a modo de ejemplo, una disposición de red de comunicación que comprende nodos BCN que pueden implementar una cadena de bloques (base de datos distribuida) que pueden comunicarse entre sí a través de una infraestructura de red N, lo cual está indicado por las flechas. También se prevé el dispositivo IoT mencionado anteriormente. El grupo AN comprende, por ejemplo, otros dispositivos FD1, FD2, FD3 y un controlador IoT, IoTC, que está en conexión con el dispositivo IoT. Además, se prevé una puerta de enlace G en la disposición de comunicación. Esto se puede implementar, por ejemplo, como servidor, dispositivo o como servicio basado en la nube (por ejemplo, una aplicación especial para una plataforma industrial). La puerta de enlace G genera una transacción de cadena de bloques a partir de un mensaje proporcionado por un publicador de un protocolo de publicación-suscripción (por ejemplo, XMPP, MQTT, AMQP, OpC UA PubSub), que se asigna a un tema, de forma que la transacción es eway en la dirección opuesta de una transacción que es dnet, y se confirma en un eslabón que se valida cuando suscriptores del mensaje PubSub (dispositivos de un grupo) proporcionan el mensaje PubSub que contiene el término de búsqueda de la transacción de la cadena de bloques como tema. Un dispositivo (no mostrado) que filtra las transacciones por medio de un equipo de filtrado integrado o acoplado (de manera remota) se puede implementar preferentemente en la puerta de enlace o también en uno de los nodos BCN. El filtrado se puede realizar utilizando el enfoque de publicación-suscripción descrito anteriormente. Mediante el tema (término de búsqueda adicional) se determina un criterio de filtrado con la ayuda del cual las transacciones filtradas o los registros de datos de transacciones pueden proporcionarse y transmitirse a dispositivos, por ejemplo, IoT u otros nodos BCN.
En este caso, puede tener lugar una asignación 1:1 del término de búsqueda de cadena de bloques a los temas PubSub (otros términos de búsqueda, véase arriba), es decir, los términos son idénticos. Una asignación de términos de búsqueda de cadena de bloques a temas PubSub y viceversa también se puede realizar a través de una Tabla Tab que se puede integrar en la puerta de enlace G. Esto tiene la ventaja de que una infraestructura de cadena de bloques puede ser utilizada fácilmente por dispositivos IoT o dispositivos de Industria 4.0, por ejemplo, FD1, FD2, sin que los propios dispositivos tengan que soportar la tecnología de cadena de bloques. Estos dispositivos pueden acceder a las cadenas de bloques a través de protocolos PubSub que se pueden utilizar en el entorno IoT. Un tema (término de búsqueda adicional) puede ser determinado y suscrito por un dispositivo, por ejemplo, a través de una interfaz de usuario, y/o desde un dispositivo, por ejemplo, FD3, como datos de planificación de proyecto (por ejemplo, área de aplicación: industria 4,0, planta: subestación, dispositivo x en la subestación, región: estado federado de Múnich, operador: Eon, etc.). Para hacer esto, una transacción se asigna a un tema (por ejemplo, usando un atributo (de clasificación)). Un tema se puede estructurar jerárquicamente (Topic Tree - árbol de temas), por ejemplo, topic1.topic2.topic3 (véase también arriba). Se pueden usar los espacios de nombres, por ejemplo, como un tema para poder usar la comunicación grupal para un tema específico. Un ejemplo es una planta de energía virtual (VPP - Virtual Power Plant) de Eon en el área del Estado de Múnich (M-Land), que tiene un grupo separado para la comunicación de las reducciones de alimentación: VPP.eon.M- Land.Poing.reduce_infeed (véase Fig. 2).
El criterio de clasificación o la pluralidad de atributos de clasificación pueden preverse explícitamente, por ejemplo, administrativamente, o determinarse implícitamente en función de la transacción. Se puede formar un valor hash del contrato inteligente o de una parte del contrato inteligente y utilizarlo como criterio de clasificación. En la disposición de comunicación (véase la Figura 3), un nodo BCN también puede configurarse como un oráculo de cadena de bloques. Mediante los denominados oráculos de cadena de bloques, los nodos que se consideran de confianza pueden codificar información sobre el mundo real en una transacción de cadena de bloques y, por tanto, hacer que la información del mundo real sea accesible para contratos inteligentes de la cadena de bloques (https://blog.ledger.co/hardware-oracles-bridging-the-real-world-to-theblockchainca97c2fc3e6c#. lu511vbrd).
La Figura 4 muestra un diagrama de flujo del procedimiento de acuerdo con la invención. Dado que una cadena de bloques o blockchain es una base de datos distribuida y descentralizada, normalmente es posible la comunicación con uno de la pluralidad de nodos de cadena de bloques del mismo tipo, por ejemplo, BCN en la Figura 3.
El procedimiento presenta los siguientes pasos:
S01: Formación de uno o varios (segundos) eslabones de una cadena de bloques que han sido o están concatenados con un primer eslabón de la misma o de otra cadena de bloques. Como ya se ha mencionado anteriormente, el primer eslabón puede ser un eslabón de inicio y/o un eslabón Génesis (eslabón original).
S02: Determinación de al menos un término de búsqueda en el segundo eslabón o en cada segundo eslabón, o lectura de al menos un término de búsqueda determinado previamente que comprende el segundo eslabón. Los términos de búsqueda ya se han explicado anteriormente;
S03: Selección de un registro de datos de transacciones del conjunto M (véase, por ejemplo, la Fig. 1) de los registros de datos de transacciones sin clasificar, de forma que se haya verificado la integridad del registro de datos de transacciones seleccionado; y
S04: Asignación del registro de datos de transacciones seleccionado al término de búsqueda determinado o leído, o a uno de los términos de búsqueda determinados o leídos;
B1: Repetición de los pasos S02 a S04 hasta que se haya alcanzado un número predeterminado de registros de datos de transacciones que seleccionar y/o hasta que el conjunto de registros de datos de transacciones sin clasificar esté vacío;
S05: Clasificación semántica de los registros de datos de transacciones seleccionados y asignados sobre la base de un criterio de clasificación predeterminable, de forma que los términos de búsqueda asignados se coloquen en un orden correspondiente al criterio de clasificación, y
S06: Formación del conjunto de registros de datos de transacciones protegidos criptográficamente y clasificados semánticamente con la ayuda del orden mencionado.
B2: El procedimiento se repite comenzando con S01 hasta que se forme una longitud suficiente de la cadena de bloques o un número previsto o predefinido de eslabones en la cadena de bloques.
Aunque la invención se ha ilustrado y descrito más en detalle mediante el ejemplo de realización preferente, así la invención no está limitada por los ejemplos dados a conocer y se pueden derivar otras variaciones por parte del especialista sin abandonar el alcance de protección de la invención.
La implementación de los procesos o desarrollos de procedimientos descritos anteriormente puede tener lugar con referencia a instrucciones que están presentes en medios de almacenamiento legibles por ordenador o en memorias de ordenador volátiles (a continuación, denominadas colectivamente memorias legibles por ordenador). Las memorias legibles por ordenador son, por ejemplo, memorias volátiles como cachés, búferes o RAM, así como memorias no volátiles, como medios extraíbles, discos duros, etc.
Las funciones o los pasos descritos anteriormente pueden estar presentes en forma de al menos un conjunto de instrucciones en/dentro de una memoria legible por ordenador. Las funciones o pasos no están vinculados a un conjunto específico de instrucciones ni a una forma específica de conjunto de instrucciones, ni a un medio de almacenamiento específico ni a un procesador específico, ni a esquemas de ejecución específicos, y se pueden implementar mediante software, firmware, microcódigo, hardware, procesadores, circuitos integrados, etc. tanto solos como en cualquier combinación. Se pueden utilizar distintas estrategias de procesamiento, por ejemplo, procesamiento en serie mediante un solo procesador o multiprocesamiento, o multitarea, o procesamiento en paralelo, etc.
Las instrucciones se pueden almacenar en memorias locales, pero también es posible almacenar las instrucciones en un sistema remoto y acceder a ellas a través de la red.
El término "procesador", "procesamiento central de señales", "unidad de control" o "medios de evaluación de datos", como se usa aquí, comprende medios de procesamiento en el sentido más amplio, por ejemplo, servidores, procesadores de propósito general, procesadores gráficos, procesadores de señales digitales, circuitos integrados de aplicación específica (ASIC), circuitos lógicos programables como FPGA, circuitos discretos analógicos o digitales y cualquier combinación de los mismos, incluyendo cualquier otro medio de procesamiento conocido por el experto en la técnica o desarrollado en el futuro. Los procesadores pueden constar de uno o más dispositivos o equipos o unidades. Si un procesador consta de varios dispositivos, estos pueden diseñarse o configurarse para el procesamiento o la ejecución de instrucciones en paralelo o secuencial.
[1]
Andreas M. Antonopoulos "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'Reilly Media, diciembre de 2014
[2]
Roger M. Needham, Michael D. Schroeder "Using encryption for authentication in large networks of Computers" ACM: Communications of the ACM. Volumen 21, n.° 12, diciembre de 1978,
[3]
Ross Anderson "Security Engineering. A Guide to Building Dependable Distributed Systems" Wiley, 2001
[4]
Henning Diedrich "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", CreateSpace Independent Publishing Platform, 2016
[5]
"The Ethereum Book Project/Mastering Ethereum"
https://github.com/ethereumbook/ethereumbook, Stand 5.10.2017
[6]
Leemon Baird
"The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance",
Swirlds Tech Report SWIRLDS-TR-2016-01, 31.5.2016
[7]
Leemon Baird
"OverView of Swirlds Hashgraph",
31 de mayo de 2016
[8]
Blockchain Oracles
https://blockchainhub.net/blockchain-oracles/
Versión del 14 de marzo de 2018

Claims (11)

  1. REIVINDICACIONES
    i . Procedimiento para formar un conjunto de registros de datos de transacciones clasificados semánticamente y protegidos criptográficamente de un sistema de base de datos distribuida a partir de un conjunto de registros de datos de transacciones no clasificados, que comprende los siguientes pasos: a) Formación de al menos un segundo bloque de datos (B11) de un sistema de base de datos distribuida que ha sido o está concatenado con un primer bloque de datos (B10) del mismo u otro sistema de base de datos distribuida, con lo que los bloques se transmiten a al menos un nodo,
    b) Determinación de al menos un término de búsqueda en el segundo bloque de datos o lectura de al menos un término de búsqueda determinado previamente que comprende el segundo bloque de datos,
    c) Selección de un registro de datos de transacciones (Tx0) del conjunto (M) de registros de datos de transacciones sin clasificar (Tx0 a Tx6), de forma que se haya verificado la integridad del registro de datos de transacciones seleccionado,
    d) Asignación del registro de datos de transacciones (Tx0) seleccionado al término de búsqueda determinado o leído, o a uno de los términos de búsqueda determinados o leídos,
    e) Repetición de los pasos b) a d) hasta que se haya alcanzado un número predeterminado de registros de datos de transacciones que seleccionar y/o hasta que el conjunto de registros de datos de transacciones sin clasificar esté vacío,
    f) Clasificación semántica de los registros de datos de transacciones seleccionados y asignados sobre la base de un criterio de clasificación predeterminable, de forma que los términos de búsqueda asignados se coloquen en un orden correspondiente al criterio de clasificación, y
    g) Formación del conjunto de registros de datos de transacciones (Tx2, Tx1, Tx0, Tx3) protegidos criptográficamente y clasificados semánticamente con la ayuda del orden mencionado.
  2. 2. Procedimiento de acuerdo con la reivindicación anterior, caracterizado por que si hay varios términos de búsqueda determinados o leídos en el segundo bloque de datos (B11), estos se disponen en un árbol de búsqueda (TT), de manera que los términos de búsqueda forman los nodos del árbol de búsqueda.
  3. 3. Procedimiento de acuerdo con una de las reivindicaciones anteriores, caracterizado por que un término de búsqueda se compone de un término genérico y varios términos subordinados, cada uno separado por un separador, opcionalmente.
  4. 4. Procedimiento de acuerdo con la reivindicación anterior, caracterizado por que el término de búsqueda se dispone jerárquicamente con el término genérico en el nodo raíz del árbol de búsqueda hasta llegar a un término subordinado en el nodo hoja del árbol de búsqueda y, opcionalmente, un separador indica un borde del árbol de búsqueda situado entre los nodos asociados.
  5. 5. Dispositivo para proporcionar un conjunto de registros de datos de transacciones filtrados y protegidos criptográficamente a partir de un conjunto de registros de datos de transacciones (Tx2, Tx1, Tx0, Tx3) con integridad verificada y clasificados semánticamente de un bloque de datos (B10, B11) de un sistema de base de datos distribuida, de forma que el conjunto se forma de acuerdo con el procedimiento de acuerdo con una de las reivindicaciones del procedimiento anteriores, que presenta:
    - Medios de proporcionamiento para proporcionar al menos uno de estos bloques de datos de un sistema de base de datos distribuida, y
    - Medios de acoplamiento para acoplar los medios de proporcionamiento con un equipo de filtrado que determina el conjunto de registros de datos de transacciones filtrados a partir del conjunto de registros de datos de transacciones verificados y clasificados semánticamente del sistema de base de datos distribuida con la ayuda de un criterio de filtrado, y
    - Medios de salida para proporcionar el conjunto determinado de registros de datos de transacciones filtrados.
  6. 6. Equipo de filtrado configurado para acoplarse con los medios de proporcionamiento del dispositivo de acuerdo con la reivindicación anterior, caracterizado por medios de determinación para determinar una cantidad de registros de datos de transacciones filtrados a partir de la cantidad de registros de datos de transacciones (Tx2, Tx1, Tx0, Tx3) clasificados y con integridad verificada de un sistema de base de datos distribuida (B11) con la ayuda del criterio de filtrado.
  7. 7. Equipo de filtrado de acuerdo con la reivindicación anterior, caracterizado por que el criterio de filtrado se puede determinar con la ayuda de un término de búsqueda adicional y/o al menos una parte del término de búsqueda adicional que sea idéntico al término de búsqueda en el bloque de datos del sistema de base de datos distribuida proporcionado, o se derive o se pueda derivar de este.
  8. 8. Unidad de acceso (G) que comprende un equipo de filtrado de acuerdo con la reivindicación 7, caracterizada por que el término de búsqueda adicional puede ser determinado por un dispositivo (IoT) o varios dispositivos (IoTC, FD1, FD2, FD3) de un grupo (An ) y/o puede estar suscrito en la medida en que estos estén suscritos a los registros de datos transacciones asignados al término de búsqueda, y solo se transmiten al dispositivo o la pluralidad de dispositivos los bloques de datos del sistema de base de datos distribuida que tengan los registros de datos de transacciones determinados y/o suscritos.
  9. 9. Disposición de la red de comunicación que comprende los siguientes componentes:
    - al menos un nodo de red (BCN) que procesa un sistema de base de datos distribuida, de forma que cada uno de estos presenta un dispositivo de acuerdo con la reivindicación 5,
    - un (IoT) o varios dispositivos (IoTC, FD1, FD2, FD3) asignados a un grupo (AN),
    - al menos un equipo de filtrado de acuerdo con la reivindicación 6 o la reivindicación 7, o al menos una unidad de acceso (G) de acuerdo con la reivindicación anterior de la unidad de acceso, y
    - que comprende una infraestructura de red (N) con la ayuda de la cual los componentes nombrados pueden comunicarse entre sí.
  10. 10. Disposición de comunicación de acuerdo con la reivindicación anterior, caracterizada por que en la infraestructura de red (N) se puede utilizar un denominado protocolo de publicación-suscripción, en el que el equipo de filtrado está diseñado para permitir que uno o varios dispositivos del grupo puedan suscribirse a y/o determinar términos de búsqueda.
  11. 11. Producto de programa informático con comandos de programa para un nodo de red (BCN) que procesa un sistema de base de datos distribuida y que se configura por medio de los comandos de programa que se configuran para realizar el procedimiento de acuerdo con una de las reivindicaciones anteriores, 1-4, del procedimiento.
ES18746590T 2017-08-18 2018-07-09 Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques Active ES2878135T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17186826.8A EP3444997A1 (de) 2017-08-18 2017-08-18 Vorrichtungen zum bereitstellen einer menge von kryptographisch geschützten und gefilterten sowie sortierten transaktionsdatensätzen eines gliedes einer blockkette
PCT/EP2018/065299 WO2019034299A1 (de) 2017-08-18 2018-06-11 Vorrichtungen zum bereitstellen einer menge von kryptographisch geschützten und gefilterten sowie sortierten transaktionsdatensätzen eines gliedes einer blockkette
PCT/EP2018/068475 WO2019034329A1 (de) 2017-08-18 2018-07-09 Vorrichtungen zum bereitstellen einer menge von kryptographisch geschützten und gefilterten sowie sortierten transaktionsdatensätzen eines gliedes einer blockkette

Publications (1)

Publication Number Publication Date
ES2878135T3 true ES2878135T3 (es) 2021-11-18

Family

ID=59686770

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18746590T Active ES2878135T3 (es) 2017-08-18 2018-07-09 Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques

Country Status (7)

Country Link
US (2) US20200366463A1 (es)
EP (2) EP3444997A1 (es)
JP (2) JP2020531976A (es)
CN (2) CN110999214A (es)
BR (1) BR112020003304A2 (es)
ES (1) ES2878135T3 (es)
WO (2) WO2019034299A1 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3609240A1 (de) 2018-08-09 2020-02-12 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
US11245756B2 (en) 2018-09-13 2022-02-08 International Business Machines Corporation Sparse peer with transient participation
US20200092362A1 (en) * 2018-09-13 2020-03-19 International Business Machines Corporation A sparse peer with transient participation
EP3627407A1 (en) * 2018-09-18 2020-03-25 Siemens Aktiengesellschaft Distributed database
US10938578B2 (en) * 2018-10-18 2021-03-02 Keir Finlow-Bates System and method for maintaining an integrity of a blockchain using digital certificates
CN109327528B (zh) * 2018-10-31 2020-10-20 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
US11196567B2 (en) * 2018-11-26 2021-12-07 Amazon Technologies, Inc. Cryptographic verification of database transactions
US10942910B1 (en) 2018-11-26 2021-03-09 Amazon Technologies, Inc. Journal queries of a ledger-based database
KR101997673B1 (ko) * 2018-12-06 2019-07-08 주식회사 푸시풀시스템 가상 블록체인을 갖는 듀얼 블록체인 기반의 디지털 전자기기
US11868327B2 (en) * 2019-01-08 2024-01-09 Jiheng ZHANG Method and apparatus for creating and adding a block based on a directed acyclic graph and building a ledger
CN110109926B (zh) * 2019-04-25 2021-03-16 杭州德旺信息技术有限公司 一种Equihash算法数据的排序装置和排序方法
US11283595B1 (en) * 2019-08-29 2022-03-22 Hiro Systems Pbc Systems and methods for securing cached data stored off-chain in a blockchain-based network
US20210374756A1 (en) * 2020-05-29 2021-12-02 Mastercard International Incorporated Methods and systems for generating rules for unseen fraud and credit risks using artificial intelligence
CN111541784B (zh) 2020-07-08 2021-07-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易处理方法及装置
CN111541789A (zh) 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的数据同步方法及装置
CN111539829B (zh) 2020-07-08 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的待过滤交易识别方法及装置
CN111541726B (zh) 2020-07-08 2021-05-18 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的重放交易识别方法及装置
CN111541783B (zh) 2020-07-08 2020-10-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易转发方法及装置
CN112256271B (zh) * 2020-10-19 2022-11-29 中国科学院信息工程研究所 一种基于静态分析的区块链智能合约安全检测系统
CN112783983A (zh) * 2021-02-07 2021-05-11 中国人民解放军国防科技大学 基于主副区块图链结构区块链账本设计的自适应共识方法
CN112837156A (zh) * 2021-02-10 2021-05-25 中国人民银行数字货币研究所 固定执行顺序的交易方法和装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251155B1 (en) * 2012-05-04 2016-02-02 Paraccel Llc Maintaining sort order of data in databases
US10726098B2 (en) * 2014-01-23 2020-07-28 Dror Samuel Brama Method, system and program product for transferring genetic and health data
JP6364132B2 (ja) * 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
WO2017011327A1 (en) * 2015-07-10 2017-01-19 Whether or Knot LLC Systems and methods for electronic data distribution
US10346826B2 (en) * 2015-07-28 2019-07-09 Wesley John Boudville Blockchain and deep links for mobile apps
US20170140375A1 (en) * 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
EP3394818A4 (en) * 2015-12-21 2019-08-14 Kochava Inc. AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS
CN105719185B (zh) * 2016-01-22 2019-02-15 杭州复杂美科技有限公司 区块链的数据对比及共识方法
US9979718B2 (en) * 2016-05-11 2018-05-22 Bank Of America Corporation System for managing security and access to resource sub-components
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
CN106100847B (zh) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 非对称加密区块链身份信息验证方法及装置
US20180165758A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Providing Financial-Related, Blockchain-Associated Cognitive Insights Using Blockchains
CN106530088B (zh) * 2016-12-19 2023-11-17 杜伯仁 基于区块链安全节点对证券产品进行交易的方法
US10375105B2 (en) * 2017-03-03 2019-08-06 International Business Machines Corporation Blockchain web browser interface
CN106878000B (zh) * 2017-03-06 2020-02-21 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种联盟链共识方法及系统
CN106971302A (zh) * 2017-04-17 2017-07-21 北京工商大学 一种基于区块链技术的三维模型确权与交易方法
US10341105B2 (en) * 2017-06-07 2019-07-02 At&T Intellectual Property I, L.P. Blockchain-based social media history maps
US10664797B2 (en) * 2017-07-19 2020-05-26 Amazon Technologies, Inc. Distributed ledger certification
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11281644B2 (en) * 2017-07-28 2022-03-22 Hitachi, Ltd. Blockchain logging of data from multiple systems

Also Published As

Publication number Publication date
US11184151B2 (en) 2021-11-23
CN111201754A (zh) 2020-05-26
CN110999214A (zh) 2020-04-10
JP2020531976A (ja) 2020-11-05
US20200366463A1 (en) 2020-11-19
EP3652656A1 (de) 2020-05-20
JP2020531975A (ja) 2020-11-05
EP3444997A1 (de) 2019-02-20
US20200387622A1 (en) 2020-12-10
CN111201754B (zh) 2023-08-29
BR112020003304A2 (pt) 2020-08-25
WO2019034299A1 (de) 2019-02-21
EP3652656B1 (de) 2021-06-09
JP7170712B2 (ja) 2022-11-14
WO2019034329A1 (de) 2019-02-21

Similar Documents

Publication Publication Date Title
ES2878135T3 (es) Dispositivos para proporcionar un conjunto de registros de datos de transacciones clasificados, filtrados y protegidos criptográficamente de un eslabón en una cadena de bloques
ES2866498T3 (es) Procedimiento y sistema de control para el control y/o la supervisión de dispositivos
ES2732497T3 (es) Verificación de la participación en eventos basados en criptodivisas
US11640394B2 (en) Method, apparatuses and system for exchanging data between a distributed database system and devices
CN106664308B (zh) 注册之前的设备验证
CN111127021B (zh) 基于区块链的服务请求方法及装置
EP3812997B1 (en) Blockchain-based data processing method and apparatus, and server
TW202101350A (zh) 基於處理模組跨鏈發送可認證訊息的方法和裝置
CN111241557A (zh) 基于区块链的服务请求方法及装置
EP3726407A1 (en) Validation of measurement data sets using oracle consensus
CN115840787B (zh) 基于区块链的供应链数据共享方法、装置、设备及介质
CN102930230A (zh) 计算设备标识方法与装置
ES2812282T3 (es) Equipo y procedimiento de formación de bloques, equipo de nodo y procedimiento de confirmación de bloques
CN113542405A (zh) 基于区块链的网络通信系统、方法、设备及存储介质
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database
CN113949632B (zh) 一种区块链的节点动态配置方法及装置
CN113051622B (zh) 索引构建方法、装置、设备和存储介质
Kim et al. On the Discrete‐Time GeoX/G/1 Queues under N‐Policy with Single and Multiple Vacations
CN104239307A (zh) 用户信息存储方法和系统
CN113806335A (zh) 一种应用于区块链的数据迁移方法及装置
CN114331442B (zh) 一种区块链中智能合约的调用方法及装置
US20220173906A1 (en) Method and control system for controlling an execution of transactions
Mohanaprakash et al. An examination on data integrity auditing patterns in cloud computing
EP3598364A1 (en) Timing constraint for transactions of a distributed database system
Laney Private Group Communication in Blockchain Based on Diffie-Hellman Key Exchange