BR112019016064A2 - Método implementado por computador, meio de armazenamento legível e sistema - Google Patents

Método implementado por computador, meio de armazenamento legível e sistema Download PDF

Info

Publication number
BR112019016064A2
BR112019016064A2 BR112019016064-7A BR112019016064A BR112019016064A2 BR 112019016064 A2 BR112019016064 A2 BR 112019016064A2 BR 112019016064 A BR112019016064 A BR 112019016064A BR 112019016064 A2 BR112019016064 A2 BR 112019016064A2
Authority
BR
Brazil
Prior art keywords
transactions
execution
nodes
blockchain network
blockchain
Prior art date
Application number
BR112019016064-7A
Other languages
English (en)
Inventor
Xia Ning
Xie Guili
Deng Fuxi
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 BR112019016064A2 publication Critical patent/BR112019016064A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

a presente invenção se refere às implementações desta especificação que incluem a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações; a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo; a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução; a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e, em resposta, instruindo os nódulos da rede blockchain para a execução do chamado do contrato.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO DE ARMAZENAMENTO LEGÍVEL E SISTEMA” Antecedentes da Invenção [001 ]Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados redes de consenso e/ou redes blockchain, possibilitam que as entidades participantes armazenem os dados com segurança e imutabilidade. Os DLSs normalmente são referidos como redes blockchain sem referenciar nenhum caso de usuário específico. Os exemplos de tipos de redes blockchain podem incluir as redes blockchain públicas, redes blockchain privadas e redes blockchain de consórcio. Uma rede blockchain de consórcio é fornecida para um grupo seleto de entidades, que controla o processo de consenso e incluem uma camada de controle de acesso [002]Um problema encontrado em redes blockchain é a velocidade em que as transações são processadas. Em geral, os nódulos na rede blockchain processam as transações em série na ordem em que são enviadas. Isso pode conduzir uma baixa taxa de transferência de transações e atrasos entre o momento em que uma transação é enviada e quando ela é liberada.
[003]As técnicas para solucionar estes problemas de desempenho de transação em uma rede blockchain seriam vantajosas.
Descrição Resumida da Invenção [004]As implementações desta especificação incluem os métodos implementados por computador para a execução paralela de transações em uma rede blockchain. Mais especialmente, as implementações desta especificação são direcionadas aos grupos para a execução de transações que possuem uma dependência compartilhada em paralelo com outros grupos.
[005] Em algumas implementações, as ações incluem a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução
Petição 870190074425, de 02/08/2019, pág. 43/83
2/27 e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações; a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo; a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução; a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e em resposta à determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações, instruindo os nódulos da rede blockchain para a execução do chamado do contrato. Outras implementações incluem os sistemas, aparelhos e programas de computador correspondentes, configurados para realizar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[006]Estas e outras implementações, opcionalmente, podem incluir uma ou mais das seguintes características:
[007]Em alguns casos, a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui a instrução de um primeiro conjunto de nódulos para a execução de um primeiro grupo de transações e a instrução de um primeiro conjunto de nódulos para a execução de um segundo grupo de transações.
[008] Em algumas implementações, a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações inclui a determinação que todas as transações na pluralidade de transações foram incluídas em um ou mais blocos armazenados em uma blockchain mantida pela rede blockchain.
[009] Em algumas implementações, o método inclui a determinação
Petição 870190074425, de 02/08/2019, pág. 44/83
3/27 que os nódulos da rede blockchain concluíram a execução do chamado do contrato; a identificação de uma segunda pluralidade de transações a serem executadas na blockchain, em que a segunda pluralidade de transações é ordenada após o chamado do contrato na ordem de execução; a identificação de segundos grupos de transações dentro da segunda pluralidade de transações; e a instrução dos nódulos da rede blockchain para a execução de cada um dos segundos grupos de transações em paralelo, em que a execução de cada segundo grupo de transações inclui a execução das transações dentro do segundo grupo em série e de acordo com a ordem de execução.
[010]Em alguns casos, a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui o envio de uma mensagem para os nódulos através de uma rede.
[011]Em alguns casos, a identificação da pluralidade de transações a serem executadas na blockchain inclui o recebimento de transações transmitidas para a rede blockchain.
[012]Em algumas implementações, o chamado do contrato é uma solicitação para a execução de um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain.
[013]Esta especificação também fornece um ou mais meios de armazenamento não transitórias legíveis por computador acopladas a um ou mais processadores e que possui as instruções armazenadas neles que, quando executadas por um ou mais processadores, ocasionam que um ou mais processadores realizem as operações de acordo com as implementações dos métodos fornecidos no presente.
[014]Esta especificação ainda fornece um sistema para a implementação dos métodos fornecidos no presente. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador acoplado a um ou mais processadores que possuem as instruções armazenadas
Petição 870190074425, de 02/08/2019, pág. 45/83
4/27 nele que, quando executadas por um ou mais processadores, ocasionam que um ou mais processadores realizem as operações de acordo com as implementações dos métodos fornecidos no presente.
[015]É considerado que os métodos, de acordo com esta especificação, possam incluir qualquer combinação dos aspectos e características descritos no presente. Isto é, os métodos, de acordo com esta especificação, não estão limitados às combinações de aspectos e características especificamente descritos no presente, mas também incluem qualquer combinação dos aspectos e características fornecidos.
[016]Os detalhes de uma ou mais implementações desta especificação são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens desta especificação serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição das Figuras [017]A Figura 1 ilustra um exemplo de um ambiente que pode ser utilizado para a execução das implementações desta especificação.
[018]Figura 2 ilustra um exemplo de uma arquitetura conceptual, de acordo com as implementações desta especificação.
[019]A Figura 3A ilustra um exemplo de uma ordem de execução para as transações em uma rede blockchain, de acordo com as implementações desta especificação.
[020]A Figura 3B ilustra um exemplo de uma ordem de execução paralela para as transações em uma rede blockchain, de acordo com as implementações desta especificação.
[021]A Figura 4 ilustra um exemplo de um processo que pode ser executado, de acordo com as implementações desta especificação.
[022] A Figura 5 ilustra os exemplos de módulos de um aparelho, de acordo com as implementações desta especificação.
Petição 870190074425, de 02/08/2019, pág. 46/83
5/27 [023]Os símbolos de referência similares nos diversos desenhos indicam elementos similares.
Descrição Detalhada da Invenção [024]As implementações desta especificação incluem os métodos implementados por computador para a execução paralela de transações em uma rede blockchain. Mais especialmente, as implementações desta especificação são direcionadas aos grupos para a execução de transações que possuem uma dependência compartilhada em paralelo com outros grupos. Em algumas implementações, as ações incluem a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução, e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações; a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo; a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução; a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e em resposta à determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações, instruindo os nódulos da rede blockchain para a execução do chamado do contrato.
[025] Para fornecer o contexto adicional para as implementações desta especificação e, conforme foi introduzido acima, os sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, compostas por nódulos peer-to-peer), e as redes blockchain, possibilitam que as entidades participantes executem as transações
Petição 870190074425, de 02/08/2019, pág. 47/83
6/27 com segurança e imutabilidade e armazenem os dados. O termo “blockchain’’, é utilizado no presente, em geral, para se referir a um DLS sem referência a qualquer caso de utilização especial.
[026]Uma blockchain é uma estrutura de dados que armazena as transações de maneira que as transações sejam imutáveis e possam ser verificadas posteriormente. Uma blockchain inclui um ou mais blocos. Cada bloco na cadeia está ligado a um bloco anterior imediatamente antes dele na cadeia, incluindo um hash criptográfico do bloco anterior. Cada bloco também inclui um timestamp (registro de data e hora), seu próprio hash criptográfico e uma ou mais transações. As transações, que foram verificadas anteriormente pelos nódulos da rede blockchain, são hashed e codificadas em uma árvore Merkle. Uma árvore Merkle é uma estrutura de dados em que os dados nos nódulos de folhas da árvore são hashed e todos os hashes 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 hash que é representativo de todos os dados na árvore. Um hash supostamente de uma transação armazenada na árvore pode ser verificado rapidamente através da determinação se é consistente com a estrutura da árvore.
[027] Considerando que uma blockchain é uma estrutura de dados para o armazenamento das transações, uma rede blockchain é uma rede de nódulos de computação que gerencia, atualiza e mantém uma ou mais blockchains. Conforme introduzido acima, uma rede blockchain pode ser fornecida como uma rede blockchain pública, uma rede blockchain privada ou uma rede blockchain de consórcio. Em uma rede blockchain pública, o processo de consenso é controlado por nódulos da rede de consenso. Por exemplo, centenas, milhares e até milhões de entidades podem cooperar com uma rede blockchain pública, cada uma operando, pelo menos, um nódulo na rede blockchain pública. Por conseguinte, a rede blockchain pública pode ser
Petição 870190074425, de 02/08/2019, pág. 48/83
7/27 considerada uma rede pública em relação às entidades participantes. Em alguns exemplos, a maioria das entidades (nódulos) deve assinar cada bloco para que o bloco seja válido e adicionado à blockchain (contabilidade distribuída) da rede blockchain. Oe exemplos de redes blockchain públicas incluem as redes de pagamento peer-to-peer específicas que alavancam uma contabilidade distribuída, conhecida como blockchain. Conforme observado acima, o termo “blockchain”, no entanto, é utilizado para, em geral, se referir às contabilidades distribuídas sem referência especial à rede blockchain.
[028]Em geral, uma rede blockchain de consórcio é privada entre as entidades participantes. Em uma rede blockchain de consórcio, o processo de consenso é controlado por um conjunto autorizado de nódulos, um ou mais nódulos 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, as instituições financeiras, companhias de seguros) pode operar uma rede blockchain de consórcio, cada uma operando, pelo menos, um nódulo na rede blockchain de consórcio. Consequentemente, a rede blockchain de consórcio pode ser considerada uma rede privada em relação às entidades participantes. Em alguns exemplos, cada entidade (nódulo) deve assinar todos os blocos para que o bloco seja válido e adicionado à blockchain. Em alguns exemplos, pelo menos, um subconjunto de entidades (nódulos) (por exemplo, pelo menos, 7 entidades) deve assinar cada bloco para que o bloco seja válido e adicionado à blockchain.
[029]As implementações desta especificação podem ser executadas em qualquer tipo adequado de rede blockchain.
[030]As implementações desta especificação estão descritas em maiores detalhes no presente em vista do contexto acima. Mais especialmente, e conforme introduzido acima, as implementações desta especificação são direcionadas aos grupos para a execução de transações que possuem uma
Petição 870190074425, de 02/08/2019, pág. 49/83
8/27 dependência compartilhada em paralelo com outros grupos. Uma vez que as transações em grupos diferentes não dependem umas das outras (por exemplo, não afetam as mesmas contas na rede blockchain), a ordem em que as transações em grupos diferentes são executadas em relação a uma outra não afeta o estado geral da rede blockchain. Por conseguinte, essas transações podem ser executadas em paralelo, o que pode conduzir a um aumento na taxa de transferência da transação em uma rede blockchain.
[031 ]A Figura 1 ilustra um exemplo de um ambiente (100) que pode ser utilizado para a execução das implementações desta especificação. Em alguns exemplos, o ambiente (100) possibilita que as entidades participem de uma rede blockchain pública (102). O ambiente (100) inclui os dispositivos de computação (106), (108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede área local (LAN), rede de longa distância (WAN), Internet ou uma de suas combinações, e conecta os sites da Web, dispositivos de usuário (por exemplo, os dispositivos de computação) e sistemas 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. Em alguns exemplos, a rede (110) possibilita a comunicação com, e dentro da rede blockchain pública (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 os nódulos de um sistema de computação em nuvem (não mostrado) ou cada dispositivo de computação (106), (108) pode 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.
[032]No exemplo descrito, cada sistema de computação (106), (108) pode incluir qualquer sistema de computação adequado que possibilita a participação como um nódulo na rede blockchain pública (102). Os exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador
Petição 870190074425, de 02/08/2019, pág. 50/83
9/27 de mesa, um computador computador portátil, um dispositivo de computação 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 blockchain pública (102). Por exemplo, o sistema de computação (106) pode hospedar os serviços implementados por computador de uma primeira entidade (por exemplo, o Participante A), tal como o sistema de gerenciamento de transações que a primeira entidade utiliza para gerenciar suas transações com uma ou mais entidades (por exemplo, outros participantes). O sistema de computação (108) pode hospedar os serviços implementados por computador de uma segunda entidade (por exemplo, o Participante B), tal como o sistema de gerenciamento de transação que a segunda entidade utiliza para gerenciar suas transações com uma ou mais entidades (por exemplo, outros participantes). No exemplo da Figura 1, a rede pública de blockchain (102) é representada como uma rede de nódulos peer-to-peer, e os sistemas de computação (106), (108) fornecem os nódulos da primeira entidade e segunda entidade, respectivamente, que participam na rede blockchain de consórcio (102).
[033] A Figura 2 ilustra um exemplo de uma arquitetura conceptual (200) de acordo com as implementações da presente especificação. O exemplo de uma arquitetura conceptual (200) inclui os sistemas participantes (202), (204), (206) que correspondem ao Participante A, Participante B e Participante C, respectivamente. Cada participante (por exemplo, o usuário, empresa) participa de uma rede blockchain (212) fornecida como uma rede peer-to-peer incluindo uma pluralidade de nódulos (214), pelo menos, alguns dos quais gravam a informação imutável em uma blockchain (216). Embora uma única blockchain (216) seja representada esquematicamente dentro da rede blockchain (212), são fornecidas múltiplas cópias da blockchain (216) e mantidas através da rede blockchain (212), conforme descrito no presente em maiores detalhes.
Petição 870190074425, de 02/08/2019, pág. 51/83
10/27 [034]No exemplo descrito, 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ódulo (214) dentro da rede blockchain. Conforme utilizado no presente, um nódulo, em geral, se refere a um sistema individual (por exemplo, o computador, servidor) que está conectado à rede blockchain (212) e possibilita que um participante respectivo participe na rede blockchain. No exemplo da Figura 2, um participante corresponde a cada nódulo (214). Está contemplado, no entanto, que um participante pode operar múltiplos nódulos (214) dentro da rede blockchain (212), e/ou múltiplos participantes podem compartilhar um nódulo (214). Em alguns exemplos, os sistemas participantes (202), (204), (206) se comunicam com, ou através da rede blockchain (212) utilizando um protocolo (por exemplo, o protocolo de transferência de hipertexto seguro (HTTPS)) e/ou utilizando os chamados de procedimento remoto (RPCs).
[035]Os nódulos (214) podem possuir diversos graus de participação dentro da rede blockchain (212). Por exemplo, alguns nódulos (214) podem participar no processo de consenso (por exemplo, como nódulos de mineração que adicionam os blocos à blockchain (216)), enquanto outros nódulos (214) não participam no processo de consenso. Como outro exemplo, alguns nódulos (214) armazenam uma cópia completa da blockchain (216), enquanto outros nódulos (214) apenas armazenam as cópias de partes da blockchain (216). Por exemplo, os privilégios de acesso aos dados podem limitar os dados de blockchain que um respectivo participante armazena dentro de seu respectivo sistema. No exemplo da Figura 2, os sistemas participantes (202), (204), (206) armazenam as respetivas cópias completas (216’), (216”), (216”’) da blockchain (216).
[036] Uma blockchain (por exemplo, a blockchain (216) da Figura 2) é composta de uma cadeia de blocos, cada bloco armazenando os dados. Os
Petição 870190074425, de 02/08/2019, pág. 52/83
11/27 exemplos de dados incluem os dados de transações representativos de uma transação entre dois ou mais participantes. Embora as transações sejam utilizadas no presente por meio de exemplos não limitantes, é contemplado que quaisquer dados adequados possam ser armazenados em uma cadeia de blocos (por exemplo, os documentos, imagens, vídeos, áudio). Os exemplos de transações podem incluir, sem limitação, as trocas de algo de valor (por exemplo, os ativos, produtos, serviços). Os dados da transação são armazenados de maneira imutável dentro da blockchain. Isto é, os dados da transação não podem ser alterados.
[037]Antes de armazenar em um bloco, os dados da transação são criptografados. O hashing é um processo de transformar os dados da transação (fornecidos como dados de string) em um valor de hash de comprimento fixo (também fornecido como dados de string). Não é possível un-hash o valor de hash para obter os dados da transação. O hashing assegura que até mesmo uma pequena alteração nos dados da transação resulte em um valor de hash completamente diferente. Além disso, e conforme observado acima, o valor de hash é de comprimento fixo. Isto é, não importa o tamanho dos dados da transação, o tamanho do valor do hash é fixo. O hashing inclui o processamento dos dados da transação por meio de uma função hash para gerar o valor de hash. Um exemplo de função hash inclui, sem limitação, o algoritmo hash seguro (SHA)-256, que gera os valores hash de 256 bits.
[038]Os dados de transação de múltiplas transações são hashed e armazenados em um bloco. Por exemplo, os valores de hash de duas transações são fornecidos e são eles próprios hashed para fornecer outro hash. Esse processo é repetido até que, para que todas as transações sejam armazenadas em um bloco, um único valor de hash seja fornecido. Esse valor de hash é referido como um hash de raiz Merkle e é armazenado em um cabeçalho do bloco. Uma alteração em qualquer uma das transações irá resultar em alterações
Petição 870190074425, de 02/08/2019, pág. 53/83
12/27 no valor de hash e, por fim, em uma alteração no hash da raiz Merkle.
[039]Os blocos são adicionados à blockchain através de um protocolo de consenso. Múltiplos nódulos dentro da rede blockchain participam do protocolo de consenso e competem para possuir um bloco adicionado à blockchain. Esses nódulos são referidos como mineiros (ou nódulos de decisão). O POW, introduzido acima, é utilizado como um exemplo não limitante.
[040]Os nódulos de mineração executam o processo de consenso para adicionar as transações à blockchain. Embora múltiplos nódulos mineradores participem do processo de consenso, apenas um nódulo de mineração pode gravar o bloco na blockchain. Isto é, os nódulos de mineração competem no processo de consenso para possuir seu bloco adicionado à blockchain. Em maiores detalhes, um nódulo de mineração coleta periodicamente as transações pendentes de um pool de transações (por exemplo, até um limite predefinido no número de transações que podem ser incluídas em um bloco, caso exista). O pool de transações inclui as mensagens de transação dos participantes da rede blockchain. O nódulo de mineração constrói um bloco e adiciona as transações no bloco. Antes de adicionar as transações ao bloco, o nódulo de mineração verifica se alguma das transações já está incluída em um bloco da blockchain. Se uma transação já estiver incluída em outro bloco, a transação será descartada.
[041 ]O nódulo de mineração gera um cabeçalho de bloco, hashes todas as transações no bloco e combina o valor de hash em pares para gerar mais valores de hash até que um único valor de hash seja fornecido para todas as transações no bloco (o hash de raiz Merkle). Este hash é adicionado ao cabeçalho do bloco. O minerador também determina o valor de hash do bloco mais recente na blockchain (isto é, o último bloco adicionado à blockchain). O nódulo de mineração também inclui um valor arbitrário (nonce) e um timestamp (registro de data e hora) para o cabeçalho do bloco. Em um processo de
Petição 870190074425, de 02/08/2019, pág. 54/83
13/27 mineração, o nódulo de mineração tenta encontrar um valor de hash que atenda aos parâmetros necessários. O nódulo de mineração continua alterando o valor arbitrário (nonce) até encontrar um valor de hash que atenda os parâmetros necessários.
[042]Cada minerador na rede blockchain tenta encontrar um valor de hash que atenda os parâmetros necessários e, dessa maneira, competir entre si. Opcionalmente, um dos nódulos de mineração encontra um valor de hash que atende os parâmetros necessários e anuncia isso para todos os outros nódulos de mineração na rede blockchain. Os outros nódulos de mineração verificam o valor do hash e, se for determinado estar correto, verifica cada transação no bloco, aceita o bloco e anexa o bloco à sua cópia da blockchain. Dessa maneira, um estado global da blockchain é consistente em todos os nódulos de mineração dentro da rede blockchain. O processo descrito acima é o protocolo de consenso de POW.
[043]Um exemplo não limitante é fornecido com referência à Figura 2. Neste exemplo, o Participante A quer enviar uma quantia 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 blockchain, que adiciona a mensagem de transação para um pool de transações. Cada nódulo de mineração na rede blockchain cria um bloco e toma todas as transações do pool de transações (por exemplo, até um limite predefinido no número de transações que podem ser adicionadas a um bloco, caso exista) e adiciona as transações ao bloco. Dessa maneira, a transação publicada pelo Participante A é adicionada aos blocos dos nódulos de mineração.
[044]Em algumas redes blockchain, a criptografia é implementada para manter a privacidade das transações. Por exemplo, se dois nódulos quiserem manter uma transação privada, de maneira que outros nódulos na rede blockchain não consigam discernir os detalhes da transação, os nódulos podem
Petição 870190074425, de 02/08/2019, pág. 55/83
14/27 criptografar os dados da transação. Os exemplos de métodos criptográficos incluem, sem limitação, a criptografia simétrica e criptografia assimétrica. A criptografia simétrica se refere a um processo de criptografia que utiliza uma única chave para a criptografia (geração de texto cifrado a partir de texto original) e a descriptografia (geração de texto original a partir do texto cifrado). Na criptografia simétrica, a mesma chave está disponível para múltiplos nódulos, por conseguinte, cada nódulo pode criptografar os dados da transação.
[045]A criptografia assimétrica utiliza pares de chaves que incluem, cada um, uma chave privada e uma chave pública, a chave privada sendo conhecida apenas por um nódulo respectivo e a chave pública sendo conhecida por qualquer um ou todos os outros nódulos na rede blockchain. Um nódulo pode utilizar a chave pública de outro nódulo para criptografar os dados e os dados criptografados podem ser descriptografados utilizando a chave privada de outro nódulo. Por exemplo, e novamente com referência à Figura 2, o Participante A pode utilizar a chave pública do Participante B para criptografar os dados e enviar os dados criptografados para o Participante B. O Participante B pode utilizar sua chave privada para descriptografar os dados criptografados (texto cifrado) e extrair os dados originais (texto original). As mensagens criptografadas com a chave pública de um nódulo apenas podem ser descriptografadas utilizando a chave privada do nódulo.
[046]A criptografia assimétrica é utilizada para fornecer as assinaturas digitais, o que possibilita aos participantes em uma transação confirmar outros participantes na transação, bem como a validade da transação. Por exemplo, um nódulo pode assinar digitalmente uma mensagem e outro nódulo pode confirmar que a mensagem foi enviada pelo nódulo com base na assinatura digital do Participante A. As assinaturas digitais também podem ser utilizadas para garantir que as mensagens não sejam adulteradas em trânsito. Por exemplo, e novamente com referência à Figura 2, o Participante A precisa
Petição 870190074425, de 02/08/2019, pág. 56/83
15/27 enviar uma mensagem para o Participante B. O Participante A gera um hash da mensagem e, em seguida, utilizando sua chave privada, criptografa o hash para fornecer uma assinatura digital como o hash criptografado. O Participante A acrescenta a assinatura digital à mensagem e envia a mensagem com assinatura digital para o Participante B. O Participante B decriptografa a assinatura digital utilizando a chave pública do Participante A e extrai o hash. O participante B hashes a mensagem e compara os hashes. Se os hashes forem iguais, o Participante B poder confirmar que a mensagem foi realmente do Participante A e não foi adulterada.
[047] Para fornecer o contexto adicional para as implementações desta especificação, a Figura 3A ilustra um exemplo de uma ordem de execução (300) para as transações em uma rede blockchain, de acordo com as implementações desta especificação. Conforme mostrado, a ordem de execução (300) inclui uma pluralidade de transações ((305), (310), (315), (320)) sequenciadas de acordo com a ordem em que elas devem ser executadas pelos nódulos de uma rede blockchain. As transações (305a), (305b) e (305c) são chamados para os contratos inteligentes. Além dos chamados de contrato inteligente, a ordem de execução (300) inclui múltiplos grupos de transações compartilhando uma dependência comum (denotada por hatching cruzado), tal como, por exemplo, afetando a mesma conta. As transações (310a), (310b) representam um primeiro grupo, as transações (315a-e) representam um segundo grupo e (320a-320c) representam um terceiro grupo. Conforme descrito abaixo, cada grupo de transações pode ser executado em paralelo pelos nódulos da rede blockchain, de acordo com as implementações desta especificação.
[048]A Figura 3B ilustra um exemplo de uma ordem de execução paralela (350) para as transações em uma rede blockchain, de acordo com as implementações desta especificação. Conforme mostrado, na ordem de execução paralela (350), os grupos de transações (355), (360), (365), (370) e
Petição 870190074425, de 02/08/2019, pág. 57/83
16/27 (375) foram identificados. Os nódulos de uma rede blockchain podem executar os grupos de transações em paralelo, conforme mostrado na Figura 3B e discutido. Em alguns casos, todas as transações em um grupo compartilham uma dependência comum e, por conseguinte, são executadas em série, de acordo com a ordem de execução original. Isso garante que o estado da rede blockchain (por exemplo, os saldos de conta) será o mesmo resultado da execução das transações de acordo com a ordem de execução paralela (350), tal como seria após a execução das transações de acordo com a ordem de execução (300) na Figura. 3A.
[049]Considere o exemplo em que a conta A possui um saldo de $ 0 antes de executar qualquer uma das transações na Figura 3B, em que a transação (310a) representa um pagamento para a conta A a partir da conta B, na quantia de $ (300), e a transação (310b) representa um pagamento da conta A para a conta C de $ 50. Se as transações (310a) e (310b) forem executadas em série (conforme originalmente descrito na ordem de execução (300)), a conta A, em primeiro lugar, será financiada com $ (300) e, em seguida, debitada em $ 50, restando um saldo de $ 250. No entanto, se as transações (310a) e (310b) não forem executadas em série e a transação (310b) for executada antes de (310a), a conta A irá possuir um saldo de $ 0 quando o pagamento da transação (310b) for executado. A conta A irá possuir um saldo insuficiente para financiar o pagamento neste cenário, o que podería levar a transação (310b) a ser rejeitada pela rede blockchain.
[050]Com base neste exemplo, considere um caso em que a transação (320a) representa um pagamento de uma conta D para uma conta E de $ 100. Uma vez que as contas afetadas pela transação (320a) (contas D e E) não incluem nenhuma das contas afetadas pelas transações (310a) e (310b) (contas A, B e C), a transação (320a) não possui nenhuma dependência comum com as transações (310a) e (310b). Por conseguinte, a transação (320a) pode
Petição 870190074425, de 02/08/2019, pág. 58/83
17/27 ser executada em paralelo com as transações (310a) e (310b).
[051]Em algumas implementações, as transações a serem executadas em série podem ser agrupadas. Por exemplo, conforme mostrado na Figura 3B, as transações (310a) a (310b) são agrupadas em (355), as transações (315a), (315b) e (315c) são agrupadas em (360), e a transação (320a) é agrupada em (365). Cada um dos grupos (355), (360) e (365) pode ser executado em paralelo pelos nódulos da rede blockchain. A execução dos grupos de transação (355), (360) e (365) em paralelo pode conduzir a um aumento na taxa de transferência da rede blockchain, uma vez que a rede está executando três transações simultâneas em vez de apenas uma, se todas as transações forem executadas em série.
[052]A Figura 3B também inclui os chamados de contrato (305a) a (305c). Os chamados de contrato representam um ponto de sincronização, em que a execução paralela converge. Uma vez que os chamados de contrato conduzem à execução das instruções que compõem o contrato inteligente, pode não ser possível determinar o escopo das contas que um chamado de contrato específica irá afetar. Por exemplo, considere um contrato inteligente simples que aceita uma conta específica e uma quantia de pagamento como parâmetros e aplica a quantia do pagamento à conta específica se alguma condição for verdadeira. Uma vez que um chamador deste contrato inteligente especifica a conta específica quando o contrato inteligente é chamado, não é possível determinar, a partir da definição do contrato inteligente em si (isto é, seu códigofonte), quais contas um chamado específico ao contrato inteligente irá afetar. Por esse motivo, em algumas implementações, o chamado do contrato pode ser observado como uma transação com o potencial de afetar todas as contas na rede blockchain que, por conseguinte, não pode ser executada em paralelo com outras transações. Por conseguinte, a ordem de execução paralela (350) converge quando alcança um chamado do contrato. Por exemplo, conforme
Petição 870190074425, de 02/08/2019, pág. 59/83
18/27 mostrado, os grupos (355), (360) e (365) executam em paralelo até alcançar o chamado do contrato (305b). Neste momento, a rede de blockchain espera até que todas as transações nos grupos (355), (360) e (365) concluíram a execução e, em seguida, prossegue com a execução do chamado do contrato inteligente (305b).
[053]Após o chamado do contrato (305b) estar completo, os grupos de transações (por exemplo, (370) e (375)) novamente podem ser executados em paralelo pela rede blockchain até que outro chamado do contrato inteligente (por exemplo, (305c)) seja encontrado, momento em que a execução paralela novamente converge antes da execução do chamado do contrato inteligente.
[054]A Figura 4 ilustra um exemplo de um processo (400) que pode ser executado, de acordo com as implementações desta especificação. Em algumas implementações, o processo (400) pode ser realizado utilizando um ou mais programas executáveis por computador executados utilizando um ou mais dispositivos de computação.
[055]Em (402), uma pluralidade de transações a serem executadas na blockchain são identificadas. As transações são ordenadas em uma ordem de execução e a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações. Em alguns casos, a identificação da pluralidade de transações a serem executadas na blockchain inclui o recebimento de transações transmitidas para a rede blockchain. Em algumas implementações, o chamado do contrato é uma solicitação para a execução de um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain.
[056]Em (404), grupos de transações são identificados dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo.
Petição 870190074425, de 02/08/2019, pág. 60/83
19/27 [057]Em (406), os nódulos da rede blockchain são instruídos para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução. Em alguns casos, a instrução dos nódulos da rede blockchain para a execução de cada urn dos grupos de transações em paralelo inclui a instrução de um primeiro conjunto de nódulos para a execução de um primeiro grupo de transações e a instrução de um primeiro conjunto de nódulos para a execução de um segundo grupo de transações. Em algumas implementações, a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui o envio de uma mensagem aos nódulos através de uma rede.
[058]Em (408), uma determinação é realizada que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações. Em algumas implementações, a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações inclui a determinação que todas as transações na pluralidade de transações foram incluídas em um ou mais blocos armazenados em uma blockchain mantida pela rede blockchain.
[059]Em (410), em resposta à determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações, os nódulos da rede blockchain são instruídos para a execução do chamado do contrato.
[060]Em algumas implementações, o processo (400) inclui a determinação de que os nódulos da rede blockchain concluíram a execução do chamado do contrato; a identificação de uma segunda pluralidade de transações a serem executadas na blockchain, em que a segunda pluralidade de transações é ordenada após o chamado do contrato na ordem de execução;
- a identificação de segundo grupos de transações dentro da segunda pluralidade de transações; e a instrução dos nódulos da rede blockchain
Petição 870190074425, de 02/08/2019, pág. 61/83
20/27 para a execução de cada um dos segundos grupos de transações em paralelo, em que a execução de cada segundo grupo de transações inclui a execução das transações dentro do segundo grupo em série e de acordo com a ordem de execução.
[061]A Figura 5 ilustra os exemplos de módulos de um aparelho (500) de acordo com as implementações desta especificação. O aparelho (500) pode ser um exemplo de implementação de um aparelho configurado para possibilitar a execução paralela de transações em uma rede blockchain, tal como uma rede blockchain de consórcio. O aparelho (500) pode corresponder às implementações descritas acima, e o aparelho (500) inclui o seguinte: um primeiro identificador ou primeira unidade identificadora (502) para a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução, e em que a ordem de execução inclui um chamado de contrato ordenado após a pluralidade de transações; um segundo identificador ou segunda unidade identificadora (504) para a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo; um primeiro instrutor ou primeira unidade instrutora (506) para a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução; um determinador ou unidade de determinação (508) para a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e um segundo instrutor ou segunda unidade de instrução (510) para a instrução dos nódulos da rede blockchain para a execução do chamado do contrato em resposta à determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações.
Petição 870190074425, de 02/08/2019, pág. 62/83
21/27 [062]O sistema, aparelho, módulo ou unidade ilustrados nas implementações anteriores pode ser implementado utilizando um chip de computador ou uma entidade, ou pode ser implementados utilizando um produto que possua uma função determinada. Um dispositivo de implementação típico é um computador, e o computador pode ser um computador pessoal, um computador portátil, um telefone celular, um celular com câmera, um smartphone, um assistente digital pessoal, um reprodutor de mídia, um dispositivo de navegação, um e-mail que recebe e envia o dispositivo, um console de jogos, um computador tablet, um dispositivo vestível ou uma combinação de qualquer um desses dispositivos.
[063] Para um processo de implementação de funções e funções de cada unidade no aparelho, podem ser executadas referências a um processo de implementação de etapas correspondentes no método anterior. Os detalhes são omitidos no presente para simplificar.
[064]Uma vez que uma implementação de aparelho basicamente corresponde a uma implementação de método, para as partes relacionadas, referências podem ser feitas às descrições relacionadas na implementação do método. A implementação do aparelho descrita anteriormente é meramente um exemplo. As unidades descritas como partes separadas podem ou não estar fisicamente separadas, e as partes 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 série 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 da especificação. Um técnico comum no assunto pode compreender e implementar as implementações da presente aplicação sem esforços criativos.
[065]Novamente com referência à Figura 5, pode ser interpretado como ilustrando um módulo funcional interno e uma estrutura de um aparelho
Petição 870190074425, de 02/08/2019, pág. 63/83
22/27 para possibilitar a execução paralela de transações em uma rede blockchain. O aparelho de execução paralela pode ser um exemplo de um aparelho configurado para possibilitar a execução paralela de transações em uma rede blockchain.
[066]As implementações do assunto e as ações e operações descritas nesta especificação podem ser implementadas em circuitos eletrônicos digitais, em software de computador ou firmware corporificados de maneira tangível, em hardware de computador, incluindo as estruturas descritas nesta especificação e seus equivalentes estruturais, ou em combinações de um ou mais deles. As implementações do assunto descrito nesta especificação 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 transportador de programa de computador, para a execução ou controle da operação de aparelho de processamento de dados. O transportador pode ser um meio de armazenamento de computador não transitório tangível. De maneira alternativa, ou adicional, o transportador pode ser um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, ótico ou eletromagnético gerado pela máquina que é gerado para codificar a informação para a transmissão para um aparelho receptor adequado para a 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.
[067]O termo aparelho de processamento de dados engloba todos os tipos de aparelhos, dispositivos e máquinas para o processamento de dados, incluindo, por exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O aparelho de processamento de
Petição 870190074425, de 02/08/2019, pág. 64/83
23/27 dados pode incluir os circuitos lógicos para fins especiais, por exemplo, um FPGA (Field Programmable Gate Array), urn ASIC (circuito integrado específico de aplicativos) ou uma GPU (unidade de processamento gráfico). O equipamento também pode incluir, além do hardware, o código que cria um ambiente de execução para os programas de computador, por exemplo, o código que constitui o 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.
[068]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 motor, um script ou código, pode ser escrito em qualquer forma de linguagem de programação, incluindo as linguagens compiladas ou interpretadas, linguagens declarativas ou procedimentais, e pode ser implantado de qualquer maneira, incluindo tal como um programa independente ou como um módulo, componente, mecanismo, subrotina ou outra unidade adequada para a execução em um ambiente de computação, cujo ambiente pode incluir um ou mais computadores interconectados por uma comunicação de dados, rede em um ou mais locais.
[069]Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa de computador 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 múltiplos arquivos coordenados, por exemplo, os arquivos que armazenam um ou mais módulos, subprogramas ou partes do código.
[070]Gs processos e fluxos lógicos descritos nesta especificação podem ser realizados por um ou mais computadores que executam um ou mais
Petição 870190074425, de 02/08/2019, pág. 65/83
24/27 programas de computador para a realização de operações operando em relação aos dados de entrada e gerando a saída. Os processos e fluxos lógicos também podem ser realizados por circuitos lógicos de propósito especial, por exemplo, um 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.
[071 ]Os computadores adequados para a execução de um programa de computador podem ser com base em microprocessadores de utilização geral ou especial ou em ambos ou qualquer outro tipo de unidade de processamento central. Em geral, uma unidade de processamento central irá receber as 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 a execução de instruções e um ou mais dispositivos de memória para armazenar as 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.
[072]Em geral, um computador será acoplado a, pelo menos, um meio de armazenamento não transitório legível por computador (também referido como uma 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, a unidade flash de barramento serial universal (USB) ou um sistema de armazenamento acessado através de uma rede). Os exemplos de mídia de armazenamento podem incluir, por exemplo, os discos magnéticos, magnetoóticos ou óticos, unidades de estado sólido, recursos de armazenamento de rede, tais como os sistemas de armazenamento em nuvem ou outros tipos de mídia de armazenamento. No entanto, um computador não precisa possuir esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone celular, um assistente digital pessoal
Petição 870190074425, de 02/08/2019, pág. 66/83
25/27 (PDA), um tocador de áudio ou vídeo, um console de jogos, um receptor GPS ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial universal (USB), para citar apenas alguns.
[073] Para fornecer a interação com um usuário, as implementações do assunto descrito nesta especificação podem ser implementadas em, ou configuradas para se comunicar com um computador que possui um dispositivo de exibição, por exemplo, um monitor LCD (monitor de cristal líquido), para exibir as informações para o usuário e um dispositivo de entrada pelo qual o usuário pode fornecer a entrada para o computador, por exemplo, um teclado e um dispositivo apontador, por exemplo, um mouse, um trackball ou touchpad. Outros tipos de dispositivos também podem ser utilizados para fornecer a interação com um usuário; por exemplo, o feedback fornecido ao usuário pode ser qualquer forma de feedback sensorial, por exemplo, o feedback visual, feedback auditivo ou feedback tátil; e a entrada do usuário pode ser recebida de qualquer forma, incluindo a entrada acústica, de fala ou tátil. Além disso, um computador pode interagir com um usuário enviando os documentos e recebendo os documentos de um dispositivo utilizado pelo usuário; por exemplo, enviando as páginas da web para um navegador da web no dispositivo de um usuário em resposta às solicitações recebidas do navegador da web ou interagindo com um aplicativo executado em um dispositivo de usuário, por exemplo, um smartphone ou tablet eletrônico. Além disso, um computador pode interagir com um usuário enviando as mensagens de texto ou outras formas de mensagem para um dispositivo pessoal, por exemplo, um smartphone que está executando um aplicativo de mensagens e recebendo as mensagens responsivas do usuário em troca.
[074]Esta especificação utiliza o termo “configurado para” em conexão aos sistemas, aparelhos e componentes de programas de computador. Para que um sistema de um ou mais computadores seja configurado para a
Petição 870190074425, de 02/08/2019, pág. 67/83
26/27 execução de operações ou ações específicas significa que o sistema instalou nele o 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 a execução de operações ou ações específicas significa que um ou mais programas incluem as instruções que, quando executadas pelo aparelho de processamento de dados, fazem com que o aparelho execute as operações ou ações. Para os circuitos lógicos com propósito especial a serem configurados para a execução de operações ou ações específicas significa que o circuito possui lógica eletrônica que realiza as operações ou ações.
[075]Embora esta especificação contenha muitos detalhes específicos de implementação, estes não devem ser interpretados como limitações no âmbito de qualquer invenção ou no âmbito do que pode ser reivindicado, mas como descrições de características que podem ser específicas para as implementações específicas de determinadas invenções. Determinadas características descritas na presente invenção no contexto de implementações separadas também podem ser implementadas, em combinação, em uma única implementação. Por outro lado, diversas características descritas no contexto de uma única implementação também podem ser implementadas em diversas implementações, separadamente ou em qualquer subcombinação adequada. Além disso, embora as características descritas anteriormente possam estar descritas como atuando em determinadas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada, em alguns casos, podem ser excisadas da combinação, e a combinação reivindicada pode ser direcionada a uma combinação, sub-combinação ou variação de uma subcombinação.
[076] De maneira similar, embora as operações sejam representadas nos desenhos ou reivindicações em uma ordem específica
Petição 870190074425, de 02/08/2019, pág. 68/83
27/27 especial, isso não deve ser entendido como exigindo que tais operações sejam executadas na ordem especial mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam executadas, para alcançar os resultados desejados. Em determinadas circunstâncias, o processamento multitarefa ou paralelo podem ser vantajosos. Além disso, a separação ou integração de diversos módulos e componentes do sistema nas implementações descritas anteriormente não devem ser entendidas como exigindo tal separação ou integração em todas as implementações, e deve ser entendido que os componentes e sistemas do programa descritos, em geral, podem ser integrados em conjunto um único produto de software ou empacotados em diversos produtos de software.
[077]As implementações específicas do assunto foram descritas. Outras implementações estão dentro do escopo das seguintes reivindicações. Por exemplo, as ações citadas nas reivindicações podem ser executadas em uma ordem diferente e ainda alcançar os resultados desejáveis. Como um exemplo, os processos representados nas figuras anexas não requerem necessariamente a ordem especial mostrada, ou ordem sequencial, para alcançar os resultados desejados. Em alguns casos, o processamento multitarefa ou paralelo podem ser vantajosos.

Claims (20)

  1. Reivindicações
    1. MÉTODO IMPLEMENTADO POR COMPUTADOR para a execução paralela de transações em uma rede blockchain, caracterizado pelo método compreender:
    - a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações;
    - a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo;
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução;
    - a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e
    - em resposta à determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações, instruindo os nódulos da rede blockchain para a execução do chamado do contrato.
  2. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui a instrução de um primeiro conjunto de nódulos para a execução de um primeiro grupo de transações e a instrução de um primeiro conjunto de nódulos para a execução de um segundo grupo de transações.
  3. 3. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação que os nódulos da rede blockchain concluíram a
    Petição 870190074425, de 02/08/2019, pág. 70/83
    2/7 execução de todos os grupos de transações inclui a determinação que todas as transações na pluralidade de transações foram incluídas em um ou mais blocos armazenados em uma blockchain mantida por a rede blockchain.
  4. 4. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda:
    - a determinação que os nódulos da rede blockchain concluíram a execução do chamado do contrato;
    - a identificação de uma segunda pluralidade de transações a serem executadas na blockchain, em que a segunda pluralidade de transações é ordenada após o chamado do contrato na ordem de execução;
    - a identificação de segundo grupos de transações dentro da segunda pluralidade de transações; e
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos segundos grupos de transações em paralelo, em que a execução de cada segundo grupo de transações inclui a execução das transações dentro do segundo grupo em série e de acordo com a ordem de execução.
  5. 5. MÉTODO, de acordo com a reivindicação 1, caracterizado pela instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui o envio de uma mensagem aos nódulos através de uma rede.
  6. 6. MÉTODO, de acordo com a reivindicação 1, caracterizado por identificar a pluralidade de transações a serem executadas na blockchain inclui o recebimento das transações transmitidas para a rede blockchain.
  7. 7. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo chamado do contrato ser uma solicitação para a execução de um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain.
  8. 8. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório acoplado a um ou mais computadores e que possui as instruções
    Petição 870190074425, de 02/08/2019, pág. 71/83
    3/7 armazenadas no mesmo que são executáveis por um ou mais computadores, caracterizado para:
    - a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações;
    - a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo;
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução;
    - a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e
    - em resposta à determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações, instruindo os nódulos da rede blockchain para a execução do chamado do contrato.
  9. 9. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório, de acordo com a reivindicação 8, caracterizado pelas instruções dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo incluem a instrução de um primeiro conjunto de nódulos para a execução de um primeiro grupo de transações e a instrução de um primeiro conjunto de nódulos para a execução de um segundo grupo de transações.
  10. 10. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório da reivindicação 8, caracterizado pela determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações
    Petição 870190074425, de 02/08/2019, pág. 72/83
    4/7 inclui a determinação que todas as transações na pluralidade de transações foram incluídas em uma ou mais blocos armazenados em uma blockchain mantida pela rede blockchain.
  11. 11. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório, de acordo com a reivindicação 8, caracterizado por possuir as instruções armazenadas no mesmo que são executáveis por um ou mais computadores para:
    - a determinação que os nódulos da rede blockchain concluíram a execução do chamado do contrato;
    - a identificação de uma segunda pluralidade de transações a serem executadas na blockchain, em que a segunda pluralidade de transações é ordenada após o chamado do contrato na ordem de execução;
    - a identificação de segundo grupos de transações dentro da segunda pluralidade de transações; e
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos segundos grupos de transações em paralelo, em que a execução de cada segundo grupo de transações inclui a execução das transações dentro do segundo grupo em série e de acordo com a ordem de execução.
  12. 12. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório, de acordo com a reivindicação 8, caracterizado pela instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui o envio de uma mensagem aos nódulos através de uma rede.
  13. 13. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não transitório, de acordo com a reivindicação 8, caracterizado pela identificação da pluralidade de transações a serem executadas na blockchain inclui o recebimento de transações transmitidas para a rede blockchain.
  14. 14. MEIO DE ARMAZENAMENTO LEGÍVEL por computador não
    Petição 870190074425, de 02/08/2019, pág. 73/83
    5/7 transitório, de acordo com a reivindicação 8, caracterizado pelo chamado do contrato ser uma solicitação para a execução de um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain.
  15. 15. SISTEMA, caracterizado por compreender:
    - um ou mais computadores; e
    - uma ou mais memórias legíveis por computador acopladas a um ou mais computadores e que possui as instruções armazenadas no mesmo, que são executáveis por um ou mais computadores para:
    - a identificação de uma pluralidade de transações a serem executadas na blockchain, em que as transações são ordenadas em uma ordem de execução e em que a ordem de execução inclui um chamado do contrato ordenado após a pluralidade de transações;
    - a identificação dos grupos de transações dentro da pluralidade de transações, em que cada transação em cada grupo está associada a uma mesma conta na rede blockchain que as outras transações no grupo;
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo, em que a execução de cada grupo de transações inclui a execução das transações dentro do grupo em série e de acordo com a ordem de execução;
    - a determinação que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações; e
    - em resposta à determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações,, instruindo os nódulos da rede blockchain para a execução do chamado do contrato.
  16. 16. SISTEMA, de acordo com a reivindicação 15, caracterizado pelas instruções dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo incluem a instrução de um primeiro conjunto de nódulos para a execução de um primeiro grupo de transações e a
    Petição 870190074425, de 02/08/2019, pág. 74/83
    6/7 instrução de um primeiro conjunto de nódulos para a execução de um segundo grupo de transações.
  17. 17. SISTEMA, de acordo com a reivindicação 15, caracterizado pela determinação de que os nódulos da rede blockchain concluíram a execução de todos os grupos de transações inclui a determinação que todas as transações na pluralidade de transações foram incluídas em um ou mais blocos armazenados em uma blockchain mantida por a rede blockchain.
  18. 18. SISTEMA, de acordo com a reivindicação 15, as memórias legíveis por computador, caracterizadas por possuírem as instruções armazenadas no mesmo, que são executáveis por um ou mais computadores para:
    - a determinação que os nódulos da rede blockchain concluíram a execução do chamado do contrato;
    - a identificação de uma segunda pluralidade de transações a serem executadas na blockchain, em que a segunda pluralidade de transações é ordenada após o chamado do contrato na ordem de execução;
    - a identificação de segundo grupos de transações dentro da segunda pluralidade de transações; e
    - a instrução dos nódulos da rede blockchain para a execução de cada um dos segundos grupos de transações em paralelo, em que a execução de cada segundo grupo de transações inclui a execução das transações dentro do segundo grupo em série e de acordo com a ordem de execução.
  19. 19. SISTEMA, de acordo com a reivindicação 15, caracterizado pela instrução dos nódulos da rede blockchain para a execução de cada um dos grupos de transações em paralelo inclui o envio de uma mensagem aos nódulos através de uma rede.
  20. 20. SISTEMA, de acordo com a reivindicação 15, caracterizado pela identificação da pluralidade de transações a serem executadas na
    Petição 870190074425, de 02/08/2019, pág. 75/83
    7/7 blockchain inclui o recebimento das transações transmitidas para a rede blockchain.
BR112019016064-7A 2018-12-28 2018-12-28 Método implementado por computador, meio de armazenamento legível e sistema BR112019016064A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124814 WO2019072303A2 (en) 2018-12-28 2018-12-28 EXECUTING PARALLEL TRANSACTIONS IN A BLOCK CHAINS NETWORK

Publications (1)

Publication Number Publication Date
BR112019016064A2 true BR112019016064A2 (pt) 2020-03-31

Family

ID=66100036

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019016064-7A BR112019016064A2 (pt) 2018-12-28 2018-12-28 Método implementado por computador, meio de armazenamento legível e sistema

Country Status (13)

Country Link
US (1) US11132676B2 (pt)
EP (1) EP3571653A4 (pt)
JP (1) JP6816300B2 (pt)
KR (1) KR102234128B1 (pt)
CN (1) CN110520882B (pt)
AU (1) AU2018347203B2 (pt)
BR (1) BR112019016064A2 (pt)
CA (1) CA3052348A1 (pt)
MX (1) MX2019009286A (pt)
PH (1) PH12019501791A1 (pt)
RU (1) RU2738826C1 (pt)
SG (1) SG11201907157XA (pt)
WO (1) WO2019072303A2 (pt)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118196938A (zh) * 2018-12-06 2024-06-14 开利公司 由区块链支持的智能锁系统
CN110520882B (zh) 2018-12-28 2023-07-14 创新先进技术有限公司 在区块链网络中并行执行交易
CN110300985B (zh) 2018-12-28 2023-08-01 创新先进技术有限公司 基于智能合约白名单在区块链网络中并行执行交易
JP6827564B2 (ja) 2019-04-12 2021-02-10 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 分散型台帳システムにおけるトランザクションのパラレル実行の実施
SG11201910057QA (en) * 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
AU2019207314C1 (en) * 2019-04-30 2021-11-18 Advanced New Technologies Co., Ltd. Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology
EP4071649A1 (en) * 2019-06-15 2022-10-12 Meta Platforms, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
CN110611702B (zh) * 2019-08-29 2022-04-01 魏松杰 区块链的文件快速传输方法、设备、系统及存储介质
CN113570460A (zh) * 2019-08-30 2021-10-29 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
JPWO2021064852A1 (pt) * 2019-10-01 2021-04-08
KR102335058B1 (ko) * 2019-11-19 2021-12-06 한양대학교 산학협력단 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
KR102342788B1 (ko) * 2019-11-19 2021-12-24 한양대학교 산학협력단 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN111181731B (zh) * 2019-12-31 2022-07-12 南京可信区块链与算法经济研究院有限公司 联盟链中智能合约的执行优化方法、系统及存储介质
CN111240831A (zh) * 2019-12-31 2020-06-05 陕西医链区块链集团有限公司 区块链中交易并行执行方法、装置、电子设备、存储介质
CN111339108A (zh) * 2020-02-18 2020-06-26 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111292192A (zh) * 2020-02-18 2020-06-16 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111405037A (zh) * 2020-03-13 2020-07-10 杭州复杂美科技有限公司 区块同步方法、设备和存储介质
CN111414374B (zh) * 2020-03-20 2023-04-28 深圳市迅雷网络技术有限公司 一种区块链交易并发处理方法、装置及设备
CN111640020B (zh) 2020-05-22 2023-09-19 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN112104606B (zh) * 2020-08-12 2022-06-17 北京智融云河科技有限公司 一种基于随机多节点的可信执行方法和系统
CN112037061A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 区块链中交易的处理方法、装置、电子设备及存储介质
WO2022093256A1 (en) * 2020-10-30 2022-05-05 Hewlett-Packard Development Company, L.P. Provisioning of computational resources
US11743327B2 (en) 2021-02-05 2023-08-29 International Business Machines Corporation Topological ordering of blockchain associated proposals
CN112884586B (zh) * 2021-04-28 2021-08-03 支付宝(杭州)信息技术有限公司 交易执行方法和区块链节点
CN113064730A (zh) * 2021-04-30 2021-07-02 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置
CN113658003B (zh) * 2021-08-17 2024-03-29 工银科技有限公司 基于区块链网络的交易方法、装置、设备及存储介质
CN113656507B (zh) * 2021-08-26 2024-03-08 支付宝(杭州)信息技术有限公司 区块链系统中执行交易的方法及装置
CN113537991B (zh) * 2021-09-16 2022-03-01 中国信息通信研究院 一种跨链交易有序执行方法和跨链系统
KR20230068800A (ko) 2021-11-11 2023-05-18 서강대학교산학협력단 트랜잭션 충돌 방지 가능한 블록체인 네트워크 및 트랜잭션 충돌 방지 방법

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401235B2 (en) * 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
US10489807B1 (en) 2013-11-11 2019-11-26 Amazon Technologles, Inc. Non-deterministic load-testing
BR112018007449B1 (pt) 2015-10-17 2024-02-20 Banqu, Inc Dispositivo de computação, método implementado por computador e dispositivo de memória legível por computador
US20170132615A1 (en) 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
EP3193299A1 (en) 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
US10255108B2 (en) * 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
JP2019525303A (ja) 2016-07-01 2019-09-05 ウェルズ・ファーゴ・バンク・ナショナル・アソシエーション 国際貿易金融ブロックチェーンシステム
US10425399B2 (en) * 2016-07-12 2019-09-24 International Business Machines Corporation Template-based distributed certificate issuance in a multi-tenant environment
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CA3037123A1 (en) 2016-08-08 2018-02-15 The Dun & Bradstreet Corporation Trusted platform and integrated bop applications for networking bop components
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11200966B2 (en) * 2016-12-27 2021-12-14 Cerner Innovation, Inc. Healthcare system based on devices and wearables
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
KR102470727B1 (ko) 2016-12-30 2022-11-25 비씨 디벨롭먼트 랩스 게엠베하 블록체인 가능한 서비스 제공자 시스템
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN106878000B (zh) 2017-03-06 2020-02-21 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种联盟链共识方法及系统
CN106934710A (zh) 2017-03-06 2017-07-07 钱德君 一种基于智能合约内容的量子合约账本
US10489597B2 (en) * 2017-03-28 2019-11-26 General Electric Company Blockchain verification of network security service
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN111066043B (zh) * 2017-06-22 2023-10-31 摩根大通国家银行 实现银行间信息网络的系统和方法
US10679210B2 (en) 2017-06-26 2020-06-09 International Business Machines Corporation Blockchain transaction commitment ordering
US10616324B1 (en) 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11196552B2 (en) * 2017-08-04 2021-12-07 Truss Financial, LLC Secure data distribution protocol using blockchains
CN107688999B (zh) * 2017-08-11 2020-11-13 杭州溪塔科技有限公司 一种基于区块链的并行交易执行方法
US11132451B2 (en) * 2017-08-31 2021-09-28 Parity Technologies Ltd. Secret data access control systems and methods
US20190087793A1 (en) * 2017-08-31 2019-03-21 Brown University Adding concurrency to smart contracts
RU2673399C1 (ru) 2017-09-07 2018-11-26 Олег Александрович Серебренников Способ сохранения покупательной способности сбережений
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
JP2020535543A (ja) * 2017-09-27 2020-12-03 セキュレンシー、インコーポレイテッド コンプライアンス対応のトークン化及び資産価値の制御のための方法、装置、及びコンピュータ可読媒体
US11100483B2 (en) * 2017-09-29 2021-08-24 Intel Corporation Hierarchical data information
CN107704269A (zh) * 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及系统
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
JP2019125914A (ja) 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
CN108848119B (zh) 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、系统、电子设备
RU181439U1 (ru) 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108683646B (zh) * 2018-04-28 2021-03-16 厦门美图之家科技有限公司 一种认证方法及计算设备
CN108681565B (zh) * 2018-04-28 2020-11-10 百度在线网络技术(北京)有限公司 区块链数据并行处理方法、装置、设备和存储介质
CN108769173B (zh) * 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
CN108846659B (zh) * 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109064171A (zh) * 2018-07-26 2018-12-21 杭州秘猿科技有限公司 一种区块链并行交易的方法、装置及电子系统
CN110520882B (zh) 2018-12-28 2023-07-14 创新先进技术有限公司 在区块链网络中并行执行交易
CN110300985B (zh) * 2018-12-28 2023-08-01 创新先进技术有限公司 基于智能合约白名单在区块链网络中并行执行交易

Also Published As

Publication number Publication date
CN110520882B (zh) 2023-07-14
EP3571653A4 (en) 2020-04-08
KR102234128B1 (ko) 2021-04-02
AU2018347203B2 (en) 2021-01-21
RU2738826C1 (ru) 2020-12-17
MX2019009286A (es) 2019-10-30
JP6816300B2 (ja) 2021-01-20
PH12019501791A1 (en) 2020-03-09
CN110520882A (zh) 2019-11-29
SG11201907157XA (en) 2019-09-27
CA3052348A1 (en) 2019-04-18
KR20200083936A (ko) 2020-07-09
AU2018347203A1 (en) 2020-07-16
EP3571653A2 (en) 2019-11-27
WO2019072303A3 (en) 2019-11-14
JP2020515942A (ja) 2020-05-28
WO2019072303A2 (en) 2019-04-18
US11132676B2 (en) 2021-09-28
US20190287101A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
BR112019016064A2 (pt) Método implementado por computador, meio de armazenamento legível e sistema
BR112019016290A2 (pt) método implementado por computador, meio de armazenamento não transitório legível por computador e sistema
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
JP6690066B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること
CN110945550B (zh) 在可信执行环境下处理和存储区块链数据
BR112019016188A2 (pt) método implementado por computador para o controle do acesso aos contratos inteligentes, meio de armazenamento legível por computador não transitório e sistema
US11394584B2 (en) Asynchronous processing of blockchain blocks

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 2755 DE 24-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.