BR112019007995A2 - “método implementado por computador, meio legível por computador e sistema para implementar um método - Google Patents

“método implementado por computador, meio legível por computador e sistema para implementar um método Download PDF

Info

Publication number
BR112019007995A2
BR112019007995A2 BR112019007995-5A BR112019007995A BR112019007995A2 BR 112019007995 A2 BR112019007995 A2 BR 112019007995A2 BR 112019007995 A BR112019007995 A BR 112019007995A BR 112019007995 A2 BR112019007995 A2 BR 112019007995A2
Authority
BR
Brazil
Prior art keywords
use number
number value
transaction
application
fact
Prior art date
Application number
BR112019007995-5A
Other languages
English (en)
Inventor
Shen Chao
Shao Kailai
Lu Xuming
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of BR112019007995A2 publication Critical patent/BR112019007995A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

as implementações da presente invenção incluem a inicialização de uma tabela de número de uso único compreendendo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenando um respectivo valor de número de uso único; receber uma solicitação de um valor de número de uso único de um aplicativo e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único; receber um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado; e em resposta a uma transação usando o valor de número de uso único sendo um dentre bem sucedido e falho, executar um dos seguintes: liberar o valor de número de uso único dentro do slot de número de uso único e definir o estado como desocupado, se a transação for bem sucedida e definir o estado como desocupado, se a transação falhou.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO LEGÍVEL POR COMPUTADOR E SISTEMA PARA IMPLEMENTAR UM MÉTODO” Campo da Invenção [001] A presente invenção se refere a métodos implementados por computador para mitigar falhas de transação simultânea em redes de protocolo de confiança.
Antecedentes da Invenção [002] Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados redes de consenso e/ ou redes de protocolo de confiança (blockchain), permitem que as entidades participantes armazenem dados de forma segura e imutável. DLSs são comumente referidos como redes de protocolo de confiança sem fazer referência a qualquer caso de uso particular (por exemplo, criptomoedas). Exemplos de tipos 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 participam no 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.
[003] Nas redes de protocolo de confiança, um protocolo de consenso é executado para adicionar transações aos blocos de um protocolo de confiança. O protocolo de consenso pode operar com base em números de uso único (nonce) (por exemplo, números arbitrários que são usados apenas uma vez), cada nó no protocolo de confiança consumindo um número de uso único. Por exemplo, para cada transação a ser adicionada, cada nó consome
Petição 870190056700, de 19/06/2019, pág. 9/43
2/22 um número de uso único em um esforço para adicionar a transação a um bloco no protocolo de confiança. Na maioria dos casos, as transações podem ser simultâneas, o que pode resultar no mesmo número de uso único sendo usado por vários nós. Consequentemente, uma ou mais das transações simultâneas podem falhar.
Descrição da Invenção [004] Realizações da presente invenção incluem métodos implementados por computador para mitigar falhas de transação simultânea em redes de protocolo de confiança. Mais particularmente, realizações da presente invenção são dirigidas a uma tabela de número de uso único com uma pluralidade de números de uso único pré-populados para evitar a colisão de número de uso único no processamento de transações concomitantes em redes de protocolo de confiança.
[005] Em algumas realizações, as ações incluem a inicialização de uma tabela de número de uso único compreendendo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenando um respectivo valor de número de uso único; receber uma solicitação de um valor de número de uso único de um aplicativo e, em resposta, solicitar um valor de número de uso único da tabela número de uso único; receber um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado; e em resposta a uma transação usando o valor de número de uso único sendo um dentre sucesso e falha, executar um dos seguintes: liberar o valor de número de uso único dentro do slot de número de uso único e definir o estado como desocupado, se a transação for bem sucedida e definir o estado como desocupado, se a transação falhou. Outras realizações incluem sistemas, aparelhos, e programas
Petição 870190056700, de 19/06/2019, pág. 10/43
3/22 de computador correspondentes, configurados para executar as ações dos métodos, codificados em dispositivos de armazenamento em computador.
[006] Essas e outras realizações podem cada uma incluir, opcionalmente, um ou mais dos seguintes recursos: liberar o valor de número de uso único dentro do slot de número de uso único, incluindo armazenar um valor de número de uso único incrementado no slot de número de uso único; receber um segundo pedido para um valor de número de uso único a partir do aplicativo, e, em resposta, solicitar um valor de número de uso único a partir da tabela de número de uso único, e determinar que um estado de cada slot de número de uso único na tabela de número de uso único está ocupada, e em resposta, transmitir uma indicação do aplicativo de que todos os slots de número de uso único estão ocupados; a tabela de número de uso único é armazenada em um banco de dados e uma ponte entre o aplicativo e o banco de dados recebe solicitações de valores de número de uso único e fornece seletivamente valores de número de uso único para o aplicativo; o aplicativo determina se a transação usando o valor de número de uso único é uma dentre bem-sucedida e falha com base em uma ou mais mensagens recebidas pelo aplicativo da rede de protocolo de confiança; e um estado da transação é periodicamente acionado para determinar se um evento de tempo limite ocorreu.
[007] A presente invenção também fornece um ou mais meios de armazenamento legível por computador acoplado a um ou mais processadores e tendo instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazer com que os um ou mais processadores execute as operações de acordo com realizações dos métodos aqui fornecidos.
[008] A presente invenção 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
Petição 870190056700, de 19/06/2019, pág. 11/43
4/22 acoplado a um ou mais processadores com instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazem com que um ou mais processadores executem operações de acordo com realizações dos métodos aqui fornecidos.
[009] Entende-se que os métodos de acordo com a presente invenção podem incluir qualquer combinação das realizações e características aqui descritas. Isto é, os métodos de acordo com a presente invenção não estão limitados às combinações de realizações e características especificamente descritos aqui, mas também incluem qualquer combinação das realizações e características fornecidos.
[0010] Os detalhes de uma ou mais realizações da presente invenção são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens da presente invenção serão evidentes a partir da descrição e desenhos, e das reivindicações.
Breve Descrição dos Desenhos [0011] A Figura 1 ilustra um exemplo de ambiente que pode ser usado para executar realizações da presente invenção.
[0012] A Figura 2 ilustra um exemplo de arquitetura conceituai de acordo com realizações da presente invenção.
[0013] A Figura 3 representa um exemplo de fluxo de sinal para inicializar uma tabela de número de uso único de acordo com realizações da presente divulgação.
[0014] A Figura 4 ilustra um fluxo de sinal exemplificative para buscar, liberar, e redefinir valores de número de uso único a partir da tabela de número de uso único, em conformidade com as realizações da presente invenção.
[0015] A Figura 5 representa um exemplo de fluxo de sinal para atualizar os valores de número de uso único disponíveis na tabela de número
Petição 870190056700, de 19/06/2019, pág. 12/43
5/22 de uso único de acordo com realizações da presente invenção.
[0016] A Figura 6 ilustra um exemplo de processo de manutenção de uma tabela de número de uso único que pode ser executada de acordo com realizações da presente invenção.
[0017] Os símbolos de referência semelhantes nos vários desenhos indicam elementos semelhantes.
Descrição de Realizações da Invenção [0018] As realizações da presente divulgação incluem métodos implementados por computador para mitigar falhas de transações concomitantes em redes de protocolo de confiança. Mais particularmente, realizações da presente invenção dirigem-se a uma tabela de número de uso único com uma pluralidade de números de uso único pré-populados para evitar a colisão de número de uso único no processamento de transações concomitantes em redes de protocolo de confiança. Em algumas realizações, as ações incluem a inicialização de uma tabela de número de uso único incluindo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenar um respectivo valor de número de uso único, receber uma solicitação de um valor de número de uso único de um aplicativo e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único, receber um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único a ser definido como ocupado, e em resposta a uma transação usando o valor de número de uso único sendo uma dentre bem sucedida e falha, a execução de um dos seguintes: liberar o número de uso único dentro do slot de número de uso único e definindo o estado como desocupado, se a transação for bem-sucedida e definindo o estado como desocupado, se a transação falhar.
Petição 870190056700, de 19/06/2019, pág. 13/43
6/22 [0019] Para fornecer um contexto adicional para realizações da presente invenção, e como introduzida acima, sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, constituídas por nós peer-to-peer), e redes de protocolo de confiança, permite que as entidades participantes conduzam transações de forma segura e imutável e armazenem dados. Embora o termo protocolo de confiança seja geralmente associado à rede de criptomoeda do Bitcoin, o protocolo de confiança é aqui utilizado para referir-se geralmente a um DLS sem referência a qualquer caso de uso particular. Como introduzido 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.
[0020] 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, até mesmo milhões de entidades podem cooperar uma rede de protocolo de confiança pública, cada uma das quais opera 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 de ser válido, e adicionado ao protocolo de confiança (contabilidade distribuída) da rede de protocolo de confiança. Um exemplo de rede de protocolo de confiança pública inclui a rede de Bitcoin, que é uma rede de pagamento peer-to-peer. A rede de Bitcoin utiliza uma contabilidade distribuída, conhecida como protocolo de confiança. Como observado acima, o termo protocolo de confiança, no entanto, é usado para se referir geralmente a contabilidades distribuídas sem referência particular à rede de Bitcoin.
[0021] Em geral, uma rede de protocolo de confiança pública
Petição 870190056700, de 19/06/2019, pág. 14/43
7/22 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 no consenso (por exemplo, concordar com a adição de um bloco a um protocolo de confiança), um protocolo de consenso é implementado dentro da rede de protocolo de confiança pública. Um exemplo de protocolo de consenso inclui, sem limitação, prova de trabalho (POW) implementada na rede de Bitcoin.
[0022] Em geral, uma rede de protocolo de confiança privada é fornecida para uma entidade particular, que controla centralmente as permissões de leitura e gravação. A entidade controla quais nós são capazes de participar da rede de protocolo de confiança. Consequentemente, as redes de protocolo de confiança privadas são geralmente referidas como redes com permissão que colocam restrições sobre quem tem permissão para participar da rede, e sobre o seu nível de participação (por exemplo, apenas em certas transações). Vários tipos de mecanismos de controle de acesso podem ser usados (por exemplo, os participantes existentes votam na adição de novas entidades, uma autoridade reguladora pode controlar a admissão).
[0023] 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, companhia de seguros). Por exemplo, um consórcio de dez (10) entidades (por exemplo, instituições financeiras, seguradoras) pode operar uma rede de protocolo de confiança de consórcio, cada uma operando pelo menos um nó na rede de
Petição 870190056700, de 19/06/2019, pág. 15/43
8/22 protocolo de confiança do consórcio. Nesse sentido, a rede de protocolo de confiança do 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 adicionada 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.
[0024] As realizações da presente invenção são aqui descritas em maior detalhe com referência a uma rede de protocolo de confiança em geral. Está contemplado que as realizações da presente invenção podem ser realizadas em qualquer tipo apropriado de rede de protocolo de confiança.
[0025] Conforme apresentado acima, um protocolo de consenso é executado dentro de uma rede de protocolo de confiança para adicionar blocos a um protocolo de confiança. Cada bloco pode ser descrito como um conjunto de transações executadas entre entidades na rede de protocolo de confiança. Múltiplos nós dentro da rede de protocolo de confiança competem através do protocolo de consenso para ter seu bloco adicionado ao protocolo de confiança. Transações e blocos são registrados usando números de uso único. Ou seja, cada nó participante do protocolo de consenso usa um número de uso único. Em alguns exemplos, um número de uso único é um número aleatório (arbitrário) (por exemplo, de comprimento fixo) que é usado apenas uma vez. Por exemplo, se um número de uso único for usado para gravar com sucesso uma transação no protocolo de confiança, esse número de uso único não será usado novamente. Mais detalhadamente, cada transação gravada no protocolo de confiança usa um número de uso único. O número de uso único pode ser usado em uma pluralidade de maneiras. Por exemplo, o número de uso único pode ser concatenado ao valor de hash de um bloco de transação, portanto, o hash será menor ou igual ao destino da rede. Como outro exemplo, o número
Petição 870190056700, de 19/06/2019, pág. 16/43
9/22 de uso único pode ser concatenado com um valor de transação que deve ser transformado (hashed).
[0026] Em alguns casos, as transações podem ser simultâneas. Consequentemente, um número significativo de números de uso único pode ser exigido simultaneamente para registrar transações no protocolo de confiança. Pode ocorrer que dois ou mais nós utilizem simultaneamente o mesmo número de uso único. Se um nó for bem-sucedido ao incluir sua transação no protocolo de confiança, o número de uso único não será mais válido para uso e o(s) outro(s) nó(s) falhará(ão) em seu esforço para registrar suas transações no protocolo de confiança.
[0027] As realizações da presente invenção são aqui descritas em maior detalhe tendo em vista o contexto acima. Mais particularmente, e como introduzido acima, as realizações da presente invenção destinam-se a uma tabela de número de uso único com uma pluralidade de números de uso único pré-populados para evitar a colisão de número de uso único no processamento de transações concomitantes em redes de protocolo de confiança. Como descrito em mais detalhes aqui, um modelo de previsão é empregado, de tal forma que, enquanto um número de uso único da tabela de número de uso único está em uso por um nó, o número de uso único não está disponível para uso por qualquer outro nó. Se a transação for bem-sucedida, o número de uso único será excluído da tabela de número de uso único e um novo número de uso único será fornecido em seu lugar. Se a transação não for bem-sucedida, o número de uso único será liberado para uso e permanecerá na tabela de número de uso único para reutilização em uma transação subsequente.
[0028] A Figura 1 representa um exemplo de ambiente (100) que pode ser utilizado para executar realizações da presente invenção. Em alguns exemplos, o ambiente de exemplo (100) permite que entidades participem de rede de protocolo de confiança (102). O ambiente de exemplo (100) inclui
Petição 870190056700, de 19/06/2019, pág. 17/43
10/22 dispositivos de computação (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), Internet ou combinação dos mesmos, e conecta web sites, dispositivos de usuário (por exemplo, dispositivos de computação) e sistema de back-end. Em alguns exemplos, a rede (110) pode ser acessada através de um link de comunicação com fio e/ ou sem fio.
[0029] No exemplo descrito, os sistemas de computação (106, 108) podem incluir qualquer sistema de computação apropriado que permita a participação como um nó na rede de protocolo de confiança (102). Exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador de mesa, um computador laptop, um dispositivo de computação de tablet e um smartphone. 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 (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), como o sistema de gerenciamento de transações que a primeira entidade usa para gerenciar suas transações com uma ou mais 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), como o sistema de gerenciamento de transação que a segunda entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários).
[0030] No exemplo da Figura 1, a rede de protocolo de confiança (102) é representada como uma rede peer-to-peer de nós, e os sistemas de computação (106, 108) fornecem nós da primeira entidade, e da segunda entidade respectivamente, que participam na rede de protocolo de confiança (102).
Petição 870190056700, de 19/06/2019, pág. 18/43
11/22 [0031] A Figura 2 ilustra um exemplo de arquitetura conceptual (200) de acordo com realizações da presente invenção. A arquitetura conceituai exemplificativa (200) inclui uma camada de entidade (202), uma camada de serviços hospedados (204) e uma camada de rede de protocolo de confiança (206). No exemplo representado, a camada de entidade (202) inclui três entidades, Entity_1 (E1), Entity_2 (E2) e Entity_3 (E3), cada entidade possuindo um respectivo sistema de gestão de transações (208).
[0032] No exemplo descrito, a camada de serviços hospedados (204) inclui interfaces (210) para cada sistema de gestão de transações (210). Em alguns exemplos, um sistema de gestão de transações (208) respetivo comunica com uma respetiva interface (210) através de uma rede (por exemplo, a rede (110) da Figura 1) usando um protocolo (por exemplo, protocolo de transferência de hipertexto seguro (HTTPS)). Em alguns exemplos, cada interface (210) fornece uma conexão de comunicação entre um sistema de gestão da respectiva transação (208), e a camada de rede de protocolo de confiança (206). Mais particularmente, a interface (210) se comunica com uma rede de protocolo de confiança (212) da camada de rede de protocolo de confiança (206). Em alguns exemplos, a comunicação entre uma interface (210) e a camada de rede de protocolo de confiança (206) é conduzida utilizando chamadas de procedimento remoto (RPCs). Em alguns exemplos, as interfaces (210) “hospedam” os nós de rede de protocolo de confiança para os respectivos sistemas de gestão de transação (208). Por exemplo, as interfaces (210) fornecem a interface de programação de aplicativos (API) para acessar a rede de protocolo de confiança (212).
[0033] Como aqui descrito, a rede de protocolo de confiança (212) é fornecida como uma rede peer-to-peer incluindo uma pluralidade de nós (214) que gravam informações de forma imutável em um protocolo de confiança (216). Embora um único protocolo de confiança (216) seja
Petição 870190056700, de 19/06/2019, pág. 19/43
12/22 esquematicamente representado, várias 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). Por exemplo, cada nó (214) armazena uma cópia do protocolo de confiança. Em algumas realizações, o protocolo de confiança (216) armazena informações associadas a transações que são realizadas entre duas ou mais entidades que participam da rede de protocolo de confiança (212).
[0034] A Figura 3 representa um exemplo de fluxo de sinal (300) para inicializar uma tabela de número de uso único (tabela de número de uso único) de acordo com realizações da presente invenção. Por conveniência, o fluxo de sinal (300) será descrito como sendo realizado entre componentes dentro de uma rede de protocolo de confiança. Conforme descrito em mais detalhes aqui, a tabela de número de uso único registra uma pluralidade de números de uso único, que podem ser usados, por exemplo, na execução de um protocolo de consenso dentro da rede de protocolo de confiança para registrar transações em um protocolo de confiança dentro da rede de protocolo de confiança. A tabela de número de uso único pode armazenar dezenas, centenas, milhares ou qualquer número apropriado de valores de número de uso único. Em alguns exemplos, o tamanho da tabela de número de uso único é configurado com base em um número esperado e/ ou na frequência de números de uso único a serem recuperados. Em alguns exemplos, o tamanho da tabela de número de uso único pode ser escolhido em uma variedade de maneiras. Por exemplo, o tamanho pode ser inicializado aleatoriamente, prédeterminado com base em um tipo de conta. Como outro exemplo, o tamanho pode ser definido em uma solicitação para inicializar a tabela de número de uso único. Em algumas formas de realização, a tabela de número de uso único inclui linhas, cada linha gravando um índice de número de uso único (nouncelndex), um número de uso único (nounceValue), e estado de índice de número de uso único (nouncelndexStatus).
Petição 870190056700, de 19/06/2019, pág. 20/43
13/22 [0035] No exemplo da Figura 3, o fluxo de sinal (300) está entre um aplicativo (302) (por exemplo, executado dentro de um nó da rede de protocolo de confiança), uma ponte (304) e uma base de dados (306). A ponte (304) é hospedada em conjunto com os aplicativos do lado do cliente. O banco de dados (306) armazena a tabela de número de uso único que é usada pelo aplicativo (302).
[0036] Em algumas realizações, a aplicação (302) envia (308) um pedido para inicializar uma tabela de número de uso único. Em alguns exemplos, isso ocorre depois que uma conta de protocolo de confiança associada ao aplicativo (302) ser criada. A ponte (304) abstrai uma implementação de modelo e serviço do cliente de protocolo de confiança para manter a tabela de número de uso único. A ponte (304) encontra-se entre o aplicativo (302), e a base de dados (306) para facilitar a inicialização da tabela de número de uso único.
[0037] Em algumas realizações, a ponte (304) inicializa cada índice de número de uso único na tabela de número de uso único fazendo um loop através do tamanho da tabela de número de uso único. A tabela de número de uso único é armazenada no banco de dados (306). A ponte (304) insere (310) uma linha correspondente a cada índice de número de uso único. Cada índice de número de uso único pode ter um ou mais valores associados a ele. Exemplos de valores incluem, sem limitação, um identificador, um endereço de conta, uma versão de número de uso único, um índice de número de uso único, um número de uso único, um estado ocupado e um último tempo ocupado. As variáveis correspondentes ao valor do número de uso único caracterizam o número de uso único. Por exemplo, o identificador é uma referência única para o número de uso único, o endereço de conta pode se referir a uma ou mais contas associadas com as transações, a versão de número de uso único pode especificar qual variante do número de uso único é
Petição 870190056700, de 19/06/2019, pág. 21/43
14/22 usado, e ocupado indica a disponibilidade do número de uso único para uma transação. Em alguns exemplos, o último tempo ocupado pode ser usado para determinar se um limite de tempo ocorreu, e tem de ser libertado, tal como descrito em mais detalhe aqui.
[0038] A Figura 4 representa um exemplo de sinal de fluxo (400) para buscar, libertar, e redefinir valores de número de uso único a partir da tabela de número de uso único, em conformidade com as realizações da presente invenção. Por conveniência, o fluxo de sinal (400) será descrito como sendo realizado entre componentes dentro de uma rede de protocolo de confiança. No exemplo da Figura 4, o fluxo de sinal (400) está entre o aplicativo (302) (por exemplo, executada dentro de um nó da rede de protocolo de confiança), a ponte (304), a base de dados (306) e um protocolo de confiança (402).
[0039] De acordo com realizações da presente invenção, um modelo de previsão é usado de tal forma que, enquanto um número de uso único da tabela de número de uso único está em uso por um nó (por exemplo, o aplicativo (302)), o número de uso único está indisponível para uso por qualquer outro nó. Se a transação for bem-sucedida, o número de uso único será excluído da tabela de número de uso único e um novo número de uso único será fornecido em seu lugar. Se a transação não for bem-sucedida, o número de uso único será liberado para uso e permanecerá na tabela de número de uso único para reutilização em uma transação subsequente. Ao antecipar o número de uso único, durante o uso, as transações simultâneas não podem usar o mesmo número de uso único, evitando falhas de transação. Em algumas realizações, e como descrito em mais detalhes aqui, o modelo de previsão inclui operações primitivas de busca, liberação e reconfiguração.
[0040] Em algumas realizações, a operação de busca obtém um valor de número de uso único para ser usado na transação do protocolo de
Petição 870190056700, de 19/06/2019, pág. 22/43
15/22 confiança. A aplicação (302) envia (410) uma mensagem de busca de número de uso único para a ponte (304). Por sua vez, a ponte (304) consulta o banco de dados (306) para solicitar (412) um índice de número de uso único desocupado. A consulta do banco de dados para um número de uso único pode ser executada pelas seguintes instruções SQL exemplificativas:
update nonce_table set occupied = #uuid#, last occupied time = now, where id in ( select id from nonce table where account_address = #account_address# and occupied is null order by nonce index asc limit 1 [0041] Em alguns exemplos, a instrução SQL seleciona todos os índices de número de uso único com estado ocupado definidos como nulo, e escolhe o índice de número de uso único menor para ser antecipado (por exemplo, ocupado). O último tempo ocupado do índice de número de uso único selecionado é definido como ‘agora’ (por exemplo, um registro de data e hora atual) para evitar que o respectivo valor de número de uso único seja usado em outra transação.
[0042] Se a antecipação for bem-sucedida, a ponte (304) consulta (414) a informação sobre o índice de número de uso único que foi antecipado (por exemplo, o número de uso único), e o número de uso único é devolvido (416) para o aplicativo (302). A informação sobre o índice de número de uso único pode ser consultada usando a seguinte consulta SQL exemplificativa:
select id, account_address, nonce version, nonce index,
Petição 870190056700, de 19/06/2019, pág. 23/43
16/22 nonce value, occupied, last_occupied_time from nonce table where occupied = #uuid# [0043] As instruções de SQL exemplificativas selecionam todas as informações de número de uso único da tabela de número de uso único com base no estado ocupado especificado na consulta inicial para um valor de número de uso único.
[0044] No entanto, se a recuperação de um valor aleatório é mal sucedido (por exemplo, todos os índices número de uso único estão ocupados), a base de dados (306) retorna um valor de atualização de zero, a ponte (304) retorna (418) que todos os slots de índice de número de uso único na tabela de número de uso único estão ocupados, e joga uma exceção.
[0045] O valor de número de uso único selecionado é usado para iniciar (420) a gravação de uma transação no protocolo de confiança (408). Através da execução do protocolo de consenso, o protocolo de confiança (408) envia (422) mensagens assíncronas para informar os nós da rede de protocolo de confiança sobre os estados das transações. Tais mensagens assíncronas são recebidas pelo aplicativo (302). O sistema de protocolo de confiança não garante que a mensagem assíncrona seja entregue com sucesso. Se a mensagem assíncrona que indica o estado da transação não é devolvida ao aplicativo (302), o estado ocupado do índice de número de uso único e o valor de número de uso único não pode ser reposto, e permanecem indisponíveis para uso com transações subsequentes.
[0046] Em algumas realizações, o aplicativo (302) recebe uma mensagem indicando que a transação foi bem-sucedida ou falhou. Se a transação foi bem-sucedida, o aplicativo informa (424) a ponte (304) e a ponte (304) libera o índice de número de uso único para uso futuro. Em alguns
Petição 870190056700, de 19/06/2019, pág. 24/43
17/22 exemplos, a libertação inclui atualizar o número de uso único (por exemplo, incrementando um valor do número de uso único), e definir o estado ocupado como nulo. A atualização do valor de número de uso único garante que somente novos números de uso único são usados, e números de uso único anteriormente usados permanecem indisponíveis para transações futuras. Se a transação não for bem-sucedida, o aplicativo (302) informa (428) a ponte (304), e a ponte redefine o índice de número de uso único por atualizando o estado ocupado como nulo. Ou seja, o número de uso único permanece inalterado e é novamente disponibilizado para uso em uma transação futura. As primeira e segunda instruções de SQL exemplificativas podem ser fornecidas como:
update nonce_table set occupied = NULL, last occupied time = NULL, nonce value = nonce value+1 where account_address = #accountAddress# and nonce index = fnoncelndex# update nonce_table set occupied = NULL, last occupied time = NULL, where account_address = #accountAddress# and nonce index = fnoncelndex# [0047] O exemplo da primeira instrução de SQL pode ser executado para liberação (por exemplo, em resposta ao sucesso da transação) e a segunda instrução de SQL exemplificativa pode ser executada para reconfiguração (por exemplo, em resposta a uma falha na transação).
[0048] A Figura 5 representa um exemplo de fluxo de sinal (500) para atualizar os valores de número de uso único disponíveis na tabela de número de uso único de acordo com realizações da presente invenção. Por conveniência, o fluxo de sinal (400) será descrito como sendo realizado entre
Petição 870190056700, de 19/06/2019, pág. 25/43
18/22 componentes dentro de uma rede de protocolo de confiança. No exemplo da Figura 5, o fluxo de sinal (500) está entre o aplicativo (302) (por exemplo, executado dentro de um nó da rede de protocolo de confiança), a ponte (304), o banco de dados (306) e o protocolo de confiança (402).
[0049] Como mencionado acima, porque o protocolo de confiança (402) não garante que a mensagem entregue deve ser entregue com êxito para o aplicativo (302), alguns slots de número de uso único são ocupados, e não esperam que a mensagem libere/ redefinir. Em vista disso, as realizações da presente invenção fornecem uma tarefa daemon para verificar periodicamente todos os slots de índice de número de uso único ocupados. Em alguns exemplos, o último tempo ocupado de cada slot de índice de número de uso único é usado para determinar se ocorreu um tempo esgotado, e se a tarefa daemon deve liberar/ redefinir o slot de índice de número de uso único.
[0050] No exemplo da Figura 5, o aplicativo (302) envia (510) um disparo temporizado para a ponte (304). Em resposta, a ponte consultas (512) o banco de dados (306) para uma lista de índices de número de uso único com um último tempo ocupado não definido como nulo. Isso permite que todos os valores de índice de número de uso único sejam atualizados usando um único método para atualizar os respectivos valores devolvidos a partir da instrução selecionada. A ponte (304) percorre cada valor na lista retornada do banco de dados (306) para consultar (514) o estado em tempo real do respectivo valor de número de uso único no protocolo de confiança (402). A ponte (304) recebe a atualização e atualiza (516) a última estado de tempo ocupado dentro do banco de dados (306) com base nos resultados retornados do protocolo de confiança (306). Se ocorrer um tempo esgotado (por exemplo, a diferença entre a hora atual, e o tempo ocupado na última vez é maior do que um tempo limite), a ponte (304) consulta diretamente o estado em tempo real correspondente ao slot de número de uso único do protocolo de confiança
Petição 870190056700, de 19/06/2019, pág. 26/43
19/22 (402), e atualiza o banco de dados (306). Ao atualizar o banco de dados (306), o estado de ocupação é definido como nulo e o valor de número de uso único é o resultado da consulta em tempo real do protocolo de confiança (402).
[0051] A Figura 6 ilustra um processo (600) que pode ser executado em conformidade com as realizações da presente invenção exemplo. Em algumas realizações, o exemplo de processo (600) pode ser executado usando um ou mais programas executáveis por computador executados usando um ou mais dispositivos de computação. O exemplo de processo (600) é baseado em um ou mais dos fluxos de sinal acima descritos. Em geral, o exemplo de processo é dirigido ao uso de uma tabela de número de uso único de acordo com realizações da presente invenção.
[0052] Uma tabela de número de uso único é inicializada (602). Como aqui descrito, por exemplo, com referência à Figura 3, a tabela de número de uso único inclui uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenando um respectivo valor de número de uso único. Uma solicitação de número de uso único é recebida (604). Por exemplo, e como aqui descrito com referência à Figura 4, a solicitação é recebida no aplicativo, e em resposta, e um número de uso único é solicitado a partir da tabela de número de uso único por uma ponte. Um valor de número de uso único é recebido em resposta à solicitação (606). Como descrito aqui, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado (por exemplo, a operação de busca da Figura 4). Em resposta a uma transação usando o valor de número de uso único sendo um dentre bem sucedido e falho, um dos seguintes é executado (610): liberar o valor de número de uso único dentro do slot de número de uso único e definir o estado como desocupado, se a transação for bem-sucedida, e configurar o estado para desocupado, se a transação falhou.
Petição 870190056700, de 19/06/2019, pág. 27/43
20/22
Isto é descrito com referência às operações de libertação e redefinição da Figura 4.
[0053] As características descritas podem ser implementadas em circuitos eletrônicos digitais ou em hardware de computador, firmware, software ou em combinações dos mesmos. O aparelho pode ser implementado em um produto de programa de computador tangivelmente incorporado em um veículo de informação (por exemplo, em um dispositivo de armazenamento legível por máquina) para execução por um processador programável; e as etapas do método podem ser realizadas por um processador programável executando um programa de instruções para executar funções das realizações descritas operando nos dados de entrada e gerando a saída. As características descritas podem ser implementadas vantajosamente em um ou mais programas de computador que são executáveis em um sistema programável incluindo pelo menos um processador programável acoplado para receber dados e instruções de, e para transmitir dados e instruções a, um sistema de armazenamento de dados, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída. Um programa de computador é um conjunto de instruções que podem ser usados, direta ou indiretamente, em um computador para realizar uma determinada atividade ou obter um certo resultado. Um programa de computador pode ser escrito em qualquer forma de linguagem de programação, incluindo idiomas compilados ou interpretados, e pode ser implementado de qualquer forma, incluindo como um programa independente ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação.
[0054] Processadores adequados para a execução de um programa de instruções incluem, a título de exemplo, microprocessadores de uso geral e especial, e o único processador ou um de múltiplos processadores de qualquer tipo de computador. Geralmente, um processador receberá
Petição 870190056700, de 19/06/2019, pág. 28/43
21/22 instruções e dados de uma memória somente leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos de um computador podem incluir um processador para executar instruções e uma ou mais memórias para armazenar instruções e dados. Geralmente, um computador pode também incluir, ou está operacionalmente acoplado para se comunicar com, um ou mais dispositivos de armazenamento em massa para armazenar arquivos de dados; tais dispositivos incluem discos magnéticos, como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos ópticos. Dispositivos de armazenamento adequados para incorporar de forma tangível instruções e dados de programas de computador incluem todas as formas de memória não volátil, incluindo, por exemplo, dispositivos de memória semicondutores, tais como EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser suplementados por, ou incorporados nos, circuitos integrados específicos de aplicativo (ASICs).
[0055] Para fornecer a interação com um usuário, as características podem ser implementadas em um computador com um dispositivo de exibição, como um monitor de tubo de raio catódico (CRT) ou de cristal líquido (LCD) para exibir informações ao usuário e um teclado e um dispositivo apontador, como um mouse ou uma trackball, pelos quais o usuário pode fornecer entrada para o computador.
[0056] As características podem ser implementadas em um sistema de computador que inclua um componente de painel administrativo (back-end), como um servidor de dados, ou que inclua um componente de middleware, como um servidor de aplicativos ou um servidor da Internet, ou que inclua um componente de interface de interação com o usuário (front-end), como um computador cliente com uma interface gráfica do usuário ou um
Petição 870190056700, de 19/06/2019, pág. 29/43
22/22 navegador da Internet, ou qualquer combinação deles. Os componentes do sistema podem ser conectados por qualquer forma ou meio de comunicação de dados digitais, como uma rede de comunicação. Exemplos de redes de comunicação incluem, por exemplo, uma rede de área local (LAN), uma rede de longa distância (WAN) e os computadores e redes que formam a Internet.
[0057] O sistema de computador pode incluir clientes e servidores. Um cliente e um servidor geralmente são remotos entre si e geralmente interagem através de uma rede, como a descrita. A relação de cliente e servidor surge em virtude de programas de computador em execução nos respectivos computadores e tendo um relacionamento cliente-servidor entre si.
[0058] Além disso, os fluxos lógicos representados nas figuras não exigem a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejados. Além disso, outras etapas podem ser fornecidas, ou etapas podem ser eliminadas, dos fluxos descritos, e outros componentes podem ser adicionados ou removidos dos sistemas descritos. Por conseguinte, outras realizações estão dentro do escopo das reivindicações seguintes.
[0059] Um certo número de realizações da presente invenção foi descrito. No entanto, será entendido que várias modificações podem ser feitas sem se afastar do escopo da presente invenção. Por conseguinte, outras realizações estão dentro do escopo das seguintes reivindicações.

Claims (18)

  1. Reivindicações
    1. MÉTODO (600) IMPLEMENTADO POR COMPUTADOR para fornecer valores de número de uso único (noncé) para o processamento de transações em redes de protocolo de confiança (blockchain), o método sendo executado por um ou mais processadores e, caracterizado pelo fato de que compreende as etapas de:
    inicializar (602) uma tabela de número de uso único compreendendo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenando um respectivo valor de número de uso único;
    receber (604) uma solicitação de um valor de número de uso único de um aplicativo (302) e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único;
    receber (606) um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado; e em resposta (608) a uma transação usando o valor de número de uso único sendo um dentre bem-sucedido e falho, executando um dos seguintes:
    liberar (610) o valor de número de uso único dentro do slot de número de uso único e definindo o estado como desocupado, se a transação for bem-sucedida; e definir o estado para desocupado, se a transação falhar.
  2. 2. MÉTODO (600), de acordo com a reivindicação 1, caracterizado pelo fato de que a liberação do valor de número de uso único dentro do slot de número de uso único compreende o armazenamento de um valor de número de uso único incrementado no slot de número de uso único.
  3. 3. MÉTODO (600), de acordo com a reivindicação 1,
    Petição 870190056700, de 19/06/2019, pág. 31/43
    2/6 caracterizado pelo fato de que compreende ainda as etapas de:
    receber uma segunda solicitação de um valor de número de uso único do aplicativo (302), e em resposta, solicitar um valor de número de uso único da tabela de número de uso único; e determinar que um estado de cada slot de número de uso único na tabela de número de uso único está ocupado e, em resposta, transmitir uma indicação para o aplicativo (302) de que todos os slots de número de uso único estão ocupados.
  4. 4. MÉTODO (600), de acordo com a reivindicação 1, caracterizado pelo fato de que a tabela de número de uso único é armazenada em um banco de dados (306) e uma ponte (304) entre o aplicativo (302) e o banco de dados (306) recebe solicitações para valores de número de uso único e fornece seletivamente valores de pontuação para o aplicativo (302).
  5. 5. MÉTODO (600), de acordo com a reivindicação 1, caracterizado pelo fato de que o aplicativo (302) determina se a transação usando o valor de número de uso único é um dentre bem-sucedido e falho com base em uma ou mais mensagens recebidas pelo aplicativo (302) da rede de protocolo de confiança (402).
  6. 6. MÉTODO (600), de acordo com a reivindicação 1, caracterizado pelo fato de que um estado da transação é periodicamente acionado para determinar se ocorreu um evento de tempo limite.
  7. 7. MEIO LEGÍVEL POR COMPUTADOR, caracterizado pelo fato de que é acoplado a um ou mais processadores e tendo instruções armazenadas no mesmo que, quando executadas por um ou mais processadores, fazem com que um ou mais processadores executem operações para fornecer valores de número de uso único para processamento de transações em redes de protocolo de confiança (402), as operações compreendendo:
    Petição 870190056700, de 19/06/2019, pág. 32/43
    3/6 a inicialização de uma tabela de número de uso único compreendendo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único e um estado, e armazenando um respectivo valor de número de uso único;
    receber uma solicitação de um valor de número de uso único de um aplicativo (302) e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único;
    receber um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado; e em resposta a uma transação usando o valor de número de uso único sendo um dentre bem sucedido e falho, executa um dos seguintes:
    libera o valor de número de uso único dentro do slot de número de uso único e define o estado como desocupado, se a transação for bem sucedida e define o estado como desocupado, se a transação falhou.
  8. 8. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 7, caracterizado pelo fato de que libertar o valor de número de uso único dentro do slot de número de uso único compreende armazenar um valor de número de uso único incrementado no slot de número de uso único.
  9. 9. MEIO LEGÍVEL EM COMPUTADOR, de acordo com a reivindicação 7, caracterizado pelo fato de que compreende ainda:
    receber uma segunda solicitação para um valor de número de uso único do aplicativo (302) e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único; e determinar que um estado de cada slot de número de uso único na tabela de número de uso único está ocupado e, em resposta, transmitir uma indicação para o aplicativo (302) de que todos os slots de número de uso único
    Petição 870190056700, de 19/06/2019, pág. 33/43
    N6 estão ocupados.
  10. 10. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 7, caracterizado pelo fato de que a tabela de número de uso único é armazenada em um banco de dados (306) e uma ponte (304) entre o aplicativo (302) e o banco de dados (306) recebe solicitações de valores de número de uso único e fornece seletivamente valores de número de uso único para o aplicativo (302).
  11. 11. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 7, caracterizado pelo fato de que o aplicativo (302) determina se a transação que usa o valor de número de uso único é um dentre bem sucedido e falho com base em uma ou mais mensagens recebidas pelo aplicativo (302) da rede de protocolo de confiança (402).
  12. 12. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 7, caracterizado pelo fato de que um estado da transação é periodicamente acionado para determinar se ocorreu um evento de tempo esgotado.
  13. 13. SISTEMA PARA IMPLEMENTAR UM MÉTODO, caracterizado pelo fato de que compreende:
    um dispositivo de computação; e um dispositivo de armazenamento legível por computador acoplado ao dispositivo de computação e tendo instruções armazenadas no mesmo que, quando executadas pelo dispositivo de computação, fazem com que o dispositivo de computação realize operações para fornecer valores de número de uso único para processamento de transação em redes de protocolo de confiança (402), as operações compreendendo:
    a inicialização de uma tabela de número de uso único compreendendo uma pluralidade de slots de número de uso único, cada slot de número de uso único sendo associado com um índice de número de uso único
    Petição 870190056700, de 19/06/2019, pág. 34/43
    5/6 e um estado, e armazenando um respectivo valor de número de uso único;
    receber uma solicitação para um valor de número de uso único de um aplicativo (302) e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único;
    receber um valor de número de uso único em resposta à solicitação, um estado de um slot de número de uso único correspondente ao valor de número de uso único sendo definido como ocupado; e em resposta a uma transação usando o valor de número de uso único sendo um dentre bem sucedido e falho, executar um dos seguintes:
    liberar o valor de número de uso único dentro do slot de número de uso único e definir o estado como desocupado, se a transação for bem sucedida e definir o estado para desocupado, se a transação falhou.
  14. 14. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo fato de que liberar o valor de número de uso único dentro do slot de número de uso único compreende armazenar um valor de número de uso único incrementado no slot de número de uso único.
  15. 15. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo fato de que compreende ainda:
    receber uma segunda solicitação de um valor de número de uso único do aplicativo (302) e, em resposta, solicitar um valor de número de uso único da tabela de número de uso único; e determinar que um estado de cada slot de número de uso único na tabela de número de uso único está ocupado e, em resposta, transmitir uma indicação para o aplicativo (302) de que todos os slots de número de uso único estão ocupados.
  16. 16. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo fato de que a tabela de número de uso único é armazenada
    Petição 870190056700, de 19/06/2019, pág. 35/43
    6/6 em urn banco de dados (306), e uma ponte (304) entre o aplicativo (302) e o banco de dados (306) recebe solicitações de valores de número de uso único, e fornece seletivamente valores de número de uso único para o aplicativo (302).
  17. 17. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo fato de que o aplicativo (302) determina se a transação que utiliza o valor de número de uso único é um dentre bem-sucedido e falho, com base em uma ou mais mensagens recebidas pelo aplicativo (302) da rede de protocolo de confiança (402).
  18. 18. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo fato de que um estado da transação é periodicamente acionado para determinar se ocorreu um evento de tempo esgotado.
BR112019007995-5A 2018-11-30 2018-11-30 “método implementado por computador, meio legível por computador e sistema para implementar um método BR112019007995A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/118523 WO2019072287A2 (en) 2018-11-30 2018-11-30 USING A TABLE OF NUTS TO RESOLVE SIMULTANEOUS BLOCK CHAIN TRANSACTION FAILURE

Publications (1)

Publication Number Publication Date
BR112019007995A2 true BR112019007995A2 (pt) 2019-11-12

Family

ID=66100017

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019007995-5A BR112019007995A2 (pt) 2018-11-30 2018-11-30 “método implementado por computador, meio legível por computador e sistema para implementar um método

Country Status (16)

Country Link
US (1) US10540344B2 (pt)
EP (1) EP3552167B1 (pt)
JP (1) JP6704627B1 (pt)
KR (1) KR102121157B1 (pt)
CN (1) CN110431580B (pt)
AU (1) AU2018348327B2 (pt)
BR (1) BR112019007995A2 (pt)
CA (1) CA3041211C (pt)
ES (1) ES2880453T3 (pt)
MX (1) MX2019004669A (pt)
PH (1) PH12019500870A1 (pt)
PL (1) PL3552167T3 (pt)
RU (1) RU2720529C1 (pt)
SG (1) SG11201903529TA (pt)
WO (1) WO2019072287A2 (pt)
ZA (1) ZA201902488B (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614769B2 (en) * 2019-07-15 2023-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Asynchronous distributed coordination and consensus with threshold logical clocks
CN111562947B (zh) * 2020-04-01 2021-08-03 支付宝实验室(新加坡)有限公司 一种业务处理方法、装置及电子设备
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN112346825A (zh) * 2020-11-11 2021-02-09 湖南智慧政务区块链科技有限公司 一种基于位图算法的区块链事务防重机制

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7788700B1 (en) * 2002-05-15 2010-08-31 Gerard A. Gagliano Enterprise security system
US7797751B1 (en) * 2006-03-27 2010-09-14 Oracle America, Inc. Nonce structure for storage devices
US20080066181A1 (en) * 2006-09-07 2008-03-13 Microsoft Corporation DRM aspects of peer-to-peer digital content distribution
US8104073B2 (en) * 2007-08-10 2012-01-24 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols
DE102008046563A1 (de) * 2008-09-10 2010-03-11 Siemens Aktiengesellschaft Verfahren zur Datenübertragung zwischen Netzwerkknoten
KR20120100046A (ko) * 2011-03-02 2012-09-12 삼성전자주식회사 분산 환경 네트워크에서 컨텐츠의 접근 제어를 위한 장치 및 방법
US9210183B2 (en) * 2013-12-19 2015-12-08 Microsoft Technology Licensing, Llc Detecting anomalous activity from accounts of an online service
US10340038B2 (en) * 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
JP6364132B2 (ja) * 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
GB201511964D0 (en) * 2015-07-08 2015-08-19 Barclays Bank Plc Secure digital data operations
SE542966C2 (en) * 2015-07-10 2020-09-22 Strawpay AB Methods and computer programs for efficient payments using digital promissory notes
EP3411824B1 (en) * 2016-02-04 2019-10-30 Nasdaq Technology AB Systems and methods for storing and sharing transactional data using distributed computer systems
US10237259B2 (en) * 2016-02-29 2019-03-19 Securekey Technologies Inc. Systems and methods for distributed identity verification
CA3019275A1 (en) * 2016-04-11 2017-10-19 nChain Holdings Limited Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
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
US10447478B2 (en) * 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US10243990B1 (en) * 2016-09-23 2019-03-26 Apple Inc. Systems and methods for detecting replay attacks on security space
CN106815722B (zh) * 2016-12-22 2021-05-07 中钞信用卡产业发展有限公司杭州区块链技术研究院 基于区块链的信息处理方法和装置
US10275739B2 (en) * 2017-01-05 2019-04-30 International Business Machines Corporation Tracking assets with a blockchain
CN108572978A (zh) * 2017-03-10 2018-09-25 深圳瀚德创客金融投资有限公司 构建用于区块链的倒排索引结构的方法和计算机系统
CN107391320B (zh) * 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
CN107124278B (zh) * 2017-03-30 2021-03-30 腾讯科技(深圳)有限公司 业务处理方法、装置以及数据共享系统
GB201705858D0 (en) * 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN107301546B (zh) * 2017-05-03 2020-10-16 北京众享比特科技有限公司 随机数生成和应用方法及装置
US10348706B2 (en) * 2017-05-04 2019-07-09 Ernest Brickell Assuring external accessibility for devices on a network
CN108009918B (zh) * 2017-11-23 2021-10-26 深圳捷汇科技有限公司 区块链共识算法交易系统的记账方法及电子设备
CN108334307B (zh) * 2017-12-29 2020-11-20 北京欧链科技有限公司 基于区块链的数据筛选方法和装置
CN108389044A (zh) * 2018-02-28 2018-08-10 北京比特大陆科技有限公司 工作量证明的计算方法和系统、电子设备、程序和介质
CN108416578A (zh) * 2018-03-14 2018-08-17 郑杰骞 一种区块链系统及数据处理方法
CN108805569A (zh) * 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备

Also Published As

Publication number Publication date
EP3552167A2 (en) 2019-10-16
CN110431580A (zh) 2019-11-08
ES2880453T3 (es) 2021-11-24
AU2018348327B2 (en) 2020-04-09
US10540344B2 (en) 2020-01-21
EP3552167A4 (en) 2020-03-11
PH12019500870A1 (en) 2019-12-02
KR102121157B1 (ko) 2020-06-10
CA3041211A1 (en) 2019-04-18
JP2020518872A (ja) 2020-06-25
CA3041211C (en) 2020-05-05
SG11201903529TA (en) 2019-05-30
CN110431580B (zh) 2023-05-16
ZA201902488B (en) 2022-05-25
WO2019072287A3 (en) 2019-10-03
RU2720529C1 (ru) 2020-04-30
US20190243820A1 (en) 2019-08-08
JP6704627B1 (ja) 2020-06-03
PL3552167T3 (pl) 2021-10-25
EP3552167B1 (en) 2021-05-05
MX2019004669A (es) 2019-08-21
WO2019072287A2 (en) 2019-04-18

Similar Documents

Publication Publication Date Title
BR112019007995A2 (pt) “método implementado por computador, meio legível por computador e sistema para implementar um método
JP6564026B2 (ja) マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
BR112019007939A2 (pt) método implementado por computador, meio legível por computador e sistema para implementar um método
US20190171739A1 (en) Detecting phantom items in distributed replicated database
US10936445B2 (en) Resource management
US20180173745A1 (en) Systems and methods to achieve sequential consistency in replicated states without compromising performance in geo-distributed, replicated services
WO2019190855A1 (en) Hybrid cloud chain management of centralized and decentralized data
US10318475B2 (en) System and method for persistence of application data using replication over remote direct memory access
WO2020113314A1 (en) System and method for augmenting database applications with blockchain technology
US20130110774A1 (en) Transaction commitment and replication in a storage system
US9654294B2 (en) Non-repudiable atomic commit
KR102315791B1 (ko) 이진 로그 복제에 기초한 블록체인 데이터 관계 구조화 방식
US20200314078A1 (en) Inter-system linking method and node
US8131700B2 (en) Transitioning clone data maps and synchronizing with a data query
US11741081B2 (en) Method and system for data handling
US11032081B1 (en) System and method for authorizing secondary users to access a primary user's account using blockchain
US11138231B2 (en) Method and system for data handling
BR112021013970A2 (pt) Sistema de provisão de serviço de gerenciamento de banco de dados, e, método para ser executado por um sistema incluindo uma pluralidade de servidores e um ou mais bancos de dados
WO2021114628A1 (zh) 分布式事务的交易处理方法及相关设备
US20190377642A1 (en) Decoupled backup solution for distributed databases across a failover cluster
CN114610740A (zh) 医疗数据平台的数据版本管理方法及装置

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: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2751 DE 26/09/2023.