BR112019014815A2 - Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema - Google Patents

Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema Download PDF

Info

Publication number
BR112019014815A2
BR112019014815A2 BR112019014815-9A BR112019014815A BR112019014815A2 BR 112019014815 A2 BR112019014815 A2 BR 112019014815A2 BR 112019014815 A BR112019014815 A BR 112019014815A BR 112019014815 A2 BR112019014815 A2 BR 112019014815A2
Authority
BR
Brazil
Prior art keywords
messages
message
eco
network
node
Prior art date
Application number
BR112019014815-9A
Other languages
English (en)
Inventor
Lin Peng
Original Assignee
Alibaba Group Holding Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Limited filed Critical Alibaba Group Holding Limited
Publication of BR112019014815A2 publication Critical patent/BR112019014815A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Power Engineering (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

um método para executar um processo de recuperação de um nó de rede de uma rede de protocolo de confiança inclui transmitir uma mensagem de solicitação de estado pelo nó de rede para os outros nós de rede da rede de protocolo de confiança para recuperar uma transação alvo de um número de sequência alvo, receber mensagens de resposta de estado que cada uma inclui um número de sequência dos outros nós de rede, identificar o número de sequência alvo com base nos números de sequência nas mensagens de resposta de estado, enviar uma mensagem solicitante aos outros nós de rede para solicitar uma mensagem eco de cada um dos outros nós de rede, determinar uma quantidade de mensagens eco válidas que são enviadas pelos outros nós de rede, recuperar a transação alvo com base na quantidade de mensagens eco válidas e enviar uma mensagem para os outros nós de rede indicando que o nó de rede foi recuperado.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO E SISTEMA” Antecedentes da Invenção [001] Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados como redes de consenso e/ ou redes de protocolo de confiança (blockchain), permitem que as entidades participantes armazenem dados com segurança e imutabilidade. Os DLSs são comumente chamados de redes de protocolo de confiança sem fazer referência a nenhum caso de usuário específico. Exemplos de redes de protocolo de confiança podem incluir: redes de protocolo de confiança públicas, redes de protocolo de confiança privadas e redes de protocolo de confiança de consórcio. Uma rede de protocolo de confiança pública é aberta para todas as entidades usarem o DLS e participarem do processo de consenso. Uma rede de protocolo de confiança privada é fornecida para uma entidade específica, que controla centralmente as permissões de leitura e gravação. Uma rede de protocolo de confiança de consórcio é fornecida para um grupo seleto de entidades, que controlam o processo de consenso e incluem uma camada de controle de acesso.
[002] Os mecanismos de consenso são um componente primário dos sistemas distribuídos de protocolo de confiança. Um mecanismo de consenso é um processo em ciência da computação que é usado para alcançar um acordo sobre um único valor de dados entre processos ou sistemas distribuídos. Mecanismos de consenso são projetados para alcançar confiabilidade em uma rede envolvendo vários nós não confiáveis. Resolver esse problema - conhecido como problema de consenso - é importante em sistemas de computação distribuída e multi-agentes.
[003] A protocolo de confiança depende de mecanismos de
Petição 870190068052, de 18/07/2019, pág. 97/212
2/89 consenso para alcançar acordo entre nós. Um protocolo de confiança é um banco de dados descentralizado que é gerenciado por computadores distribuídos em uma rede ponto a ponto (P2P). Cada ponto mantém uma cópia do livro-razão para evitar um ponto único de falha (SPOF). Atualizações e validações são refletidas em todas as cópias simultaneamente.
[004] Embora diversas técnicas existentes possam ser usadas para executar o consenso entre os nós de rede de um sistema de protocolo de confiança, uma solução mais eficiente para executar o consenso seria vantajosa.
Descrição Resumida [005] As formas de realização do presente relatório descritivo incluem métodos implementados por computador para abordar questões de consenso em um sistema distribuído (por exemplo, uma rede de protocolo de confiança). Mais particularmente, as formas de realização do presente relatório descritivo destinam-se a realizar um processo de recuperação para um nó de rede em um sistema distribuído.
[006] Em algumas formas de realização, as ações incluem: transmitir uma mensagem de solicitação de estado para uma quantidade de nós de rede da rede de protocolo de confiança por um nó de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo; receber uma quantidade de mensagens de resposta de estado pelo nó de rede a partir da quantidade de nós de rede, em que cada uma da quantidade das mensagens de resposta de estado inclui um número de sequência; identificar o número de sequência alvo pelo nó de rede com base no mesmo número de sequência em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade de mensagens de estado inclui um mesmo número de sequência; enviar uma mensagem solicitante à
Petição 870190068052, de 18/07/2019, pág. 98/212
3/89 pluralidade de nós de rede pelo nó de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da quantidade de nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da quantidade de nós de rede para alcançar um consenso entre a quantidade de nós de rede na transação alvo possuindo o número de sequência alvo, e a mensagem ECO inclui uma parte da transação alvo e uma assinatura de cada um da pluralidade de nós de rede; receber uma quantidade de mensagens ECO pelo nó de rede a partir da pluralidade de nós de rede; determinar uma quantidade de mensagens ECO válidas a partir da pluralidade de mensagens ECO pelo nó de rede, em que cada uma da quantidade de mensagens ECO válidas inclui o número de sequência alvo; recuperar a transação alvo tendo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado; enviar uma mensagem para a pluralidade de nós de rede pelo nó de rede, indicando que o nó de rede foi recuperado.
[007] Outras formas de realização incluem sistemas, aparelhos e programas de computador correspondentes, configurados para executar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[008] Essas e outras formas de realização podem incluir, opcionalmente, um ou mais das seguintes características:
[009] Uma primeira característica, combinável com qualquer uma das seguintes características, em que a quantidade de nós de rede inclui um nó primário e um ou mais nós de cópia de segurança.
[010] Uma segunda característica, combinável com qualquer uma das seguintes características, em que o nó de rede é um nó primário ou um nó de cópia de segurança.
Petição 870190068052, de 18/07/2019, pág. 99/212
4/89 [011] Uma terceira característica, combinável com qualquer uma das seguintes características, em que a mensagem solicitante inclui o número de sequência alvo.
[012] Uma quarta característica, combinável com qualquer uma das seguintes características, em que cada um da quantidade de nós de rede, diferente do nó de rede, verifica a mensagem solicitante antes de enviar as mensagens ECO para o nó de rede.
[013] Uma quinta característica, combinável com qualquer uma das seguintes características, em que o nó de rede verifica se cada uma das mensagens ECO é válida usando uma árvore de Merkel.
[014] Uma sexta característica, combinável com qualquer uma das seguintes características, em que o nó de rede verifica ainda se a assinatura na mensagem ECO é válida.
[015] Uma sétima característica, combinável com qualquer uma das seguintes características, em que cada uma das mensagens ECO inclui ainda pelo menos um de uma quantidade de blocos de código de apagamento (EC) associados à transação alvo, em que a quantidade de blocos de EC é gerado de acordo com um código EC usando a transação alvo.
[016] Uma oitava característica, combinável com qualquer uma das seguintes características, em que o nó de rede reconstrói a transação alvo usando um subconjunto da quantidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
[017] Uma nona característica, combinável com qualquer uma das seguintes características, em que a mensagem para a quantidade de nós de rede indicando que o nó de rede foi recuperado inclui um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de sequência alvo.
[018] O presente relatório descritivo também fornece uma ou
Petição 870190068052, de 18/07/2019, pág. 100/212
5/89 mais mídias de armazenamento legíveis por computador não transitórias acopladas a um ou mais processadores e tendo instruções armazenadas neles que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem operações de acordo com as formas de realização dos métodos aqui fornecidos.
[019] O presente relatório descritivo fornece ainda um sistema para implementar os métodos aqui fornecidos. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador acoplado ao um ou mais processadores tendo instruções armazenadas nele que, quando executadas pelo um ou mais processadores, fazem com que o um ou mais processadores executem operações de acordo com formas de realização dos métodos aqui fornecidos.
[020] O presente relatório descritivo revela mecanismos de consenso melhorados, incluindo técnicas para alcançar o consenso entre os nós de rede em um sistema distribuído, realizar uma mudança de nó primário em um sistema distribuído e executar um processo de recuperação para um nó de rede em um sistema distribuído. Os mecanismos de consenso descritos podem alcançar várias vantagens em diferentes aplicações.
[021] Por exemplo, o processo de consenso, conforme discutido abaixo, inclui muitas características que melhoram as operações do sistema de protocolo de confiança e ajudam a aliviar o estrangulamento da rede. Por exemplo, o processo de consenso descrito inclui converter uma solicitação de transação em uma quantidade de blocos de código de apagamento (EC) de acordo com um código EC e enviar um dos blocos de EC para cada um dos nós de rede. O bloco de EC é menor em tamanho que a solicitação de transação original. Assim, o envio do bloco de EC, em vez da solicitação de transação completa para os nós de rede, reduz o tamanho dos blocos de dados que são transmitidos entre os nós de rede da rede de protocolo de confiança,
Petição 870190068052, de 18/07/2019, pág. 101/212
6/89 conservando assim a largura de banda da rede e reduzindo a carga de rede. Isso reduz ainda mais o tamanho dos dados que são gravados e lidos a partir do espaço de memória dos nós de rede, reduzindo assim a carga no espaço de memória dos nós de rede e melhorando a eficiência do sistema de protocolo de confiança geral.
[022] Além disso, o presente relatório descritivo descreve um processo de mudança de período que inclui atribuir pesos respectivos a múltiplas fases do processo de consenso, determinar uma soma de peso com base nos respectivos pesos das múltiplas fases e determinar um novo nó primário com base na soma de peso. O processo de mudança de período baseado na soma de peso em vez de um método circular (round robin) pode facilitar a escolha de um novo nó primário que não seja defeituoso em tempo hábil. Ao contrário do método circular, o processo de mudança de período no presente relatório descritivo depende da soma de peso para selecionar o novo nó primário, o que pode reduzir a latência ou atraso na localização do novo nó primário que não está com defeito. Isso pode melhorar ainda mais a eficiência do sistema de protocolo de confiança geral no fornecimento de serviços de protocolo de confiança.
[023] Além disso, o presente relatório descritivo discute um processo de recuperação que inclui operações tais como enviar uma mensagem de solicitação de estado por um nó de rede que se aplica para ser um novo nó primário e receber mensagens de resposta de estado a partir dos outros nós de rede. Essas operações são executadas de tal forma que o processo de recuperação do nó de rede defeituoso não interfere com a operação normal do processo de consenso entre os outros nós de rede não defeituosos. Isso facilita a conservação de características de computação e de rede para recuperar o nó de rede defeituoso, reduzindo a complexidade do processo de recuperação.
Petição 870190068052, de 18/07/2019, pág. 102/212
7/89 [024] Reconhece-se que os métodos de acordo com o presente relatório descritivo podem incluir qualquer combinação dos aspectos e características aqui descritos. Isto é, os métodos de acordo com o presente relatório descritivo não estão limitados às combinações de aspectos e características especificamente descritos aqui, mas também incluem qualquer combinação dos aspectos e características proporcionados.
[025] Os detalhes de uma ou mais formas de realização do presente relatório descritivo são apresentados nas figuras anexas e na descrição abaixo. Outras características e vantagens do presente relatório descritivo serão evidentes a partir da descrição e figuras, e a partir das reivindicações.
Descrição Das Figuras [026] A Figura 1 representa um exemplo de um ambiente que pode ser usado para executar formas de realização do presente relatório descritivo.
[027] A Figura 2 representa um exemplo de uma arquitetura conceituai de acordo com formas de realização do presente relatório descritivo.
[028] A Figura 3 representa um exemplo de um processo de consenso que pode ser executado de acordo com formas de realização do presente relatório descritivo.
[029] A Figura 4 representa um exemplo de um processo de consenso que pode ser executado de acordo com formas de realização do presente relatório descritivo.
[030] A Figura 5 representa um exemplo de uma árvore de resumo de acordo com formas de realização do presente relatório descritivo.
[031] A Figura 6 representa um exemplo de mensagens que são comunicadas entre nós de rede de um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
Petição 870190068052, de 18/07/2019, pág. 103/212
8/89 [032] A Figura 7 representa um exemplo de um processo de realização de uma alteração de um nó primário em um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[033] A Figura 8 representa um exemplo de um processo de realização de uma alteração de um nó primário em um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[034] A Figura 9 representa um exemplo de mensagens que são comunicadas entre nós de rede de um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[035] A Figura 10 representa um exemplo de um processo de realização de um processo de recuperação de um nó de rede em um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[036] A Figura 11 representa um exemplo de um processo de realização de um processo de recuperação de um nó de rede em um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[037] A Figura 12 representa um exemplo de mensagens que são comunicadas entre nós de rede de um sistema distribuído de acordo com formas de realização do presente relatório descritivo.
[038] A Figura 13 representa um exemplo de um diagrama que ilustra módulos de um aparelho de consenso, de acordo com uma forma de realização do presente relatório descritivo.
[039] A Figura 14 representa um exemplo de um diagrama que ilustra módulos de um aparelho de consenso, de acordo com uma forma de realização do presente relatório descritivo.
[040] A Figura 15 representa um exemplo de um diagrama que ilustra módulos de um aparelho de mudança de nó primário, de acordo com uma forma de realização do presente relatório descritivo.
[041] A Figura 16 representa um exemplo de um diagrama que
Petição 870190068052, de 18/07/2019, pág. 104/212
9/89 ilustra módulos de um aparelho de mudança de nó primário, de acordo com uma forma de realização do presente relatório descritivo.
[042] A Figura 17 representa um exemplo de um diagrama que ilustra módulos de um aparelho de recuperação, de acordo com uma forma de realização do presente relatório descritivo.
[043] Símbolos de referência iguais nas várias figuras indicam elementos iguais.
Descrição Detalhada [044] As formas de realização do presente relatório descritivo incluem métodos implementados por computador para abordar questões de consenso em um sistema distribuído (por exemplo, uma rede de protocolo de confiança). Mais particularmente, as formas de realização do presente relatório descritivo destinam-se a realizar um processo de recuperação para um nó de rede em um sistema distribuído.
[045] Em algumas formas de realização, as ações incluem: transmitir uma mensagem de solicitação de estado para uma quantidade de nós de rede da rede de protocolo de confiança por um nó de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo; receber uma quantidade de mensagens de resposta de estado pelo nó de rede a partir da quantidade de nós de rede, em que cada uma da quantidade de mensagens de resposta de estado inclui um número de sequência; identificar o número de sequência alvo pelo nó de rede com base no mesmo número de sequência em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade de mensagens de estado inclui um mesmo número de sequência; enviar uma mensagem solicitante à pluralidade de nós de rede pelo nó de rede, em que a mensagem solicitante solicita uma mensagem ECO a partir de cada um da quantidade de nós de
Petição 870190068052, de 18/07/2019, pág. 105/212
10/89 rede, em que a mensagem ECO é uma mensagem transmitida por cada em da quantidade de nós de rede para alcançar um consenso entre a quantidade de nós de rede na transação alvo tendo o número de sequência alvo, e a mensagem ECO inclui uma parte da transação alvo e uma assinatura de cada um da pluralidade de nós de rede; receber uma quantidade de mensagens ECO pelo nó de rede a partir da pluralidade de nós de rede; determinar uma quantidade de mensagens ECO válidas a partir da pluralidade de mensagens ECO pelo nó de rede, em que cada uma da quantidade de mensagens ECO válidas inclui o número de sequência alvo; recuperar a transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado; enviar uma mensagem para a pluralidade de nós de rede pelo nó de rede, indicando que o nó de rede foi recuperado.
[046] Para fornecer um contexto adicional para formas de realização do presente relatório descritivo, e como foi introduzido acima, os sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, constituídos por nós ponto a ponto) ou redes de protocolo de confiança, permitem que entidades participantes realizem transações de forma segura e imutável e armazenem dados. O termo protocolo de confiança é aqui utilizado para referir-se genericamente a um DLS sem referência a qualquer caso de uso particular. Conforme apresentado acima, uma rede de protocolo de confiança pode ser fornecida como uma rede de protocolo de confiança pública, uma rede de protocolo de confiança privada ou uma rede de protocolo de confiança de consórcio.
[047] Um protocolo de confiança é uma estrutura de dados que armazena transações de modo a permitir que transações futuras sejam verificadas quanto à consistência com todas as transações anteriores
Petição 870190068052, de 18/07/2019, pág. 106/212
11/89 armazenadas na cadeia. Um protocolo de confiança inclui um ou mais blocos. Cada bloco na cadeia está ligado a um bloco anterior imediatamente antes dele na cadeia, incluindo um resumo criptográfico do bloco anterior. Cada bloco também inclui uma marca temporal, seu próprio resumo criptográfico e uma ou mais transações. As transações, que já foram verificadas pelos nós de rede de protocolo de confiança, são resumidas e codificadas em uma árvore de Merkle. Uma árvore de Merkle é uma estrutura de dados na qual os dados nos nós de folhas da árvore são resumidos e todos os resumos em cada ramificação da árvore são concatenados na raiz da ramificação. Esse processo continua subindo a árvore até a raiz da árvore inteira, que armazena um resumo que é representativo de todos os dados na árvore. Um resumo supostamente de uma transação armazenada na árvore pode ser verificado rapidamente determinando se é consistente com a estrutura da árvore.
[048] Enquanto um protocolo de confiança é uma estrutura de dados para armazenar transações, uma rede de protocolo de confiança é uma rede de nós de computação que gerencia, atualiza e mantém uma ou mais estruturas de protocolo de confiança. Conforme apresentado acima, uma rede de protocolo de confiança pode ser fornecida como uma rede de protocolo de confiança pública, uma rede de protocolo de confiança privada ou uma rede de protocolo de confiança de consórcio.
[049] Em uma rede de protocolo de confiança pública, o processo de consenso é controlado por nós da rede de consenso. Por exemplo, centenas, milhares e até milhões de entidades podem cooperar em uma rede de protocolo de confiança pública, cada uma operando pelo menos um nó na rede de protocolo de confiança pública. Assim, a rede de protocolo de confiança pública pode ser considerada uma rede pública em relação às entidades participantes. Em alguns exemplos, a maioria das entidades (nós) deve assinar cada bloco para que o bloco seja válido e adicionado ao protocolo
Petição 870190068052, de 18/07/2019, pág. 107/212
12/89 de confiança (livro-razão distribuído) da rede de protocolo de confiança. Exemplos de redes de protocolo de confiança públicas incluem redes de pagamento ponto a ponto particulares que potencializam um livro-razão distribuído, conhecido como protocolo de confiança. Como observado acima, o termo protocolo de confiança, no entanto, é usado para referir-se geralmente a livros-razão distribuídos sem referência particular a qualquer rede de protocolo de confiança em particular.
[050] Em geral, uma rede de protocolo de confiança pública suporta transações públicas. Uma transação pública é compartilhada com todos os nós dentro da rede de protocolo de confiança pública e é armazenada em um protocolo de confiança global. Um protocolo de confiança global é um protocolo de confiança que é replicado em todos os nós. Ou seja, todos os nós estão em perfeito estado de consenso em relação ao protocolo de confiança global. Para chegar a um consenso (por exemplo, concordo para a adição de um bloco a um protocolo de confiança), um protocolo de consenso é implementado na rede de protocolo de confiança pública. Exemplos de protocolos de consenso incluem, sem limitação, prova de trabalho (POW), prova de participação (POS) e prova de autoridade (POA). POW é aqui referenciado ainda como um exemplo não limitativo.
[051] Em geral, uma rede de protocolo de confiança privada é fornecida para uma entidade específica, que controla centralmente as permissões de leitura e gravação. A entidade controla quais nós são capazes de participar na rede de protocolo de confiança, portanto, as redes de protocolo de confiança privadas são geralmente chamadas de redes de permissão que colocam restrições sobre quem pode participar na rede e seu nível de participação (por exemplo, somente em determinadas transações). Vários tipos de mecanismos de controle de acesso podem ser usados (por exemplo, os participantes existentes votam em adicionar novas entidades, uma autoridade
Petição 870190068052, de 18/07/2019, pág. 108/212
13/89 reguladora pode controlar a admissão).
[052] Em geral, uma rede de protocolo de confiança de consórcio é privada entre as entidades participantes. Em uma rede de protocolo de confiança de consórcio, o processo de consenso é controlado por um conjunto autorizado de nós, um ou mais nós sendo operados por uma entidade respectiva (por exemplo, uma instituição financeira, empresa de seguros). Por exemplo, um consórcio de dez (10) entidades (por exemplo, instituições financeiras, empresas de seguros) pode operar uma rede de protocolo de confiança de consórcio, cada uma operando pelo menos um nó na rede de protocolo de confiança do consórcio. Nesse sentido, a rede de protocolo de confiança de consórcio pode ser considerada uma rede privada em relação às entidades participantes. Em alguns exemplos, cada entidade (nó) deve assinar todos os blocos para que o bloco seja válido e adicionado ao protocolo de confiança. Em alguns exemplos, pelo menos um subconjunto de entidades (nós) (por exemplo, pelo menos 7 entidades) deve assinar todos os blocos para que o bloco seja válido e adicionado ao protocolo de confiança.
[053] As formas de realização do presente relatório descritivo são aqui descritas em maior detalhe com referência a uma rede de protocolo de confiança de consórcio. Está contemplado, no entanto, que as formas de realização do presente relatório descritivo podem ser realizadas em qualquer tipo apropriado de rede de protocolo de confiança.
[054] As formas de realização do presente relatório descritivo são descritas em maior detalhe aqui em vista do contexto acima. Mais particularmente, e como apresentado acima, as formas de realização do presente relatório descritivo destinam-se a realizar um processo de recuperação para um nó de rede em um sistema distribuído.
[055] Um protocolo de confiança é um livro-razão digital compartilhado à prova de adulteração que registra transações em uma rede
Petição 870190068052, de 18/07/2019, pág. 109/212
14/89 ponto a ponto pública ou privada. O livro-razão é distribuído para todos os nós membros da rede e o histórico de transações de ativos ocorrendo na rede é permanentemente registrado no bloco.
[056] Mecanismos de consenso garantem que todos os nós de rede em uma rede de protocolo de confiança distribuída executem transações na mesma ordem e, em seguida, gravem nos mesmos livros-razão. Uma questão que os modelos de consenso pretendem abordar é superar as falhas bizantinas. Em uma falha bizantina, um componente tal como um servidor ou um nó de rede de uma rede de protocolo de confiança distribuída pode aparecer inconsistentemente tanto com falha quanto funcionando para sistemas de detecção de falhas, apresentando sintomas diferentes para observadores diferentes. É difícil para os outros nós de rede declarar que ele falhou e desligá-lo da rede, porque eles precisam primeiro chegar a um consenso sobre qual nó de rede falhou em primeiro lugar.
[057] No contexto de sistemas distribuídos, a tolerância a falhas bizantinas (BFT) é a capacidade de uma rede de computadores distribuída funcionar como desejado e alcançar corretamente um consenso suficiente apesar de componentes mal-intencionados (isto é, nós de rede de uma rede de protocolo de confiança) do sistema falharem ou propagarem informações incorretas para outros pontos. O objetivo é defender-se contra falhas catastróficas do sistema, mitigando a influência que esses nós malintencionados têm sobre o funcionamento correto da rede e o consenso correto que é alcançado pelos nós honestos no sistema.
[058] No entanto, os mecanismos de BFT existentes mostraramse ineficientes em muitos aspectos. Por exemplo, os mecanismos de BFT existentes adicionaram complexidade de implementação à rede de protocolo de confiança distribuída ao tentar superar as falhas bizantinas, de modo que a latência é aumentada para a comunicação entre os nós de rede da rede de
Petição 870190068052, de 18/07/2019, pág. 110/212
15/89 protocolo de confiança distribuída. A Tolerância à Falhas Bizantinas Práticas (PBFT) é uma das otimizações que visa melhorar os mecanismos de consenso BFT existentes. O modelo PBFT se concentra em fornecer uma replicação de máquina de estado bizantina prática que tolera falhas bizantinas (nós malintencionados) por meio da suposição de que existem falhas de nó independentes e mensagens manipuladas que são propagadas por nós específicos e independentes.
[059] No modelo PBFT, todos os nós são ordenados em uma sequência, com um nó sendo o nó primário (líder) e os outros referidos como os nós de cópia de segurança. Todos os nós dentro do sistema se comunicam entre si e o objetivo é que a maioria dos nós honestos chegue a um acordo sobre o estado do sistema. Os nós se comunicam entre si e não apenas precisam provar que as mensagens vieram de um nó de ponto específico, mas também precisam verificar se a mensagem não foi modificada durante a transmissão.
[060] Para que o modelo PBFT funcione, presume-se que a quantidade de nós mal-intencionados na rede não pode igualar ou exceder simultaneamente 1/3 dos nós gerais no sistema em uma determinada janela de vulnerabilidade. Quanto mais nós no sistema, então mais matematicamente é improvável que um número que se aproxima de 1/3 dos nós gerais seja malintencionado. O algoritmo fornece efetivamente tanto a vivacidade quanto a segurança, desde que no máximo (n-1)/ 3 nós sejam mal-intencionados ou defeituosos ao mesmo tempo, em que n representa os nós totais.
[061] Cada rodada de consenso de PBFT (chamadas visualizações) inclui 4 fases:
(1) Um cliente envia uma solicitação para o nó líder para invocar uma operação de serviço;
(2) O nó líder faz multidifusão da solicitação para os nós de cópia
Petição 870190068052, de 18/07/2019, pág. 111/212
16/89 de segurança;
(3) Os nós executam a solicitação e, em seguida, enviam uma resposta ao cliente; e (4) O cliente aguarda por f+1 (f representa o número máximo de nós que podem estar com defeito) respostas de diferentes nós com o mesmo resultado.
[062] O resultado final é que todos os nós honestos chegam a um acordo sobre a ordem do registro e eles o aceitam ou o rejeitam. O nó líder é alterado em um esquema circular durante cada visualização e pode até mesmo ser substituído por um protocolo chamado mudança de visualização se uma quantidade específica de tempo tiver passado sem o nó líder fazer multidifusão da solicitação. A maioria dos nós honestos também pode decidir se um líder está com defeito e removê-los com o próximo líder na fila como o substituto.
[063] No entanto, existem algumas limitações ao mecanismo de consenso do PBFT. Por exemplo, o modelo PBFT pode funcionar bem em sua forma clássica, com tamanhos de grupos de consenso relativamente pequenos, devido à grande quantidade de comunicação que é necessária entre os nós. Os dados de bloco volumosos que são transmitidos entre os nós de rede causam um problema de carga de rede e levam a um estrangulamento de rede. Além disso, o uso de códigos de autenticação de método (MAC) como o formato para mensagens de autenticação no modelo PBFT pode ser ineficiente com a quantidade de comunicação necessária entre os nós em grandes grupos de consenso, como redes de criptomoedas e com MACs. Pode haver uma incapacidade inerente de provar a autenticidade das mensagens para terceiros.
[064] Além disso, encontrar nós mal-intencionados consecutivos ao alterar o nó líder usando um método circular usado pelo PBFT afeta o serviço de protocolo de confiança, introduzindo latência ou atraso na
Petição 870190068052, de 18/07/2019, pág. 112/212
17/89 localização de um nó líder que seja honesto. Por exemplo, ao selecionar um primeiro nó de rede como o novo nó líder, o primeiro nó de rede pode ser um nó mal-intencionado, portanto, não pode ser selecionado como o novo nó líder. Em um método circular, um segundo nó de rede na linha pode ser selecionado como o novo nó líder. No entanto, se o segundo nó de rede também é um nó mal-intencionado, outro nó de rede na linha será verificado se ele é adequado para ser o nó líder. Esse processo continua até que um novo nó líder que seja honesto seja identificado. Essa mudança frequente do nó líder introduz uma latência significativa nos serviços de protocolo de confiança.
[065] Além disso, os nós de rede em uma rede de protocolo de confiança podem sofrer falhas bizantinas ou falhas de colapso a qualquer momento. Por exemplo, um nó de rede pode ser comprometido por um invasor cibernético mal-intencionado e se comportar incorretamente. Se os nós de rede que estão comprometidos não forem recuperados imediatamente, o invasor cibernético mal-intencionado pode comprometer a rede de protocolo de confiança e os serviços corrompendo mais de 1/3 dos nós de rede sem ser detectado.
[066] Para abordar as questões e preocupações acima descritas associadas aos mecanismos de consenso de BFT e ao mecanismo de consenso de PBFT existentes, o presente relatório descritivo revela mecanismos de consenso melhorados incluindo técnicas para alcançar consenso entre os nós de rede em um sistema distribuído, realizando uma mudança de nó primário em um sistema distribuído e executando um processo de recuperação para um nó de rede em um sistema distribuído. Os mecanismos de consenso descritos podem alcançar várias vantagens em diferentes aplicações.
[067] Por exemplo, o processo de consenso, conforme discutido abaixo, inclui muitas características que melhoram as operações do sistema de
Petição 870190068052, de 18/07/2019, pág. 113/212
18/89 protocolo de confiança e ajudam a aliviar o estrangulamento da rede. Por exemplo, o processo de consenso descrito inclui converter uma solicitação de transação em uma quantidade de blocos de código de apagamento (EC) de acordo com um código EC e enviar um dos blocos de EC para cada um dos nós de rede. O bloco de EC é menor em tamanho que a solicitação de transação original. Assim, o envio do bloco de EC, em vez da solicitação de transação completa para os nós de rede, reduz o tamanho dos blocos de dados que são transmitidos entre os nós de rede da rede de protocolo de confiança, conservando assim a largura de banda da rede e reduzindo a carga de rede. Isso reduz ainda mais o tamanho dos dados que são gravados e lidos a partir do espaço de memória dos nós de rede, reduzindo assim a carga no espaço de memória dos nós de rede e melhorando a eficiência do sistema de protocolo de confiança geral.
[068] Além disso, o presente relatório descritivo descreve um processo de mudança de período que inclui atribuir pesos respectivos a múltiplas fases do processo de consenso, determinar uma soma de peso com base nos respectivos pesos das múltiplas fases e determinar um novo nó primário com base na soma de peso. O processo de mudança de período baseado na soma de peso, em vez de um método circular, pode facilitar a escolha de um novo nó primário que não seja defeituoso em tempo hábil. Um nó primário pode ser um nó líder que tenha autoridade para iniciar uma rodada de processo de consenso entre vários nós de rede, incluindo o nó primário. Os outros nós de rede da rede de protocolo de confiança podem ser referidos como nós de cópia de segurança. O processo de mudança de período pode ajudar a abordar o problema do método circular que causa uma mudança frequente do nó primário quando vários nós de rede na linha para o novo nó primário estão com defeito. Ao contrário do método circular, o processo de mudança de período, no presente relatório descritivo, depende da soma de
Petição 870190068052, de 18/07/2019, pág. 114/212
19/89 peso para selecionar o novo nó primário, o que pode reduzir a latência ou atraso na localização do novo nó primário que não está com defeito. Isso pode melhorar ainda mais a eficiência do sistema de protocolo de confiança geral no fornecimento de serviços de protocolo de confiança.
[069] Além disso, o presente relatório descritivo discute um processo de recuperação que inclui operações tais como enviar uma mensagem de solicitação de estado por um nó de rede que se aplica para ser um novo nó primário e receber mensagens de resposta de estado dos outros nós de rede. Essas operações são executadas de tal forma que o processo de recuperação do nó de rede defeituoso não interfere com a operação normal do processo de consenso entre os outros nós de rede não defeituosos. Isso facilita a conservação de características de computação e de rede para recuperar o nó de rede com falha, reduzindo a complexidade do processo de recuperação.
[070] A Figura 1 representa um exemplo de um ambiente (100) que pode ser utilizado para executar as formas de realização do presente relatório descritivo. Em alguns exemplos, o ambiente (100) permite que entidades participem de uma rede de protocolo de confiança de consórcio (102). O ambiente (100) inclui dispositivos de computação ou sistemas (106, 108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede de área local (LAN), rede de longa distância (WAN), a Internet ou uma combinação dos mesmos, e conecta web sites, dispositivos de usuário (por exemplo, dispositivos de computação) e sistemas secundários (back-end). Em alguns exemplos, a rede (110) pode ser acessada através de uma conexão de comunicação com fio e/ ou sem fio. Em alguns exemplos, a rede (110) permite a comunicação com, e dentro da rede de protocolo de confiança de consórcio (102). Em geral, a rede (110) representa uma ou mais redes de comunicação. Em alguns casos, os dispositivos de computação (106, 108) podem ser nós de um sistema de computação em nuvem (não mostrado) ou podem, cada
Petição 870190068052, de 18/07/2019, pág. 115/212
20/89 dispositivo de computação (106, 108), ser um sistema de computação em nuvem separado incluindo uma pluralidade de computadores interconectados por uma rede e funcionando como um sistema de processamento distribuído.
[071] No exemplo representado, os sistemas de computação (106, 108) podem incluir, cada um, qualquer sistema de computação apropriado que permita participação como um nó na rede de protocolo de confiança de consórcio (102). Exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador de mesa, um computador portátil, um dispositivo de computação tablet e um telefone inteligente. Em alguns exemplos, os sistemas de computação (106, 108) hospedam um ou mais serviços implementados por computador para interagir com a rede de protocolo de confiança de consórcio (102). Por exemplo, o sistema de computação (106) pode hospedar serviços implementados por computador de uma primeira entidade (por exemplo, usuário A), tal como um sistema de gestão de transações que a primeira entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). O sistema de computação (108) pode hospedar serviços implementados por computador de uma segunda entidade (por exemplo, usuário B), tal como sistema de gestão de transação que a segunda entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). No exemplo da Figura 1, a rede de protocolo de confiança de consórcio (102) é representada como uma rede de nós ponto a ponto, e os sistemas de computação (106, 108) fornecem nós da primeira entidade e segunda entidade, respectivamente, que participam na rede de protocolo de confiança de consórcio (102).
[072] A Figura 2 representa um exemplo de arquitetura conceituai (200) de acordo com formas de realização do presente relatório descritivo. O exemplo de uma arquitetura conceituai (200) inclui os sistemas
Petição 870190068052, de 18/07/2019, pág. 116/212
21/89 participantes (202, 204, 206) que correspondem ao Participante (A), Participante (B) e Participante (C), respectivamente. Cada participante (por exemplo, usuário, empresa) participa de uma rede de protocolo de confiança (212) fornecida como uma rede ponto a ponto incluindo uma pluralidade de nós (214), pelo menos alguns dos quais gravam informação de forma imutável em um protocolo de confiança (216). Embora um único protocolo de confiança (216) esteja esquematicamente representado dentro da rede de protocolo de confiança (212), múltiplas cópias do protocolo de confiança (216) são fornecidas, e são mantidas através da rede de protocolo de confiança (212), como descrito em mais detalhes aqui.
[073] No exemplo representado, cada sistema participante (202, 204, 206) é fornecido por, ou em nome do Participante (A), Participante (B) e Participante (C), respectivamente, e funciona como um respectivo nó (214) dentro da rede de protocolo de confiança. Como aqui utilizado, um nó refere-se geralmente a um sistema individual (por exemplo, computador, servidor) que está ligado à rede de protocolo de confiança (212) e permite que um participante respectivo participe na rede de protocolo de confiança. No exemplo da Figura 2, um participante corresponde a cada nó (214). Está contemplado, no entanto, que um participante pode operar múltiplos nós (214) dentro da rede de protocolo de confiança (212), e/ ou múltiplos participantes podem compartilhar um nó (214). Em alguns exemplos, os sistemas participantes (202, 204, 206) comunicam-se com ou através da rede de protocolo de confiança (212) usando um protocolo (por exemplo, protocolo de transferência de hipertexto seguro (HTTPS)) e/ ou usando chamadas de procedimentos remotos (RPCs).
[074] Os nós (214) podem ter diferentes graus de participação dentro da rede de protocolo de confiança (212). Por exemplo, alguns nós (214) podem participar no processo de consenso (por exemplo, como nós de
Petição 870190068052, de 18/07/2019, pág. 117/212
22/89 inspeção que adicionam blocos ao protocolo de confiança (216), enquanto outros nós (214) não participam do processo de consenso. Como outro exemplo, alguns nós (214) armazenam uma cópia completa do protocolo de confiança (216), enquanto outros nós (214) apenas armazenam cópias de partes do protocolo de confiança (216). Por exemplo, privilégios de acesso a dados podem limitar os dados de protocolo de confiança que um respectivo Participante armazena dentro de seu respectivo sistema. No exemplo da Figura 2, os sistemas participantes (202, 204, 206) armazenam respetivas cópias completas (216’, 216”, 216”’) do protocolo de confiança (216).
[075] Um protocolo de confiança (por exemplo, o protocolo de confiança (216) da Figura 2) é constituído por uma cadeia de blocos, cada bloco armazenando dados. Exemplos de dados incluem dados de transações representativos de uma transação entre dois ou mais participantes. Embora as transações sejam aqui utilizadas a título de exemplos não limitativos, é contemplado que quaisquer dados apropriados podem ser armazenados em um protocolo de confiança (por exemplo, documentos, imagens, vídeos, áudio). Exemplos de transações podem incluir, sem limitação, trocas de algo de valor (por exemplo, ativos, produtos, serviços e moeda). Os dados da transação são armazenados de forma imutável dentro do protocolo de confiança. Ou seja, os dados da transação não podem ser alterados.
[076] Antes de armazenar em um bloco, os dados da transação são resumidos. O resumo (hashing) é um processo de transformar os dados da transação (fornecidos como dados de sequência) em um valor de resumo de comprimento fixo (também fornecido como dados de sequência). Não é possível não resumir o valor de resumo para obter os dados da transação. O resumo assegura que até mesmo uma pequena alteração nos dados da transação resulte em um valor de resumo completamente diferente. Além disso, e como observado acima, o valor de resumo é de comprimento fixo. Ou
Petição 870190068052, de 18/07/2019, pág. 118/212
23/89 seja, não importa o tamanho dos dados da transação, o comprimento do valor de resumo é fixo. O resumo inclui o processamento dos dados da transação por meio de uma função de resumo para gerar o valor de resumo. Um exemplo de função de resumo inclui, sem limitação, o algoritmo de resumo seguro (SHA)-256, que produz valores de resumo de 256 bits.
[077] Dados de transação de várias transações são resumidos e armazenados em um bloco. Por exemplo, os valores de resumo de duas transações são fornecidos e são eles próprios resumidos para fornecer outro resumo. Esse processo é repetido até que, para que todas as transações a serem armazenadas em um bloco, um único valor de resumo é fornecido. Esse valor de resumo é referido como um resumo de raiz Merkle e é armazenado em um cabeçalho do bloco. Uma alteração em qualquer uma das transações resultará em alterações em seu valor de resumo e, por fim, em uma alteração no resumo de raiz Merkle.
[078] Blocos são adicionados ao protocolo de confiança através de um protocolo de consenso. Múltiplos nós dentro da rede de protocolo de confiança participam no protocolo de consenso e competem para ter um bloco adicionado ao protocolo de confiança. Esses nós são referidos como mineradores (ou nós de inspeção). POW, introduzido acima, é usado como um exemplo não limitativo.
[079] Os nós mineradores executam o processo de consenso para adicionar transações ao protocolo de confiança. Embora múltiplos nós mineradores participem do processo de consenso, apenas um nó minerador pode gravar o bloco no protocolo de confiança. Ou seja, os nós mineradores competem no processo de consenso para ter seu bloco adicionado ao protocolo de confiança. Mais detalhadamente, um nó minerador coleta periodicamente transações pendentes de um agrupamento de transações (por exemplo, até um limite predefinido na quantidade de transações que podem ser
Petição 870190068052, de 18/07/2019, pág. 119/212
24/89 incluídas em um bloco, se houver). O agrupamento de transações inclui mensagens de transação dos participantes na rede de protocolo de confiança. O nó minerador constrói um bloco e adiciona as transações ao bloco. Antes de adicionar as transações ao bloco, o nó minerador verifica se alguma das transações já está incluída em um bloco do protocolo de confiança. Se uma transação já estiver incluída em outro bloco, a transação será descartada.
[080] O nó minerador gera um cabeçalho de bloco, resume todas as transações no bloco e combina o valor de resumo em pares para gerar mais valores de resumo até que um único valor de resumo seja fornecido para todas as transações no bloco (o resumo de raiz Merkle). Este resumo é adicionado ao cabeçalho do bloco. O minerador também determina o valor de resumo do bloco mais recente no protocolo de confiança (ou seja, o último bloco adicionado ao protocolo de confiança). O nó minerador também adiciona um valor aleatório (nonce) e uma marca temporal para o cabeçalho do bloco. Em um processo de mineração, o nó minerador tenta encontrar um valor de resumo que atenda aos parâmetros necessários. O nó minerador continua alterando o valor aleatório até encontrar um valor de resumo que atenda aos parâmetros necessários.
[081] Cada minerador na rede de protocolo de confiança tenta encontrar um valor de resumo que atenda aos parâmetros necessários e, dessa forma, competem entre si. Eventualmente, um dos nós mineradores encontra um valor de resumo que atende aos parâmetros necessários e anuncia isso para todos os outros nós mineradores na rede de protocolo de confiança. Os outros nós mineradores verificam o valor do resumo e, se determinado como correto, verifica cada transação no bloco, aceita o bloco e anexa o bloco à sua cópia do protocolo de confiança. Dessa maneira, um estado global do protocolo de confiança é consistente em todos os nós mineradores dentro da rede de protocolo de confiança. O processo acima
Petição 870190068052, de 18/07/2019, pág. 120/212
25/89 descrito é o protocolo de consenso de POW.
[082] Um exemplo não limitative é fornecido com referência à Figura 2. Neste exemplo, o Participante (A) deseja enviar uma quantia de fundo para o Participante (B). O Participante (A) gera uma mensagem de transação (por exemplo, incluindo os campos De, Para e Valor) e envia a mensagem de transação para a rede de protocolo de confiança, que adiciona a mensagem de transação para um agrupamento de transações. Cada nó minerador na rede de protocolo de confiança cria um bloco e toma todas as transações do agrupamento de transações (por exemplo, até um limite predefinido na quantidade de transações que podem ser adicionadas a um bloco, se houver) e adiciona as transações ao bloco. Dessa forma, a transação publicada pelo Participante (A) é adicionada aos blocos dos nós mineradores.
[083] Em algumas redes de protocolo de confiança, a criptografia é implementada para manter a privacidade das transações. Por exemplo, se dois nós quiserem manter uma transação privada, de forma que outros nós na rede de protocolo de confiança não consigam discernir detalhes da transação, os nós podem criptografar os dados da transação. Exemplos de métodos criptográficos incluem, sem limitação, criptografia simétrica e criptografia assimétrica. A criptografia simétrica refere-se a um processo de criptografia que usa uma única chave para criptografia (geração de texto cifrado a partir de texto não codificado) e descodificação (geração de texto não codificado a partir do texto cifrado). Na criptografia simétrica, a mesma chave está disponível para vários nós, portanto, cada nó pode criptografar ou descodificar os dados da transação.
[084] A criptografia assimétrica usa pares de chaves que incluem, cada um, uma chave privada e uma chave pública, sendo a chave privada conhecida apenas por um nó respectivo e a chave pública sendo conhecida por qualquer um ou todos os outros nós na rede de protocolo de
Petição 870190068052, de 18/07/2019, pág. 121/212
26/89 confiança. Um nó pode usar a chave pública de outro nó para criptografar dados e os dados criptografados podem ser descodificados usando a chave privada de outro nó. Por exemplo, e referindo-se novamente à Figura 2, o Participante (A) pode usar a chave pública do Participante (B) para criptografar dados e enviar os dados criptografados para o Participante (B). O Participante (B) pode usar sua chave privada para descodificar os dados criptografados (texto cifrado) e extrair os dados originais (texto não codificado). As mensagens criptografadas com a chave pública de um nó só podem ser descodificadas usando a chave privada do nó.
[085] A criptografia assimétrica é usada para fornecer assinaturas digitais, o que permite aos participantes de uma transação confirmar outros participantes na transação, bem como a validade da transação. Por exemplo, um nó pode assinar digitalmente uma mensagem e outro nó pode confirmar que a mensagem foi enviada pelo nó com base na assinatura digital do Participante (A). As assinaturas digitais também podem ser usadas para garantir que as mensagens não sejam adulteradas em trânsito. Por exemplo, e novamente referenciando a Figura 2, o Participante (A) deve enviar uma mensagem para o Participante (B). O Participante (A) gera um resumo da mensagem e, então, usando sua chave privada, criptografa o resumo para fornecer uma assinatura digital como o resumo criptografado. O Participante (A) anexa a assinatura digital à mensagem e envia a mensagem com assinatura digital para o Participante (B). O Participante (B) descodifica a assinatura digital usando a chave pública do Participante (A) e extrai o resumo. O Participante (B) resume a mensagem e compara os resumos. Se os resumos forem iguais, o Participante (B) poderá confirmar que a mensagem foi realmente do Participante (A) e não foi adulterada.
[086] A Figura 3 representa um exemplo de um processo (300) para alcançar um consenso entre nós de rede (por exemplo, nó (214)) de um
Petição 870190068052, de 18/07/2019, pág. 122/212
27/89 sistema distribuído (por exemplo, rede de protocolo de confiança (102) e (212)) que pode ser executado de acordo com formas de realização do presente relatório descritivo. Especificamente, a Figura 3 ilustra um diagrama apresentando uma forma de realização exemplificativa de um método (300) de alcançar um consenso em um caso normal, de acordo com o presente relatório descritivo. Como ilustrado na Figura 3, o processo de consenso (300) inclui três fases ou etapas (310), (320) e (330) como discutido abaixo.
[087] Em uma primeira fase (310) do processo de consenso (300), um nó primário (ou um nó líder) da rede de protocolo de confiança envia uma primeira mensagem para os outros nós de rede (isto é, os nós de cópia de segurança). A primeira mensagem indica que o nó primário está iniciando um processo de consenso. Por exemplo, como ilustrado na Figura 3, o nó primário (Ro) envia uma mensagem INICIAL para outros nós de redes (Ri, R2 e R3) na rede de protocolo de confiança. Note-se que 0 processo (300) é ilustrado como incluindo quatro nós de rede (Ro, R1, R2 e R3) apenas para fins ilustrativos, 0 processo (300) pode incluir qualquer número adequado de nós de rede. A primeira fase e um formato da mensagem INICIAL serão discutidos abaixo em maior detalhe com referência às Figuras 4 a 6.
[088] Em uma segunda fase (320) do processo de consenso (300), cada um dos nós de cópia de segurança recebe a primeira mensagem que é enviada pelo nó primário, prepara uma segunda mensagem em resposta à primeira mensagem e faz multidifusão da segunda mensagem para 0 outro nó de rede. A segunda mensagem indica que 0 nó de cópia de segurança recebeu a primeira mensagem do nó primário e está enviando uma resposta em resposta à primeira mensagem. Por exemplo, como ilustrado na Figura 3, 0 nó de cópia de segurança (R1) recebe a mensagem INICIAL que é enviada pelo nó primário (Ro) e responde ao nó primário (Ro) com uma mensagem ECO como um exemplo da segunda mensagem. Enquanto isso, 0 nó de cópia de
Petição 870190068052, de 18/07/2019, pág. 123/212
28/89 segurança (Ri) também faz multidifusão da mensagem ECO para os outros nós de cópia de segurança, tais como os nós de cópia de segurança (R2) e (R3). Da mesma forma, os nós de cópia de segurança (R2) e (R3) fazem multidifusão, cada um, de uma mensagem ECO para os outros nós de rede, incluindo 0 nó primário (Ro).
[089] Quando um nó de rede, por exemplo, como um nó primário ou um nó de cópia de segurança, recebe as mensagens ECO dos outros nós de rede, 0 nó de rede pode verificar as informações nas mensagens ECO. A segunda fase e um formato da mensagem ECO serão discutidos abaixo em maior detalhe com referência às Figuras 4 a 6.
[090] Em uma terceira fase (330) do processo de consenso (300), cada um dos nós de rede faz multidifusão de uma terceira mensagem para os outros nós de rede. A terceira mensagem indica que um nó de rede aceitou um número predeterminado das segundas mensagens. Em algumas formas de realização, a terceira mensagem pode indicar que 0 nó de rede está pronto para executar a transação. Em algumas formas de realização, a terceira mensagem pode indicar que a transação foi reconstruída com sucesso no nó de rede. Por exemplo, como ilustrado na Figura 3, 0 nodo primário (Ro) faz multidifusão de uma mensagem ACEITAR para os nós de cópia de segurança (R1, R2 e R3). Da mesma forma, os nós de cópia de segurança (R1, R2 e R3) fazem multidifusão, cada um, de uma mensagem ACEITAR para os outros nós de rede. Em algumas formas de realização do presente relatório descritivo, antes de fazer multidifusão da mensagem ACEITAR, um nó de rede determina se 0 ACEITAR é enviado de acordo com um código de apagamento (EC) e as informações nas mensagens ECO são as recebidas na segunda fase. A terceira fase, 0 código EC, e um formato da mensagem ACEITAR serão discutidos abaixo em maior detalhe com referência às Figuras 4 a 6.
[091] Quando um nó de rede recebe mensagens ACEITAR
Petição 870190068052, de 18/07/2019, pág. 124/212
29/89 suficientes dos outros nós de rede, o nó de rede determina que um consenso foi alcançado. Por exemplo, se o nó primário (Ro) ou os nós de cópia de segurança (Ri, R2 ou R3) receberem um número de quórum (por exemplo, 2f+1, onde f representa uma quantidade de nós de rede com defeito) de mensagens ACEITAR, um consenso é obtido automaticamente entre os nós de rede.
[092] A Figura 4 representa um exemplo de um processo (400) para obter consenso entre nós de rede (por exemplo, nó (214) ou nós (Ro, R1, R2 e R3)) de um sistema distribuído (por exemplo, rede de protocolo de confiança (102) ou (212)) que pode ser executado de acordo com as formas de realização do presente relatório descritivo. Em algumas formas de realização, 0 processo (400) pode ser realizado usando um ou mais programas executáveis por computador executados usando um ou mais dispositivos de computação. Para clareza de apresentação, a descrição que se segue descreve de modo geral 0 método (400) no contexto das outras figuras nesta descrição. Será entendido que 0 método (400) pode ser executado, por exemplo, por qualquer sistema, ambiente, software e hardware adequados, ou uma combinação de sistemas, ambientes, software e hardware, conforme apropriado. Em algumas formas de realização, várias etapas do método (400) podem ser executadas em paralelo, em combinação, em ciclos ou em qualquer ordem.
[093] No início, 0 processo (400) pode ser implementado em conjunto com 0 sistema (100)-(300), como ilustrado nas Figuras 1 a 3. Em algumas formas de realização do presente relatório descritivo, a rede de protocolo de confiança (102) e/ ou (212) inclui um nó primário (404) e um ou mais nós de cópia de segurança (406). A rede de protocolo de confiança (102) e/ ou (212) comunica com 0 sistema de computação (106) e/ ou (108), tal como, nós de cliente (402) através da rede (110) para fornecer serviços de protocolo de confiança. Cada um dos nós de cliente (402), nó primário (404) e
Petição 870190068052, de 18/07/2019, pág. 125/212
30/89 nó de cópia de segurança (406) pode ser um computador para fins especiais ou outro aparelho de processamento de dados configurado para realizar os processos aqui discutidos. Por exemplo, o nó de cliente (402) também pode ser referido como um terminal de cliente ou um dispositivo de cliente que interage com uma rede de protocolo de confiança. O nó de cliente (402) pode instalar, por exemplo, uma aplicação de cliente ou um kit de desenvolvimento de software de cliente (SDK) em conexão com a rede de protocolo de confiança para acesso e comunicação com a rede de protocolo de confiança. O nó primário (404) e um ou mais nós de cópia de segurança (406) também podem ser referidos como nós de consenso ou nós de rede que obtêm consenso e registram informações de forma imutável na rede de protocolo de confiança.
[094] O processo (400) inicia em (408), em que o nó de cliente (402) gera uma solicitação de transação. Em algumas formas de realização do presente relatório descritivo, a solicitação de transação pode incluir uma solicitação solicitando um serviço de protocolo de confiança a partir da rede de protocolo de confiança (102) e/ ou (212).
[095] Em (410), o nó de cliente (402) faz multidifusão da solicitação de transação ao nó primário (404) da rede de protocolo de confiança (102) e/ ou (212). Em algumas formas de realização do presente relatório descritivo, o nó primário (404) atribui um número de sequência à solicitação de transação para manter o controle de solicitações de transação depois de receber a solicitação de transação a partir do nó de cliente (402).
[096] Em (412), o nó primário (402) gera uma quantidade de blocos de EC depois de receber a solicitação de transação do nó de cliente (402). Em algumas formas de realização do presente relatório descritivo, o nó primário (404) gera a quantidade de blocos de EC de acordo com um código EC usando a solicitação de transação. Por exemplo, referindo-se à Figura 5, o nó primário (404) aplica um código EC (504) em uma solicitação de transação
Petição 870190068052, de 18/07/2019, pág. 126/212
31/89 (502) e transforma a solicitação de transação (502) em uma mensagem EC (506) utilizando o código EC (504). O código EC (504) é um código de correção antecipada de erros (FEC) na suposição de apagamentos de bits. O código EC (504) transforma a solicitação de transação original (502) em uma mensagem EC mais comprida (506), de tal modo que a solicitação de transação original (502) pode ser recuperada a partir de uma parte ou de um fragmento da mensagem EC (506).
[097] Em algumas formas de realização do presente relatório descritivo, o código EC (504) é um código de apagamento quase ideal, tal como um código Tornado ou um código de verificação de paridade de baixa densidade. Em formas de realização alternativas do presente relatório descritivo, o código EC (504) é um código fonte quase ideal, tal como, um código fonte, um código online, um código de transformação Luby (LT), ou um código raptor. Em formas de realização alternativas do presente relatório descritivo, o código EC (504) é um código de apagamento ideal, tal como, um código de paridade, um código Parchive, um código Reed-Solomon ou um código de regeneração. Em algumas formas de realização do presente relatório descritivo, o código EC (504) pode ser qualquer tipo adequado de código de apagamento.
[098] Depois de transformar a solicitação de transação (502) na mensagem EC (506), o nó primário (404) gera uma quantidade de blocos de EC (508) utilizando a mensagem EC (506). Por exemplo, tal como ilustrado na Figura 5, o nó primário (404) gera quatro blocos de EC (508), bloco de EC (A), bloco de EC (B), bloco de EC (C) e bloco de EC (D) dividindo a mensagem EC (506). Note que os blocos de EC (508) estão ilustrados na Figura 5 como incluindo quatro blocos para fins ilustrativos, os blocos de EC (508) podem ser gerados como incluindo qualquer número adequado de blocos de EC (508). Os blocos de EC (508) serão enviados para os respectivos nós de cópia de
Petição 870190068052, de 18/07/2019, pág. 127/212
32/89 segurança (406) dentro das mensagens INICIAL.
[099] Em algumas formas de realização do presente relatório descritivo, os blocos de EC (508) têm um mesmo tamanho. Contudo, em formas de realização alternativas, os blocos de EC (508) podem ter tamanhos que são diferentes uns dos outros.
[0100] Em algumas formas de realização do presente relatório descritivo, o nó primário (404) gera uma árvore de resumo (500) (por exemplo, uma árvore de Merkle) usando os blocos de EC (508). A árvore de resumo (500) inclui uma quantidade de nó de folha que são rotulados com o resumo de blocos de dados e uma quantidade de nós não-folha que são rotulados com o resumo criptográfico dos rótulos de seus nós filhos. Por exemplo, como ilustrado na Figura 5, a árvore de resumo (500) é configurada como incluindo quatro nós de folhas (510), resumo (A), resumo (B), resumo (C) e resumo (D) que são gerados como um resumo criptográfico de seus respectivos blocos de EC (508), quatro nós não-folha (512) que são gerados como um resumo da concatenação de seus respectivos nós filhos (510), e um nó não-folha (514) que é gerado como um resumo de seus nós filhos (512) e é um resumo de raiz da árvore de resumo (500).
[0101] As árvores de resumo (500) permitem uma verificação eficiente e segura do conteúdo de grandes estruturas de dados. As árvores de resumo (500) podem ser usadas para verificar qualquer tipo de dados armazenados, manipulados e transferidos nos computadores e entre eles. Elas podem ajudar a garantir que os blocos de dados recebidos de outros pontos em uma rede P2P sejam recebidos sem danos e inalterados, e até mesmo para verificar se os outros pontos não enviam blocos falsos. A verificação de blocos de dados usando a árvore de resumo (500) será discutida abaixo em maior detalhe com referência às seguintes etapas do processo de consenso (400).
[0102] Referindo novamente à Figura 4, o nó primário (404) gera
Petição 870190068052, de 18/07/2019, pág. 128/212
33/89 uma primeira mensagem (por exemplo, uma mensagem INICIAL) depois de gerar os blocos de EC (508) e a árvore de resumo (500). A primeira mensagem indica que o nó primário está iniciando um processo de consenso. Em algumas formas de realização, a mensagem INICIAL, como um exemplo da primeira mensagem, é gerada usando as informações nos blocos de EC (508) e na árvore de resumo (500). Em algumas formas de realização do presente relatório descritivo, referindo-se à Figura 6, a mensagem INICIAL tem um formato de <período, tx_raiz_resumo, ec_bloco_resumo, ec_bloco, seq, j>, onde “período” representa uma rodada de consenso na qual a mensagem está sendo enviada, “tx_raiz_resumo” representa o resumo de raiz (514) na árvore de resumo (500), “ec_bloco_resumo” representa os resumos (510) e/ ou (512) na árvore de resumo (500), “ec_bloco” representa os blocos de EC (508) na árvore de resumo (500), “seq” representa o número de sequência associado à solicitação de transação (502) e “j” representa o nó de rede que gera e envia a mensagem INICIAL. Em algumas formas de realização, a mensagem INICIAL pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0103] Referindo-se novamente à Figura 4, em (416), na primeira fase do processo de consenso, o nó primário (404) faz multidifusão da mensagem INICIAL para os outros nós de rede (por exemplo, nós de cópia de segurança (406)). Em algumas formas de realização, as mensagens INICIAL que são enviadas para os nós de cópia de segurança (406) têm um formato de <período, tx_raiz_resumo, ec_bloco_resumo, ec_bloco, seq, j>. Por exemplo, o nó primário (404) pode enviar uma primeira mensagem INICIAL <período 1, Resumo ABCD, {Resumo B, Resumo C, Resumo D}, bloco de EC A, 1,0> para um primeiro nó de cópia de segurança (406) e uma segunda mensagem INICIAL <período 1, Resumo ABCD, {Resumo A, Resumo C, Resumo D}, bloco de EC B, 1,0> para um segundo nó de cópia de segurança (406), e assim por
Petição 870190068052, de 18/07/2019, pág. 129/212
34/89 diante. Observe que as informações na mensagem INICIAL, tal como “ec_bloco”, podem ser usadas com “ec_bloco_resumo” para reconstruir a árvore de resumo (500). Por exemplo, na primeira mensagem INICIAL <período 1, Resumo ABCD, {Resumo B, Resumo C, Resumo D}, bloco de EC A, 1,0>, o bloco de EC (508) “bloco de EC A” pode ser resumido para gerar um resumo criptográfico (510) “Resumo A”, que é posteriormente usado com os outros resumos (510) “{Resumo B, Resumo C, Resumo D}” para reconstruir a árvore de resumo (500). A árvore de resumo reconstruída (500) será usada para verificar as mensagens ECO, conforme discutido abaixo em maiores detalhes com referência às etapas a seguir do processo de consenso.
[0104] Em (418), cada um dos nós de cópia de segurança (406) gera uma segunda mensagem (por exemplo, uma mensagem ECO) na segunda fase do processo de consenso depois de receber a mensagem INICIAL a partir do nó primário (404). A segunda mensagem indica que o nó de cópia de segurança recebeu a primeira mensagem a partir do nó primário. A segunda mensagem é enviada como resposta em resposta à primeira mensagem. Em algumas formas de realização do presente relatório descritivo, a mensagem ECO é gerada por um nó de cópia de segurança (406) como incluindo a mensagem INICIAL ou uma parte da mensagem INICIAL e uma assinatura do nó de cópia de segurança (406) associado à mensagem INICIAL. Por exemplo, o nó de cópia de segurança (406) pode gerar a assinatura assinando a mensagem INICIAL ou uma compilação da mensagem INICIAL usando uma chave privada. A assinatura de chave privada pode ser usada por outros nós de rede usando uma chave pública emparelhada com a chave privada para autenticar a mensagem ECO que inclui a assinatura de chave privada.
[0105] Em algumas formas de realização do presente relatório descritivo, referindo-se à Figura 6, a mensagem ECO tem um formato de
Petição 870190068052, de 18/07/2019, pág. 130/212
35/89 <período, tx_raiz_resumo, ec_bloco_resumo, ec_bloco, seq, assinatura_prova, j>, onde “período” representa uma rodada de consenso na qual a mensagem está sendo enviada, “tx_raiz_resumo” representa o resumo de raiz (514) na árvore de resumo (500), “ec_bloco_resumo” representa os resumos (510) e/ ou (512) na árvore de resumo (500), “ec_bloco” representa os blocos de EC (508) na árvore de resumo (500) que são recebidos pelos respectivos nós de cópia de segurança (406), “seq” representa o número de sequência associado à solicitação de transação (502), “assinatura_prova” representa a assinatura dos nós de cópia de segurança (406) associados às mensagens INICIAL, e “j” representa o nó de rede que gera e envia a mensagem ECO. Em algumas formas de realização, a mensagem ECO pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0106] Referindo-se novamente à Figura 4, em (420), os nós de cópia de segurança (406) enviam as mensagens ECO para o nó primário (404). Em (421), cada um dos nós de cópia de segurança (406) envia as mensagens ECO para os outros nós de cópia de segurança (406). Em (423), cada um dos nós de cópia de segurança (406) pode receber as mensagens ECO dos outros nós de cópia de segurança (406).
[0107] Em (422), o nó primário (404) verifica as mensagens ECO que são enviadas pelos nós de cópia de segurança (406). Em algumas formas de realização do presente relatório descritivo, o nó primário (404) verifica se as mensagens ECO são válidas de acordo com a árvore de resumo (500). Por exemplo, o nó primário (404) pode receber uma primeira mensagem ECO <período 1, Resumo ABCD, {Resumo B, Resumo C, Resumo D}, bloco de EC A, 1, 1> de um primeiro nó de cópia de segurança (406). O nó primário (404) pode recuperar o bloco de EC (508) “bloco de EC A” a partir da mensagem e resumi-lo para gerar um resumo criptográfico (510) “Resumo A.” O nó primário (404) usa ainda o resumo gerado (510) “Resumo A” com os outros resumos
Petição 870190068052, de 18/07/2019, pág. 131/212
36/89 (510) “{Resumo B, Resumo C, Resumo D}” na mensagem para reconstruir a árvore de resumo (500). Então, o nó primário (404) determina o resumo de raiz (514) da árvore de resumo reconstruída (500) e o compara com o resumo de raiz (514) na mensagem ECO, tal como “Resumo ABCD”. Se os dois resumos de raiz (514) correspondem, o nó primário (404) determina que a mensagem ECO é válida. O nó primário (404) pode armazenar as mensagens ECO válidas e descartar as mensagens ECO que são determinadas inválidas.
[0108] Em (424), o nó primário (404) determina se uma quantidade de mensagens ECO válidas excede um limiar predeterminado. Em algumas formas de realização do presente relatório descritivo, o nó primário (404) determina se a quantidade de mensagens ECO válidas atinge um número quórum n-f ou 2f+1, onde n é o número total de nós de rede e f é o número máximo de nós com falha que a rede pode tolerar.
[0109] Em (426), o nó primário (404) reconstrói a solicitação de transação (502) em resposta à determinação de que a quantidade de mensagens ECO válidas atinge o número de quórum. Em algumas formas de realização do presente relatório descritivo, o nó primário (404) reconstrói a solicitação de transação (502) com base em pelo menos um subconjunto de mensagens ECO válidas de acordo com o código EC. Por exemplo, o nó primário (404) pode recuperar uma quantidade de n-2f ou f+1 dos blocos de EC (508) que estão no número de quórum (por exemplo, n-f ou 2f+1) de mensagens ECO válidas, e usar os blocos de EC recuperados (508) para reconstruir a solicitação de transação (502) de acordo com o código EC (504).
[0110] Em (428), na terceira fase do processo de consenso, o nó primário (404) gera uma terceira mensagem (por exemplo, uma mensagem ACEITAR) em resposta à determinação de que a solicitação de transação (502) foi reconstruída com sucesso. A terceira mensagem indica que um nó de rede aceitou um número predeterminado das segundas mensagens. Em algumas
Petição 870190068052, de 18/07/2019, pág. 132/212
37/89 formas de realização, a terceira mensagem pode indicar que o nó de rede está pronto para executar a transação. Em algumas formas de realização, a terceira mensagem pode indicar que a transação foi reconstruída com sucesso no nó de rede. Por exemplo, a mensagem ACEITAR pode ser utilizada para indicar a outros nós de rede que a solicitação de transação (502) foi reconstruída com sucesso. Se o nó primário (404) falhar na reconstrução da solicitação de transação (502), o nó primário (404) pode não gerar a mensagem ACEITAR.
[0111] Em algumas formas de realização do presente relatório descritivo, referindo-se à Figura 6, a mensagem ACEITAR tem um formato de <período, tx_raiz_resumo, seq, assinatura_provas, j>, onde “período” representa uma rodada de consenso na qual a mensagem está sendo enviada, “tx_raiz_resumo” representa o resumo de raiz (514) na árvore de resumo (500), “seq” representa o número de sequência associado à solicitação de transação (502), “assinatura_provas” representa um conjunto de assinaturas nas mensagens ECO válidas e “j” representa o nó de rede que gera e envia a mensagem ACEITAR. Em algumas formas de realização, a mensagem ACEITAR pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0112] Referindo-se novamente à Figura 4, em (430), o nó primário (404) envia a mensagem ACEITAR aos nós de cópia de segurança (406).
[0113] Semelhante ao nó primário (404), cada um dos nós de cópia de segurança (406) pode reconstruir a solicitação de transação, por exemplo, executando etapas semelhantes às etapas (422)-(428) como o nó primário (404). Em (432), cada um dos nós de cópia de segurança (406) gera uma mensagem ACEITAR em resposta à determinação de que a solicitação de transação (502) foi reconstruída com sucesso pelo nó de cópia de segurança (406). Em algumas formas de realização, o nó primário (404) e o nó de cópia
Petição 870190068052, de 18/07/2019, pág. 133/212
38/89 de segurança (406) podem executar as etapas (422)-(428) de uma maneira paralela, por exemplo, como indicado na Figura 3 [0114] Em (434), os nós de cópia de segurança (406) enviam as mensagens ACEITAR para o nó primário (404). Entretanto, cada um dos nós de cópia de segurança (406) pode enviar as mensagens ACEITAR para os outros nós de cópia de segurança (406).
[0115] Em (436), o nó primário (404) executa a solicitação de transação (502) em resposta à determinação de que uma quantidade de mensagens ACEITAR excede um limiar pré-determinado. Em algumas formas de realização do presente relatório descritivo, o nó primário (404) determina se as mensagens ACEITAR recebidas são idênticas e se uma quantidade de mensagens ACEITAR que são idênticas atinge um número de quórum (por exemplo, 2f + 1). Se a quantidade de mensagens ACEITAR idênticas atingir o número de quórum, o nó primário (404) determina que foi alcançado um consenso entre todos os nós de rede e, em seguida, executa a solicitação de transação (502) localmente. Em algumas formas de realização do presente relatório descritivo, se o nó primário (404) determinar que a quantidade de mensagens ACEITAR que são idênticas não atinge o número de quórum, o nó primário (404) determina que não foi alcançado um consenso entre todos os nós de rede e, em seguida abstém-se de executar a solicitação de transação (502).
[0116] Em algumas formas de realização do presente relatório descritivo, cada um dos nós de cópia de segurança (406) pode executar as mesmas operações que são realizadas pelo nó primário (404), como descrito acima em (436), antes de executar a solicitação de transação (502). Se um nó de cópia de segurança (406) determinar que as mensagens ACEITAR que ele recebe excedem um limiar predeterminado, o nó de cópia de segurança (406) determina que um consenso foi alcançado entre os nós de rede e executa a
Petição 870190068052, de 18/07/2019, pág. 134/212
39/89 solicitação de transação (502) localmente. Em algumas formas de realização do presente relatório descritivo, se o nó de cópia de segurança (406) determinar que a quantidade de mensagens ACEITAR que são idênticas não atinge o número de quórum, o nó de cópia de segurança (406) determina que não foi alcançado um consenso entre todos os nós de rede e, em seguida abstém-se de executar a solicitação de transação (502).
[0117] Em (438), o nó primário (404) envia um resultado de transação para o nó de cliente (402) depois de executar a solicitação de transação (502). Os nós de cópia de segurança (406) que executaram com sucesso a solicitação de transação (502) localmente também podem enviar seus respectivos resultados de transação para o nó de cliente (402).
[0118] O processo de consenso, como discutido acima, inclui muitas características que melhoram a operação de todo o sistema de protocolo de confiança e ajudam a aliviar o estrangulamento da rede. Por exemplo, o processo de consenso no presente relatório descritivo inclui gerar uma quantidade de blocos de EC de acordo com um código EC usando uma solicitação de transação e enviar um dos blocos de EC para cada um dos nós de rede. O bloco de EC é menor em tamanho do que a solicitação de transação original. Portanto, enviar o bloco de EC em vez da solicitação de transação para os nós de rede reduz o tamanho dos blocos de dados que são transmitidos entre os nós de rede da rede de protocolo de confiança, conservando assim a largura de banda da rede e reduzindo a carga de rede. Isso reduz ainda mais o tamanho dos dados que são gravados e lidos a partir do espaço de memória dos nós de rede, reduzindo assim a carga no espaço de memória dos nós de rede e melhorando a eficiência do sistema de protocolo de confiança geral.
[0119] Durante o processo de consenso, os nós de cópia de segurança estão aguardando uma solicitação do nó primário. No entanto, o nó
Petição 870190068052, de 18/07/2019, pág. 135/212
40/89 primário pode encontrar uma falha bizantina ou uma falha de colapso para que o nó primário não possa transmitir a solicitação dentro de uma janela de tempo predeterminada. Quando uma quantidade específica de tempo passou sem o nó primário fazer multidifusão da solicitação, um novo nó primário pode precisar ser escolhido para impedir que os nós de cópia de segurança esperem indefinidamente as solicitações a serem executadas.
[0120] A Figura 7 representa um exemplo de um processo (700) para realizar uma alteração de um nó primário (por exemplo, nó (214) ou (404)) de um sistema distribuído (por exemplo, rede de protocolo de confiança (102) e (212)) que pode ser executado de acordo com formas de realização do presente relatório descritivo. Especificamente, a Figura 7 ilustra um diagrama apresentando uma forma de realização exemplificativa de um método (700) de realizar uma alteração de um nó primário, de acordo com o presente relatório descritivo. Em algumas formas de realização, um nó primário é associado a um período que inclui um processo de consenso com o nó primário sendo o líder. Uma mudança de um nó primário pode resultar em uma mudança de período.
[0121] Em algumas formas de realização, em resposta à determinação de que um nó primário de um período atual precisa ser alterado, um nó de cópia de segurança da rede de protocolo de confiança envia uma primeira mensagem para os outros nós de rede. A primeira mensagem indica que o nó de cópia de segurança gostaria de ser um novo nó primário em um novo período. Por exemplo, como ilustrado na Figura 7, o nó de cópia de segurança (Ro) envia uma mensagem PERÍODO_MUDANÇA para os outros nós de redes (Ri, R2 e R3) na rede de protocolo de confiança em resposta a que 0 nó de cópia de segurança (Ro) determina que um nó primário atual está com defeito e que uma mudança de período precisa ser executada. A mensagem PERÍODO_MUDANÇA é um exemplo da primeira mensagem indicando que 0 nó de cópia de segurança (Ro) se aplica para ser 0 novo nó
Petição 870190068052, de 18/07/2019, pág. 136/212
41/89 primário. A mudança de período pode causar uma mudança de um período atual com um nó primário atual para um novo período com um novo nó primário. Observe que o processo (700) é ilustrado como implementado em conjunto com quatro nós de rede apenas para fins ilustrativos. O processo (700) pode ser implementado em conjunto com qualquer número adequado de nós de rede.
[0122] Em seguida, cada um dos nós de rede recebe a primeira mensagem que é enviada pelo nó de cópia de segurança, prepara uma segunda mensagem em resposta à primeira mensagem e faz multidifusão da segunda mensagem para os outros nós de rede. Por exemplo, como ilustrado na Figura 7, o nó de rede (Ri) recebe a mensagem PERÍODO_MUDANÇA que é enviada pelo nó de cópia de segurança (Ro) e responde ao nó de cópia de segurança (Ro) com uma mensagem NOVO_PERÍODO indicando uma confirmação de que o nó de cópia de segurança (Ro) pode se tornar o novo nó primário. Enquanto isso, o nó de rede (Ri) também faz multidifusão da mensagem NOVO_PERÍODO para os outros nós de rede, tal como os nós de rede (R2) e (R3). Da mesma forma, os nós de rede (R2) e (R3) fazem, cada um, multidifusão de uma mensagem NOVO_PERÍODO para os outros nós de rede.
[0123] O processo de mudança de período como discutido acima, um formato da mensagem PERÍODO_MUDANÇA, e um formato da mensagem NOVO_PERÍODO serão discutidos abaixo em maior detalhe com referência às Figuras 8-9.
[0124] A Figura 8 representa um exemplo de um processo (800) para executar uma alteração de um nó primário em um sistema de distribuição (por exemplo, rede de protocolo de confiança (102) ou (212)) que pode ser executada de acordo com formas de realização do presente relatório descritivo. Em algumas formas de realização, 0 processo de exemplo (800) pode ser realizado usando um ou mais programas executáveis por computador
Petição 870190068052, de 18/07/2019, pág. 137/212
42/89 executados usando um ou mais dispositivos de computação. Para clareza de apresentação, a descrição que se segue descreve de modo geral o método (800) no contexto das outras figuras nesta descrição. Será entendido que o método (800) pode ser executado, por exemplo, por qualquer sistema, ambiente, software e hardware adequados, ou uma combinação de sistemas, ambientes, software e hardware, conforme apropriado. Em algumas formas de realização, várias etapas do método (800) podem ser executadas em paralelo, em combinação, em ciclos ou em qualquer ordem.
[0125] O processo (800) começa em (806), onde um nó de cópia de segurança (802) determina que uma mudança de período precisa ser executada. A mudança de período discutida aqui causa uma mudança de um período atual com um nó primário atual para um novo período com um novo nó primário. Um período de exemplo pode incluir um processo de consenso (por exemplo, processo de consenso (300) ou (400)) para alcançar o consenso entre uma quantidade de nós de rede usando um nó primário como discutido acima com referência às Figuras 3 a 6.
[0126] Em algumas formas de realização do presente relatório descritivo, o nó de cópia de segurança (802) determina que uma mudança de período precisa ser executada em resposta à determinação de que o nó de cópia de segurança (802) ainda está aguardando uma solicitação do nó primário atual após uma quantidade específica de tempo ter passado sem receber a solicitação do nó primário atual. Por exemplo, o nó primário atual pode encontrar uma falha bizantina ou uma falha de colapso, de modo que o nó primário atual não possa fazer a multidifusão da solicitação em uma janela de tempo predeterminada. Portanto, a mudança de período é causada por intervalos que impedem que os nós de cópia de segurança esperem indefinidamente por solicitações a serem executadas. O processo de mudança de período discutido aqui fornece vivacidade e reduz a latência da rede,
Petição 870190068052, de 18/07/2019, pág. 138/212
43/89 permitindo que o sistema progrida quando o nó primário falha.
[0127] Em (808), o nó de cópia de segurança (802) determina um peso respectivo do nó de cópia de segurança (802) associado a cada uma das fases do processo de consenso no período atual. Em algumas formas de realização, o processo de consenso inclui três fases como descrito acima com referência às Figuras 3 a 6 O peso é uma métrica de uma qualificação do nó de cópia de segurança (802) para ser o novo nó primário em um novo período.
[0128] Em algumas formas de realização do presente relatório descritivo, o nó de cópia de segurança (802) determina um peso do nó de cópia de segurança (802) para uma primeira fase do processo de consenso no período atual para ser um primeiro valor. Por exemplo, pode ser atribuído ao nó de cópia de segurança (802) um peso inicial de 10% se o nó de cópia de segurança (802) tiver entrado em uma primeira fase do processo de consenso (por exemplo, a primeira fase (310) do processo de consenso (300)). Em formas de realização alternativas do presente relatório descritivo, o nó de cópia de segurança (802) pode atribuir qualquer valor de peso adequado ao nó de cópia de segurança (802) para a primeira fase do processo de consenso atual.
[0129] Em algumas formas de realização do presente relatório descritivo, o nó de cópia de segurança (802) determina um peso do nó de cópia de segurança (802) para uma segunda fase do processo de consenso (por exemplo, a primeira fase (320) do processo de consenso (300)) no período atual com base em um processo de verificação de quórum. O processo de verificação de quórum é realizado determinando se o nó de cópia de segurança (802) recebe um número predeterminado (por exemplo, 2f + 1) de mensagens ECO a partir dos outros nós de rede na segunda fase do processo de consenso.
[0130] Em algumas formas de realização do presente relatório descritivo, se o nó de cópia de segurança (802) falhar na verificação do quórum
Petição 870190068052, de 18/07/2019, pág. 139/212
44/89 (por exemplo, o nó de cópia de segurança (802) recebe uma quantidade de mensagens ECO que é inferior a um limiar predeterminado), o nó de cópia de segurança (802) pode determinar o peso do nó de cópia de segurança (802) para a segunda fase do processo de consenso para ser um primeiro valor. Se o nó de cópia de segurança (802) passar a verificação do quórum (por exemplo, o nó de cópia de segurança (802) recebe uma quantidade de mensagens ECO que iguala ou excede um limiar predeterminado), o nó de cópia de segurança (802) pode determinar o peso do nó de cópia de segurança (802) para a segunda fase do processo de consenso como um segundo valor. Em algumas formas de realização do presente relatório descritivo, o segundo valor é determinado como maior que o primeiro valor. Por exemplo, se o nó de cópia de segurança (802) falhar na verificação do quórum, ao nó de cópia de segurança (802) pode ser atribuído um valor de peso zero para a segunda fase do processo de consenso. Se o nó de cópia de segurança (802) passar a verificação do quórum, o nó de cópia de segurança (802) pode ser atribuído com um valor de peso de 45% para o nó de cópia de segurança (802) para a segunda fase do processo de consenso. No entanto, em formas de realização alternativas do presente relatório descritivo, o nó de cópia de segurança (802) pode atribuir qualquer valor adequado ao nó de cópia de segurança (802) para a segunda fase do processo de consenso no período atual.
[0131] Em algumas formas de realização do presente relatório descritivo, a verificação de quórum inclui ainda verificar se as mensagens ECO que o nó de cópia de segurança (802) recebe dos outros nós da rede durante a segunda fase do processo de consenso são válidas. Por exemplo, o nó de cópia de segurança (802) pode autenticar as assinaturas de chave privada nas mensagens ECO usando uma chave pública para determinar se as mensagens ECO são válidas.
[0132] Semelhante a determinar o peso para a segunda fase, em
Petição 870190068052, de 18/07/2019, pág. 140/212
45/89 algumas formas de realização, o nó de cópia de segurança (802) determina um peso do nó de cópia de segurança (802) para uma terceira fase do processo de consenso (por exemplo, a terceira fase (330) do processo de consenso (300)) no período atual com base em um processo de verificação de quórum. O processo de verificação de quórum é realizado determinando se o nó de cópia de segurança (802) recebe um número predeterminado (por exemplo, 2f + 1) de mensagens de aceitação dos outros nós de rede na terceira fase do processo de consenso no período atual. Cada uma das mensagens de aceitação de outros nós de rede indica que cada um dos outros nós de rede aceitou um número predeterminado de mensagens ECO. A mensagem de aceitação pode ser, por exemplo, as mensagens ACEITAR descritas acima com referência à terceira fase (330) do processo de consenso (300).
[0133] Em algumas formas de realização do presente relatório descritivo, se o nó de cópia de segurança (802) falhar na verificação do quórum (por exemplo, o nó de cópia de segurança (802) recebe uma quantidade de mensagens ACEITAR que é inferior a um limiar predeterminado), o nó de cópia de segurança (802) pode determinar o peso do nó de cópia de segurança (802) para a terceira fase do processo de consenso para ser um primeiro valor. Se o nó de cópia de segurança (802) passar a verificação do quórum (por exemplo, o nó de cópia de segurança (802) recebe uma quantidade de mensagens ACEITAR que iguala ou excede um limiar predeterminado), o nó de cópia de segurança (802) pode determinar o peso do nó de cópia de segurança (802) para a terceira fase do o processo de consenso como um segundo valor. Em algumas formas de realização, o segundo valor é determinado como maior que o primeiro valor. Por exemplo, se o nó de cópia de segurança (802) falhar na verificação do quórum, o nó de cópia de segurança (802) pode ser atribuído com um valor de peso zero para o nó de cópia de segurança (802) para a segunda fase do processo de consenso. Se o nó de cópia de segurança (802)
Petição 870190068052, de 18/07/2019, pág. 141/212
46/89 passar a verificação do quórum, o nó de cópia de segurança (802) pode ser atribuído com um valor de peso de 45% para o nó de cópia de segurança (802) para a segunda fase do processo de consenso. No entanto, em formas de realização alternativas do presente relatório descritivo, o nó de cópia de segurança (802) pode atribuir qualquer valor adequado ao nó de cópia de segurança (802) para a terceira fase do processo de consenso no período atual.
[0134] Em (810), depois de determinar os respectivos pesos do nó de cópia de segurança (802) para as fases do processo de consenso no período atual, o nó de cópia de segurança (802) determina uma soma de peso do nó de cópia de segurança (802) para o processo de consenso com base nos pesos respectivos. Em algumas formas de realização do presente relatório descritivo, a soma de peso é uma soma das somas respectivas dos nós de cópia de segurança associados a cada uma das fases do processo de consenso no período atual. Por exemplo, se o nó de cópia de segurança (802) determinou um primeiro valor de peso do nó de cópia de segurança (802) para a primeira fase como sendo 10%, um segundo valor de peso do nó de cópia de segurança (802) para a segunda fase como sendo 45% e um terceiro valor de peso do nó de cópia de segurança (802) para a terceira fase como sendo de 45%, o nó de cópia de segurança (802) determina a soma de peso como sendo 100%. Como outro exemplo, se o nó de cópia de segurança (802) determinou um primeiro valor de peso do nó de cópia de segurança (802) para a primeira fase como sendo 10%, um segundo valor de peso do nó de cópia de segurança (802) para a segunda fase como sendo 45% e um terceiro valor de peso do nó de cópia de segurança (802) para a terceira fase como sendo 0, o nó de cópia de segurança (802) determina a soma de peso como sendo 55%.
[0135] Em (812), o nó de cópia de segurança (802) envia uma mensagem PERÍODO_MUDANÇA para os outros nós de rede (804) se o nó de
Petição 870190068052, de 18/07/2019, pág. 142/212
47/89 cópia de segurança (802) determinar que a soma de peso que foi determinada em (810) atinge ou excede um limiar predeterminado. Por exemplo, o nó de cópia de segurança (802) pode enviar uma mensagem PERÍODO_MUDANÇA para os outros nós de rede (804) se a soma de peso conforme determinado em (810) atingir 100%. A mensagem PERÍODO_MUDANÇA indica uma solicitação para uma mudança do período atual com o nó primário atual para o novo período, com o nó de cópia de segurança sendo o novo nó primário.
[0136] Em algumas formas de realização do presente relatório descritivo, referindo-se à Figura 9, a mensagem PERÍODO_MUDANÇA tem um formato de <peso, período+1, ECO{}, ACEITAR{}, j>, onde “peso” representa a soma de peso do nó de cópia de segurança (802) conforme determinado anteriormente em (810) para o processo de consenso, “período+1” representa uma rodada de novo consenso (isto é, um novo período) associada a um novo nó primário, “ECO{}” representa um conjunto de mensagens ECO que o nó de cópia de segurança (802) recebe durante a segunda fase do processo de consenso, “ACEITAR{}” representa um conjunto de mensagens ACEITAR que o nó de cópia de segurança (802) recebe durante a terceira fase do processo de consenso, e “j” representa o nó de rede (por exemplo, nó de cópia de segurança (802)) que gera e envia a mensagem PERÍODO_MUDANÇA. Em algumas formas de realização, a mensagem PERÍODO_MUDANÇA pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0137] Referindo-se novamente à Figura 8, em (814), os nós de rede (804) diferentes do nó de cópia de segurança (802) verificam a mensagem PERÍODO_MUDANÇA que é enviada pelo nó de cópia de segurança (802). Em algumas formas de realização, cada um dos nós da rede (804) verifica se a mensagem PERÍODO_MUDANÇA é válida verificando se a soma de peso na mensagem PERÍODO_MUDANÇA é válida. Em algumas formas de realização, verificar se a soma de peso na mensagem PERÍODO_MUDANÇA é válida
Petição 870190068052, de 18/07/2019, pág. 143/212
48/89 inclui verificar se o conjunto de assinaturas nas mensagens ECO incluídas na mensagem PERÍODO_MUDANÇA é válido. Por exemplo, cada um dos nós de rede (804) pode autenticar o conjunto de assinaturas de chave privada nas mensagens ECO incluindo a mensagem PERÍODO_MUDANÇA utilizando uma chave pública.
[0138] Em (816), cada um dos nós de rede (804) envia uma mensagem NOVO_PERÍODO para o nó de cópia de segurança (802) em resposta à verificação de que a mensagem PERÍODO_MUDANÇA enviada pelo nó de cópia de segurança (802) é válida. A mensagem NOVO_PERÍODO indica uma confirmação de que o nó de cópia de segurança é o novo nó primário. Por exemplo, a mensagem NOVO_PERÍODO enviada por um nó de rede (804) inclui uma indicação de que o nó de rede (804) reconhece que o nó de cópia de segurança (802) se tornará o novo nó primário no novo período. Entretanto, cada um dos nós de rede (804) também envia a mensagem NOVO_PERÍODO aos outros nós de rede (804).
[0139] Referindo-se à Figura 9, a mensagem NOVO_PERÍODO está gerando como tendo um formato de <período+1, i, j, seq, ec_compilação>, onde “período+1” representa uma rodada de novo consenso (isto é, um novo período) associada a um novo nó primário, “i” representa o novo nó primário no novo período, “j” representa um nó de rede (804) que envia a mensagem NOVO_PERÍODO e “ec_compilação” representa uma compilação da mensagem PERÍODO_MUDANÇA. Em algumas formas de realização, a compilação da mensagem PERÍODO_MUDANÇA inclui um valor de resumo da mensagem PERÍODO_MUDANÇA. Em algumas formas de realização, a mensagem NOVO_PERÍODO pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0140] Referindo-se novamente à Figura 8, em (818), o nó de cópia de segurança (802) verifica se as mensagens NOVO_PERÍODO que são
Petição 870190068052, de 18/07/2019, pág. 144/212
49/89 enviadas pelos nós de rede (804) são válidas. Em algumas formas de realização, o nó de cópia de segurança (802) verifica as mensagens NOVO_PERÍODO, verificando se a compilação da mensagem PERÍODO_MUDANÇA nas mensagens NOVO_PERÍODO é válida. Como a compilação inclui informações da mensagem PERÍODO_MUDANÇA, a compilação também inclui as assinaturas na mensagem PERÍODO_MUDANÇA. O nó de cópia de segurança (802) pode verificar a compilação da mensagem PERÍODO_MUDANÇA, verificando se o conjunto de assinaturas na mensagem PERÍODO_MUDANÇA é válido.
[0141] Em (820), o nó de cópia de segurança (802) determina se uma quantidade de mensagem NOVO_PERÍODO válida, conforme determinado em (818), excede um limiar predeterminado. Em algumas formas de realização, o limiar predeterminado é um número de quórum (por exemplo, 2f + 1).
[0142] Em (822), o nó de cópia de segurança (802) determina que o nó de cópia de segurança (802) seja o novo nó primário no novo período em resposta à determinação de que a quantidade de mensagem NOVO_PERÍODO válida, conforme determinado, excede o limiar predeterminado. Note que cada um dos nós de rede (804) realiza as mesmas etapas (818)-(822) que o nó de cópia de segurança (802), e os nós de rede (804) e o nó de cópia de segurança (802) podem executar as etapas (818)-(822) de uma maneira paralela. Por exemplo, cada um dos nós de rede (804) pode verificar um conjunto de mensagens NOVO_PERÍODO que são enviadas de outros nós de rede (804), determinar se uma quantidade de mensagens NOVO_PERÍODO válidas excede um limiar predeterminado e determina um novo nó primário.
[0143] O processo de mudança de período (por exemplo, processo (700) ou (800)), como discutido acima, inclui muitas características que melhoram a operação de todo o sistema de protocolo de confiança e
Petição 870190068052, de 18/07/2019, pág. 145/212
50/89 ajudam a aliviar o estrangulamento da rede. Por exemplo, o processo de mudança de período no presente relatório descritivo inclui atribuir pesos respectivos às três fases do processo de consenso, determinar uma soma de peso com base nos pesos respectivos das três fases e determinar um novo nó primário com base na soma de peso. O processo de mudança de período baseado na soma de peso, em vez de um método circular, pode facilitar a escolha de um novo nó primário que não seja defeituoso em tempo hábil. Um método circular pode causar uma alteração frequente do nó primário quando vários nós de rede na linha para o novo nó primário estão com defeito. Isso afeta significativamente o serviço de protocolo de confiança, introduzindo latência ou atraso na localização de um nó primário que não seja defeituoso. Ao contrário do método circular, o processo de mudança de período no presente relatório descritivo depende da soma de peso para selecionar o novo nó primário, o que pode reduzir o tempo na localização do novo nó primário que não está com defeito. Isso pode melhorar ainda mais a eficiência do sistema de protocolo de confiança geral no fornecimento de serviços de protocolo de confiança.
[0144] Durante a operação de uma rede de protocolo de confiança, a velocidade de execução de alguns nós de rede pode ficar para trás daquela da maioria dos nós de rede devido à instabilidade de rede, falha de energia súbita, falha de disco e similares. Nesse cenário, mais de 1/3 dos nós de rede no sistema podem falhar. O BFT fornece segurança e vivacidade se menos de 1/3 dos nós de rede falharem durante a vida útil do sistema. No entanto, essas garantias são insuficientes para sistemas de vida longa porque o limite superior provavelmente será excedido no cenário descrito acima. Portanto, é desejável um processo de recuperação que faça com que os nós de rede com defeito se comportem corretamente novamente e continuem a participar em processos de consenso subsequentes para permitir que o
Petição 870190068052, de 18/07/2019, pág. 146/212
51/89 sistema tolere mais de f faltas durante sua vida útil. Além disso, o processo de recuperação descrito pode recuperar um ou mais nós de redes que ainda estão executando um processo de consenso (por exemplo, o processo de consenso (300) ou (400)) e não precisam esperar até que o consenso seja alcançado entre todos os nós de rede. Como tal, o processo de recuperação descrito pode reduzir ainda mais a latência do sistema e melhorar a eficiência da rede de protocolo de confiança.
[0145] Figura 10 representa um exemplo de um processo (1000) para realizar um processo de recuperação de um nó de rede (por exemplo, nó (214) ou (404)) de um sistema distribuído (por exemplo, rede de protocolo de confiança (102) e (212)) que pode ser executado de acordo com formas de realização do presente relatório descritivo. Especificamente, a Figura 10 ilustra um diagrama apresentando uma forma de realização exemplificativa de um método (1000) de execução de um processo de recuperação de um nó de rede, de acordo com o presente relatório descritivo. Como ilustrado na Figura 10, o processo (1000) inclui algumas fases e etapas.
[0146] Em uma primeira fase (1010), um nó de rede (por exemplo, nó de rede (Ro)) que gostaria de recuperar uma transação alvo com um número de sequência alvo (Ro) faz multidifusão de uma mensagem de solicitação de estado (por exemplo, mensagem PERGUNTAR_ESTADO) para os outros nós de rede indicando que o nó de rede deve ser recuperado. A mensagem de solicitação de estado pode incluir o número de sequência alvo que o nó de rede (Ro) gostaria de recuperar. Em uma segunda fase (1020), os outros nós de rede recebem a mensagem de solicitação de estado e enviam uma mensagem de resposta de estado (por exemplo, mensagem RESPOSTA_ESTADO) para o nó de rede (Ro). Em uma terceira fase (1030), o nó de rede (Ro) envia uma mensagem de solicitação (por exemplo, mensagem EXTRAIR_ECO) para os outros nós de rede, solicitando uma mensagem ECO de cada um dos outros
Petição 870190068052, de 18/07/2019, pág. 147/212
52/89 nós de rede. A mensagem ECO pode ser a mesma mensagem ECO enviada pelos respectivos outros nós de rede na segunda fase (320) do processo de consenso (300) como descrito acima com referência às Figuras 3 a 6. Em uma quarta fase (1040), cada um dos outros nós de rede envia uma mensagem ECO para o nó de rede (Ro) em resposta à mensagem EXTRAIR_ECO. Em uma quinta fase (1050), o nó de rede (Ro) verifica as mensagens ECO e recupera a transação alvo de acordo com um código EC, por exemplo, de acordo com as técnicas de reconstrução de exemplo como descrito acima com referência à Figura 4. Em uma sexta fase (1060), o nó de rede (Ro) envia uma mensagem ACEITAR para os outros nós de rede, indicando que o nó de rede foi recuperado.
[0147] Observe que o processo (1000) é ilustrado como implementado em conjunto com quatro nós de rede apenas para fins ilustrativos. O processo (1000) pode ser implementado em conjunto com qualquer número adequado de nós de rede. O processo (1000), um formato da mensagem PERGUNTAR_ESTADO e um formato da mensagem RESPOSTA_ESTADO serão discutidos abaixo em maior detalhe com referência às Figuras 11-12.
[0148] A Figura 11 representa um exemplo de um processo (1100) para realizar um processo de recuperação de um nó de rede em um sistema de distribuição (por exemplo, rede de protocolo de confiança (102) ou (212)) que pode ser executado de acordo com formas de realização do presente relatório descritivo. Em algumas formas de realização, o processo (1100) pode ser executado usando um ou mais programas executáveis por computador executados usando um ou mais dispositivos de computação. Para clareza de apresentação, a descrição que se segue descreve de modo geral o método (1100) no contexto das outras figuras nesta descrição. Será entendido que o método (1100) pode ser executado, por exemplo, por qualquer sistema,
Petição 870190068052, de 18/07/2019, pág. 148/212
53/89 ambiente, software e hardware adequados, ou uma combinação de sistemas, ambientes, software e hardware, conforme apropriado. Em algumas formas de realização, várias etapas do método (1100) podem ser executadas em paralelo, em combinação, em ciclos ou em qualquer ordem.
[0149] O processo (1100) começa em (1106), onde um nó de rede (1102) faz multi-difusão de uma mensagem de solicitação de estado para os outros nós de rede (1104). A mensagem de solicitação de estado inclui uma indicação de que o nó de rede (1102) deve recuperar uma transação alvo com um número de sequência alvo. O nó de rede (1102) pode ser um nó primário ou um nó de cópia de segurança.
[0150] Em algumas formas de realização do presente relatório descritivo, referindo-se à Figura 12, a mensagem PERGUNTAR_ESTADO, como um exemplo da mensagem de solicitação de estado, tem um formato de <j, seq>, em que “j” representa um nó de rede (1102) que envia a mensagem PERGUNTAR_ESTADO e “seq” representa um maior número de sequência ou um número de sequência mais recente para o nó de rede (1102) no processo de consenso atual. Em algumas formas de realização, a mensagem PERGUNTAR_ESTADO pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0151] Ao transmitir a mensagem PERGUNTAR_ESTADO para os outros nós de rede (1104), o nó de rede (1102) está solicitando aos outros nós de rede (1104) para enviarem o seu número de sequência mais recente para o nó de rede (1102), obtendo assim a informação de bloco mais recente do sistema de protocolo de confiança. E obtendo a informação de bloco mais recente de todo o sistema de protocolo de confiança, o nó de rede (1102) pode ser capaz de sincronizar com o estado mais recente de todo o sistema, recuperando-se assim e continuando a participar no processo de consenso.
[0152] Referindo-se novamente à Figura 11, em (1108), cada um
Petição 870190068052, de 18/07/2019, pág. 149/212
54/89 dos outros nós de rede (1104) envia uma mensagem de resposta de estado (por exemplo, mensagem RESPOSTA_ESTADO) para o nó de rede (1102) em resposta ao recebimento da mensagem de solicitação de estado. Em algumas formas de realização, a mensagem de resposta de estado inclui um número de sequência anterior associado aos nós de rede (1104).
[0153] Em algumas formas de realização, referindo-se à Figura 12, a mensagem RESPOSTA_ESTADO, como um exemplo da mensagem de resposta de estado, tem um formato de <j, última_seq>, onde “j” representa um nó de rede (1104) que envia a mensagem RESPOSTA_ESTADO e “última_seq” representa um número de sequência anterior para o nó de rede (1104) no processo de consenso atual. Em algumas formas de realização, a mensagem RESPOSTA_ESTADO pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0154] Referindo-se novamente à Figura 11, em (1110), o nó de rede (1102) determina se uma quantidade das mensagens de resposta de estado recebidas excede um limiar predeterminado. Por exemplo, o nó de rede (1102) pode determinar se uma quantidade de mensagens RESPOSTA_ESTADO recebidas excede um número de quórum (por exemplo, 2f+1 ou n-f). Em algumas formas de realização, o nó de rede (1102) determina ainda se o número de quórum das mensagens RESPOSTA_ESTADO recebidas inclui um número de sequência idêntico. O número de quórum das mensagens RESPOSTA_ESTADO recebidas inclui um número de sequência idêntico que significa que a maioria dos nós de rede (1104) concorda com um estado comum de todo o sistema.
[0155] Em (1112), o nó de rede (1102) determina o número de sequência alvo com base em um número de sequência idêntico se o nó de rede (1102) determinar que a quantidade de mensagens de resposta de estado incluindo o número de sequência idêntico recebido dos nós de rede (1104)
Petição 870190068052, de 18/07/2019, pág. 150/212
55/89 excede o limiar predeterminado. Por exemplo, o nó de rede (1102) pode determinar que o número de sequência alvo seja um incremento (por exemplo, “última_seq+1”) do número de sequência idêntico (por exemplo, “última_seq”).
[0156] Em (1114), o nó de rede (1102) envia uma mensagem solicitante (por exemplo, mensagem EXTRAIR_ECO) para os outros nós de rede (1104). A mensagem EXTRAIR_ECO é enviada pelo nó de rede (1102) para solicitar uma mensagem ECO de cada um dos outros nós de rede (1104). Como discutido acima com referência às Figuras 3 a 6, a mensagem ECO é uma mensagem transmitida pelos nós de rede (1104) para obter um consenso entre os nós de rede (1104) em uma transação alvo. A mensagem ECO inclui uma parte da transação alvo (por exemplo, um bloco de EC) e uma assinatura do nó de rede (1104) que envia a mensagem ECO.
[0157] Em algumas formas de realização, referindo-se à Figura 12, a mensagem EXTRAIR_ECO, como um exemplo da mensagem solicitante, tem um formato de <j, última_seq+1>, onde “j” representa um nó de rede (1102) que envia a mensagem EXTRAIR_ECO e “última_seq+1” representa um número de sequência alvo associado às mensagens ECO que o nó de rede (1102) está solicitando dos outros nós de rede (1104). Em algumas formas de realização, a mensagem EXTRAIR_ECO pode ter um formato diferente, por exemplo, incluindo campos adicionais ou diferentes.
[0158]A mensagem EXTRAIR_ECO como aqui discutida é enviada pelo nó de rede (1102) para solicitar as mensagens ECO incluindo um número de sequência mais recente ou um maior número de sequência dos outros nós de rede (1104). Coletando as mensagens ECO incluindo um número de sequência mais recente ou um maior número de sequência dos outros nós de rede (1104), o nó de rede (1102) pode conseguir recuperar para o estado mais recente associado ao número de sequência mais recente.
[0159] Referindo-se novamente à Figura 11, em (1116), cada um
Petição 870190068052, de 18/07/2019, pág. 151/212
56/89 dos nós de rede (1104) envia uma mensagem ECO para o nó de rede (1102) em resposta ao recebimento da mensagem EXTRAIR_ECO. Em algumas formas de realização, cada um dos nós de rede (1104) verifica a mensagem EXTRAIR_ECO antes de enviar a mensagem ECO para o nó de rede (1102). Em algumas formas de realização, cada um dos nós de rede (1104) verifica a mensagem EXTRAIR_ECO determinando se o número de sequência incluído nas mensagens EXTRAIR_ECO excede um número de sequência mais recente associado ao nó de rede (1104). Se o número de sequência incluído nas mensagens EXTRAIR_ECO for igual ao número de sequência mais recente associado ao nó de rede (1104), o nó de rede (1104) determina que a mensagem EXTRAIR_ECO é válida e que uma mensagem ECO será enviada para o nó de rede (1102). Se o número de sequência incluído nas mensagens EXTRAIR_ECO excede o número de sequência mais recente associado ao nó de rede (1104), o nó de rede (1104) determina que a mensagem EXTRAIR_ECO é inválida e que uma mensagem ECO não será enviado para o nó de rede (1102).
[0160] Em (1118), o nó de rede (1102) verifica se as mensagens ECO enviadas pelos nós de rede (1104) são válidas. Em algumas formas de realização, o nó de rede (1102) verifica as mensagens ECO usando uma árvore de Merkel. Por exemplo, o nó de rede (1102) pode usar os dados incluídos na mensagem ECO para reconstruir uma árvore de Merkel e determinar um valor de resumo de raiz reconstruído da árvore de Merkel reconstruída. O nó de rede (1102) pode então comparar o valor de resumo de raiz reconstruído com um valor de resumo de raiz incluído na mensagem ECO. Se o valor de resumo de raiz reconstruído corresponder ao valor de resumo de raiz incluído na mensagem ECO, o nó de rede (1102) determinará que a mensagem ECO é válida. Se o valor de resumo de raiz reconstruído não corresponder ao valor de resumo de raiz incluído na mensagem ECO, o nó de
Petição 870190068052, de 18/07/2019, pág. 152/212
57/89 rede (1102) determinará que a mensagem ECO é inválida e pode descartar a mensagem ECO inválida.
[0161] Em algumas formas de realização, o nó de rede (1102) verifica se a mensagem ECO é válida verificando, ainda, se a assinatura na mensagem ECO é válida. Por exemplo, o nó de rede (1102) pode autenticar a assinatura de chave privada na mensagem ECO usando uma chave pública emparelhada com a chave privada para verificar a assinatura.
[0162] Em (1120), o nó de rede (1102) determina se uma quantidade de mensagens ECO válidas recebidas dos outros nós de rede (1104) excede um limiar predeterminado. Por exemplo, o nó de rede (1102) pode determinar se uma quantidade de mensagens ECO válidas recebidas dos outros nós de rede (1104) excede um número de quórum (por exemplo, 2f+1).
[0163] Em (1122), o nó de rede (1102) recupera a transação alvo com o número de sequência alvo em resposta à determinação de que a quantidade de mensagens ECO válidas excede o limiar predeterminado. Em algumas formas de realização, o nó de rede (1102) recupera a transação alvo usando os dados incluídos na quantidade de mensagens ECO válidas. Por exemplo, o nó de rede (1102) pode recuperar um subconjunto de blocos de EC incluídos nas mensagens ECO para reconstruir a transação alvo de acordo com um código EC.
[0164] Em (1124), o nó de rede (1102) faz multidifusão de uma mensagem ACEITAR para os outros nós de rede (1104) depois de recuperar a transação alvo. Por exemplo, o nó de rede (1102) pode fazer multidifusão de uma mensagem ACEITAR para os outros nós de rede (1104) depois de reconstruir com sucesso a transação alvo. Em algumas formas de realização, a mensagem ACEITAR inclui um conjunto de assinaturas nas mensagens ECO e o número de sequência alvo. Ao enviar a mensagem ACEITAR incluindo as assinaturas e o número de sequência alvo para os outros nós de rede (1104), o
Petição 870190068052, de 18/07/2019, pág. 153/212
58/89 nó de rede (1102) indica aos outros nós de rede (1104) que o nó de rede (1102) se recuperou e sincronizou com o estado mais recente do sistema.
[0165] O processo de recuperação, conforme discutido acima no presente relatório descritivo, inclui muitas características que melhoram a operação dos computadores que implementam o processo de recuperação e ajudam a aliviar o estrangulamento da rede. Por exemplo, o processo de recuperação no presente relatório descritivo inclui operações incluindo enviar uma mensagem de solicitação de estado por um nó de rede que se aplica a ser um novo nó primário, receber mensagens de resposta de estado dos outros nós de rede e enviar uma mensagem EXTRAIR_ECO pelo nó de rede para solicitar mensagens ECO dos outros nós de rede. Essas operações são executadas de tal forma que o processo de recuperação do nó de rede defeituoso não interfere com a operação normal do processo de consenso entre os outros nós de rede não defeituosos. Isso facilita a conservação de características de computação e de rede para recuperar o nó de rede com falha, reduzindo a complexidade do processo de recuperação.
[0166] Referindo-se à Figura 13, a Figura 13 é um diagrama que ilustra módulos de um aparelho de consenso (1300), de acordo com uma forma de realização do presente relatório descritivo. O aparelho (1300) para obter consenso pode ser aplicado a um sistema de consenso baseado em uma tecnologia de protocolo de confiança. Por exemplo, o aparelho (1300) pode corresponder às formas de realização mostradas nas Figuras 1 a 6. O aparelho (1300) pode ser implementado em um nó primário na rede de protocolo de confiança. O aparelho (1300) inclui o seguinte: um receptor ou unidade receptora (1302), configurada para receber um solicitação de transação; uma unidade geradora (1304), configurada para gerar uma quantidade de blocos de código de apagamento (EC) de acordo com um código EC usando a solicitação de transação; um transmissor ou unidade de transmissão (1306), configurada
Petição 870190068052, de 18/07/2019, pág. 154/212
59/89 para enviar uma quantidade de primeiras mensagens para o um ou mais nós de cópia de segurança, respectivamente, em que cada uma da quantidade de primeiras mensagens inclui um valor de resumo composto associado à quantidade de blocos de EC; o receptor ou unidade receptora (1302), ainda configurado para receber pelo menos uma segunda mensagem de pelo menos um dos nós de cópia de segurança, em que a pelo menos uma segunda mensagem inclui uma da quantidade de primeiras mensagens e uma assinatura do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens; uma unidade de verificação (1306), configurada para verificar se a pelo menos uma segunda mensagem é válida em resposta ao recebimento da pelo menos uma segunda mensagem do pelo menos um do nó de cópia de segurança; uma unidade de determinação (1310), configurada para determinar se uma quantidade de segundas mensagens válidas excede um limiar predeterminado; uma unidade de reconstrução (1312), configurada para reconstruir a solicitação de transação com base em um subconjunto da quantidade de segundas mensagens válidas de acordo com o código EC em resposta à determinação de que a quantidade de segundas mensagens válidas excede o limiar predeterminado; o transmissor ou a unidade de transmissão (1306), adicionalmente configurada para enviar uma terceira mensagem para os outros nós de rede em resposta à determinação de que a solicitação de transação foi reconstruída com sucesso, em que a terceira mensagem inclui um conjunto de assinaturas que estão nas segundas mensagens válidas; o receptor ou a unidade receptora (1302), ainda configurada para receber pelo menos uma terceira mensagem de pelo menos um dos nós de cópia de segurança; e uma unidade de execução (1314), configurada para executar a solicitação de transação em resposta ao recebimento de um número predeterminado de terceiras mensagens que são idênticas.
Petição 870190068052, de 18/07/2019, pág. 155/212
60/89 [0167] Em uma forma de realização opcional, a solicitação de transação é associada a um número de sequência.
[0168] Em uma forma de realização opcional, a geração da pluralidade de blocos de EC de acordo com um código EC inclui o seguinte: transformar a solicitação de transação em uma mensagem EC utilizando o código EC e dividindo a mensagem EC na quantidade de bloco de EC.
[0169] Em uma forma de realização opcional, o valor de resumo composto da quantidade de blocos de EC é gerado usando uma árvore de resumo.
[0170] Em uma forma de realização opcional, a árvore de resumo inclui uma árvore de Merkle e em que o valor de resumo composto é um valor de resumo de raiz da árvore de Merkle.
[0171] Em uma forma de realização opcional, a assinatura do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens inclui uma assinatura de chave privada do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens.
[0172] Em uma forma de realização opcional, a pelo menos uma segunda mensagem inclui ainda pelo menos um da quantidade de blocos de EC.
[0173] Em uma forma de realização opcional, a verificação de se a pelo menos uma segunda mensagem é válida inclui o seguinte: gerar uma árvore de resumo reconstruída utilizando pelo menos um da quantidade de blocos de EC na pelo menos uma segunda mensagem; determinar um valor de resumo composto reconstruído da árvore de resumo reconstruída; e determinar se o valor de resumo composto reconstruído corresponde aos valores de resumo compostos na pelo menos uma segunda mensagem.
[0174] Em uma forma de realização opcional, a unidade de
Petição 870190068052, de 18/07/2019, pág. 156/212
61/89 determinação (1310) é ainda configurada para determinar que a pelo menos uma segunda mensagem é válida em resposta à determinação de que o valor de resumo composto reconstruído corresponde aos valores de resumo compostos nas segundas mensagens.
[0175] Em uma forma de realização opcional, o número predeterminado de terceiras mensagens que são idênticas inclui o número predeterminado das terceiras mensagens com um conjunto idêntico de assinaturas.
[0176] A Figura 13 é um diagrama esquemático que ilustra um módulo funcional interno e uma estrutura de um aparelho de consenso (1300). Um corpo de execução, em essência, pode ser um dispositivo eletrônico, e o dispositivo eletrônico inclui o seguinte: pelo menos um processador; e uma memória configurada para armazenar uma instrução executável do pelo menos um processador.
[0177] O pelo menos um processador está configurado para receber uma solicitação de transação; gerar uma quantidade de blocos de código de apagamento (EC) de acordo com um código EC usando a solicitação de transação; enviar uma quantidade de primeiras mensagens para o um ou mais nós de cópia de segurança, respectivamente, em que cada uma da quantidade de primeiras mensagens inclui um valor de resumo composto associado à quantidade de blocos de EC; receber pelo menos uma segunda mensagem de pelo menos um dos nós de cópia de segurança, em que a pelo menos uma segunda mensagem inclui uma da quantidade de primeiras mensagens e uma assinatura do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens; verificar se a pelo menos uma segunda mensagem é válida em resposta ao recebimento da pelo menos uma segunda mensagem do pelo menos um do nó de cópia de segurança; determinar se uma quantidade de segundas
Petição 870190068052, de 18/07/2019, pág. 157/212
62/89 mensagens válidas excede um limiar predeterminado; reconstruir a solicitação de transação com base em um subconjunto da quantidade de segundas mensagens válidas de acordo com o código EC, em resposta à determinação de que a quantidade de segundas mensagens válidas excede o limiar predeterminado; enviar uma terceira mensagem para os outros nós de rede em resposta à determinação de que a solicitação de transação foi reconstruída com sucesso, em que a terceira mensagem inclui um conjunto de assinaturas que estão nas segundas mensagens válidas; receber pelo menos uma terceira mensagem de pelo menos um dos nós de cópia de segurança; e executar a solicitação de transação em resposta ao recebimento de um número predeterminado de terceiras mensagens que são idênticas.
[0178] Opcionalmente, a solicitação de transação é associada a um número de sequência.
[0179] Opcionalmente, a geração da pluralidade de blocos de EC de acordo com um código EC inclui o seguinte: transformar a solicitação de transação em uma mensagem EC usando o código EC e dividindo a mensagem EC na quantidade de bloco de EC.
[0180] Opcionalmente, o valor de resumo composto da quantidade de blocos de EC é gerado usando uma árvore de resumo.
[0181] Opcionalmente, a árvore de resumo inclui uma árvore de Merkle, e em que o valor de resumo composto é um valor de resumo raiz da árvore de Merkle.
[0182] Opcionalmente, a assinatura do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens inclui uma assinatura de chave privada do pelo menos um dos nós de cópia de segurança associados a uma da quantidade de primeiras mensagens.
[0183] Opcionalmente, a pelo menos uma segunda mensagem inclui ainda pelo menos um da quantidade de blocos de EC.
Petição 870190068052, de 18/07/2019, pág. 158/212
63/89 [0184] Opcionalmente, a verificação de se a pelo menos uma segunda mensagem é válida inclui o seguinte: gerar uma árvore de resumo reconstruída usando o pelo menos um da quantidade de blocos de EC na pelo menos uma segunda mensagem; determinar um valor de resumo composto reconstruído da árvore de resumo reconstruída; e determinar se o valor de resumo composto reconstruído corresponde aos valores de resumo compostos na pelo menos uma segunda mensagem.
[0185] Opcionalmente, o pelo menos um processador é ainda configurado para determinar que a pelo menos uma segunda mensagem é válida em resposta à determinação de que o valor de resumo composto reconstruído corresponde aos valores de resumo compostos nas segundas mensagens.
[0186] Opcionalmente, o número predeterminado de terceiras mensagens que são idênticas inclui o número predeterminado das terceiras mensagens com um conjunto idêntico de assinaturas.
[0187] Referindo-se à Figura 14, a Figura 14 é um diagrama que ilustra módulos de um aparelho de consenso (1400), de acordo com uma forma de realização do presente relatório descritivo. O aparelho (1400) para obter consenso pode ser aplicado a um sistema de consenso baseado em uma tecnologia de protocolo de confiança. O aparelho (1400) pode corresponder às formas de realização mostradas nas Figuras 1 a 6. Por exemplo, o aparelho (1400) pode ser implementado em um nó de cópia de segurança de uma rede de protocolo de confiança. O aparelho (1400) inclui o seguinte: um receptor ou unidade receptora (1402), configurada para receber uma primeira mensagem do nó primário, em que a primeira mensagem inclui um valor de resumo composto associado a uma quantidade de blocos de EC, em que a quantidade de blocos de EC é gerado pelo nó primário de acordo com um código EC usando uma solicitação de transação; um transmissor ou unidade de
Petição 870190068052, de 18/07/2019, pág. 159/212
64/89 transmissão (1404), configurada para enviar, pelo nó de cópia de segurança, uma segunda mensagem para os outros nós de rede em resposta ao recebimento da primeira mensagem, em que a segunda mensagem inclui a primeira mensagem e uma assinatura do nó de cópia de segurança associado à primeira mensagem; o receptor ou unidade de receptora (1402), ainda configurada para receber pelo menos uma segunda mensagem de pelo menos um nó de cópia de segurança diferente do nó de cópia de segurança; uma unidade de verificação (1406), configurada para verificar se a pelo menos uma segunda mensagem é válida em resposta ao recebimento da pelo menos uma segunda mensagem a partir do pelo menos um nó de cópia de segurança; uma unidade de determinação (1408), configurada para determinar se uma quantidade de segundas mensagens válidas excede um limiar predeterminado; uma unidade de reconstrução (1410), configurada para reconstruir a solicitação de transação com base em um subconjunto da quantidade de segundas mensagens válidas de acordo com o código EC em resposta à determinação de que a quantidade de segundas mensagens válidas excede o limiar predeterminado; o transmissor ou unidade de transmissão (1404), configurada para enviar uma terceira mensagem para os outros nós de rede em resposta à determinação de que a solicitação de transação foi reconstruída com sucesso, em que a terceira mensagem inclui um conjunto de assinaturas que estão nas segundas mensagens válidas; o receptor ou unidade receptora (1402), ainda configurada para receber pelo menos uma terceira mensagem de pelo menos um dos nós de cópia de segurança; e uma unidade de execução (1412), configurada para executar a solicitação de transação em resposta ao recebimento de um número predeterminado de terceiras mensagens que são idênticas.
[0188] Em uma forma de realização opcional, a geração da pluralidade de blocos de EC de acordo com um código EC inclui o seguinte:
Petição 870190068052, de 18/07/2019, pág. 160/212
65/89 transformar a solicitação de transação em uma mensagem EC utilizando o código EC; e dividindo a mensagem EC na quantidade de bloco de EC.
[0189] Em uma forma de realização opcional, o valor de resumo composto da pluralidade de blocos de EC é gerado usando uma árvore de resumo.
[0190] Em uma forma de realização opcional, a árvore de resumo inclui uma árvore de Merkle e o valor de resumo composto é um valor de resumo de raiz da árvore de Merkle.
[0191] Em uma forma de realização opcional, a assinatura do nó de cópia de segurança associado à primeira mensagem inclui uma assinatura de chave privada do nó de cópia de segurança associado à primeira mensagem.
[0192] Em uma forma de realização opcional, a pelo menos uma segunda mensagem inclui ainda pelo menos um da quantidade de blocos de EC.
[0193] Em uma forma de realização opcional, a verificação de se a pelo menos uma segunda mensagem é válida inclui o seguinte: gerar uma árvore de resumo reconstruída utilizando o pelo menos um da quantidade de blocos de EC na pelo menos uma segunda mensagem; determinar um valor de resumo composto reconstruído da árvore de resumo reconstruída; comparar o valor de resumo composto reconstruído com um valor de resumo composto na pelo menos uma segunda mensagem; e determinar se o valor de resumo composto reconstruído corresponde aos valores de resumo compostos na pelo menos uma segunda mensagem.
[0194] Em uma forma de realização opcional, a unidade de determinação (1408) é ainda configurada para determinar que a pelo menos uma segunda mensagem é válida em resposta à determinação de que o valor de resumo composto reconstruído corresponde aos valores de resumo
Petição 870190068052, de 18/07/2019, pág. 161/212
66/89 compostos nas segundas mensagens.
[0195] Em uma forma de realização opcional, o número predeterminado de terceiras mensagens que são idênticas inclui o número predeterminado das terceiras mensagens com um conjunto idêntico de assinaturas.
[0196] A Figura 14 é um diagrama esquemático que ilustra um módulo funcional interno e uma estrutura de um aparelho de consenso (1400). Um corpo de execução em essência pode ser um dispositivo eletrônico, e o dispositivo eletrônico inclui o seguinte: pelo menos um processador; e uma memória configurada para armazenar uma instrução executável do pelo menos um processador.
[0197] O pelo menos um processador está configurado para receber uma primeira mensagem do nó primário, em que a primeira mensagem inclui um valor de resumo composto associado a uma quantidade de blocos de EC, em que a quantidade de blocos de EC é gerada pelo nó primário de acordo com um código EC usando uma solicitação de transação; enviar, pelo nó de cópia de segurança, uma segunda mensagem para os outros nós de rede em resposta ao recebimento da primeira mensagem, em que a segunda mensagem inclui a primeira mensagem e uma assinatura do nó de cópia de segurança associado à primeira mensagem; receber pelo menos uma segunda mensagem de pelo menos um nó de cópia de segurança diferente do nó de cópia de segurança; verificar se a pelo menos uma segunda mensagem é válida em resposta ao recebimento da pelo menos uma segunda mensagem do pelo menos um nó de cópia de segurança; determinar se uma quantidade de segundas mensagens válidas excede um limiar predeterminado; reconstruir a solicitação de transação com base em um subconjunto da quantidade de segundas mensagens válidas de acordo com o código EC, em resposta à determinação de que a quantidade de segundas mensagens válidas excede o
Petição 870190068052, de 18/07/2019, pág. 162/212
67/89 limiar predeterminado; enviar uma terceira mensagem para os outros nós de rede em resposta à determinação de que a solicitação de transação foi reconstruída com sucesso, em que a terceira mensagem inclui um conjunto de assinaturas que estão nas segundas mensagens válidas; receber pelo menos uma terceira mensagem de pelo menos um dos nós de cópia de segurança; e executar a solicitação de transação em resposta ao recebimento de um número predeterminado de terceiras mensagens que são idênticas.
[0198] Opcionalmente, a geração da pluralidade de blocos de EC de acordo com um código EC inclui o seguinte: transformar a solicitação de transação em uma mensagem EC usando o código EC; e dividir a mensagem EC na quantidade de bloco de EC.
[0199] Opcionalmente, o valor de resumo composto da pluralidade de blocos de EC é gerado usando uma árvore de resumo.
[0200] Opcionalmente, a árvore de resumo inclui uma árvore de Merkle e o valor de resumo composto é um valor de resumo de raiz da árvore de Merkle.
[0201] Opcionalmente, a assinatura do nó de cópia de segurança associado à primeira mensagem inclui uma assinatura de chave privada do nó de cópia de segurança associado à primeira mensagem.
[0202] Opcionalmente, a pelo menos uma segunda mensagem inclui ainda pelo menos um da quantidade de blocos de EC.
[0203] Opcionalmente, a verificação de se a pelo menos uma segunda mensagem é válida inclui o seguinte: gerar uma árvore de resumo reconstruída usando o pelo menos um da quantidade de blocos de EC na pelo menos uma segunda mensagem; determinar um valor de resumo composto reconstruído da árvore de resumo reconstruída; comparar o valor de resumo composto reconstruído com um valor de resumo composto na pelo menos uma segunda mensagem; e determinar se o valor de resumo composto reconstruído
Petição 870190068052, de 18/07/2019, pág. 163/212
68/89 corresponde aos valores de resumo compostos na pelo menos uma segunda mensagem.
[0204] Opcionalmente, o pelo menos um processador é ainda configurado para determinar que a pelo menos uma segunda mensagem é válida em resposta à determinação de que o valor de resumo composto reconstruído corresponde aos valores de resumo compostos nas segundas mensagens.
[0205] Opcionalmente, o número predeterminado de terceiras mensagens que são idênticas inclui o número predeterminado das terceiras mensagens com um conjunto idêntico de assinaturas.
[0206] Referindo-se à Figura 15, a Figura 15 é um diagrama que ilustra módulos de um aparelho de mudança de nó primário (1500), de acordo com uma forma de realização do presente relatório descritivo. O aparelho (1500) para mudar um nó primário pode ser aplicado a um sistema de consenso baseado em uma tecnologia de protocolo de confiança. O aparelho (1500) pode corresponder às formas de realização mostradas nas Figuras 7 a 9. Por exemplo, o aparelho (1500) pode ser implementado em um nó de cópia de segurança de uma rede de protocolo de confiança. O aparelho (1500) inclui o seguinte: uma unidade de determinação (1502), configurada para determinar que uma mudança de período precisa ser executada, em que a mudança de período causa uma mudança de um período atual com um nó primário atual para um novo período com um novo nó primário, em que o período atual compreende um processo de consenso para obter consenso entre a quantidade de nós de rede usando o nó primário, o processo de consenso incluindo três fases; a unidade de determinação (1502) é ainda configurada para determinar um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual, em que o peso é uma métrica de uma qualificação do nó de cópia de segurança para ser
Petição 870190068052, de 18/07/2019, pág. 164/212
69/89 o novo nó primário; a unidade de determinação (1502) é ainda configurada para determinar uma soma de peso para o nó de cópia de segurança com base no peso respectivo do nó de cópia de segurança associado a cada uma das três fases no período atual; um transmissor ou unidade de transmissão (1504), configurada para enviar uma mensagem PERÍODO_MUDANÇA para a quantidade de nós de rede diferentes do nó de rede em resposta à determinação de que a soma de peso atinge um primeiro limiar predeterminado, em que a mensagem PERÍODO_MUDANÇA indica uma solicitação de uma mudança do período atual com o nó primário atual para o novo período, com o nó de cópia de segurança sendo o novo nó primário, e a mensagem PERÍODO_MUDANÇA inclui a soma de peso do nó de cópia de segurança; um receptor ou unidade receptora (1506), configurada para receber pelo menos uma mensagem NOVO_PERÍODO de pelo menos um da quantidade de nós de rede diferente do nó de cópia de segurança, em que a mensagem NOVO_PERÍODO indica uma confirmação do nó de cópia de segurança como sendo o novo nó primário; uma unidade de verificação (1508), configurada para verificar se a pelo menos uma mensagem NOVO_PERÍODO é válida; a unidade de determinação (1502) é ainda configurada para determinar se uma quantidade de mensagens NOVO_PERÍODO válidas a partir da pelo menos uma mensagem NOVO_PERÍODO excede um segundo limiar predeterminado; e a unidade de determinação (1502) é ainda configurada para determinar o nó de cópia de segurança como sendo o novo nó primário no novo período, em resposta à determinação de que a quantidade de mensagens NOVO_PERÍODO válidas excede o segundo limiar predeterminado.
[0207] Em uma forma de realização opcional, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui a determinação de um peso do nó de cópia de segurança para uma primeira fase do processo de
Petição 870190068052, de 18/07/2019, pág. 165/212
70/89 consenso como sendo um primeiro valor.
[0208] Em uma forma de realização opcional, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui o seguinte: em resposta à determinação de uma falha na verificação de quórum em uma segunda fase do processo de consenso no período atual, determinar um peso do nó de cópia de segurança para a segunda fase do processo de consenso para ser um primeiro valor; e em resposta à determinação de sucesso de uma verificação de quórum na segunda fase do processo de consenso no período atual, determinar o peso do nó de cópia de segurança para a segunda fase do processo de consenso como sendo um segundo valor, em que o primeiro valor é menor que o segundo valor.
[0209] Em uma forma de realização opcional, a verificação de quórum na segunda fase para o nó de rede inclui o recebimento de um número predeterminado de mensagens ECO de outros nós de rede.
[0210] Em uma forma de realização opcional, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui o seguinte: em resposta à determinação de uma falha na verificação de quórum em uma terceira fase do processo de consenso no período atual, determinar um peso do nó de cópia de segurança para a terceira fase do processo de consenso como sendo um terceiro valor; e em resposta à determinação de sucesso de uma verificação de quórum na terceira fase do processo de consenso no período atual, determinar o peso do nó de cópia de segurança para a terceira fase do processo de consenso como sendo um quarto valor, em que o terceiro valor é menor que o quarto valor.
[0211] Em uma forma de realização opcional, a verificação de quórum na terceira fase para o nó de rede inclui o recebimento de um número
Petição 870190068052, de 18/07/2019, pág. 166/212
71/89 predeterminado de mensagens aceitas de outros nós de rede, em que cada uma das mensagens aceitas de outros nós de rede indica que cada um dos outros nós de rede aceitou um número predeterminado de mensagens ECO.
[0212] Em uma forma de realização opcional, a mensagem PERÍODO_MUDANÇA inclui ainda um conjunto de assinaturas associadas a um conjunto de nós de rede a partir da quantidade de nós de rede, e em que a mensagem NOVO_PERÍODO compreende uma compilação da mensagem PERÍODO-MUDANÇA.
[0213] Em uma forma de realização opcional, a verificação de se a pelo menos uma mensagem NOVO_PERÍODO é válida inclui verificar se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida, e verificar se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida e inclui verificar se o conjunto de assinaturas na mensagem PERÍODO_MUDANÇA é válido.
[0214] Em uma forma de realização opcional, a determinação de que uma mudança de período precisa ser realizada inclui determinar que uma mudança de período precisa ser executada em resposta à determinação de que o consenso não foi alcançado no período anterior dentro de um período de tempo predeterminado.
[0215] Em uma forma de realização opcional, o aparelho de mudança de nó primário (1500) inclui ainda o seguinte: uma unidade de operação (1510), configurada para operar no novo período com o novo nó primário, em que o novo período compreende um processo de consenso para alcançar consenso entre a pluralidade de nós de rede usando o novo nó primário.
[0216] A Figura 15 é um diagrama esquemático ilustrando um módulo funcional interno e uma estrutura de um aparelho de mudança de nó
Petição 870190068052, de 18/07/2019, pág. 167/212
72/89 primário (1500). Um corpo de execução em essência pode ser um dispositivo eletrônico, e o dispositivo eletrônico inclui o seguinte: pelo menos um processador; e uma memória configurada para armazenar uma instrução executável do pelo menos um processador.
[0217] O pelo menos um processador é configurado para determinar que uma mudança de período precisa ser executada, em que a mudança de período causa uma mudança de um período atual com um nó primário atual para um novo período com um novo nó primário, em que o período atual compreende um processo de consenso para alcançar o consenso entre a quantidade de nós de rede usando o nó primário, o processo de consenso incluindo três fases; determinar um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual, em que o peso é uma métrica de uma qualificação do nó de cópia de segurança para ser o novo nó primário; determinar uma soma de peso para o nó de cópia de segurança com base no peso respectivo do nó de cópia de segurança associado a cada uma das três fases no período atual; enviar uma mensagem PERÍODO_MUDANÇA para a quantidade de nós de rede diferentes do nó de rede em resposta à determinação de que a soma de peso atinge um primeiro limiar predeterminado, em que a mensagem PERÍODO_MUDANÇA indica uma solicitação para uma alteração do período atual com o nó primário atual para o novo período com o nó de cópia de segurança sendo o novo nó primário e a mensagem PERÍODO_MUDANÇA inclui a soma de peso do nó de cópia de segurança; receber pelo menos uma mensagem NOVO_PERÍODO de pelo menos um da quantidade de nós de rede diferentes do nó de cópia de segurança, em que a mensagem NOVO_PERÍODO indica uma confirmação do nó de cópia de segurança como sendo o novo nó primário; verificar se a pelo menos uma mensagem NOVO_PERÍODO é válida; determinar se uma quantidade de mensagens
Petição 870190068052, de 18/07/2019, pág. 168/212
73/89
NOVO_PERÍODO válidas a partir da pelo menos uma mensagem NOVO_PERÍODO excede um segundo limiar predeterminado; e determinar que o nó de cópia de segurança como sendo o novo nó primário no novo período em resposta à determinação de que a quantidade de mensagens NOVO_PERÍODO válidas excede o segundo limiar predeterminado.
[0218] Opcionalmente, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui a determinação de um peso do nó de cópia de segurança para uma primeira fase do processo de consenso como sendo um primeiro valor.
[0219] Opcionalmente, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui o seguinte: em resposta à determinação de uma falha na verificação de quórum em uma segunda fase do processo de consenso no período atual, determinar um peso do nó de cópia de segurança para a segunda fase do processo de consenso para ser um primeiro valor; e em resposta à determinação de sucesso de uma verificação de quórum na segunda fase do processo de consenso no período atual, determinar o peso do nó de cópia de segurança para a segunda fase do processo de consenso como sendo um segundo valor, em que o primeiro valor é menor que o segundo valor.
[0220] Opcionalmente, a verificação do quórum na segunda fase para o nó de rede inclui o recebimento de um número predeterminado de mensagens ECO de outros nós de rede.
[0221] Opcionalmente, a determinação de um peso respectivo do nó de cópia de segurança associado a cada uma das três fases do processo de consenso no período atual inclui o seguinte: em resposta à determinação de uma falha na verificação do quórum em uma terceira fase do processo de
Petição 870190068052, de 18/07/2019, pág. 169/212
74/89 consenso no período atual, determinar um peso do nó de cópia de segurança para a terceira fase do processo de consenso para ser um terceiro valor; e em resposta à determinação de sucesso de uma verificação de quórum na terceira fase do processo de consenso no período atual, determinar o peso do nó de cópia de segurança para a terceira fase do processo de consenso como sendo um quarto valor, em que o terceiro valor é menor que o quarto valor.
[0222] Opcionalmente, a verificação do quórum na terceira fase para o nó de rede inclui receber um número predeterminado de mensagens de aceitação de outros nós de rede, em que cada uma das mensagens de aceitação de outros nós de rede indica que cada um dos outros nós de rede aceitou um número predeterminado de mensagens ECO.
[0223] Opcionalmente, a mensagem PERÍODO_MUDANÇA inclui ainda um conjunto de assinaturas associadas a um conjunto de nós de rede a partir da quantidade de nós de rede, e em que a mensagem NOVO_PERÍODO compreende uma compilação da mensagem PERÍODO_MUDANÇA.
[0224] Opcionalmente, a verificação de se a pelo menos uma mensagem NOVO_PERÍODO válida é válida inclui verificar se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida, e a verificação de se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida inclui verificar se o conjunto de assinaturas na mensagem PERÍODO-MUDANÇA é válido.
[0225] Opcionalmente, a determinação de que uma mudança de período precisa ser realizada inclui a determinação de que uma mudança de período precisa ser executada em resposta à determinação de que o consenso não foi alcançado no período anterior dentro de um período de tempo predeterminado.
[0226] Opcionalmente, o pelo menos um processador é ainda
Petição 870190068052, de 18/07/2019, pág. 170/212
75/89 configurado para operar no novo período com o novo nó primário, em que o novo período compreende um processo de consenso para obter consenso entre a pluralidade de nós de rede usando o novo nó primário.
[0227] Referindo-se à Figura 16, a Figura 16 é um diagrama que ilustra módulos de um aparelho de mudança de nó primário (1600), de acordo com uma forma de realização do presente relatório descritivo. O aparelho (1600) para mudar um nó primário pode ser aplicado a um sistema de consenso baseado em uma tecnologia de protocolo de confiança. O aparelho (1600) corresponde às formas de realização mostradas nas Figuras 7 a 9. Por exemplo, o aparelho (1400) pode ser implementado em um nó de rede de uma rede de protocolo de confiança. O aparelho (1600) inclui o seguinte: um receptor ou unidade receptora (1602), configurada para receber uma mensagem PERÍODO_MUDANÇA de um nó de cópia de segurança diferente do nó de rede, em que a mensagem PERÍODO_MUDANÇA inclui uma indicação de que uma mudança de período precisa ser executada, em que a mudança de período causa uma mudança de um período atual com um nó primário atual para um novo período com um novo nó primário; uma unidade de verificação (1604), configurada para verificar se a mensagem PERÍODO_MUDANÇA é válida; um transmissor ou unidade de transmissão (1606), configurada para enviar uma mensagem NOVO_PERÍODO aos outros nós de rede em resposta à verificação de que a mensagem PERÍODO_MUDANÇA é válida, em que a mensagem NOVO_PERÍODO compreende uma compilação da mensagem PERÍODO_MUDANÇA; o receptor ou unidade receptora (1602), ainda configurado para receber pelo menos uma mensagem NOVO_PERÍODO de pelo menos um da quantidade de nós de rede diferentes do nó de rede; a unidade de verificação (1604), ainda configurada para verificar se a pelo menos uma mensagem NOVO_PERÍODO é válida; uma unidade de determinação (1608), configurada para determinar se uma
Petição 870190068052, de 18/07/2019, pág. 171/212
76/89 quantidade de mensagens NOVO_PERÍODO válidas a partir da pelo menos uma mensagem NOVO_PERÍODO excede um limiar predeterminado; e a unidade de determinação (1608), ainda configurada para determinar o nó de cópia de segurança como sendo o novo nó primário no novo período, em resposta à determinação de que a quantidade de mensagens NOVO_PERÍODO válidas excede o limiar predeterminado.
[0228] Em uma forma de realização opcional, a mensagem PERÍODO_MUDANÇA inclui uma soma de peso associada ao nó de cópia de segurança e um conjunto de assinaturas associadas a um conjunto de nós de rede a partir da quantidade de nós de rede.
[0229] Em uma forma de realização opcional, a verificação de se a mensagem PERÍODO_MUDANÇA é válida inclui verificar se a soma de peso na mensagem PERÍODO_MUDANÇA é válida, e a verificação de se a soma de peso na mensagem PERÍODO_MUDANÇA é válida inclui verificar se o conjunto de assinaturas é válido.
[0230] Em uma forma de realização opcional, a verificação de se a pelo menos uma mensagem NOVO_PERÍODO é válida inclui verificar se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida, e a verificação de se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida inclui verificar se o conjunto de assinaturas na mensagem PERÍODO_MUDANÇA é válido.
[0231] A Figura 16 é um diagrama esquemático que ilustra um módulo funcional interno e uma estrutura de um aparelho de mudança de nó primário (1600). Um corpo de execução em essência pode ser um dispositivo eletrônico, e o dispositivo eletrônico inclui o seguinte: um pelo menos um processador; e uma memória configurada para armazenar uma instrução executável do pelo menos um processador.
Petição 870190068052, de 18/07/2019, pág. 172/212
77/89 [0232] O pelo menos um processador é configurado para receber uma mensagem PERÍODO_MUDANÇA de um nó de cópia de segurança diferente do nó de rede, em que a mensagem PERÍODO_MUDANÇA inclui uma indicação de que uma mudança de período precisa ser executada, em que a mudança de período causa uma alteração de um período atual com um nó primário atual para um novo período com um novo nó primário; verificar se a mensagem PERÍODO_MUDANÇA é válida; enviar uma mensagem
NOVO_PERÍODO aos outros nós de rede em resposta à verificação de que a mensagem PERÍODO_MUDANÇA é válida, em que a mensagem
NOVO_PERÍODO compreende uma compilação da mensagem PERÍODO_MUDANÇA; receber pelo menos uma mensagem NOVO_PERÍODO de pelo menos um da quantidade de nós de rede diferentes do nó de rede; verificar se a pelo menos uma mensagem NOVO_PERÍODO é válida; determinar se uma quantidade de mensagens NOVO_PERÍODO válidas a partir da pelo menos uma mensagem NOVO_PERÍODO excede um limiar predeterminado; e determinar o nó de cópia de segurança como sendo o novo nó primário no novo período em resposta à determinação de que a quantidade de mensagens NOVO_PERÍODO válidas excede o limiar predeterminado.
[0233] Opcionalmente, a mensagem PERÍODO_MUDANÇA inclui uma soma de peso associada ao nó de cópia de segurança e um conjunto de assinaturas associadas a um conjunto de nós de rede a partir da quantidade de nós de rede.
[0234] Opcionalmente, a verificação de se a mensagem PERÍODO_MUDANÇA é válida inclui verificar se a soma de peso na mensagem PERÍODO_MUDANÇA é válida, e a verificação de se a soma de peso na mensagem PERÍODO_MUDANÇA é válida inclui verificar se o conjunto de assinaturas é válido.
[0235] Opcionalmente, a verificação de se a pelo menos uma
Petição 870190068052, de 18/07/2019, pág. 173/212
78/89 mensagem NOVO_PERÍODO é válida inclui verificar se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida, e a verificação de se a compilação da mensagem PERÍODO_MUDANÇA na pelo menos uma mensagem NOVO_PERÍODO é válida inclui verificar se o conjunto de assinaturas na mensagem PERÍODO-MUDANÇA é válido.
[0236] Referindo-se à Figura 17, a Figura 17 é um diagrama que ilustra módulos de um aparelho de recuperação (1700), de acordo com uma forma de realização do presente relatório descritivo. O aparelho (1700) para recuperação pode ser aplicado a um sistema de consenso baseado em uma tecnologia de protocolo de confiança. O aparelho (1700) pode corresponder às formas de realização mostradas nas Figuras 10 a 12. Por exemplo, o aparelho (1700) pode ser implementado em um nó de rede de uma rede de protocolo de confiança. O aparelho (1700) inclui o seguinte: uma unidade de radiodifusão (1702), configurada para transmitir, por um nó de rede de uma rede de protocolo de confiança, uma mensagem de solicitação de estado para vários outros nós de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo; um receptor (1704) ou uma unidade receptora (1704), configurada para receber uma quantidade de mensagens de resposta de estado a partir da quantidade de outros nós de rede, em que cada uma da quantidade de mensagens de resposta de estado inclui um número de sequência; uma unidade de identificação (1706), configurada para identificar o número de sequência alvo com base no mesmo número de sequência em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade das mensagens de estado compreende um mesmo número de sequência; um transmissor (1708) ou uma unidade de transmissão (1708), configurada para enviar uma mensagem
Petição 870190068052, de 18/07/2019, pág. 174/212
79/89 solicitante à quantidade de outros nós de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da quantidade de outros nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da quantidade de outros nós de rede para obter um consenso entre a quantidade de outros nós de rede na transação alvo que possui o número de sequência alvo e a mensagem ECO inclui uma parte da transação alvo e uma assinatura de cada um da quantidade de outros nós de rede; o receptor (1704) ou a unidade receptora (1704), adicionalmente configurada para receber uma quantidade de mensagens ECO a partir da quantidade de outros nós de rede; uma unidade de determinação (1710), configurada para determinar uma quantidade de mensagens ECO válidas a partir da quantidade de mensagens ECO, em que cada uma da quantidade de mensagens ECO válidas inclui o número de sequência alvo; uma unidade de recuperação (1712), configurada para recuperar a transação alvo com o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado; e o transmissor (1708), ainda configurado para enviar uma mensagem para a quantidade de outros nós de rede, indicando que o nó de rede foi recuperado.
[0237] Em uma forma de realização opcional, a quantidade de nós de rede inclui um nó primário e um ou mais nós de cópia de segurança.
[0238] Em uma forma de realização opcional, o nó de rede é um nó primário ou um nó de cópia de segurança.
[0239] Em uma forma de realização opcional, a mensagem solicitante inclui o número de sequência alvo.
[0240] Em uma forma de realização opcional, o aparelho de recuperação (1700) inclui ainda o seguinte: uma unidade de verificação (1714), configurada para verificar, por cada um da quantidade de outros nós de rede
Petição 870190068052, de 18/07/2019, pág. 175/212
80/89 diferentes do nó de rede, a mensagem solicitante antes de enviar as mensagens ECO ao nó de rede.
[0241] Em uma forma de realização opcional, a unidade de verificação (1714), é ainda configurada para verificar se cada uma das mensagens ECO é válida, em que a verificação de se cada uma das mensagens ECO é válida inclui verificar se cada uma das mensagens ECO é válida usando uma árvore de Merkel.
[0242] Em uma forma de realização opcional, a verificação de se cada mensagem ECO é válida inclui ainda verificar se a assinatura na mensagem ECO é válida.
[0243] Em uma forma de realização opcional, cada uma das mensagens ECO inclui ainda pelo menos um de uma quantidade de blocos de código de apagamento (EC) associados à transação alvo, em que a quantidade de blocos de EC é gerada de acordo com um código EC utilizando a transação alvo.
[0244] Em uma forma de realização opcional, a recuperação da transação alvo com o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas compreende reconstruir a transação alvo utilizando um subconjunto da pluralidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
[0245] Em uma forma de realização opcional, a mensagem para a quantidade de outros nós de rede indicando que o nó de rede foi recuperado inclui um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de sequência alvo.
[0246] O sistema, aparelho, módulo ou unidade ilustrados nas formas de realização anteriores podem ser implementados usando um chip de computador ou uma entidade, ou podem ser implementados usando um produto com uma certa função. Um dispositivo de implementação típico é um
Petição 870190068052, de 18/07/2019, pág. 176/212
81/89 computador, e o computador pode ser um computador pessoal, um computador portátil, um telefone celular, um telefone com câmera, um telefone inteligente, um assistente digital pessoal, um reprodutor de mídia, um dispositivo de navegação, um dispositivo que recebe e envia e-mails, um console de jogos, um computador tablet, um dispositivo usável, ou qualquer combinação desses dispositivos.
[0247] Para um processo de implementação de funções e papéis de cada unidade no aparelho, podem ser feitas referências a um processo de implementação de etapas correspondentes no método anterior. Detalhes são omitidos aqui para simplificar.
[0248] Como uma forma de realização de aparelho corresponde basicamente a uma forma de realização de método, para partes relacionadas, referências podem ser feitas a descrições relacionadas na forma de realização do método. A forma de realização do aparelho descrita anteriormente é meramente um exemplo. As unidades descritas como partes separadas podem ou não estar fisicamente separadas, e as peças exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição, ou podem ser distribuídas em uma pluralidade de unidades de rede. Alguns ou todos os módulos podem ser selecionados com base nas demandas reais para alcançar os objetivos das soluções do presente relatório descritivo. Um técnico no assunto pode compreender e implementar as formas de realização do presente pedido de patente sem esforços criativos.
[0249] A Figura 17 é um diagrama esquemático que ilustra um módulo funcional interno e uma estrutura de um aparelho de recuperação (1700). Um corpo de execução, em essência, pode ser um dispositivo eletrônico, e o dispositivo eletrônico inclui o seguinte: pelo menos um processador; e uma memória configurada para armazenar uma instrução executável do pelo menos um processador.
Petição 870190068052, de 18/07/2019, pág. 177/212
82/89 [0250] O pelo menos um processador é configurado para transmitir, por um nó de rede de uma rede de protocolo de confiança, uma mensagem de solicitação de estado para vários outros nós de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo; receber uma quantidade de mensagens de resposta de estado a partir da quantidade de outros nós de rede, em que cada uma da quantidade de mensagens de resposta de estado inclui um número de sequência; identificar o número de sequência alvo com base no mesmo número de sequência em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade de mensagens de estado compreende um mesmo número de sequência; enviar uma mensagem solicitante à quantidade de outros nós de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da quantidade de outros nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da quantidade de outros nós de rede para alcançar um consenso entre a quantidade de outros nós de rede na transação alvo com o número de sequência alvo, e a mensagem ECO inclui uma parte da transação alvo e uma assinatura de cada um da quantidade de outros nós de rede; receber uma quantidade de mensagens ECO a partir da pluralidade de outros nós de rede; determinar uma quantidade de mensagens ECO válidas a partir da quantidade de mensagens ECO, em que cada uma da quantidade de mensagens ECO válidas inclui o número de sequência alvo; recuperar a transação alvo com o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado; e enviar uma mensagem para a quantidade de outros nós de rede indicando que o nó de rede foi recuperado.
Petição 870190068052, de 18/07/2019, pág. 178/212
83/89 [0251] Opcionalmente, a quantidade de nós de rede inclui um nó primário e um ou mais nós de cópia de segurança.
[0252] Opcionalmente, o nó de rede é um nó primário ou um nó de cópia de segurança.
[0253] Opcionalmente, a mensagem solicitante inclui o número de sequência alvo.
[0254] Opcionalmente, o pelo menos um processador é ainda configurado para verificar, por cada um da quantidade de outros nós de rede diferentes do nó de rede, a mensagem solicitante antes de enviar as mensagens ECO para o nó de rede.
[0255] Opcionalmente, o pelo menos um processador é ainda configurado para verificar se cada uma das mensagens ECO é válida, em que a verificação de se cada uma das mensagens ECO é válida inclui verificar se cada uma das mensagens ECO é válida usando uma árvore de Merkel.
[0256] Opcionalmente, a verificação de se cada mensagem ECO é válida inclui ainda verificar se a assinatura na mensagem ECO é válida.
[0257] Opcionalmente, cada uma das mensagens ECO inclui ainda pelo menos um dentre uma quantidade de blocos de código de apagamento (EC) associada à transação alvo, em que a quantidade de blocos de EC é gerada de acordo com um código EC usando a transação alvo.
[0258] Opcionalmente, a recuperação da transação alvo com o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas inclui a reconstrução da transação alvo usando um subconjunto da quantidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
[0259] Opcionalmente, a mensagem para a quantidade de outros nós de rede indicando que o nó de rede foi recuperado inclui um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de
Petição 870190068052, de 18/07/2019, pág. 179/212
84/89 sequência alvo.
[0260] As formas de realização da matéria-objeto e as ações e operações descritas neste relatório descritivo podem ser implementadas em circuitos eletrônicos digitais, em software ou firmware de computador tangivelmente incorporado, em hardware de computador, incluindo as estruturas reveladas neste relatório descritivo e seus equivalentes estruturais, ou em combinações de um ou mais deles. As formas de realização da matériaobjeto descrita neste relatório descritivo podem ser implementadas como um ou mais programas de computador, por exemplo, um ou mais módulos de instruções de programas de computador, codificados em um portador de programa de computador, para execução ou controle da operação de aparelho de processamento de dados. O portador pode ser um meio de armazenamento de computador não transitório tangível. Alternativamente, ou adicionalmente, o portador pode ser um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina que é gerado para codificar informação para transmissão para um aparelho receptor adequado para execução por um aparelho de processamento de dados. O meio de armazenamento de computador pode ser ou ser parte de um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória de acesso aleatório ou serial, ou uma combinação de um ou mais deles. Um meio de armazenamento de computador não é um sinal propagado.
[0261] O termo “aparelho de processamento de dados” abrange todos os tipos de aparelhos, dispositivos e máquinas para processamento de dados, incluindo, a título de exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O aparelho de processamento de dados pode incluir um circuito lógico de propósito especial, por exemplo, uma FPGA (matriz de portas programáveis em campo), um ASIC
Petição 870190068052, de 18/07/2019, pág. 180/212
85/89 (circuito integrado de aplicação específica), ou uma GPU (unidade de processamento gráfico). O aparelho também pode incluir, além do hardware, código que cria um ambiente de execução para programas de computador, por exemplo, código que constitui firmware do processador, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais deles.
[0262] Um programa de computador, que também pode ser referido ou descrito como um programa, software, um aplicativo de software, um aplicativo, um módulo, um módulo de software, um mecanismo, um script ou código pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, linguagens declarativas ou processuais, e pode ser implementado de qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, mecanismo, sub-rotina ou outra unidade adequada para execução em um ambiente de computação, cujo ambiente pode incluir um ou mais computadores interconectados por uma rede de comunicação de dados em um ou mais locais.
[0263] Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados, por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação, em um único arquivo dedicado ao programa em questão ou em vários arquivos coordenados, por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou partes do código.
[0264] Os processos e os fluxos lógicos descritos neste relatório descritivo podem ser realizados por um ou mais computadores executando um ou mais programas de computador para realizar funções operando em dados de entrada e gerando dados de saída. Os processos e fluxos lógicos também podem ser executados por circuitos lógicos de propósito especial, por exemplo,
Petição 870190068052, de 18/07/2019, pág. 181/212
86/89 uma FPGA, um ASIC ou uma GPU, ou por uma combinação de circuitos lógicos de propósito especial e um ou mais computadores programados.
[0265] Computadores adequados para a execução de um programa de computador podem ser baseados em microprocessadores de propósito geral ou especial ou ambos ou qualquer outro tipo de unidade de processamento central. Geralmente, uma unidade de processamento central receberá instruções e dados de uma memória somente de leitura ou de uma memória de acesso aleatório ou ambas. Os elementos de um computador podem incluir uma unidade de processamento central para executar instruções, e um ou mais dispositivos de memória para armazenar instruções e dados. A unidade de processamento central e a memória podem ser complementadas por, ou incorporadas em circuitos lógicos de propósito especial.
[0266] Geralmente, um computador será acoplado a pelo menos um meio de armazenamento legível por computador não transitório (também chamado de memória legível por computador). O meio de armazenamento acoplado ao computador pode ser um componente interno do computador (por exemplo, um disco rígido integrado) ou um componente externo (por exemplo, um disco rígido de barramento serial universal (USB) ou um sistema de armazenamento acessado através de uma rede). Exemplos de mídia de armazenamento podem incluir, por exemplo, discos magnéticos, magnetoópticos ou ópticos, unidades de estado sólido, recursos de armazenamento de rede, tais como sistemas de armazenamento em nuvem ou outros tipos de mídia de armazenamento. No entanto, um computador não precisa ter esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone celular, um assistente digital pessoal (PDA), um tocador de áudio ou vídeo móvel, um console de jogos, um receptor de sistema de posicionamento global (GPS) ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial
Petição 870190068052, de 18/07/2019, pág. 182/212
87/89 universal (USB), para citar apenas alguns [0267] Para proporcionar a interação com um usuário, formas de realização da matéria objeto descrita neste relatório descritivo podem ser implementadas em, ou configuradas para se comunicar com um computador possuindo um dispositivo de exibição, por exemplo, um monitor LCD (visor de cristal líquido), para exibir informações ao usuário e um dispositivo de entrada, pelo qual o usuário pode fornecer dados de entrada para o computador, por exemplo, um teclado e um dispositivo indicador, por exemplo, um mouse, uma esfera rolante, ou touchpad. Outros tipos de dispositivos também podem ser usados para fornecer interação com um usuário; por exemplo, a retroinformação fornecida ao usuário pode ser qualquer forma de retroinformação sensorial, por exemplo, retroinformação visual, retroinformação auditiva ou retroinformação tátil; e a entrada de dados do usuário pode ser recebida de qualquer forma, incluindo entrada de dados acústica, de fala ou tátil. Além disso, um computador pode interagir com um usuário enviando documentos e recebendo documentos a partir de um dispositivo que é usado pelo usuário; por exemplo, enviando páginas da web para um navegador da web em um dispositivo de um usuário em resposta a solicitações recebidas do navegador da web ou interagindo com um aplicativo executado em um dispositivo de usuário, por exemplo, um telefone inteligente ou tablet eletrônico. Além disso, um computador pode interagir com um usuário enviando mensagens de texto ou outras formas de mensagem para um dispositivo pessoal, por exemplo, um telefone inteligente que está executando um aplicativo de mensagens e recebendo mensagens responsivas do usuário em troca.
[0268] Este relatório descritivo usa o termo “configurado para” em conexão com sistemas, aparelhos e componentes de programas de computador. Para um sistema de um ou mais computadores seja configurado
Petição 870190068052, de 18/07/2019, pág. 183/212
88/89 para executar operações ou ações particulares, significa que o sistema instalou nele software, firmware, hardware ou uma combinação deles que, em operação, fazem com que o sistema execute as operações ou ações. Para um ou mais programas de computador a serem configurados para executar operações ou ações particulares, significa que o um ou mais programas incluem instruções que, quando executadas pelo aparelho de processamento de dados, fazem com que o aparelho execute as operações ou ações. Para circuitos lógicos de propósito especial a serem configurados para executar operações ou ações particulares, significa que o circuito possui lógica eletrônica que realiza as operações ou ações.
[0269] Embora este relatório descritivo contenha muitos detalhes específicos de implementação, estes não devem ser interpretados como limitações no escopo do que está sendo reivindicado, o que é definido pelas próprias reivindicações, mas sim como descrições de características que podem ser específicas para formas de realização particulares. Certas características que são descritas neste relatório descritivo no contexto de formas de realização separadas também podem ser implementadas, em combinação em uma única forma de realização. Por outro lado, várias características que são descritas no contexto de uma única forma de realização também podem ser implementadas em várias formas de realização, separadamente ou em qualquer sub-combinação adequada. Além disso, embora as características possam ser descritas anteriormente como agindo em certas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada pode, em alguns casos, ser removida da combinação, e a reivindicação pode ser direcionada a uma sub-combinação ou variação de uma sub-combinação.
[0270] Da mesma forma, enquanto as operações são representadas nas figuras e recitadas nas reivindicações em uma ordem
Petição 870190068052, de 18/07/2019, pág. 184/212
89/89 particular, isso não deve ser entendido como exigindo que tais operações sejam executadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam executadas, para alcançar resultados desejáveis. Em determinadas circunstâncias, a multitarefa e o processamento paralelo podem ser vantajosos. Além disso, a separação de vários módulos e componentes do sistema nas formas de realização descritas acima não deve ser entendida como exigindo tal separação em todas as formas de realização, e deve ser entendido que os componentes e sistemas do programa descritos geralmente podem ser integrados em um único produto de software ou empacotados em vários produtos de software.
[0271] As formas de realização particulares da matéria objeto foram descritas. Outras formas de realização estão dentro do escopo das seguintes reivindicações. Por exemplo, as ações citadas nas reivindicações podem ser realizadas em uma ordem diferente e ainda alcançar resultados desejáveis. Como um exemplo, os processos representados nas figuras anexas não requerem necessariamente a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejados. Em alguns casos, a multitarefa e o processamento paralelo podem ser vantajosos.

Claims (30)

1. MÉTODO IMPLEMENTADO POR COMPUTADOR para executar um processo de recuperação de um nó de rede de uma rede de protocolo de confiança (blockchain), caracterizado pelo fato de que o método compreende:
transmitir, por um nó de rede de uma rede de protocolo de confiança, uma mensagem de solicitação de estado para uma pluralidade de outros nós de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo;
receber, pelo nó de rede, uma pluralidade de mensagens de resposta de estado a partir da pluralidade de outros nós de rede, em que cada uma da pluralidade de mensagens de resposta de estado compreende um número de sequência;
em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade das mensagens de estado compreende um mesmo número de sequência, identificar, pelo nó de rede, o número de sequência alvo com base no mesmo número de sequência;
enviar, pelo nó de rede, uma mensagem solicitante para a pluralidade de outros nós de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da pluralidade de outros nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da pluralidade de outros nós de rede para obter um consenso entre a pluralidade de outros nós de rede na transação alvo tendo o número de sequência alvo, e a mensagem ECO compreende uma parte da transação alvo e uma assinatura de cada um da pluralidade de outros nós de rede;
receber, pelo nó de rede, uma pluralidade de mensagens ECO da pluralidade de outros nós de rede;
Petição 870190068052, de 18/07/2019, pág. 186/212
2/9 determinar, através do nó de rede, uma quantidade de mensagens ECO válidas a partir da pluralidade de mensagens ECO, em que cada uma da quantidade de mensagens ECO válidas compreende o número de sequência alvo;
em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado, recuperar, pelo nó de rede, a transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas; e enviar, pelo nó de rede, uma mensagem para a pluralidade de outros nós de rede indicando que o nó de rede foi recuperado.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de nós de rede compreende um nó primário e um ou mais nós de cópia de segurança.
3. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o nó de rede é um nó primário ou um nó de cópia de segurança.
4. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a mensagem solicitante compreende o número de sequência alvo.
5. MÉTODO, de acordo com a reivindicação 4, caracterizado pelo fato de que o método compreende ainda:
verificar, por cada um da pluralidade de outros nós de rede diferentes do nó de rede, a mensagem solicitante antes de enviar as mensagens ECO para o nó de rede.
6. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o método compreende ainda:
verificar, pelo nó de rede, se cada uma das mensagens ECO é válida, em que a verificação de se cada uma das mensagens ECO é válida
Petição 870190068052, de 18/07/2019, pág. 187/212
3/9 compreende verificar se cada uma das mensagens ECO é válida usando uma árvore de Merkel.
7. MÉTODO, de acordo com a reivindicação 6, caracterizado pelo fato de que a verificação de se cada uma das mensagens ECO é válida compreende ainda verificar se a assinatura na mensagem ECO é válida.
8. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que cada uma das mensagens ECO compreende ainda pelo menos um dentre uma pluralidade de blocos de código de apagamento (EC) associados à transação alvo, em que a pluralidade de blocos de EC é gerada de acordo com um código EC usando a transação alvo.
9. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a recuperação da transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas compreende reconstruir a transação alvo usando um subconjunto da pluralidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
10. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a mensagem para a pluralidade de outros nós de rede, indicando que o nó de rede foi recuperado, compreende um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de sequência alvo.
11. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, caracterizado pelo fato de que é acoplado a um ou mais computadores e configurado com instruções executáveis pelo um ou mais computadores para:
transmitir, por um nó de rede de uma rede de protocolo de confiança, uma mensagem de solicitação de estado para uma pluralidade de outros nós de rede da rede de protocolo de confiança, em que o nó de rede
Petição 870190068052, de 18/07/2019, pág. 188/212
4/9 deve recuperar uma transação alvo de um número de sequência alvo;
receber, pelo nó de rede, uma pluralidade de mensagens de resposta de estado a partir da pluralidade de outros nós de rede, em que cada uma da pluralidade de mensagens de resposta de estado compreende um número de sequência;
em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade das mensagens de estado compreende um mesmo número de sequência, identificar, pelo nó de rede, o número de sequência alvo com base no mesmo número de sequência;
enviar, através do nó de rede, uma mensagem solicitante para a pluralidade de outros nós de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da pluralidade de outros nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da pluralidade de outros nós de rede para obter um consenso entre a pluralidade de outros nós de rede na transação alvo possuindo o número de sequência alvo, e a mensagem ECO compreende uma parte da transação alvo e uma assinatura de cada um da pluralidade de outros nós de rede;
receber, pelo nó de rede, uma pluralidade de mensagens ECO a partir da pluralidade de outros nós de rede;
determinar, através do nó de rede, uma quantidade de mensagens ECO válidas a partir da pluralidade de mensagens ECO, em que cada uma da quantidade de mensagens ECO válidas compreende o número de sequência alvo;
em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado, recuperar, pelo nó de rede, a transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas; e
Petição 870190068052, de 18/07/2019, pág. 189/212
5/9 enviar, pelo nó de rede, uma mensagem para a pluralidade de outros nós de rede indicando que o nó de rede foi recuperado.
12. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que a pluralidade de nós de rede compreende um nó primário e um ou mais nós de cópia de segurança.
13. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que o nó de rede é um nó primário ou um nó de cópia de segurança.
14. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que a mensagem solicitante compreende o número de sequência alvo.
15. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 14, caracterizado pelo fato de que é ainda configurado com instruções executáveis pelo um ou mais computadores para:
verificar, por cada um da pluralidade de outros nós de rede diferentes do nó de rede, a mensagem solicitante antes de enviar as mensagens ECO para o nó de rede.
16. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que é ainda configurado com instruções executáveis pelo um ou mais computadores para:
verificar, pelo nó de rede, se cada uma das mensagens ECO é válida, em que a verificação de se cada uma das mensagens ECO é válida compreende verificar se cada uma das mensagens ECO é válida usando uma
Petição 870190068052, de 18/07/2019, pág. 190/212
6/9 árvore de Merkel.
17. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 16, caracterizado pelo fato de que a verificação de se cada uma das mensagens ECO é válida compreende ainda verificar se a assinatura na mensagem ECO é válida.
18. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que cada uma das mensagens ECO compreende ainda pelo menos um dentre uma pluralidade de blocos de código de apagamento (EC) associados à transação alvo, em que a pluralidade de blocos de EC é gerada de acordo com um código EC usando a transação alvo.
19. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 11, caracterizado pelo fato de que a recuperação da transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas compreende reconstruir a transação alvo usando um subconjunto da pluralidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
20. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 1, caracterizado pelo fato de que a mensagem para a pluralidade de outros nós de rede, indicando que o nó de rede foi recuperado, compreende um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de sequência alvo.
21. SISTEMA, caracterizado pelo fato de que compreende: um ou mais computadores; e uma ou mais memórias legíveis por computador acopladas ao um
Petição 870190068052, de 18/07/2019, pág. 191/212
7/9 ou mais computadores e configuradas com instruções executáveis pelo um ou mais computadores para:
transmitir, por um nó de rede de uma rede de protocolo de confiança, uma mensagem de solicitação de estado para uma pluralidade de outros nós de rede da rede de protocolo de confiança, em que o nó de rede deve recuperar uma transação alvo de um número de sequência alvo;
receber, pelo nó de rede, uma pluralidade de mensagens de resposta de estado a partir da pluralidade de outros nós de rede, em que cada uma da pluralidade de mensagens de resposta de estado compreende um número de sequência;
em resposta à determinação de que uma quantidade de mensagens de resposta de estado excede um limiar predeterminado, em que cada uma da quantidade das mensagens de estado compreende um mesmo número de sequência, identificar, pelo nó de rede, o número de sequência alvo com base no mesmo número de sequência;
enviar, através do nó de rede, uma mensagem solicitante para a pluralidade de outros nós de rede, em que a mensagem solicitante solicita uma mensagem ECO de cada um da pluralidade de outros nós de rede, em que a mensagem ECO é uma mensagem transmitida por cada um da pluralidade de outros nós de rede para obter um consenso entre a pluralidade de outros nós de rede na transação alvo possuindo o número de sequência alvo, e a mensagem ECO compreende uma parte da transação alvo e uma assinatura de cada um da pluralidade de outros nós de rede;
receber, pelo nó de rede, uma pluralidade de mensagens ECO a partir da pluralidade de outros nós de rede;
determinar, através do nó de rede, uma quantidade de mensagens ECO válidas a partir da pluralidade de mensagens ECO, em que cada uma da quantidade de mensagens ECO válidas compreende o número de
Petição 870190068052, de 18/07/2019, pág. 192/212
8/9 sequência alvo;
em resposta à determinação de que a quantidade de mensagens ECO válidas excede um limiar predeterminado, recuperar, pelo nó de rede, a transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas; e enviar, pelo nó de rede, uma mensagem para a pluralidade de outros nós de rede indicando que o nó de rede foi recuperado.
22. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que a pluralidade de nós de rede compreende um nó primário e um ou mais nós de cópia de segurança.
23. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que o nó de rede é um nó primário ou um nó de cópia de segurança.
24. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que a mensagem solicitante compreende o número de sequência alvo.
25. SISTEMA, de acordo com a reivindicação 24, caracterizado pelo fato de que as memórias de computador são ainda configuradas com instruções executáveis pelo um ou mais computadores para:
verificar, por cada um da pluralidade de outros nós de rede diferentes do nó de rede, a mensagem solicitante antes de enviar as mensagens ECO para o nó de rede.
26. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que as memórias de computador são ainda configuradas com instruções executáveis pelo um ou mais computadores para:
verificar, pelo nó de rede, se cada uma das mensagens ECO é válida, em que a verificação de se cada uma das mensagens ECO é válida compreende verificar se cada uma das mensagens ECO é válida usando uma
Petição 870190068052, de 18/07/2019, pág. 193/212
9/9 árvore de Merkel.
27. SISTEMA, de acordo com a reivindicação 26, caracterizado pelo fato de que a verificação de se cada uma das mensagens ECO é válida compreende ainda verificar se a assinatura na mensagem ECO é válida.
28. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que cada uma das mensagens ECO compreende ainda pelo menos um dentre uma pluralidade de blocos de código de apagamento (EC) associados à transação alvo, em que a pluralidade de blocos de EC é gerada de acordo com um código EC usando a transação alvo.
29. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que a recuperação da transação alvo possuindo o mesmo número de sequência no nó de rede com base na quantidade de mensagens ECO válidas compreende reconstruir a transação alvo utilizando um subconjunto da pluralidade de blocos de EC que estão na quantidade de mensagens ECO válidas.
30. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo fato de que a mensagem para a pluralidade de outros nós de rede, indicando que o nó de rede foi recuperado, compreende um conjunto de assinaturas na quantidade de mensagens ECO válidas e o número de sequência alvo.
BR112019014815-9A 2018-12-13 2018-12-13 Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema BR112019014815A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/120870 WO2019072295A2 (en) 2018-12-13 2018-12-13 EXECUTING A RECOVERY PROCESS FOR A NETWORK NODE IN A DISTRIBUTED SYSTEM

Publications (1)

Publication Number Publication Date
BR112019014815A2 true BR112019014815A2 (pt) 2020-02-27

Family

ID=66100021

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019014815-9A BR112019014815A2 (pt) 2018-12-13 2018-12-13 Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema

Country Status (15)

Country Link
US (1) US10649859B2 (pt)
EP (2) EP3560142B1 (pt)
JP (1) JP6732321B2 (pt)
KR (1) KR102157452B1 (pt)
CN (1) CN110178340B (pt)
AU (1) AU2018348335B2 (pt)
BR (1) BR112019014815A2 (pt)
CA (1) CA3050560C (pt)
ES (1) ES2818597T3 (pt)
MX (1) MX2019008741A (pt)
PH (1) PH12019501710B1 (pt)
PL (1) PL3560142T3 (pt)
RU (1) RU2718411C1 (pt)
SG (1) SG11201906535WA (pt)
WO (1) WO2019072295A2 (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102134549B1 (ko) 2018-12-13 2020-07-27 알리바바 그룹 홀딩 리미티드 분산 시스템에서 프라이머리 노드의 체인지 수행
SG11201906834SA (en) 2018-12-13 2019-08-27 Alibaba Group Holding Ltd Achieving consensus among network nodes in a distributed system
US11204933B2 (en) * 2019-05-23 2021-12-21 Advanced New Technologies Co., Ltd. Data manipulation record storage method, system, apparatus, and device
SG11202002912XA (en) 2019-08-01 2021-03-30 Advanced New Technologies Co Ltd Shared blockchain data storage based on error correction code
WO2021017008A1 (en) 2019-08-01 2021-02-04 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
EP3923546B1 (en) 2019-08-01 2022-05-18 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
CN112579343B (zh) * 2019-09-27 2024-05-28 阿里巴巴集团控股有限公司 区块链节点数据的恢复方法及装置
CN112584364B (zh) * 2019-09-30 2024-03-08 阿里巴巴集团控股有限公司 蓝牙网络及其通信方法、设备和存储介质
US20220158892A1 (en) * 2019-10-14 2022-05-19 NEC Laboratories Europe GmbH Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation
CN110955721B (zh) * 2019-10-23 2022-12-06 金蝶软件(中国)有限公司 区块链节点状态维护方法、装置、计算机设备和存储介质
CN111026770B (zh) * 2019-10-29 2023-08-04 京东科技信息技术有限公司 区块链节点的账本处理方法、装置、服务器及存储介质
US11082207B2 (en) * 2019-11-13 2021-08-03 First Genesis, Inc. Blockchain platform as a service (BPaaS)
CN111274317A (zh) * 2020-01-07 2020-06-12 书生星际(北京)科技有限公司 多节点数据同步的方法和装置,以及计算机设备
CN111510317B (zh) * 2020-03-06 2022-08-26 杜晓楠 弱化dbft中连续多个节点故障导致的延迟的方法、计算机可读存储介质和dbft网络
WO2021175036A1 (zh) * 2020-03-06 2021-09-10 杜晓楠 在p2p网络中避免客户端节点长时间无效占用连接资源和引导客户端节点合理选择节点带宽
CN111355810B (zh) * 2020-03-17 2022-05-10 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
CN113301002B (zh) * 2020-04-24 2023-05-09 阿里巴巴集团控股有限公司 一种信息处理方法、装置、电子设备以及存储介质
CN111784319B (zh) * 2020-07-02 2021-07-27 财智云享(杭州)数据信息技术有限公司 基于区块链支付网络的通信数据处理方法及大数据服务器
CN111526217B (zh) 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 一种区块链中的共识方法和***
CN111526218B (zh) 2020-07-03 2020-09-22 支付宝(杭州)信息技术有限公司 联盟链中的共识方法和***
CN112422621A (zh) * 2020-09-28 2021-02-26 国网信息通信产业集团有限公司北京分公司 基于pbft区块链技术的多站融合电力数据共识方法和装置
CN113905059B (zh) * 2021-06-03 2022-07-01 电子科技大学 一种车联网的轻量型区块链的区块存储方法及模型
CN115511486A (zh) * 2021-06-07 2022-12-23 腾讯科技(深圳)有限公司 交易处理方法、装置、介质及电子设备
CN113518005B (zh) * 2021-06-22 2021-11-16 腾讯科技(深圳)有限公司 一种区块共识方法、装置、设备及存储介质
CN113630258B (zh) * 2021-10-09 2022-01-11 支付宝(杭州)信息技术有限公司 一种共识方法、区块链***和共识节点
CN113645044B (zh) * 2021-10-09 2022-01-11 支付宝(杭州)信息技术有限公司 一种共识方法、区块链***和共识节点
CN114020357B (zh) * 2021-11-04 2024-05-03 湖北美和易思教育科技有限公司 namenode节点的启动方法、装置、***及介质
CN114157550B (zh) * 2021-12-06 2023-01-31 东北大学 一种基于无冲突事务合并的联盟区块链***
CN115473908B (zh) * 2022-11-03 2023-04-28 山东区块链研究院 一种区块链节点故障恢复方法及区块链***

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309569A (en) 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
DE3381526D1 (de) 1983-02-09 1990-06-07 Ibm Verfahren zum erhalten der einigung mehrfacher rechner zum vermeiden von fehlern.
US7249259B1 (en) * 1999-09-07 2007-07-24 Certicom Corp. Hybrid signature scheme
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US6931431B2 (en) * 2001-01-13 2005-08-16 International Business Machines Corporation Agreement and atomic broadcast in asynchronous networks
US7502360B2 (en) 2005-03-04 2009-03-10 Itt Manufacturing Enterprises, Inc. Method and apparatus for dynamic neighbor discovery within wireless networks using time division multiple access (TDMA)
US8819102B2 (en) * 2007-07-03 2014-08-26 Cisco Technology, Inc. Method and system for managing message communications
JP5427574B2 (ja) * 2009-12-02 2014-02-26 株式会社日立製作所 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
CN107104894B (zh) 2011-10-25 2021-02-26 Nicira股份有限公司 网络控制***中的控制器
US9471622B2 (en) * 2012-04-30 2016-10-18 International Business Machines Corporation SCM-conscious transactional key-value store
US9495260B2 (en) 2014-07-01 2016-11-15 Sas Institute Inc. Fault tolerant communications
US10459805B2 (en) * 2015-04-03 2019-10-29 Oath Inc. Method and system for data recovery in a data system
US10785033B2 (en) 2015-09-04 2020-09-22 Nec Corporation Method for storing an object on a plurality of storage nodes
WO2017136527A1 (en) 2016-02-05 2017-08-10 Manifold Technology, Inc. Blockchain-enhanced database
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
EP3281115B1 (en) 2016-10-04 2019-06-19 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
US10360191B2 (en) 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
US10158527B2 (en) 2016-10-28 2018-12-18 International Business Machines Corporation Changing an existing blockchain trust configuration
US10554746B2 (en) 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10311230B2 (en) 2016-12-24 2019-06-04 Cisco Technology, Inc. Anomaly detection in distributed ledger systems
CN106529951A (zh) 2016-12-30 2017-03-22 杭州云象网络技术有限公司 一种联盟链网络下采用异步方式的节点共识验证方法
RU2639015C1 (ru) * 2017-01-26 2017-12-19 Игорь Сан-Сенович Дю Способ контроля подлинности и качества продукции в процессе производства и реализации
CN107360206B (zh) 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及***
US10503614B2 (en) 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
CN107423152B (zh) * 2017-04-24 2019-05-21 杭州趣链科技有限公司 一种区块链共识节点自动恢复方法
EP3632037A4 (en) * 2017-05-22 2020-04-08 Visa International Service Association IMPROVED VERIFICATION SPEED NETWORK COMPRISING INVIOLABLE DATA
CN112804349B (zh) 2017-07-14 2023-07-04 创新先进技术有限公司 区块链共识网络中处理共识请求的方法、装置和电子设备
US11023608B2 (en) 2017-09-15 2021-06-01 Identify3D, Inc. System and method for data management and security for digital manufacturing
US11165862B2 (en) * 2017-10-24 2021-11-02 0Chain, LLC Systems and methods of blockchain platform for distributed applications
CN108306760A (zh) 2017-12-28 2018-07-20 ***股份有限公司 用于在分布式***中使管理能力自恢复的方法和装置
CN108365993B (zh) 2018-03-09 2020-04-28 深圳前海微众银行股份有限公司 区块链节点动态变更方法、***和计算机可读存储介质
CN108616596B (zh) 2018-05-09 2020-12-25 南京邮电大学 基于动态授权和网络环境感知的区块链自适应共识方法
CN108768749B (zh) * 2018-06-21 2021-03-30 佛山科学技术学院 一种基于区块链的节点隔离自恢复方法及装置
SG11201906834SA (en) 2018-12-13 2019-08-27 Alibaba Group Holding Ltd Achieving consensus among network nodes in a distributed system
KR102134549B1 (ko) 2018-12-13 2020-07-27 알리바바 그룹 홀딩 리미티드 분산 시스템에서 프라이머리 노드의 체인지 수행

Also Published As

Publication number Publication date
KR102157452B1 (ko) 2020-09-18
JP2020516105A (ja) 2020-05-28
EP3560142B1 (en) 2020-09-09
AU2018348335A1 (en) 2020-07-02
MX2019008741A (es) 2019-09-09
PL3560142T3 (pl) 2021-01-11
US10649859B2 (en) 2020-05-12
RU2718411C1 (ru) 2020-04-02
KR20200074911A (ko) 2020-06-25
CA3050560C (en) 2020-06-30
EP3560142A4 (en) 2020-03-25
WO2019072295A2 (en) 2019-04-18
PH12019501710A1 (en) 2020-03-09
AU2018348335B2 (en) 2020-07-30
JP6732321B2 (ja) 2020-07-29
EP3748906B1 (en) 2021-12-01
CN110178340A (zh) 2019-08-27
SG11201906535WA (en) 2019-08-27
US20190286531A1 (en) 2019-09-19
CA3050560A1 (en) 2019-04-18
PH12019501710B1 (en) 2020-03-09
CN110178340B (zh) 2021-05-18
WO2019072295A3 (en) 2019-10-10
EP3560142A2 (en) 2019-10-30
ES2818597T3 (es) 2021-04-13
EP3748906A1 (en) 2020-12-09

Similar Documents

Publication Publication Date Title
BR112019014815A2 (pt) Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema
BR112019015208A2 (pt) métodos implementado por computador, meios de armazenamento legíveis por computador não transitórios e sistemas
US10791107B2 (en) Performing a change of primary node in a distributed system

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY)

B25A Requested transfer of rights approved

Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY)

B350 Update of information on the portal [chapter 15.35 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 5A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2753 DE 10-10-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.